![]() |
LINUX |
httpd/phpのインストール
・WEBサーバを構築します
・httpd-2.2.20をソースからインストールし、設定します
・php-5.3.8をソースからインストールし、設定します
・charsetはhttpd、php共にUTF-8で運営します
・suexecオプションを有効にしています
・運営・管理は各自の考えを元にお願いします
・make はメンテナンスマシンで行っています
・PHP 5.2.x から PHP 5.3.x への移行を参照してください
・新規インストールした openssl を使います
・ソースの取得、削除は省略します
・エディタ、ファイラーの操作は省略します
・ソースを展開したら説明文を読みましょう
・Enterキーを省略します
・ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
・設定ファイルで "#" で始まる行はコメントとして解釈されます
関連サイト| :httpd-2.2.20.tar.bz2 | (http://httpd.apache.org/) |
| :php-5.3.8.tar.bz2 | (http://www.php.net/) |
| :re2c-0.13.5-1.src.rpm | (http://sourceforge.net/projects/re2c/) |
参照ファイル:パッケージの追加
:最初の設定 (Xen)
:opensslのインストール
インストール環境| :OS | CentOS 5.6 |
| :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.20
httpdユーザ (apache) を登録します・uid/gid情報を参照
・/home/wwwディレクトリを作ります
[root@jupiter:~]
# 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関連ファイルがコンパイルされない場合があります
・既存のコンフィグファイルは上書きされない場合があります
・完全コンパイルする場合は、バックアップして再構築します
・必要なファイルをバックアップからコピーします
[root@jupiter:~] # service httpd stop # mv /etc/httpd /etc/httpd2218 # mv /usr/local/apache2 /usr/local/apache2218 # cd /usr/src [root@jupiter:/usr/src] # tar jxvf httpd-2.2.20.tar.bz2 # chown -R root:root httpd-2.2.20 # cd httpd-2.2.20 [root@jupiter:/usr/src/httpd-2.2.20]
・config.layoutを一部修正します (下記)
# vi 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 [root@jupiter:/usr/src] # tar jcvf httpd-2.2.20-110901.tar.bz2 httpd-2.2.20/
: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の設定を基準にするようなのでシンボリックリンクをつくります
・httpd.confでは、RewriteLog "logs/rewrite_log" のように設定します
# cd /usr/local/apache2
[root@jupiter:/usr/local/apache2]
# ln -s /var/log/httpd logs
php-5.3.8
re2cのインストール・phpのconfigureで警告がでるので念の為入れておく
# cd /usr/src [root@jupiter:/usr/src] # mkdir re2c # rpm -ivh re2c-0.13.5-1.src.rpm # cd redhat/SPECS [root@jupiter:/usr/src/redhat/SPECS]
# vi re2c.spec
・specファイルの修正
release: 1.C56
# rpmbuild -bb --clean --rmsource re2c.spec
# mv re2c.spec /usr/src/re2c
# cd /usr/src/redhat/RPMS/i386
[root@jupiter:/usr/src/redhat/RPMS/i386]
・作成されたパッケージ
re2c-0.13.5-1.C56.i386.rpm
# rm *debuginfo* # mv *.rpm /usr/src/re2c
・インストール
# cd /usr/src/re2c
[root@jupiter:/usr/src/re2c]
# rpm -Uvh re2c-0.13.5-1.C56.i386.rpm
ソースの展開・インストール・オプションの設定を間違えないようにスクリプトを作り、configureを実行します
・上書きインストールの場合、httpd.confに再度書き込まれるので修正します
# cd /usr/src [root@jupiter:/usr/src] # tar jxvf php-5.3.8.tar.bz2 # chown -R root:root php-5.3.8 # cd php-5.3.8 [root@jupiter:/usr/src/php-5.3.8] # 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 [root@jupiter:/usr/src] # tar jcvf php-5.3.8-110901.tar.bz2 php-5.3.8/
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
/home/wwwのユーザ・グループ・アクセス権を変更
# cd ~
[root@jupiter:~]
# 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ラベルを修正
[root@jupiter:~]
# restorecon -Rv /etc
# restorecon -Rv /usr/local
# restorecon -FRv /home/www
# restorecon -Rv /var
自動起動登録をonにし、httpdを起動します
[root@jupiter:~]
# chkconfig --add httpd
・startする前にhttpd.confのチェックしておきます
# service httpd configtest # service httpd start
iptablesの設定Netfilter (iptables) で制御している場合、ポートを開けてください
・外へのポートは公開するときに開けます
apacheの起動確認・2ndマシンからサーバにアクセスします
URL http://192.168.0.21:80
phpの起動確認・test.phpを作りドキュメントルートに置いて実行します
<?php phpinfo(); ?>
![]() |
Copyright(c) 528p.com All Rights Reserved. |

