忍者ブログ
プログラムに関連する技術などを紹介します。自製品の宣伝もかねていますので、お気に召したらリンク踏んでやってください。
Admin | Write
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

以下の環境構築を目指します。

[OS]
・Ubuntu11.10日本語remix
  上記は確認をした環境です。英語バージョンでも手順は同じはずです。 
 
[サービス]
・Apache2
・PHP5
・PostgreSQL
・phppgadmin
・Perl

目指すとは、当方で動作確認した方法を実施していただくことにより、参照された方にも
動作環境を確認していただき、環境の完成をご確認いただくといった意味合いです。

なお事前に固定IPにしてあることを前提としています。
またroot権限で作業をしていることを前提としています。

(1)パッケージのインストール
  Soft0001.png Ubuntuソフトウェアセンターを起動し、
以下のものをインストールします。
    ・"apache2"および関連
    ・"php5"および関連
    ・"postgresql"および関連
    ・"php5-pgsql"
    ・"phppgadmin"

右上の検索より上記パッケージを入力し、
完全に一致するものをインストールして
ください。

一致するパッケージは印が着くことが多いので
見つけやすいと思います。

インストール中にパッケージの重複表示が出る
場合がありますが、強制で続行してください。

Soft0002.png
  63db3b9e.png なおパッケージ検索後に選択するものは、左画像の
矢印の部分を見てください。
この例ではpostgresqlを選択しています。

(2)Apacheの確認
  0001.png ブラウザを起動し、アドレスにIPアドレスを
入力してください。
左のような画面が表示されればOKです。

(3)Perlの確認
  ここまでPerlをインストールしていませんが、Ubuntu11.10の場合、初期状態
で導入されています。

Perlのスクリプトは、デフォルトで/usr/lib/cgi-bin/に配置できるようになって
います。以下の内容でtest.cgiを作成してください。
#!/usr/bin/perl

print "Content-type: text/plain\n\n";
print "Hello, CGI\n";
最後の行は改行を忘れないでください。

作成したら、chmodで実行権限 をつけます。
chmod 777 test.cgi
  ubuntu0101_0003.jpg ブラウザを起動し、アドレスを入力して
ください。IPアドレスが192.168.1.103の
場合は、

http://192.168.1.103/cgi-bin/test.cgi

になります。
左のような画面が表示されればOKです。

(4)PHPの確認
  PHPスクリプトは、デフォルトで/var/www/に配置できるようになって
います。以下の内容でtest.phpを作成してください。
<?php
        print "hello php";
?>
最後の行は改行を忘れないでください。

作成したら、chmodで実行権限 をつけます。
chmod 777 test.php
  ubuntu0101_0004.jpg ブラウザを起動し、アドレスを入力して
ください。IPアドレスが192.168.1.103の
場合は、

http://192.168.1.103/test.php

になります。
左のような画面が表示されればOKです。

(5)postgresqlの設定
  ここは他よりしんどい作業になります。注意して作業を行ってください。

postgresはデフォルトのデータベースが日本語に対応していません。
なのでデータベースそのものをどうにかしなければなりません。
今回はデータベースを再生成します。
なおここでご紹介する手法では、古いデータベースの内容を破棄します。
なので、postgresの導入直後に作業することをお勧めします。

以下、Ubuntu端末画面のコマンド入力です。なおコマンドが長くなっているため、
一部改行してしまっています。注意してください。
薄い青字は注釈です。オレンジはメッセージです。実際はこの色で表示されません。
バージョン(下記では9.1)が変わっている可能性がありますので注意してください。
root@yellow-virtual-machine:/usr/lib/postgresql/9.1# cd /var/lib/postgresql/9.1/
        →  DB本体のファイルがあるディレクトリに移動
root@yellow-virtual-machine:/var/lib/postgresql/9.1# /etc/init.d/postgresql stop
 * Stopping PostgreSQL 9.1 database server                               [ OK ]
        →  postgresを停止
root@yellow-virtual-machine:/var/lib/postgresql/9.1# mv main main.backup
        →  旧DBを念のためバックアップ(移動)
root@yellow-virtual-machine:/var/lib/postgresql/9.1# mkdir main
        →  新しいDB用のディレクトリを生成
root@yellow-virtual-machine:/var/lib/postgresql/9.1# chown postgres:postgres main
        →  ディレクトリオーナの変更
root@yellow-virtual-machine:/var/lib/postgresql/9.1# su - postgres
        →  権限をpostgresに変更
postgres@yellow-virtual-machine:~$ /usr/lib/postgresql/9.1/bin/initdb -D /var/lib/postgresql/9.1/main -E EUC-JP --no-locale
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale C.
The default text search configuration will be set to "english".

fixing permissions on existing directory /var/lib/postgresql/9.1/main ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 24MB
creating configuration files ... ok
creating template1 database in /var/lib/postgresql/9.1/main/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating collations ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
loading PL/pgSQL server-side language ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.

Success. You can now start the database server using:

    /usr/lib/postgresql/9.1/bin/postgres -D /var/lib/postgresql/9.1/main
or
    /usr/lib/postgresql/9.1/bin/pg_ctl -D /var/lib/postgresql/9.1/main -l logfile start


        →  データベースファイルを生成(※1)

