下面就为您详细讲解在Debian系统下为PHP程序配置Nginx服务器的基本教程。
准备工作
在开始配置之前,我们需要确保Debian系统中已经安装了Nginx服务器和PHP解释器。可以使用以下命令来确认:
sudo apt-get update
sudo apt-get install nginx php-fpm
配置Nginx服务器
- 安装并启动Nginx服务器。
sudo apt-get install nginx
sudo systemctl start nginx
- 创建一个新的server配置文件。
sudo nano /etc/nginx/sites-available/example.com
- 粘贴以下基本的server配置。
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
- 然后将Nginx的配置文件链接到sites-enabled文件夹中。
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
- 重新启动Nginx服务器以应用更改。
sudo systemctl restart nginx
配置PHP解释器
Nginx服务器将所有PHP请求转发给PHP解释器,因此需要正确配置PHP解释器。
- 在/etc/php/7.2/fpm/pool.d/目录下创建一个新的配置文件,例如:example.com.conf。
sudo nano /etc/php/7.2/fpm/pool.d/example.com.conf
- 粘贴以下简单的配置。
[example.com]
user = www-data
group = www-data
listen = /var/run/php/php-fhm-example.com.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
catch_workers_output = yes
- 重新启动PHP解释器以应用更改。
sudo systemctl restart php7.2-fpm
示例说明
示例1
假设有一个基于Laravel框架的网站example.com,我们将子目录public/html作为这个站点的根目录。
如下示例的nginx配置:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/public/html;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm-example.com.sock;
}
location ~ /\.ht {
deny all;
}
}
示例2
假设我们想在同一个服务器上为多个网站配置Nginx服务器及PHP解释器,例如要为前述example.com和另一个example2.com网站做配置。
针对example2.com创建一个新的nginx server配置文件example2.com,及针对example2.com创建一个新的PHP解释器配置文件example2.com.conf,在两个配置文件中,唯一不同的是server_name和listen值。
在nginx.server中,为example2.com配置示例如下:
server {
listen 80;
server_name example2.com www.example2.com;
root /var/www/example2.com/public/html;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm-example2.com.sock;
}
location ~ /\.ht {
deny all;
}
}
在php-fpm.pool.d中为example2.com配置示例如下:
[example2.com]
user = www-data
group = www-data
listen = /var/run/php/php-fhm-example2.com.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
catch_workers_output = yes
完成以上配置后,我们需要将example2.com的nginx和PHP配置文件链接到对应的sites-enabled和pool.d目录中,然后重新启动Nginx服务器及PHP解释器,即可成功配置多个站点的Nginx服务器。
希望对您有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Debian系统下为PHP程序配置Nginx服务器的基本教程 - Python技术站