nginx 與 PHP7.0 是一個常用的 Web 開發(fā)框架,它們經(jīng)常一起使用來構(gòu)建高性能、高可靠性的 Web 應用程序。 它們具有良好的兼容性和互補性,基于它們,可以輕松地創(chuàng)建快速、穩(wěn)定、適應性很強的 Web 應用程序。在下面,我們將詳細介紹如何將這兩個框架集成起來。
首先,我們需要安裝并配置 Nginx。 安裝 Nginx 最簡單的方法是使用包管理器,例如在 Ubuntu 下可以使用 apt-get 命令進行安裝。 安裝完成后,需要編輯 Nginx 配置文件以便于與 PHP 集成。 我們可以通過以下配置來啟動 Nginx:
location ~ \.php$ { root /var/www/example.com; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }在此配置中,我們定義了一個匹配 .php 后綴的位置塊,并使用 fastcgi 來處理這些 PHP 文件。 值 fastcgi_pass 定義了使用哪個 Unix 套接字(socket)來處理 PHP 請求。 接下來,需要通過 PHP-FPM 來處理 PHP 請求。 這可以通過以下命令來完成:
sudo apt-get install php-fpm一旦安裝了 PHP-FPM,就可以在/etc/php/7.0/fpm/pool.d/www.conf 文件中配置它。 這個文件包含了 PHP 進程池的配置。
listen = /var/run/php/php7.0-fpm.sock listen.owner = www-data listen.group = www-data listen.mode = 0666 user = www-data group = www-data pm = ondemand pm.max_children = 30 pm.process_idle_timeout = 10s pm.status_path = /status在此配置中,我們定義 PHP-FPM 監(jiān)聽的 Unix 套接字的位置,包括其所有者、組和權(quán)限。 user 和 group 字段指定哪個用戶和組應該運行 PHP-FPM 進程。 pm 字段檢查 PHP-FPM 進程池的工作方式 - 此處我們是通過 'ondemand' 模式來啟動進程。 最后,pm.max_children 定義最大的同時活躍進程數(shù),pm.process_idle_timeout 定義當沒有可用進程時進程將被關閉的時間。 最后,需要在 Nginx 中為 PHP-FPM 創(chuàng)建一個服務。 我們可以在 /etc/systemd/system/php-fpm.service 文件中定義這個服務。
[Unit] Description=The PHP FastCGI Process Manager After=network.target [Service] Type=simple PIDFile=/run/php/php7.0-fpm.pid ExecStart=/usr/sbin/php-fpm7.0 --nodaemonize --fpm-config /etc/php/7.0/fpm/php-fpm.conf ExecReload=/bin/kill -USR2 $MAINPID [Install] WantedBy=multi-user.target在此配置中,我們定義了一個后臺服務來運行 PHP-FPM。 PIDFile 指定了 PHP-FPM 進程的 PID 文件,ExecStart 定義了 PHP-FPM 啟動命令行。 該服務使用 Type = simple 標志,執(zhí)行將在完成后退出的工作,而不是繼續(xù)執(zhí)行,并且使用 ExecReload 和 After 標志定義服務重新加載時的操作。 在本文中,我們學習了如何集成 Nginx 與 PHP7.0。 我們了解到 Nginx 以位置塊的形式處理 PHP 請求,而 PHP-FPM 則處理 PHP 請求進程。 通過 Nginx 和 PHP7.0 的集成,可以構(gòu)建高性能、高可靠性的 Web 應用程序。