CentOS7とNGINXの環境にPHPをインストールします。

タイトルの通りの環境がOracleCloudに仮想マシンとして構築してあります。
今後cmsを開設するにあたりPHPの環境を設定します。
REMIレポジトリを使用します。
REMIリポジトリとは、Linux用の拡張パッケージリポジトリです。

REMIリポジトリの追加
公式サイトからEnterprise Linux 7-リポジトリ自動構成パッケージ: remi-release-7.rpmを選択しました。 remi-release-8.rpmはエラーが出て追加されませんでした。
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm


追加されたリポジトリ関連のファイルは/etc/yum.repos.d/にあることが確認できます。
cd /etc/yum.repos.d/
ls


導入すべきPHPの確認。最新の74とします。

yum info php --enablerepo=remi-php74

PHPのバージョンは7.4.2と確認ができました。

yum install --enablerepo=remi,remi-php74 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql


–enablerepo オプションでremiリポジトリを指定、必要になるであろうphpの拡張パッケージもインストールします。
cmsにてエラーが出たとき、あとで追加もできます。

PHP -v
バージョン確認


PHP-FPMをインストールします。

yum install --enablerepo=remi,remi-php74 php-fpm

webサーバーがNGINXなので/etc/php-fpm.d/にあるwww.confを修正する必要があります。
vi /etc/php-fpm.d/www.conf
多少長いが修正箇所は上のほうにあると思います。
userとgroupがapacheになっているのでnginxに変更ます。


NGINXでPHPが動作するよう設定する。
vi /etc/nginx/conf.d/default.conf
index.phpを追加します。


location ~ .php$ {
・・・・・・・・
}
まで最初は#がついてコメント扱いとなっているので全部消す。
色々ググって調べてみたらphp-fpmの設定を有効化させるためにするべきであることがわかった。
画像は#を赤字で囲い過ぎました。proxyの所はそのままでOKです。


OS起動時にphp-fpmも自動起動するように設定します。
chkconfig php-fpm on


NGINXを再起動
systemctl restart nginx
php-fpmを起動
systemctl start php-fpm

デフォルトでは公開ディレクトリが/usr/share/nginx/html/になっているのでここにindex.phpを作成します。中身はこんなふうです。
<?php
phpinfo();
?>


ブラウザにてhttp://ipアドレス/index.php
phpの情報がでれば成功。

File not found.となる場合。
最初は私もこうなったので調べてみました。
vi /var/log/nginx/error.log
エラーログを見てみたら次の内容があった。

*1 FastCGI sent in stderr: “Primary script unknown” while reading response header from upstream, client: ?.?.?.?, server: localhost, request: “GET /index.php HTTP/1.1”, upstream: “fastcgi://127.0.0.1:9000”, host: “*.*.*.*”

vi /etc/nginx/conf.d/default.conf
html→/usr/share/nginx/html ドキュメントルートに変更
/scripts→$document_root に変更


再起動
systemctl restart nginx
再起動し忘れると設定を変更しても反映されません。

コメント

タイトルとURLをコピーしました