今回やろうとしていることが、
CentOS7 + PHP7 + nginx + MariaDB + Drupal8
の環境構築です。
CentOS7はいつものVirtualBox + Vagrantでスムーズに成功。
PHP7もネットからの情報はどの情報でもほぼ一緒だったのでスムーズに成功。
ところが、nginxのインストールとPHPとの連携でパパッとは行かなかったのでここでおまとめします。
※yumのリポジトリはepelとremiを追加してある状態です。
http://qiita.com/inakadegaebal/items/b57cf10339978d638305
##nginxのインストール
ネットの他の情報ではepelリポジトリを明示的に指定するのが多数でしたが、普通に以下でも行けました。
# yum install nginx
###nginx.confの場所
vi /etc/nginx/nginx.conf
##PHPとnginxとの連携
いよいよPHPとnginxとの連携になります。
Apacheとそんな変わらないだろうと思い、いざやろうとしたら、php-fpmのインストールが必要でした。
PHPとWebServerの連携を
Apacheの場合、モジュール版かCGI版どちらかの連携方法ができ
nginxの場合、CGI版でしか方法がなかった(あるいはメジャー)のです。
違いについては以下の記事がわかりやすいと思います。
http://qiita.com/kotarella1110/items/634f6fafeb33ae0f51dc
##php-fpmのインストール
# yum install --enablerepo=remi,remi-php70 php-fpm
###www.confの場所
vi /etc/php-fpm.d/www.conf
##PHPとnginxとの連携。その2
正確にはnginxとphp-fpmとの通信になります。その通信方法でメジャーな方法TCPかUNIXドメインソケットのどちらかですが、
ここではもっと早いと言われているUNIXドメインソケットのやり方で進めます。
###php-fpmの設定
user = nginx
group = nginx
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
nginxからphp-fpmを実行する際は「nginx」ユーザーになるので、実行ユーザーをnginxにします。
listenに指定したファイルはphp-fpmの起動時に生成されます。
# systemctl start php-fpm
# systemctl enable php-fpm
スタートとOS再起動時にも備えて登録しておきます。
###nginxの設定
server {
location ~ .php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
}
serverという部分の中に上記を追加してくだだい。
# systemctl start nginx
# systemctl enable nginx
スタートとOS再起動時にも備えて登録しておきます。
##phpファイル作成
nginxのDefaultDocumentRootは「/usr/share/nginx/html」になっています。
修正する場合は「/etc/nginx/nginx.conf」を中身を適宜修正しましょう。
<?php phpinfo(); ?>