GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu16.04でApacheでPHP-FPMを使用する

このチュートリアルでは、PHP 7(PHP-FPMを介して)とMySQLをサポートするUbuntu16.04サーバーにApacheWebサーバーをインストールする方法を示します。 PHP-FPM(FastCGI Process Manager)は、あらゆるサイズのサイト、特に忙しいサイトに役立ついくつかの追加機能を備えた、代替のPHPFastCGI実装です。

1予備メモ

このチュートリアルでは、ホスト名server1.example.comとIPアドレス192.168.1.100を使用します。これらの設定はユーザーによって異なる場合があるため、必要に応じて置き換える必要があります。

このチュートリアルのすべてのステップをroot権限で実行しているので、rootとしてログインしていることを確認してください:

sudo su

2MySQLまたはMariaDBのインストール

UbuntuはMySQLとMariaDBパッケージを提供します。 MariaDBは、元のMySQL開発者であるMontyWideniusによって提供されたMySQLフォークです。 2.1章または2.2章に従って、データベースサーバーをインストールします。

2.1MySQL5.7のインストール

まず、MySQL5.7を次のようにインストールします。

apt-get -y install mysql-server mysql-client

MySQLルートユーザーのパスワードを入力するように求められます。このパスワードは[メール保護]ユーザーと[メール保護]ユーザーに有効であるため、後でMySQLルートパスワードを手動で指定する必要はありません。

MySQLの「root」ユーザーの新しいパスワード:<-yourrootsqlpassword
MySQLの「root」ユーザーのパスワードを繰り返します:<-yourrootsqlpassword

mysql_secure_installationを実行します MySQLデータベースを保護し、テストデータベースへのアクセスを無効にします。

mysql_secure_installation

次の質問があります:

Enter current password for root (enter for none): <-- press enter
Set root password? [Y/n] <-- y
New password: <-- Enter the new MariaDB root password here
Re-enter new password: <-- Repeat the password
Remove anonymous users? [Y/n] <-- y
Disallow root login remotely? [Y/n] <-- y
Reload privilege tables now? [Y/n] <-- y

2.2MariaDBのインストール

次のコマンドを実行して、MariaDBサーバーとクライアントをインストールします。

apt-get -y install mariadb-server mariadb-client

次に、MariaDBのルートパスワードを設定します。

mysql_secure_installation

次の質問があります:

Enter current password for root (enter for none): <-- press enter
Set root password? [Y/n] <-- y
New password: <-- Enter the new MariaDB root password here
Re-enter new password: <-- Repeat the password
Remove anonymous users? [Y/n] <-- y
Disallow root login remotely? [Y/n] <-- y
Reload privilege tables now? [Y/n] <-- y

3Apacheのインストール

Apache2.4はUbuntuパッケージとして利用できます。次のようにインストールできるapache2パッケージが必要です:

apt-get -y install apache2

次に、ブラウザをhttp://192.168.1.100に移動すると、Apacheプレースホルダーページが表示されます(機能します!):

ApacheのデフォルトのドキュメントルートはUbuntuでは/var/ www / htmlであり、設定ファイルは/etc/apache2/apache2.confです。追加の設定は、/ etc / apache2 / mods-enabled(Apacheモジュールの場合)、/ etc / apache2 / sites-enabled(仮想ホストの場合)、/ etc / apache2/confなどの/etc/apache2ディレクトリのサブディレクトリに保存されます。 .d。

4PHP7のインストール

PHP-FPMと次のようにインストールするApacheのmod_fastcgiモジュールを使用して、Apache2でPHP7を機能させることができます。

apt-get -y install libapache2-mod-fastcgi php7.0-fpm php7.0

PHP-FPMは、ソケット/var/run/php/php7.0-fpm.sockでFastCGIサーバーを実行するデーモンプロセス(systemdユニットphp7.0-fpm.serviceを使用)です。

次に、次のApacheモジュールを有効にします...

a2enmod actions fastcgi alias

...そしてApacheを再起動します:

systemctl restart apache2.service

5Apacheの構成

ApacheをPHP-FPMで動作させるには、次の構成が必要です。

        <IfModule mod_fastcgi.c>
                AddHandler php7-fcgi .php
                Action php7-fcgi /php7-fcgi
                Alias /php7-fcgi /usr/lib/cgi-bin/php7-fcgi
                FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi -socket /var/run/php/php7.0-fpm.sock -pass-header Authorization
        </IfModule>

たとえば、/ etc / apache2 / conf.d / php7.0-fpm.conf(このファイルは存在しないため、作成する必要があります)などのグローバルApache構成に配置できます(すべての仮想ホストで有効になります)。 、またはPHP-FPMを使用する必要がある各仮想ホストに配置できます。デフォルトの仮想ホストでPHP-FPMを使用したいので、その仮想ホスト構成ファイル/etc/apache2/sites-available/000-default.confを開きます。

nano /etc/apache2/sites-available/000-default.conf

...そして次のセクションをの間のどこかに置きます:

        <Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
<IfModule mod_fastcgi.c> SetHandler php7-fcgi .php Action php7-fcgi /php7-fcgi virtual Alias /php7-fcgi /usr/lib/cgi-bin/php7-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi -socket /var/run/php/php7.0-fpm.sock -pass-header Authorization </IfModule>

