○ httpd/phpのインストール

*WEBサーバを構築します
*httpd-2.2.16をソースからインストールし、設定します
*php-5.3.3をソースからインストールし、設定します
*charsetはhttpd、php共にUTF-8で運営します
*suexecオプションを有効にしています
*運営・管理は各自の考えを元にお願いします
*make はメンテナンスマシンで行っています

PHP 5.2.x から PHP 5.3.x への移行を参照してください

**以降はコメントです
*新規インストールした openssl を使います
*ソースの取得、削除は省略します
*エディタ、ファイラーの操作は省略します
*ソースを展開したら説明文 (英文) を読みましょう
*Enterキーを省略します

*ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
*設定ファイルで "#" で始まる行はコメントとして解釈されます

○関連サイト

:httpd-2.2.16.tar.bz2 (http://httpd.apache.org/)
:php-5.3.3.tar.bz2 (http://www.php.net/)
:re2c-0.13.5-1.src.rpm (http://sourceforge.net/projects/re2c/)

○参照ファイル

パッケージの追加
最初の設定 (Xen)
opensslのインストール

○インストール環境

:OS CentOS 5.5
:selinux disabled or permissive
:インストール先  httpd /usr/local/apache2  /home/www
:  php /usr/local/lib /usr/local/include
:作業 /usr/src
:言語 LANG=en_US.UTF-8
:ユーザー rootで実行

*メンテナンスは一般ユーザから行います

○仮設定
:User apache
:Group apache
:DocumentRoot  /home/www/htdocs
:管理ユーザ sola



○httpd-2.2.16

○httpdユーザ (apache) を登録します

uid/gid情報を参照
*/home/wwwディレクトリを作ります

# useradd -M -u 48 -d /home/www -s /sbin/nologin apache
# mkdir -p /home/www/myhome/{cgi-bin,linux,hobby,archi}
# chown -R apache:apache /home/www

○ソースの展開・インストール

*configureオプションで指定がない場合、preforkモードでインストールされます
*OSの指定がない場合、config.layoutの<Layout Apache>を読み込みます
*オプションの設定を間違えないようにスクリプトを作り、configureを実行します
*既存のファイルがある場合、DSO関連ファイルがコンパイルされない場合があります
*既存のコンフィグファイルは上書きされない場合があります
*完全コンパイルする場合は、バックアップして再構築します
*必要なファイルをバックアップからコピーします

# service httpd stop
# mv /etc/httpd /etc/httpd2215
# mv /usr/local/apache2 /usr/local/apache2215
# cd /usr/src
# tar jxvf httpd-2.2.16.tar.bz2
# chown -R root:root httpd-2.2.16
# cd httpd-2.2.16

# vi config.layout

*config.layoutを一部修正します (下記)
*コンフィグシェルスクリプトの実行
*同じディレクトリで実行します
httpd22cfg.sh (詳細別記)

# source httpd22cfg.sh
# make
# make install

*起動ファイルなどのコピー

# cp build/rpm/httpd.init /etc/init.d/httpd
# cp build/rpm/httpd.logrotate /etc/logrotate.d/httpd
# cd /usr/src
# tar jcvf httpd-2.2.16-100727.tar.bz2 httpd-2.2.16/

:config.layout

*OSの再インストールに備えてdatadirを/home/wwwに移します
*installbuilddirをprefix指定のディレクトリに移します

<Layout Apache>
    prefix:        /usr/local/apache2
    exec_prefix:   ${prefix}
    bindir:        ${exec_prefix}/bin
    sbindir:       ${exec_prefix}/bin
    libdir:        ${exec_prefix}/lib
    libexecdir:    ${exec_prefix}/modules
    mandir:        ${prefix}/man
    sysconfdir:    /etc/httpd/conf
    datadir:       /home/www
    installbuilddir: ${prefix}/build
    errordir:      ${datadir}/error
    iconsdir:      ${datadir}/icons
    htdocsdir:     ${datadir}/htdocs
    manualdir:     ${datadir}/manual
    cgidir:        ${datadir}/cgi-bin
    includedir:    ${prefix}/include
    localstatedir: /var
    runtimedir:    ${localstatedir}/run
    logfiledir:    ${localstatedir}/log/httpd
    proxycachedir: ${localstatedir}/cache/httpd
</Layout>

○シンボリックリンクの作成

*静的リンクされたrewriteモデュールでlogの絶対パス指定ができない
*ServerRootの設定を基準にするようなのでシンボリックリンクをつくります
*RewriteLog "logs/rewrite_log" のように設定します

# cd /usr/local/apache2
# ln -s /var/log/httpd logs



○php-5.3.3

○re2cのインストール

*phpのconfigureで警告がでるので念の為入れておく

# cd /usr/src
# mkdir re2c
# rpm -ivh re2c-0.13.5-1.src.rpm
# cd redhat/SPECS

# vi re2c.spec

*specファイルの修正
 release: 1.C55

# rpmbuild -bb --clean --rmsource re2c.spec
# mv re2c.spec /usr/src/re2c
# cd /usr/src/redhat/RPMS/i386

*作成されたパッケージ
 re2c-0.13.5-1.C55.i386.rpm

# rm *debuginfo*
# mv *.rpm /usr/src/re2c

*インストール

# cd /usr/src/re2c
# rpm -Uvh re2c-0.13.5-1.C55.i386.rpm

○ソースの展開・インストール

*オプションの設定を間違えないようにスクリプトを作り、configureを実行します
*上書きインストールの場合、httpd.confに再度書き込まれるので修正します

# cd /usr/src
# tar jxvf php-5.3.3.tar.bz2
# chown -R root:root php-5.3.3
# cd php-5.3.3
# make distclean

*コンフィグシェルスクリプトの実行
*同じディレクトリで実行します
php5cfg.sh (詳細別記)

# source php5cfg.sh
# make
# make test
# make install

*ファイルをコピーします

# cp php.ini-production /etc/php.ini

*ディレクトリ・ログファイルの作成

# mkdir /etc/php.d
# touch /var/log/httpd/php_log
# chown apache:apache /var/log/httpd/php_log
# cd /usr/src
# tar jcvf php-5.3.3-100723.tar.bz2 php-5.3.3/



○configファイルの設定

○httpd.conf

/étc/httpd/conf/httpd.conf
/étc/httpd/conf/extra/httpd-mpm.conf
/étc/httpd/conf/extra/httpd-default.conf
/étc/httpd/conf/extra/httpd-info.conf
/étc/httpd/conf/extra/httpd-personal.conf

○php.ini

/étc/php.ini

○/home/wwwのユーザ・グループ・アクセス権を変更

# chown -R apache:apache /home/www
# find /home/www -type f | xargs chmod g-w,o-rwx
# find /home/www -type d | xargs chmod g-rw,o-rw

○httpd起動スクリプトの修正

/étc/rc.d/init.d/httpd (詳細別記)

○selinuxヘの対応 (selinuxが有効の場合)

*新規インストールファイルのselinuxラベルを修正

# restorecon -Rv /etc
# restorecon -Rv /usr/local
# restorecon -FRv /home/www
# restorecon -Rv /var

○自動起動登録をonにし、httpdを起動します

# chkconfig --add httpd

*startする前にhttpd.confのチェックしておきます

# service httpd configtest
# service httpd start

○iptablesの設定

Netfilter (iptables) で制御している場合、ポートを開けてください

Netfilter (iptables) の設定参照

*外へのポートは公開するときに開けます

○apacheの起動確認

*2ndマシンからサーバにアクセスします
 URL http://192.168.0.21:80

○phpの起動確認

*test.phpを作りドキュメントルートに置いて実行します

<?php phpinfo(); ?>

○ Copyright(c) 528p.com All Rights Reserved.