ちゃんと覚えておけよ?

忘れちゃいけない事のメモ、覚え書き

CentOS 6.3にPHPとApache(httpd)をソースからインストールする

今まではwindows XP や7でapacheとPHPを入れていたため、
使いやすくするため、ソースからビルドすることにした。
かなり苦戦したため、書き残すことにする。

実施した環境とインストールしたPHPとApacheのバージョンは以下

CentOS 6.3(デスクトップ版?)
Apache(httpd) 2.2.23
PHP 5.3.8
.
■Apacheからインストール!

1.ApacheをそれぞれDLしてくる。
(端末のコマンドから持ってくる場合は「wget https://ftp.kddilabs.jp/infosystems/apache/httpd/httpd-2.2.23.tar.gz」)

2.解凍して適当な場所に置く
(私はrootに置きました)
(端末のコマンドで解凍する場合は「tar zxvf httpd-2.2.23.tar.gz」)

3. 端末のコマンドで解凍したディレクトリに移動
「cd httpd-2.2.23」または 「cd /home/httpd-2.2.23」のコマンドで解凍したディレクトリに移動する。

4. ./configure でmakefile作成
./configure --enable-modules=most --enable-mods-shared='all proxy cache disk_cache mem_cache'

5. ビルド、インストール!
make && make install
chown -R apache /usr/local/apache2/
chgrp -R apache /usr/local/apache2/

※「make: *** ターゲットが指定されておらず、makefile も見つかりません。中止。」というエラーが出たら、以下のコマンドでmakeできるようにする。

# yum groupinstall "Development Tools"
# yum -y install gcc
# yum -y install openssl-devel

6. 起動スクリプト

解凍したapacheファイルからhttpdをビルドした場所にコピーする
cp -rp /root/httpd-2.2.23/build/rpm/httpd.init /etc/rc.d/init.d/httpd
chmod 755 /etc/rc.d/init.d/httpd
vi /etc/rc.d/init.d/httpd
※60,1行目
httpd=${HTTPD-/usr/local/apache2/bin/httpd}
pidfile=${PIDFILE-/usr/local/apache2/logs/httpd.pid}
※67行目
CONFFILE=/usr/local/apache2/conf/httpd.conf

7.サービス登録で自動実行に
chkconfig httpd on
↓登録されたか確認する
chkconfig –list httpd
httpd    0:off 1:off 2:on 3:on 4:on 5:on 6:off

これでapacheのインストールは完了
apache(httpd)のインストール場所は以下
/usr/local/apache2/
設定はapache2の中の「conf/httpd.conf」で行おう

端末で以下のコマンドを打ち込んでapacheが起動するか確認しよう。
service httpd start(起動)
service httpd stop(停止)
service httpd restart(再起動)

ブラウザから「localhost」にアクセスして「It works!」と表示されるか確認。


■次はPHPをソースからビルド!

1.php-5.3.8.tar.gzをDLしてくる。

2.php-5.3.8.tar.gzを解凍する。
(私は/home/へ解凍しました。)

3.解凍したディレクトリに移動する。
「cd php-5.3.8」または 「cd /home/php-5.3.8」のコマンドで解凍したディレクトリに移動する。

4. ./configure でmakefile作成
./configure --prefix=/usr/local --with-apxs2=/usr/local/apache2/bin/apxs --with-libdir=lib64 --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-curl --with-curlwrappers --with-sqlite --with-pdo-sqlite --enable-sqlite-utf8 --with-gd --enable-gd-native-ttf --enable-exif --with-jpeg-dir=/usr --with-freetype-dir=/usr --enable-fileinfo --with-bz2 --with-zlib --with-zlib-dir=/usr --enable-zip --enable-phar --enable-zend-multibyte --enable-mbstring --enable-mbregex --enable-xml --with-libxml-dir=/usr --enable-dom --enable-soap --with-xsl --enable-xmlreader --enable-xmlwriter --enable-json --enable-posix --with-layout=GNU --enable-ftp --enable-sockets --enable-bcmath --disable-cgi --disable-ipv6
※今回sqlite2を使いたかったので --with-sqliteとを入れて使えるようにした。

5. ビルド、インストール!
make && make install

※「configure: error: xml2-config not found. Please check your libxml2 installation.」というエラーが出たら以下のインストール

# yum install -y libxml2 libxml2-devel

PHP5のインストールには xml2ライブラリが必要です。 libxml2のライブラリとソースファイルをインストールします。

「configure: error: Please reinstall the BZip2 distribution」で怒られたら。
以下コマンド

yum install bzip2-devel -y

※「configure:error: jpeglib.h not fount.」、「configure:error: png.h not fount.」と怒られたら以下コマンド

yum install libjpeg-devel
yum install libpng-devel

※「configure:error: freetype.h not found.」と怒られたら以下コマンド

yum install freetype-devel

※「xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution」と怒られたら、以下コマンド

 yum install libxslt-devel

6. httpd.confを開き以下を確認&追加する。
・モジュール一覧の一番下に「LoadModule php5_module   modules/libphp5.so」が追加されたことを確認する。

・<IfModule mime_module>の中の一番したに以下の2行を追加する
AddType application/x-httpd-php .php .php5
AddType application/x-httpd-php-source .phps

7. apacheを再起動して、設定を反映させる。
端末で以下のコマンドを打ち込んでapacheが起動するか確認しよう。
service httpd start(起動)
service httpd stop(停止)
service httpd restart(再起動)

8. info.phpを作り確認
apacheの公開ディレクトリ内(apacheをソースビルドした場合のデフォルトは/usr/local/apache2/htdocs/)にinfo.phpというファイルを作り、中に以下を記述
<?php phpinfo()?>

9. サーバ情報が出たら完了!!
お疲れさまでした!!

5. ビルド、インストール!

Comment

*