PHPは、Web開発を対象とした汎用スクリプト言語です。これは、Webで人気のあるプログラミング言語の1つです。 WordPressなどの人気のあるツールはphpを使用してコーディングされています。 Facebookのような大企業もphpを多用しています。
Nginxは、リバースプロキシ、ロードバランサー、メールプロキシ、HTTPキャッシュとしても使用できるWebサーバーです。これは、最大のパフォーマンスと安定性を実現するように設計されたWebサーバーとして始まりました。 Nginxは、リソースの使用率が軽量で、最小限のハードウェアで簡単に拡張できるため、リリース以来人気が高まっています。 Nginxは静的コンテンツをすばやく提供することに優れており、動的リクエストをそれらの目的により適した他のソフトウェアに渡すように設計されています。
関連コンテンツ
- OpenSUSE Leap 15.3にPHPとNginx(LEMP)をインストールしてセットアップする方法
- Rocky Linux /Centos8にApachePHP7.4(LAMP)スタックをインストールする方法
- Ubuntu 20.04にPHPとApache(LAMPスタック)をインストールしてセットアップする方法
- Ubuntu 20.04にPHPとNginx(LEMP)をインストールしてセットアップする方法
- Debian 11にPHPとApache(LAMPスタック)をインストールしてセットアップする方法
- Debian 11にPHPとNginx(LEMP)をインストールしてセットアップする方法
目次
- サーバーが最新であることを確認する
- Rocky Linux / AlmaLinux8へのPHPのインストール
- Rocky Linux / AlmaLinux8へのNginxのインストール
- Rocky Linux / AlmaLinux8へのphp-fpmのインストール
- 単純なサイトの作成と仮想ホストの構成
- 構成のテスト
1。サーバーが最新であることを確認する
先に進む前に、サーバーが最新であることを確認することをお勧めします。これを実現するには、これらのコマンドを使用してください
sudo df update -y
2。 Rocky Linux / AlmaLinux8へのPHPのインストール
phpファイルを提供するには、システムにphpを設定する必要があります。このガイドでは、php7.4をインストールします。
PHP 7.4は、デフォルトのリポジトリではまだ利用できません。レミリポジトリは、php7.4をインストールするのに最適なリポジトリです。 Remiリポジトリは、主にPHPスタック用の無料で安定したYUMリポジトリです。 PHPの最新バージョンのパッケージが含まれています。
CentosサーバーでRemiリポジトリを有効にするには:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
次のコマンドで、remiリポジトリがインストールされ、有効になっていることを確認します。
$ sudo dnf repolist
repo id repo name
appstream CentOS Linux 8 - AppStream
baseos CentOS Linux 8 - BaseOS
epel Extra Packages for Enterprise Linux 8 - x86_64
epel-modular Extra Packages for Enterprise Linux Modular 8 - x86_64
extras CentOS Linux 8 - Extras
remi-modular Remi's Modular repository for Enterprise Linux 8 - x86_64
remi-safe Safe Remi's RPM repository for Enterprise Linux 8 - x86_64
リストの一部としてレミリポジトリが表示されます。
リポジトリがインストールされたので、phpを検索してみましょう。次のコマンドを使用します:
$ sudo dnf module list php
Last metadata expiration check: 0:49:30 ago on Wed 22 Dec 2021 04:23:13 AM UTC.
Rocky Linux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
php remi-8.1 common [d], devel, minimal PHP scripting language
リストから。デフォルトは7.2であることがわかります。 dnf install php
を実行する 7.2
をインストールします 欲しくない。次のコマンドを使用して7.4を有効にしましょう:
sudo dnf module enable php:remi-7.4
何らかの理由で失敗した場合は、次のコマンドを使用して既存のモジュールをリセットできます。
sudo dnf module reset php
リポジトリが有効になったので、次のコマンドでphpをインストールしましょう:
sudo dnf install -y php \
php-common \
php-cli
成功したら。次のコマンドでインストールされたバージョンを確認します:
$ php -v
PHP 7.4.27 (cli) (built: Dec 14 2021 17:17:06) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.27, Copyright (c), by Zend Technologies
3。 RockyLinuxへのNginxのインストール
PHPコンテンツを提供するためにNginxを使用します。 Nginxは、安定した高性能Webサーバーであり、リソースの消費量が非常に少ないため、PHP-FPMに最適です。 Nginxには、イベントに基づいてはるかにスケーラブルな非同期アーキテクチャがあります。
Nginxは、デフォルトのRocky Linux /AlmaLinuリポジトリで利用できます。次のコマンドを使用してインストールします:
sudo dnf install -y nginx
インストールされているnginxを確認します
$ rpm -qi nginx
Name : nginx
Epoch : 1
Version : 1.14.1
Release : 9.module+el8.4.0+542+81547229
Architecture: x86_64
Install Date: Wed 22 Dec 2021 05:16:08 AM UTC
Group : System Environment/Daemons
Size : 1669719
License : BSD
Signature : RSA/SHA256, Thu 10 Jun 2021 09:22:38 AM UTC, Key ID 15af5dac6d745a60
Source RPM : nginx-1.14.1-9.module+el8.4.0+542+81547229.src.rpm
Build Date : Thu 10 Jun 2021 09:10:40 AM UTC
Build Host : ord1-prod-x86build005.svc.aws.rockylinux.org
Relocations : (not relocatable)
Packager : [email protected]
Vendor : Rocky
URL : http://nginx.org/
Summary : A high performance web server and reverse proxy server
Description :
Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and
IMAP protocols, with a strong focus on high concurrency, performance and low
デフォルトでは、サービスは開始されません。 Nginxを起動するには、次のコマンドを使用します:
sudo systemctl start nginx
次のコマンドを使用してステータスを確認します:
$ sudo systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/nginx.service.d
└─php-fpm.conf
Active: active (running) since Wed 2021-12-22 05:17:32 UTC; 45s ago
Process: 118235 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 118228 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 118226 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 118237 (nginx)
Tasks: 3 (limit: 23167)
Memory: 5.0M
CGroup: /system.slice/nginx.service
├─118237 nginx: master process /usr/sbin/nginx
├─118238 nginx: worker process
└─118239 nginx: worker process
Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Starting The nginx HTTP and reverse proxy server...
Dec 22 05:17:32 rockylinuxsrv.citizix.com nginx[118228]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Dec 22 05:17:32 rockylinuxsrv.citizix.com nginx[118228]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Started The nginx HTTP and reverse proxy server.
起動時にサービスを有効にするには、次のsystemdコマンドを使用します:
sudo systemctl enable nginx
4。 Rocky Linux / AlmaLinux8へのPHPFPMのインストール
PHP-FPM(FastCGI Process Managerの頭字語)は、非常に人気のある代替PHP(Hypertext Processor)FastCGI実装です。 PHP-FPMは、PHPFastCGIの最も一般的な代替実装です。トラフィックの多いWebサイトに非常に役立つ追加機能があります。 PHP-FPMでNginxを使用すると、メモリ消費レベルでのパフォーマンスが向上します。
PHP-FPMを使用する場合、PHPは個別のサービスとして実行されます。このPHPバージョンを言語インタープリターとして使用することにより、要求はTCP/IPソケットを介して処理されます。 Nginx WebサーバーがHTTPリクエストのみを処理し、PHP-FPMがPHPコードを解釈するようにします。 2つの別々のサービスがあるという事実は、効率を高めるための鍵です。
次のコマンドを使用してphp-fpmをインストールします:
sudo dnf install -y php-fpm
デフォルトでは、サービスは開始されません。開始するには、次のsystemdコマンドを使用します:
sudo systemctl start php-fpm
次のコマンドを使用して、サービスステータスをチェックし、実行されていることを確認します。
$ sudo systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2021-12-22 05:17:32 UTC; 3min 5s ago
Main PID: 118227 (php-fpm)
Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
Tasks: 6 (limit: 23167)
Memory: 22.9M
CGroup: /system.slice/php-fpm.service
├─118227 php-fpm: master process (/etc/php-fpm.conf)
├─118230 php-fpm: pool www
├─118231 php-fpm: pool www
├─118232 php-fpm: pool www
├─118233 php-fpm: pool www
└─118234 php-fpm: pool www
Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Starting The PHP FastCGI Process Manager...
Dec 22 05:17:32 rockylinuxsrv.citizix.com systemd[1]: Started The PHP FastCGI Process Manager.
5。簡単なサイトの作成と仮想ホストの構成
Nginxを使用すると、仮想ホストを使用して複数のサイトにサービスを提供できます。仮想ホストの概念により、1つのシステムまたはWebサーバー上に複数のWebサイトを配置できます。サーバーは、ホスト名によって区別されます。 Webサイトへの訪問者は、ホスト名またはIPアドレスによって正しい仮想ホストにルーティングされます。仮想ホスティングにより、1台のサーバーを共有する企業はそれぞれ独自のドメイン名を持つことができます。
この例では、仮想ホストにドメインsite1.citizix.comを使用しますが、選択したドメインを自由に使用できます。使用するドメインのDNSは、サーバーのIPアドレスを指すようにすでに構成されている必要があることに注意してください。確認:
dig -t A site1.citizix.com
ディレクトリの作成とサンプルコンテンツの追加
nginxのデフォルトページは、/var/www/html
のコンテンツを提供するデフォルトの仮想ホストとして構成されています 。 /var/www
にサイトのディレクトリを作成することをお勧めします そこからサービスを提供するためのベストプラクティス以来、ディレクトリ。
次のコマンドを使用して、サイトのディレクトリを作成しましょう。
sudo mkdir /var/www/site1.citizix.com
簡単なindex.php
を作成しましょう 当サイトから提供するページ。次のコマンドを使用しない場合、これを機能させるにはvimをインストールする必要があります:
sudo dnf install -y vim
ファイルを編集します:
sudo vim /var/www/site1.citizix.com/index.php
ファイルにコンテンツを追加します:
<?php phpinfo(); ?>
仮想ホスト(サーバーブロック)の作成
Nginxサーバーブロックを使用して、構成の詳細をカプセル化し、単一のサーバーで複数のドメインをホストできます。サイト(site1.citizix.com)の仮想ホストを作成します。
Nginx仮想ホストの構成は、ディレクトリ/etc/nginx/conf.d/
に保存されます 。私たちのサイトの構成を作成しましょう:
sudo vim /etc/nginx/conf.d/site1.citizix.com.conf
次のコンテンツを追加します
server {
listen 80;
server_tokens off;
client_max_body_size 100M;
server_name site1.citizix.com;
access_log /var/log/nginx/site1.citizix.com.log;
error_log /var/log/nginx/site1.citizix.com.log;
root /var/www/site1.citizix.com;
index index.php;
if ($host !~* ^(site1.citizix.com)$) {
return 444;
}
location / {
proxy_read_timeout 600;
proxy_connect_timeout 600;
proxy_send_timeout 600;
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
構成を適用するためにnginxおよびphp-fpmサービスを再起動しましょう
sudo systemctl restart php-fpm
sudo systemctl restart nginx
6。構成のテスト
構成をテストするには、ブラウザを開き、設定したドメインを読み込みます。私の場合はhttp://site1.citizix.com
。 PHP情報ページが表示されます。
DNS設定をまだ構成していない場合、または単にサイトを公開したくない場合は、コンピューターのhostsファイルを変更できます。これを行うには、ローカルコンピューターのCLIで次のコマンドを使用します
sudo vim /etc/hosts
次に、実際のサーバーのIPアドレスに続けて、構成しているドメイン名を追加します。例:
# Virtual Hosts Local Test
10.2.11.11 site1.citizix.com
これで、ファイルを保存して、Webブラウザ内からアクセスできるようになります。
Nginx仮想ホストまたはserver
ブロックは、同じオリジンサーバーにWebサイトを追加するための優れた方法です。サイトの特定のニーズに合わせて仮想ホスト構成ファイルを変更し始めると、特定のサイトの構成の可能性はほぼ無限に広がります。
このガイドでは、Rocky Linux /AlmaLinuxまたはRHELベースのシステムでphpコンテンツを提供するように仮想ホストを設定する方法を学びました。