
PHPは、最も使用されているサーバー側プログラミング言語の1つです。 WordPress、Magento、Laravelなどの多くの人気のあるCMSとフレームワークはPHPで構築されています。
このガイドでは、CentOS8にPHP7.2、7.3、または7.4をインストールする方法について説明します。インストールするPHPのバージョンを選択する前に、アプリケーションがそれをサポートしていることを確認してください。
PHPをNginxおよびApacheと統合する方法も示します。
CentOS 8へのPHPのインストール#
CentOS8はPHP7.2で配布されています。このバージョンは、最新のPHPアプリケーションのほとんどをサポートしていますが、2019年11月以降、アクティブに維持されなくなります。新しいPHPバージョンは、Remiリポジトリから入手できます。
Remiリポジトリを有効にする#
distro安定PHPバージョン7.2をインストールする場合は、この手順をスキップしてください。それ以外の場合、PHP 7.3または7.4をインストールする場合は、rootまたはsudo権限を持つユーザーとして次のコマンドを実行してRemiリポジトリを有効にします。
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
上記のコマンドは、EPELリポジトリも有効にします。
インストールが完了したら、以下のコマンドを実行して、使用可能なすべてのPHPバージョンのリストを取得します。
sudo dnf module list php
出力には、関連するストリーム、バージョン、インストールプロファイルなど、使用可能なすべてのモジュールのリストが表示されます。
Last metadata expiration check: 0:02:11 ago on Fri 18 Oct 2019 08:31:43 PM UTC.
CentOS-8 - AppStream
Name Stream Profiles Summary
php 7.2 [d][e] common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
デフォルトのPHPモジュールはPHP7.2に設定されています。新しいPHPリリースをインストールするには、適切なバージョンを有効にします。
PHP 7.3
sudo dnf module reset php
sudo dnf module enable php:remi-7.3
PHP 7.4
sudo dnf module reset php
sudo dnf module enable php:remi-7.4
これで、CentOSサーバーにPHPをインストールする準備が整いました。
PHPのインストール#
次のコマンドは、PHPと最も一般的なPHPモジュールのいくつかをインストールします。
sudo dnf install php php-opcache php-gd php-curl php-mysqlnd
FPMは依存関係としてインストールされ、FastCGIサーバーとして使用されます。 FPMサービスを開始し、起動時に自動的に開始できるようにします:
sudo systemctl enable --now php-fpm
Apacheで動作するようにPHPを設定する#
SELinuxがシステムで実行されている場合は、SELinuxセキュリティコンテキストを更新する必要があります:
sudo chcon -Rt httpd_sys_rw_content_t /var/www
WebサーバーとしてApacheを使用している場合は、httpd
を再起動します 次のコマンドを使用してサービスを提供します。これで準備完了です。
sudo systemctl restart httpd
Nginxで動作するようにPHPを構成する#
デフォルトでは、PHPFPMはユーザーapache
として実行されます 。権限の問題を回避するために、ユーザーをnginx
に変更します 。これを行うには、黄色で強調表示されている行を編集します:
sudo nano /etc/php-fpm.d/www.conf
/etc/php-fpm.d/www.conf ...
user = nginx
...
group = nginx
/var/lib/php
を確認してください ディレクトリには正しい所有権があります:
chown -R root:nginx /var/lib/php
完了したら、PHPFPMサービスを再起動します。
sudo systemctl restart php-fpm
次に、Nginx仮想ホストディレクティブを編集し、次のロケーションブロックを追加して、NginxがPHPファイルを処理できるようにします。
server {
# . . . other code
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
新しい構成を有効にするには、Nginxサービスを再起動します。
sudo systemctl restart nginx
SELinuxセキュリティコンテキストを更新します:
sudo chcon -Rt httpd_sys_rw_content_t /var/www