CentOS 7 に nginxと php実行環境、phpmyadminをインストールする手順です。
簡単そうで、結構あれこれはまったので、メモ。
nginxインストール
nginx用のrepoファイルを作成
[bash]
$ sudo nano /etc/yum.repos.d/nginx.repo
[/bash]
以下のリポジトリ情報を追記
[bash]
[nginx]
name=nginx repo
#baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=0
enabled=0
[/bash]
インストール
[bash]
$ sudo yum install nginx
[/bash]
nginxを起動し、サーバー起動時に自動開始するように設定
[bash]
$ sudo systemctl start nginx.service
$ sudo systemctl enable nginx.service
[/bash]
ファイアーウォール設定
動作確認の前にファイアーウォールがデフォでかかっているのでhttpを通すように変更する。
まず確認。
[bash]
$ sudo firewall-cmd –list-all
public (default, active)
interfaces: virbr0 wlp2s0
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
[/bash]
sshとdhcpしか有効じゃないので、httpを追加する。
その前にどんなサービスが定義されていて、今どれが publicで有効かチェックする方法。
[bash]
※定義されているサービス一覧
$ sudo firewall-cmd –get-services
※publicのサービス確認
$ sudo firewall-cmd –list-service –zone=public
[/bash]
nginxなので httpサービスを追加してみる
[bash]
※サービスを追加する
$ sudo firewall-cmd –add-service=http –zone=public
※恒久的にサービスを追加する
$ sudo firewall-cmd –add-service=http –zone=public –permanent
[/bash]
ファイアーウォール再起動
[bash]
$ sudo firewall-cmd –reload
[/bash]
httpが有効になっているか確認
[bash]
$ sudo firewall-cmd –list-all
public (default, active)
interfaces: virbr0 wlp2s0
sources:
services: dhcpv6-client http ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
[/bash]
動作確認
サーバーのIPにブラウザーで接続
http://192.168.x.x
nginxの welcomページが表示されれば成功。
php,php-mysqlをインストール
インストール
[bash]
$ sudo yum install php-fpm php-mbstring php-mysql
[/bash]
サービスの起動と、自動起動の設定
[bash]
$ sudo systemctl start php-fpm.service
$ sudo systemctl enable php-fpm.service
[/bash]
nginxの設定ファイルを変更し、PHPを有効にする。
[bash]
$ sudo nano /etc/nginx/conf.d/default.conf
[/bash]
以下の部分を追記
[bash]
location ~ \.php$ {
root /usr/share/nginx/html; <<<< ここ要注意
# fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; << document_rootを渡す
include fastcgi_params;
}
[/bash]
テストファイルを作り、phpの動作確認
[bash]
$ sudo nano /usr/share/nginx/html/test.php
[/bash]
[bash]
[/bash]
nginxを再起動し、動作確認
[bash]
$ sudo systemctl restart nginx.service
[/bash]
ブラウザーで以下のURLにアクセスし、
http://192.168.x.x/test.php
テストページが表示されれば成功です。
phpmyadminをインストール
phpmyadminのページより最新のphpmyadminをダウンロード。
解凍して、/usr/share フォルダへコピー
[bash]
unzip phpMyAdmin-4.2.7.1-all-languages.zip
mv phpMyAdmin-4.2.7.1-all-languages phpmyadmin
sudo mv phpmyadmin /usr/share
[/bash]
nginxの設定ファイル追記
[bash]
$ sudo nano /etc/nginx/conf.d/default.conf
[/bash]
[bash]
location /phpmyadmin {
root /usr/share;
index index.php;
location ~ ^/phpmyadmin.+\.php$ {
# fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
[/bash]
赤い文字で何やらエラーが
[bash]
Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.
[/bash]
php.iniの 以下の部分がダメということらしい
session.save_path = “/var/lib/php/session”
で、php.iniを覗いてみるとコメントアウトされているので、どれがデフォルト値かわからない。
デフォルトがわからなければ手書きすりゃいいので
[bash]
$ sudo nano /etc/php.ini
[/bash]
php.iniに追記する。
[diff]
session.save_path = “/var/lib/php/session”
[/diff]
指定したフォルダを作成し、フルアクセスにする。(フルアクセスはちとやばいかもだが、ご勘弁)
[bash]
$ sudo mkdir /var/lib/php/session
$ sudo chmod 777 /var/lib/php/session
[/bash]
動作確認
http://192.168.x.x/phpmyadmin
phpmyadminのログインページが表示されれば成功。
Leave a comment