WebサーバーでPHPを動かす

PHPをサーバーにインストールしてみよう。動作確認までの手順を紹介します【連載コラム:Linuxを学ぼう(23)】

最終更新日:2023年11月10日

今回は、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サーバーをインストールする

第18回:典型的なネットワークトラブルについて理解する

ページトップへ