##centosのバージョン
# cat /etc/redhat-release
CentOS release 6.5 (Final)
##nginxのインストール
公式ページ:公式ページ
###nginxのためのレポジトリの登録
# rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm を取得中
警告: /var/tmp/rpm-tmp.96TgxU: ヘッダ V4 RSA/SHA1 Signature, key ID 7bd9bf62: NOKEY
準備中... ########################################### [100%]
1:nginx-release-centos ########################################### [100%]
/etc/yum.repos.d
にnginx.repoができていることを確認する。
###インストール
# yum install nginx
# nginx -v
nginx version: nginx/1.6.0
nginxでbasic認証を設定する
■参考
http://heartbeats.jp/hbblog/2012/02/nginx03.html
htpasswd -cm .htpasswd username
##nginx.confの設定
基本的な設定は/etc/nginx/nginx.cong
に記載する。
今回のサーバ設定は/etc/nginx/conf.d
に個別におく。
デフォルトでドキュメントルートなどは設定してあるので、
ポートのみ変更してアクセスしてみる。
/usr/share/nginx/html配下のindex.html(nginxのwelcomeページ)
が表示されればOK。
つぎー。
##php、 php-fpm, mysqlのインストール
これだけインストール済みだった
#yum list installed | grep php
php-cli.x86_64 5.3.3-27.el6_5 @updates
php-common.x86_64 5.3.3-27.el6_5 @updates
php-domxml-php4-php5.noarch
php-jsonlint.noarch 1.1.2-1.el6 @epel
php-mcrypt.x86_64 5.3.3-3.el6 @epel
php-pdo.x86_64 5.3.3-27.el6_5 @updates
php-pear.noarch 1:1.9.4-4.el6 @base
php-xml.x86_64 5.3.3-27.el6_5 @updates
念のため一旦全部削除
yum remove 'php-*'
消えた。怖い。
##remi リポジトリ追加
rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
vim /etc/yum.repos.d/remi.repo
remiの設定を新規で追加する
/etc/yum.repos.d/remi.repo
[remi]
name=Les RPM de remi pour Enterprise Linux 5 - $basearch
baseurl=http://rpms.famillecollet.com/el5.$basearch/
http://iut-info.univ-reims.fr/remirpms/el5.$basearch/
enabled=0
priority=1
##インストールする(いつかソースからしてみたい)
yum --enablerepo=remi install mysql mysql-server php php-fpm php-devel php-cli php-xml php-mysql php-mbstring php-gd
続いてphp-fpmの設定
##php-fpmの設定
/etc/php-fpm.d/www.confが設定ファイルになっている。
###起動ユーザをnginxにする
user = nginx
group = nginx
###待ち受けポートを変更
listen = 127.0.0.1:9050
###netstat -taponで確認
tcp 0 0 127.0.0.1:9050 0.0.0.0:* LISTEN 1402/php-fpm off (0.00/0/0)
おお、いけてる。
ドキュメントルート配下にindex.phpを置いて
<?php
phpinfo();
http://XXXX/index.phpにアクセスしてみる。
エラー。
nginxのコンフィグを確認する。
pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
というコメント配下のコメントアウトを外してみる。
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9050;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
エラ-。なぜに。
ログを見る。
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream
参考URL:http://tonby.sakura.ne.jp/?p=953
参考URL:http://nginx.org/ja/docs/http/request_processing.html
rootとfastcgi_paramの設定が悪かったみたい。
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
となっていたが、
/scriptsフォルダなんてないw
ドキュメントルート配下の.phpをみてほしいので、
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
に変更。再度アクセス。エラー。なんでじゃい。
今度はドキュメントルートの設定が悪いみたい。
location / {}
にてrootを設定していたので、
location ~ \.php$ {}
にて、$document_rootを参照できると思っていたが違った。
試しにログに$document_root
を吐くようにしてみたら、/etc/nginx/html
と吐かれていた。
これは意図しないドキュメントルート。
各ロケーションで参照するための$document_rootはserver{}直下でする必要があるみたい。
よって、以下のように変更。
server {
root /usr/share/nginx/html;
location ~ \.php$ {
#root $document_root;
fastcgi_pass 127.0.0.1:9050;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
}
やっとphpInfoがみれたw
今日はここまで。次は、mysqlを設定をしてみる。