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

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

過去のものがゴチャゴチャしてきたので、新しく起こし直します。

手順差分の反映および文章体裁の更新のみしています。
画像は過去ののものを使用していますが、操作はほぼ一緒です。
操作イメージとして解釈していただければと思います。

なお本ブログ内にてUbuntu 11.04 障害の旨の記事がありますが、
その後ホストOSから入れ直したVMWare上でUbuntu11.04日本語
remixの動作を確認しています。
恐らく当方の手順ミスと思われます。また本記事では各部を一通り
再確認をしておりますので、手順としては問題ないと思います。

5/18 追記:
本日現在、異常と思われる事象を確認しています。
Ubuntu11.04でPHPがおかしい?



---------------


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

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

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

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

(1)パッケージのインストール
  ubuntu0101_0001.jpg synapticパッケージマネージャを起動し、
以下のものをインストールします。
    ・"apache2"および関連
    ・"php5"および関連
    ・"postgresql"および関連
    ・"php5-pgsql"
    ・"phppgadmin"

 
 注)表記してあるもののみを選択します。 関連とは依存パッケージのことで、
    たとえば”php5”などを選択すると、自動的に依存パッケージが表示されます。
    作業者が能動的に選択する必要はありません。


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

(3)Perlの確認
  ここまでPerlをインストールしていませんが、Ubuntu9.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端末画面のコマンド入力です。なおコマンドが長くなっているため、
一部改行してしまっています。注意してください。
薄い青字は注釈です。オレンジはメッセージです。実際はこの色で表示されません。
バージョン(下記では8.4)が変わっている可能性がありますので注意してください。
  root@ubuntu:/home/yellow# /etc/init.d/postgresql-8.4 stop
 * Stopping PostgreSQL 8.4 database server                               [ OK ]
        →  postgresを停止
root@ubuntu:/home/yellow# cd /var/lib/postgresql/8.4/
        →  DB本体のファイルがあるディレクトリに移動
root@ubuntu:/var/lib/postgresql/8.4# mv main main.backup
        →  旧DBを念のためバックアップ(移動)
root@ubuntu:/var/lib/postgresql/8.4# mkdir main
        →  新しいDB用のディレクトリを生成
root@ubuntu:/var/lib/postgresql/8.4# chown postgres:postgres main
        →  ディレクトリオーナの変更
root@ubuntu:/var/lib/postgresql/8.4# su - postgres
        →  権限をpostgresに変更
postgres@ubuntu:~$ /usr/lib/postgresql/8.4/bin/initdb -D  /var/lib/postgresql/8.4/main -E EUC-JP --no-locale
データベースシステム内のファイルの所有者は"postgres"ユーザでした。
このユーザがサーバプロセスを所有しなければなりません。

データベースクラスタはロケールCで初期化されます。
デフォルトのテキスト検索設定はenglishに設定されました。

ディレクトリ/var/lib/postgresql/8.4/mainの権限を設定しています ... ok
サブディレクトリを作成しています ... ok
デフォルトのmax_connectionsを選択しています ... 100
デフォルトの shared_buffers を選択しています ... 28MB
設定ファイルを作成しています ... ok
/var/lib/postgresql/8.4/main/base/1にtemplate1データベースを作成しています ... ok
pg_authidを初期化しています ... ok
依存関係を初期化しています ... ok
システムビューを作成しています ... ok
システムオブジェクトの定義をロードしています ... ok
変換を作成しています ... ok
ディレクトリを作成しています ... ok
組み込みオブジェクトに権限を設定しています ... ok
情報スキーマを作成しています ... ok
template1データベースをバキュームしています ... ok
template1からtemplate0へコピーしています ... ok
template1からpostgresへコピーしています ... ok

警告: ローカル接続向けに"trust"認証が有効です。
pg_hba.confを編集する、もしくは、次回initdbを実行する時に-Aオプショ
ンを使用することで変更することができます。

成功しました。以下を使用してデータベースサーバを起動することができます。

/usr/lib/postgresql/8.4/bin/postgres -D /var/lib/postgresql/8.4/main
または
/usr/lib/postgresql/8.4/bin/pg_ctl -D /var/lib/postgresql/8.4/main -l logfile start

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

postgres@ubuntu:~$ exit
ログアウト
        →  postgres権限終了

root@ubuntu:/var/lib/postgresql/8.4# ln -s /etc/ssl/certs/ssl-cert-snakeoil.pem main/server.crt (※3)
root@ubuntu:/var/lib/postgresql/8.4# ln -s /etc/ssl/private/ssl-cert-snakeoil.key main/server.key
(※3)
        →  DBに必要なシンボリックリンクを作成(2つ)

root@ubuntu:/var/lib/postgresql/8.4# /etc/init.d/postgresql start
 * Starting PostgreSQL 8.4 database server                               [ OK ]
        →  postgresを起動(※2)
root@ubuntu:/var/lib/postgresql/8.4#

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


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

以下、Ubuntu端末画面のコマンド入力です。なお薄い青字は注釈です
  root@ubuntu:/var/lib/postgresql/8.4# su postgres
        →  権限をpostgresに変更
postgres@ubuntu:~/8.4$ createuser -P xxxxxx
        →  xxxxxxというユーザを作成(適宜変更してください)
新しいロールのパスワード:
もう一度入力してください:
        →  パスワードの入力&再入力
新しいロールをスーパーユーザとしますか? (y/n) y
        → スーパーユーザー権限の付与
postgres@ubuntu:/home/yellow$ exit
       
→postgres権限の終了

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

http://127.0.0.1/phppgadmin/

です。

左のような画面が表示されればOKです。
  phpPgAdmin2.JPG 左袖の「PostgreSQL」をクリックすると、
ユーザ名とパスワードの入力を求められます。
(6)で登録したものを入力します。
  phpPgAdmin3.JPG 認証に成功すると、左のような画面が出ます。
ここで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

Options +FollowSymLinks
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

<IfModule mod_php5.c>
  php_flag magic_quotes_gpc Off
  php_flag track_vars On
  php_value include_path .
</IfModule>

</Directory>
この例では、オレンジの部分を追加しています。
http://192.168.1.*/からアクセスできるように変更しました。

変更を適用するには、apacheを再起動してください。
root@ubuntu:/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@ubuntu:/etc/phppgadmin# /etc/init.d/apache2 restart



拍手[0回]

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