postgres@yellow-virtual-machine:~$ exit
ログアウト
        →  postgres権限終了
root@yellow-virtual-machine:/var/lib/postgresql/9.1# ln -s /etc/ssl/certs/ssl-cert-snakeoil.pem main/server.crt(※3)
root@yellow-virtual-machine:/var/lib/postgresql/9.1# ln -s /etc/ssl/private/ssl-cert-snakeoil.key main/server.key(※3)
        →  DBに必要なシンボリックリンクを作成(2つ)
root@yellow-virtual-machine:/var/lib/postgresql/9.1# /etc/init.d/postgresql start
 * Starting PostgreSQL 9.1 database server                               [ OK ]
        →  postgresを起動(※2)
root@yellow-virtual-machine:/var/lib/postgresql/9.1#

  ※1: デフォルトだと「--no-locale」オプションがないため、2バイト文字が扱えません。
本書ではデフォルトをEUC-JPにしているので、その他のコードでDBを生成する
場合はいままでと手順が変わります。こちらをご参照ください。
  ※2: ここで起動失敗(OKではなくfail)が出るようであれば、手順が誤っています。
作成したmainディレクトリを削除し、作業をやりなおしてください。
どうしてもダメだった場合、main.backupをmainに書き戻してください。その際
日本語はDBデータとして使えません。
   ※3: この手順はUbuntu11.10/Postgresql9.1の手順です。
その他のバージョンではシンボリックリンクの内容などが異なることがあります。

(6)postgresのユーザ追加
  postgresユーザ(DBアクセス専用)を追加します。
このユーザはPostgresDBに登録され、Linuxユーザには登録されません。
今回はサーバで複数のユーザを扱うことを想定していません。
PHP経由でスーパユーザアクセスのみ想定しています。

以下、Ubuntu端末画面のコマンド入力です。なお薄い青字は注釈です
  root@yellow-virtual-machine:/var/lib/postgresql/9.1# su - postgres
        →  権限をpostgresに変更
postgres@yellow-virtual-machine:~$ createuser -P xxxxxx
        →  xxxxxxというユーザを作成(適宜変更してください)
Enter password for new role:
Enter it again:

        →  パスワードの入力&再入力(適宜入力してください)
Shall the new role be a superuser? (y/n) y
        → スーパーユーザー権限の付与(適宜入力してください)
postgres@yellow-virtual-machine:~$ exit
ログアウト
        →postgres権限の終了

(7)phppgadminの確認
  デフォルト状態では、Ubuntuのローカルアクセスにしか対応していません。
とりあえずローカルから確認します。
  0002_01.png ブラウザを起動し、アドレスを入力してください。
アドレスは、

http://127.0.0.1/phppgadmin/

です。

左のような画面が表示されればOKです。
  0002_02.png 左袖の「PostgreSQL」をクリックすると、
ユーザ名とパスワードの入力を求められます。
(6)で登録したものを入力します。
  0002_03.png 認証に成功すると、左のような画面が出ます。
ここでDB作成や編集など、一通りの作業が出来ます。

(8)phppgadminの設定変更
  (7)でも書きましたが、phppgadminはデフォルト状態でローカルアクセス
(http://127.0.0.1/かhttp://localhost/)にしか対応していません。
必要に応じ変更することができます。必須ではありません。

まず、/etc/phppgadmin/apache.confを修正します。
Alias /phppgadmin /usr/share/phppgadmin

<Directory /usr/share/phppgadmin>

DirectoryIndex index.php
AllowOverride None

order deny,allow
deny from all
allow from 127.0.0.0/255.0.0.0 ::1/128

allow from 192.168.1.0/255.255.255.0 ::1/128
# allow from all

…(以下省略)


 
この例では、オレンジの部分を追加しています。
http://192.168.1.*/からアクセスできるように変更しました。
変更を適用するには、apacheを再起動してください。
root@yellow-virtual-machine:/etc/phppgadmin# /etc/init.d/apache2 restart

(9)/var/wwwでPerlを実施するための設定
  /etc/apache2/sites-available/default を編集します。
以下のエントリ(/var/www)のオレンジの部分を追加します。
  <Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews +ExecCGI
    AddHandler cgi-script .cgi .pl
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>
  変更を適用するには、apacheを再起動してください。
root@yellow-virtual-machine:/etc/apache2/sites-available# /etc/init.d/apache2 restart


なお当方において11.04で検出した問題は、11.10ではすべて問題ありませんでした。
過去のスクリプトは正常に動作しています。

但しPostgreSQLそのものの仕様が一部変更されており、そのままでは動作しない可能性が
あります。(デフォルトcryptのサイズが大きくなったためレコードサイズが不足するなど。)

詳細はDBの仕様をご確認ください。

拍手[1回]

PR
Comment form
Name
Title
Comment
Password   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
  管理人のみ閲覧可能にする
この記事のトラックバック
この記事にトラックバックする
カウンタ
ブログ内検索
忍者アド
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
最新トラックバック
最新コメント
[11/30 アオフン]
[10/18 ティンバーランド レディース]
[08/05 鍛冶屋の紅]
[08/01 渡邉英徳]
プロフィール
HN:
鍛冶屋の紅
性別:
男性
バーコード
アクセス解析
忍者ブログ [PR]

Designed by