その後、Apacheを再起動します:

systemctl restart apache2.service

次に、ドキュメントルート/ var/wwwに次のPHPファイルを作成します。

nano /var/www/html/info.php
<?php
phpinfo();

次に、そのファイルをブラウザ(http://192.168.1.100/info.phpなど)で呼び出します。

ご覧のとおり、PHP 7は機能しており、サーバーAPI行に示されているように、FPM/FastCGIを介して機能しています。さらに下にスクロールすると、PHPですでに有効になっているすべてのモジュールが表示されます。 MySQLはそこにリストされていません。つまり、PHPではMySQLがまだサポートされていません。

注意: PHP 7 Apacheモジュール(mod_php)がインストールされている場合、これは発生する可能性があります。このチュートリアルで行ったように空のサーバーではなく、ISPのLAMPサーバーのセットアップから開始する場合は、以下に示すようにmod_phpを無効にする必要がある場合があります。

a2dismod php7.0

apacheを再起動します:

systemctl restart apache2.service

6PHP7でのMySQL/MariaDBサポートの取得

PHPでMySQLをサポートするには、php7.0-mysqlパッケージをインストールします。他のPHPモジュールをインストールすることをお勧めします。また、アプリケーションでそれらが必要になる場合もあります。次のような利用可能なPHPモジュールを検索できます:

apt-cache search php7.0

必要なものを選び、次のようにインストールします:

apt-get install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php7.0-imap php7.0-mcrypt php7.0-ps php7.0-pspell php7.0-recode php7.0-snmp php7.0-sqlite php7.0-tidy php7.0-xmlrpc php7.0-xsl

PHP-FPMをリロードします:

systemctl reload php7.0-fpm.service

次に、ブラウザにhttp://192.168.1.100/info.phpをリロードし、モジュールセクションまでスクロールダウンします。これで、MySQLiモジュールを含む多くの新しいモジュールが見つかるはずです:

7 phpMyAdmin

phpMyAdminは、MySQLデータベースを管理するためのWebインターフェイスです。インストールすることをお勧めします:

apt-get -y install phpmyadmin

次の質問が表示されます:

Web server to reconfigure automatically:<-- apache2 
Configure database for phpmyadmin with dbconfig-common? <-- Yes
MySQL application password for phpmyadmin: <-- Press enter

その後、http://192.168.1.100/phpmyadmin/

からphpMyAdminにアクセスできます。

8 PHP-FPMにTCP接続を使用させる(オプション)

注: この章では、PHP-FPMoverTCPの構成について説明します。これを構成例として示します。これが必要な場合は、セットアップが必要になる可能性があります。 fastcgiプロセスが2番目のサーバーで実行される場合、ただし一般的にはソケットを使用する方が高速です。したがって、この章はスキップすることをお勧めします。

デフォルトでは、PHP-FPMはソケット/var/run/php/php7.0-fpm.sockをリッスンしています。 PHP-FPMにTCP接続を使用させることも可能です。これを行うには、/ etc / php5 / fpm / pool.d / www.conf ...

を開きます。
nano /etc/php/7.0/fpm/pool.d/www.conf

...そしてリッスンラインを次のように見せます:

[...]
;listen = /var/run/php/php7.0-fpm.sock
listen = 127.0.0.1:9000
[...]

これにより、PHP-FPMはIP 127.0.0.1(localhost)のポート9000でリッスンします。システムで使用されていないポートを使用していることを確認してください。

次に、PHP-FPMをリロードします:

systemctl reload php7.0-fpm.service

次に、Apache構成とすべてのvhostを確認し、FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi -socket /var/run/php/php7.0-fpm.sock-pass-headerAuthorizationの行をFastCgiExternalServerに変更します。 / usr / lib / cgi-bin / php7-fcgi -host 127.0.0.1:9000 -pass-header Authorization、例:このように:

nano /etc/apache2/sites-available/000-default.conf
[...]
 <Directory /usr/lib/cgi-bin>
Require all granted
</Directory>

<IfModule mod_fastcgi.c>
AddHandler php7-fcgi .php
Action php7-fcgi /php7-fcgi virtual
Alias /php7-fcgi /usr/lib/cgi-bin/php7-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi -host 127.0.0.1:9000 -pass-header Authorization
</IfModule> [...]

最後にApacheをリロードします:

systemctl reload apache2.service

  • Apache:http://httpd.apache.org/
  • PHP:http://www.php.net/
  • PHP-FPM:http://php-fpm.org/
  • MySQL:http://www.mysql.com/
  • Ubuntu:http://www.ubuntu.com/
  • phpMyAdmin:http://www.phpmyadmin.net/

Ubuntu
  1. Ubuntuでrootアカウントを無効にしますか?

  2. Ubuntu 20.04 で Apache を使用して PHP-FPM をインストールする方法

  3. Ubuntu 22.04 で Apache を使用して PHP-FPM をインストールする方法

  1. UbuntuでSudoまたはRootパスワードを変更する方法

  2. Ubuntu/CentOSにApacheを使用してmod_pagespeedをインストールする

  3. Ubuntuのパスワードをリセットする方法は?

  1. Ubuntu20.04はrootパスワードをリセットします

  2. Ubuntu20.04WordPressとApacheのインストール

  3. Ubuntuサーバーのパスワードを忘れましたか?