もっと詳しく

Ubuntu22.04にApacheを使用してPHP-FPMをインストールする方法。 Webサーバーを使用してPHPを実行するには、2つの異なるオプションがあります。 1つはPHPのCGIを使用しており、もう1つはFPMです。

FPMは、PHPでFastCGIを管理するプロセスマネージャーです。 Apacheには付属しています mod_php デフォルトで、すべての主要なWebサーバーで動作します。 と mod_php プロセスがロックアウトされるため、パフォーマンスの問題が少しあります。

chroot環境のセットアップでサーバー上で複数のWebサイトをホストしている場合は、Webサイトを所有する別のユーザーとして実行するようにPHP-FPMプールを構成することもできます。

このガイドでは、PHP 8.1-FPMをセットアップし、Apacheで構成する方法と、複数のユーザー用にPHP8.1-FPMプールをセットアップする方法を学習します。

入門

次のコマンドを実行して、Ubuntuサーバーに最新のパッケージがインストールされていることを確認します。

sudo apt update
sudo apt upgrade

これにより、パッケージインデックスが更新され、インストールされているパッケージが最新バージョンに更新されます。

Apache用のPHP8.1をインストールします

次のコマンドを実行して、PHP8.1を他の必要なモジュールとともにインストールします。

sudo apt install php8.1 php8.1-fpm php8.1-common php8.1-mysql php8.1-xml php8.1-xmlrpc php8.1-curl php8.1-gd php8.1-imagick php8.1-cli php8.1-dev php8.1-imap php8.1-mbstring php8.1-soap php8.1-zip php8.1-bcmath -y

インストールが完了したら、次のコマンドを使用してインストールを確認します。

sudo service php8.1-fpm status

以下のような出力が表示されます。

Output
● php8.1-fpm.service - The PHP 8.1 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php8.1-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-05-16 08:50:31 UTC; 1 day 18h ago
       Docs: man:php-fpm8.1(8)
    Process: 110200 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.1/fpm/pool.d/www.conf 81 (code=exited, status=0/SUCC>
   Main PID: 110197 (php-fpm8.1)
     Status: "Processes active: 0, idle: 3, Requests: 57553, slow: 0, Traffic: 0.1req/sec"
      Tasks: 4 (limit: 2353)
     Memory: 484.3M
        CPU: 4h 42min 14.593s

Apacheをインストールします

PHP-FPMを起動して実行したら、ApacheWebサーバーをインストールできます。

sudo apt install apache2

PHP-FPMを使用してApacheを構成する

デフォルトでは、Apacheは mod_php これで、PHP-FPMを使用するようにApacheを設定できます。

デフォルトのApachevhost設定を無効にします。

sudo a2dissite 000-default

有効 proxy_fcgi モジュール。

sudo a2enmod proxy_fcgi

新しいApachevhost構成を作成します。

sudo nano /etc/apache2/sites-available/cloudbooklet.conf

以下の設定をファイルに貼り付けます。

<VirtualHost *:80>
     ServerName External_IP_Address
     DocumentRoot /var/www/html

     <Directory /var/www/html>
          Options Indexes FollowSymLinks
         AllowOverride All
         Require all granted
     </Directory>

     <FilesMatch ".php$"> 
         SetHandler "proxy:unix:/var/run/php/php8.1-fpm.sock|fcgi://localhost/"          
      </FilesMatch>
 
      ErrorLog ${APACHE_LOG_DIR}/error.log
      CustomLog ${APACHE_LOG_DIR}/access.log combined  
</VirtualHost> 

打つ CTRL + X に続く YEnter ファイルを保存して終了します。

これで、新しいApache構成を有効にできます。

sudo a2ensite cloudbooklet.conf

Apacheを再起動します。

sudo service apache2 restart

ApacheでPHP-FPMをテストする

ここで構成しました /var/www/html Apache構成のWebルートとして。 これで、そのディレクトリに移動して、 phpinfo 設定を確認するファイル。

cd /var/www/html
sudo nano info.php

以下を貼り付けます。

<?php phpinfo;

打つ CTRL + X に続く YEnter ファイルを保存して終了します。

次に、ブラウザに移動して、サーバーのIPアドレスまたはドメイン名に続けて info.php。 だからあなたの住所はこのようになります http://IP_Address/info.php

PHP情報ページが表示され、PHP-FPMがApacheで使用されていることが確認されます。

PHP-FPM構成

PHP INI: /etc/php/8.1/fpm/php.ini

プール構成: /etc/php/8.1/fpm/pool.d/www.conf

別のユーザーで新しいPHP-FPMプールを作成する

デフォルトでは、NginxとApacheは次のように実行されます www-data ユーザー。 PHP-FPM www.conf として実行するようにも構成されています www-data ユーザー。 複数のWebサイトがあり、chrootされたセットアップでそれらを分離したままにし、独自のユーザーで実行したい場合。 異なるユーザーで複数のPHP-FPMプールを作成できます。

新しいPHP-FPMプール構成を作成します。

sudo nano /etc/php/8.1/fpm/pool.d/user1.conf

以下を貼り付けます。

[user1]
user = user1
group = group1

listen = /run/php/php8.1-fpm-user1.sock

listen.owner = www-data
listen.group = www-data

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

次に、新しいApache vhost構成ファイルを作成し、作成した新しいプールにハンドラーを設定します。

sudo nano /etc/apache2/sites-available/site1.conf
<VirtualHost *:80>
     ServerName domain.com
     DocumentRoot /var/www/html/site1

     <Directory /var/www/html/site1>
          Options Indexes FollowSymLinks
         AllowOverride All
         Require all granted
     </Directory>

     <FilesMatch ".php$"> 
         SetHandler "proxy:unix:/var/run/php/php8.1-fpm-user1.sock|fcgi://localhost/"          
      </FilesMatch>
 
      ErrorLog ${APACHE_LOG_DIR}/error.log
      CustomLog ${APACHE_LOG_DIR}/access.log combined  
</VirtualHost> 

新しいサイトを有効にします。

sudo a2ensite site1.conf

新しいサイトのWebルートが、プール構成で指定されたユーザーによって、指定されたグループ内で所有されていることを確認してください。

サービスを再起動します

構成が完了したら、変更を有効にするためにPHP-FPMとApacheを再起動する必要があります。

sudo php-fpm8.1 -t
sudo service php8.1-fpm restart
sudo service apache2 restart

上記のPHP-FPMのセットアップを使用して、必要な数のプールを作成できます。 これらは、PHP-FPMで利用できる柔軟性です。

として働く役割のためにあなた自身を準備してください 情報技術の専門家 Linuxオペレーティングシステムを使用

結論

これで、Apacheを使用してPHP 8.1-FPMをインストールし、Ubuntu22.04でPHP-FPMを使用するようにApacheを構成する方法を学習しました。

また、複数のユーザー用にPHP-FPMプールを設定する方法も学びました。

The post Ubuntu22.04にApacheを使用してPHP-FPMをインストールする方法 appeared first on Gamingsym Japan.