【Ubuntu 12.04 alpha 2】PHP5-FPM (PHP5 FastCGI Process Manager) + Apache2-MPM + MySQL (LAMP) 環境構築 -- メモ [ubuntu]
この記事はメモです。
ひょっとしたらLAMP環境が必要になるかもしれないので、たまたま見つけた記事を試してみました。
元ネタ:
http://www.howtoforge.com/using-php5-fpm-with-apache2-on-ubuntu-11.10
上記記事はUbuntu 11.10(oneiric)ですが、私はUbuntu 12.04(precise) alpha 2でやってみました。
また、ローカル環境での試験の為ですので、セキュリティは考慮していません。
各バージョンは次の通り。
OS: Ubuntu 12.04 alpha 2 3.2.0-15-generic-pae
httpサーバ: apache2-mpm-worker 2.2.21-5ubuntu1
php5 : 5.3.8.0-1ubuntu3
Mysql : 5.5.17-4ubuntu6
インストール方法は上記リンクとまったく同じです。 見つけられなくなると困るので、要点を抜き出しておきます。
< インストール方法 >
※基本的に記述したコマンドは端末(ターミナル)から入力してください。
1) SQLサーバーインストール
sudo apt-get install mysql-server mysql-client
この時にmysqlの管理パスワードを聞かれるので、入力する。
2) Apache2インストール
sudo apt-get install apache2-mpm-worker
インストールが終わったら、http://localhost/ と入力してApacheが動いている事を確認する。
Apache2の設定ですが、モジュールを追加する場合は/etc/apache2/mods-availableの中のモジュール.confとモジュール.loadを/etc/apache2/mods-enabledのディレクトリにシンボリックリンクを張ります。例えばuserdirを有効にしたければ、
cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/userdir.* .
上記コマンドでuserdir.loadとuserdir.confがシンボリックリンクされます。userdir.loadはモジュールのロード記述です。そして、userdir.confがuserdirに燗する設定なので、このファイルを編集すればOK。
Apache2.confやhttpd.confの記述を変更することは無いです。(これらのファイルを編集するような記述が書いてあるサイトはApache2のバージョンが違います。)
Apache2の設定を変更した場合などにリスタートが必要になりますが、リスタートは下記のコマンドです。
sudo service apache2 restart
3) PHP5 インストール
sudo apt-get install libapache2-mod-fastcgi php5-fpm php5
sudo vi /etc/init.d/php5-fpm #バグフィックスのため
編集画面がでたら、下記を書き換えてセーブします。
do_reload() {
#
# If the daemon can reload its configuration without
# restarting (for example, when it is sent a SIGHUP),
# then implement that here.
#
#start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
start-stop-daemon --stop --signal 12 --quiet --pidfile $PIDFILE --name $NAME
return 0
青字のところがあるはずですので、これを赤字に書き直します。(上記の青字はコメントアウトしてあります。)
セーブしたら下記のコマンドを入力していきます。
sudo a2enmod actions fastcgi alias
sudo service apache2 restart
4) Apache2の設定
sudo vi /etc/apache2/sites-available/default
でデフォルトの設定ファイルを編集します。
<VirtualHost>から</VirtualHost>の間に下記の記述を挿入します。
<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization
</IfModule>
記述し終わったらセーブしてApache2をリスタートします。
上記の/usr/lib/cgi-bin/php5-fcgiのファイルはソケットファイルみたいなものですので、同じファイルやディレクトリを作成しないようにします。"FastCgiExternalServer"はfastCGIの設定です。
次に下記でまた編集します。
sudo vi /var/www/info.php
今度は空ファイルのはずですので下記を記述してセーブします。
<?php
phpinfo();
?>
そしたら、ブラウザを起動して下記のアドレスにアクセスします。
上図のように表示されればOK。(Additional .ini files parsedの欄は次の項目を行った後にスクリーンショットを取ったので、実際はこれほどありません。また、スクリーンショットのアドレスが記事のものと違いますが、直接IPアドレスを入れているだけです。)
5) SQLをサポートするためのPHP5モジュールの追加
sudo apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
※モジュールが多すぎて、本当に必要なのはどれか確認しませんでした。
インストールされたら下記のコマンドでphp5-fpmのリロードをします。
sudo service php5-fpm reload
もう一度 http://localhost/info.php にアクセスすると(リロードでも可)、下図のようにmysqlとかの欄が増えているはずです。
6) phpmyadminのインストール
sudo apt-get install phpmyadmin
インストール時に2つほど質問されるはずですので、dbconfig-commonを利用するか?という質問には「NO」、再構築するWeb serverを聞かれたら、「Apache2」を選択します。
※Apache2のインストール時もそうですが、インストール時にインストールスクリプトがwhiptailというコマンドを呼んでいます。ところがこのコマンドが/binの中にあるのに、/usr/bin/whiptailを呼んでいるために起動しません。シンボリックリンクを張ってあげると解消しますが、インストール時のインターフェースが変わります。
phpmyadminのインストールが終わったら、下記にアクセスアクセスします。
すると下図の画面が出るはずです。
ここで、ユーザ名を「root」、パスワードを1)でMySQLをインストールしたときに設定したものを入れます。※「クッキーを有効にして下さい」の表示は、ブラウザでクッキーを有効にしていても出てしまいました。
無事ログイン出来ると下図。
7) PHP-FPMをTCP経由からソケットへ変更
この作業は、デフォルトではネットワークを使っていないのにPHP-FPMにデータを渡す為にTCPでループバックをかけています。 このオーバーヘッドを無くすために、ソケットを利用します。
sudo vi /etc/php5/fpm/pool.d/www.conf
これでlistenと言う下記の青字の記述を探して、下記のように書き換えます。
;listen = 127.0.0.1:9000
listen = /tmp/php5-fpm.sock
青字はコメントアウトされて、赤字の所を追加しています。
書き終えたら、セーブして下記でphp5-fpmをリロードします。
sudo service php5-fpm reload
次にApache2の設定を書き直します。
sudo vi /etc/apache2/sites-available/default
で下記の赤字の所を書き直します。
<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /tmp/php5-fpm.sock -pass-header Authorization
</IfModule>
書き終えたら、セーブしてApache2をリスタートします。(php5-fpm.sockのファイル名に関しては、php5-fpmとApache2に設定したファイル名が一致していればOKなはずです。例外はあるかも・・・)
sudo service apache2 restart
もう一度、 http://localhost/info.php や http://localhost/phpmyadmin/ にアクセスしてちゃんと動けばOKです。
以上です。
< 余談 >
実はこの後、WordPress 3.3.1を入れました。なんか動いているみたい・・・
そのうち、インストール方法の記事とか書くかも。。。
← WordPressレッスンブック
WordPressを使うことになったら
これか、WordPressデザインブックを買うと思う。
両方とも必要かな~
ちなみに、自分のブログの為では無いです。
なので、このブログがお引越しするわけではないです。
コメント 0