PHPバージョン7.0に同梱されているDebian9は、まもなくサポートの終了に達し、セキュリティアップデートを受信しなくなります。
このチュートリアルでは、Debian9サーバーにPHP7.2をインストールする手順を説明します。また、PHPを実行するようにApacheとNginxを構成する方法も示します。
前提条件#
このチュートリアルを開始する前に、sudo権限を持つユーザーとしてログインしていることを確認してください。
Debian9へのPHP7.2のインストール#
次の手順では、OndrejSuryリポジトリを使用してPHP7.2をインストールする方法について説明します。
-
まず、
apt
を更新します パッケージリストを作成し、HTTPS経由で新しいリポジトリを追加するために必要な依存関係をインストールします:sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
-
次のcurlコマンドを使用して、リポジトリのGPGキーをインポートすることから始めます。
curl -fsSL https://packages.sury.org/php/apt.gpg | sudo apt-key add -
次のように入力して、ondrejのリポジトリをシステムのソフトウェアリポジトリリストに追加します。
sudo add-apt-repository "deb https://packages.sury.org/php/ $(lsb_release -cs) main"
-
システムでondrejのリポジトリが有効になっているので、使用するバージョンを指定してPHPをインストールできます。
sudo apt update
sudo apt install php7.2-common php7.2-cli
-
PHPバージョンを出力する次のコマンドを実行して、インストールを確認します。
php -v
PHP 7.2.8-1+0~20180725124257.2+stretch~1.gbp571e56 (cli) (built: Jul 25 2018 12:43:00) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.8-1+0~20180725124257.2+stretch~1.gbp571e56, Copyright (c) 1999-2018, by Zend Technologies
PHPを実行するためのApacheの設定#
WebサーバーとしてApacheを使用してPHPとApachePHPモジュールをインストールしている場合は、次のコマンドを実行します。
sudo apt install php7.2 libapache2-mod-php
パッケージをインストールしてphp7.2モジュールを有効にしたら、Apacheサービスを再起動するだけです。
sudo systemctl restart apache2
PHPを実行するためのNginxの構成#
Apacheとは異なり、NginxにはPHPファイルの処理のサポートが組み込まれていないため、PHPファイルを処理するPHP FPM(「fastCGIプロセスマネージャー」)などの別のアプリケーションをインストールする必要があります。
PHPおよびPHPFPMパッケージをインストールするには、次のコマンドを実行します。
sudo apt install php7.2-fpm
パッケージがインストールされると、PHPFPMサービスが自動的に開始されます。サービスステータスは次の方法で確認できます:
systemctl status php7.2-fpm
● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-08-30 21:06:53 UTC; 1min 4s ago
Docs: man:php-fpm7.2(8)
Main PID: 16791 (php-fpm7.2)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
CGroup: /system.slice/php7.2-fpm.service
├─16791 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
├─16792 php-fpm: pool www
└─16793 php-fpm: pool www
これで、ドメインNginxサーバーブロックを編集し、次の行を追加して、NginxがPHPファイルを処理できるようになります。
server {
# . . . other code
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
}
新しい構成が有効になるNginxサービスを再起動します:
sudo systemctl restart nginx
PHP拡張機能のインストール#
追加の拡張機能をインストールすることで、PHPのコア機能を拡張できます。 PHP拡張機能はパッケージとして利用可能であり、次のコマンドで簡単にインストールできます。
sudo apt install php-[extname]
たとえば、MySQLおよびGD PHP拡張機能をインストールする場合は、次のコマンドを実行する必要があります。
sudo apt install php7.2-mysql php7.2-gd
新しいPHP拡張機能をインストールした後、セットアップに応じて、ApacheまたはPHPFPMサービスを再起動することを忘れないでください。
PHP処理のテスト#
WebサーバーがPHP処理用に適切に構成されているかどうかをテストするには、/var/www/html
内にinfo.phpという名前の新しいファイルを作成します。 次のコードのディレクトリ:
<?php
phpinfo();
ファイルを保存し、選択したブラウザを開いて、http://your_server_ip/info.php
にアクセスします。
phpinfo
関数は、以下の画像に示すように、PHP構成に関する情報を出力します。