Debian 安装 Lnmp 配置参数

php以及nginx、mysql都安装完毕,但是,这只是安装完,要想LNMP运作,我们还需要单独为他们配置。

1、php中的配置

现在,我们已经安装了PHP组件,但是我们需要进行一些小的配置更改,以使我们的设置更加安全。

使用root特权打开主要的php-fpm配置文件(本文为php7.4):

nano /etc/php/7.4/fpm/php.ini

我们要在配置中寻找cgi.fix_pathinfo参数。这个参数已经被“ ; ”注释掉了,且默认值为“ 1”。

这是一个非常不安全的设置,因为它告诉PHP尝试执行可以找到的最接近的文件(如果找不到所请求的PHP文件)。这将导致用户能够执行不应被允许执行的脚本。

我们取消注释并将其值设置为“ 0”来保证安全,如下所示:

/etc/php/7.4/fpm/php.ini

cgi.fix_pathinfo=0

保存并关闭。

现在,输入以下命令重启php服务以使他生效:

systemctl restart php7.4-fpm

重启后,变更将生效。

2、设置Nginx使用PHP进程

nginx需要把动态请求交给php去处理,所以我们要在nginx中,把配置加上去。

一般nginx默认安装配置文件在/etc/nginx/conf.d/或/etc/nginx/sites-enabled/或/etc/nginx/sites-available/中。

你也可以使用命令:

cat /etc/nginx/nginx.conf

查看http {}里关于Virtual Host Configs的字段,来确定位置。

这里我直接使用nano打开/etc/nginx/sites-enabled/default配置文件:

nano /etc/nginx/sites-enabled/default

默认配置文件一般长这样:

server {

listen 80 default_server;
listen [::]:80 default_server;

root /var/www/html;
index index.html index.htm index.nginx-debian.html;

server_name _;

location / {
    try_files $uri $uri/ =404;
}

}

我们需要对这个配置进行适当修改:

增加 index.php 作为默认首页;

修改server_name来指向我们的服务域名或公共ip;

对于实际的PHP处理,我们只需要通过删除每行前面的井号(#)来取消注释处理PHP请求的文件段。这个位置通常在 .php $位置下,内含fastcgi-php.conf代码段以及与php-fpm关联的套接字。

我们还将取消注释处理.htaccess文件的位置块。 Nginx不处理这些文件。如果这些文件中的任何一个碰巧进入了文档根目录,则不应将其提供给访问者。

已在下方标注需要修改的地方:

server {

listen 80 default_server;
listen [::]:80 default_server;

root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
#修改处1 ↑

server_name server_domain_or_IP;     <= #修改处2

location / {
    try_files $uri $uri/ =404;
}

#修改处3 ↓
location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}

#修改处4 ↓
location ~ /\.ht {
    deny all;
}

}

保存并关闭nginx配置文件。

使用nginx自带的工具检测语法是否正确:

nginx -t

如果报告了错误,请重新检查文件语法,然后再重复。

没有问题后,我们需要重启nginx来生效修改:

systemctl reload nginx

这样,配置就大功告成了。

接下去,我们需要进行测试。

3、测试nginx和php是否对接成功:

我们可以在文档根目录中创建一个测试PHP文件。在文本编辑器的文档根目录中打开一个名为info.php的新文件:

nano /var/www/html/info.php

如果你使用最新的nginx,路径位于/usr/share/nginx/html/,我们还是推荐自己通过nginx配置自己的路径。

在info.php文件中,输入以下代码,它将返回有关我们服务器php配置的信息:

<?php

phpinfo();

完成后,保存并关闭文件。

现在,尝试用Web浏览器访问info.php页面,网址栏输入IP地址或设置的域名,后跟/info.php:

http://域名或ip地址/info.php

不出意外,你将看到一个由PHP生成的网页,其中包含php服务的配置情况,配置就完成了。

4、问题处理:无法登录后台

Nginx服务器点击前台链接或者后台登录时出现404, not found

出现这种情况时,nginx.conf里的location设置都是类似这样

location ~ .*.php$

要支持pathinfo,要改成

location ~ .*\.php(\/.*)*$