WebサーバーでPHPを動かす
PHPをサーバーにインストールしてみよう。動作確認までの手順を紹介します【連載コラム:Linuxを学ぼう(23)】
今回は、PHPをインストールして動かしてみます。PHPはWebサーバー上で動作するプログラミング言語として幅広く利用されています。
phpパッケージのインストール
すでにWebサーバーは動作しているので、追加でPHPをインストールします。dnfコマンドでphpパッケージをインストールします。
# dnf install php
Last metadata expiration check: 0:55:21 ago on Tue Oct 24 10:19:16 2023.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
php aarch64 8.0.30-1.el9_2 appstream 7.7 k
Installing dependencies:
libxslt aarch64 1.1.34-9.el9 appstream 237 k
nginx-filesystem noarch 1:1.20.1-14.el9_2.1.alma.1 appstream 8.4 k
oniguruma aarch64 6.9.6-1.el9.5 appstream 213 k
php-common aarch64 8.0.30-1.el9_2 appstream 655 k
Installing weak dependencies:
php-cli aarch64 8.0.30-1.el9_2 appstream 1.9 M
php-fpm aarch64 8.0.30-1.el9_2 appstream 1.5 M
php-mbstring aarch64 8.0.30-1.el9_2 appstream 463 k
php-opcache aarch64 8.0.30-1.el9_2 appstream 228 k
php-pdo aarch64 8.0.30-1.el9_2 appstream 77 k
php-xml aarch64 8.0.30-1.el9_2 appstream 126 k
Transaction Summary
================================================================================
Install 11 Packages
Total download size: 5.4 M
Installed size: 26 M
Is this ok [y/N]: y
Downloading Packages:
(1/11): nginx-filesystem-1.20.1-14.el9_2.1.alma 105 kB/s | 8.4 kB 00:00
(中略)
Complete!
PHPのバージョン
PHPの利用の際に検討すべき点がバージョンです。上記手順ではPHP 8.0がインストールされていますが、場合によっては異なるバージョンのPHPをインストールしたい場合があります。ディストリビューション標準では用意されていないバージョンの場合、別途リポジトリを指定したり、パッケージをダウンロードしてきてインストールする必要があります。インストール方法はネット検索で調べれば出てくることがほとんどなので、必要に応じて参照してみてください。
Webサーバーの再起動
PHPを動かすには特別な設定は不要です。Webサーバーを再起動します。
# systemctl restart httpd
起動状態を確認します。
# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; preset: d>
Drop-In: /usr/lib/systemd/system/httpd.service.d
└─php-fpm.conf
Active: active (running) since Tue 2023-10-24 11:19:32 JST; 9s ago
(略)
Drop-Inの項目にphp-fpm.confというファイルがあります。こちらがPHPを利用するための設定ファイルです。php-fpmサービスが別途起動するようになっていますので、確認してみましょう。
# systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; preset:>
Active: active (running) since Tue 2023-10-24 11:19:31 JST; 1min 58s ago
Main PID: 3775 (php-fpm)
Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req>
Tasks: 6 (limit: 10696)
Memory: 11.4M
CPU: 74ms
CGroup: /system.slice/php-fpm.service
├─3775 "php-fpm: master process (/etc/php-fpm.conf)"
├─3776 "php-fpm: pool www"
├─3777 "php-fpm: pool www"
├─3778 "php-fpm: pool www"
├─3779 "php-fpm: pool www"
└─3780 "php-fpm: pool www"
Oct 24 11:19:30 localhost.localdomain systemd[1]: Starting The PHP FastCGI Proc>
Oct 24 11:19:31 localhost.localdomain systemd[1]: Started The PHP FastCGI Proce>
PHPはFastCGIという、Webサーバーとは別のプロセスとして動作しているのが分かります。fpmは「FastCGI Process Manager」の略称です。PHPは他にApache Webサーバーのモジュールとして組み込んで動作させる方法もあります。
PHPの動作テスト
PHPが動作しているのを確認するために、簡単なPHPのコンテンツを配置してみましょう。通常のHTMLファイルなどと同様に、拡張子.phpのファイルをWebサーバー経由でアクセス可能な場所に作成します。以下では、/var/www/htmlディレクトリにphpinfo.phpファイルを作成しています。
# echo '<?php phpinfo(); ?>' > /var/www/html/phpinfo.php
# cat /var/www/html/phpinfo.php
<?php phpinfo(); ?>
WebブラウザでWebサーバーに置いたphpinfo.phpにアクセスします。PHPのバージョンなどの表示が出たらPHPが動作していることが確認できます。
PHPはよくWebサーバーで組み合わせて利用されますが、その他の言語についてもインストール方法を確認し、試してみるとよいでしょう。
- 筆者紹介
宮原 徹 氏
Linux標準教科書、Linuxサーバー構築標準教科書などの監修者。LinuCレベル1/レベル2 Version10.0の改訂作業にも協力。また、幅広いOSSに関する情報提供の場として「オープンソースカンファレンス(OSC)」の企画運営も。
バックナンバー
第22回:WEBサーバーにコンテンツを配置する
第21回:外部からWebサーバーにアクセスする
第20回:Webサーバーを動かす
第19回:Webサーバーをインストールする