使用apt包管理套件来完成安装。因为这是我们第一次使用apt进行这个会话,所以我们应该首先更新我们的本地包索引。我们可以安装服务器:
sudo apt-get update
sudo apt-get install nginx
现在我们有一个Web服务器,我们需要安装一个数据库管理系统mysql来存储和管理我们网站的数据。您可以通过键入以下内容轻松安装:
sudo apt-get install mysql-server
你需要设置一个root(管理)密码在mysql系统中使用。
我们现在已经安装了nginx来为我们的页面提供服务,并安装了mysql来存储和管理我们的数据。但是,我们还没有任何可以产生动态内容的东西。我们可以使用这个php。由于nginx不包含像其他一些web服务器一样的原生php处理,我们将需要安装php-fpm,它代表“fastcgi进程管理器”。我们将告诉nginx将PHP请求传递给这个软件进行处理。我们可以安装这个模块,并且还将获得一个额外的帮助程序包,它将允许php与我们的数据库后端进行通信。安装将拉入必要的php核心文件。通过键入以下内容来执
sudo apt-get install php-fpm php-mysql
我们现在已经安装了我们的PHP组件,但是我们需要稍作修改,以使我们的安装更安全。以root权限打开主要的php-fpm配置文件:
sudo vim /etc/php/7.0/fpm/php.ini
我们在这个文件中查找的是设置cgi.fix_pathinfo的参数。这将被注释掉一个分号(;),默认设置为“1”。这是一个非常不安全的设置,因为它告诉PHP试图执行最接近的文件,如果找不到请求的PHP文件,可以找到它。这基本上会允许用户以一种允许他们执行不应允许执行的脚本的方式来制作php请求。我们将通过取消注释并将其设置为“0”来更改这两个条件:/etc/php/7.0/fpm/php.ini
现在,我们只需要重新启动php,使我们所做的改变生效。
sudo systemctl restart php7.0-fpm
现在,我们已经安装了所有必需的组件。我们仍然需要的唯一配置更改是告诉nginx使用我们的php处理器来处理动态内容。我们在服务器块级别上执行此操作(服务器块类似于apache的虚拟主机)。输入以下命令打开默认的nginx服务器模块配置文件:
sudo vim /etc/nginx/sites-available/default
目前,除去注释,nginx的默认服务器块文件如下所示:在/etc/nginx/sites-available/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作为我们的索引指令的第一个值,以便在请求目录时提供名为index.php的文件(如果可用)。
我们可以修改server_name指令来指向我们的服务器的域名或公有IP地址。
对于实际的php处理,我们只需要取消注释处理php请求的文件的一部分,从每行的前面删除磅符号(#)。这将是location ~\.php$ ,包括fastcgi-php.conf片段,以及与php-fpm关联的套接字。
我们还将使用相同的方法取消处理.htaccess文件的位置块的注释。nginx不处理这些文件。如果这些文件中的任何一个碰巧进入文档根目录,则不应将其提供给访问者。
/etc/nginx/sites-available/default
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name server_domain_or_IP;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
sudo systemctl reload nginx
我们可以测试它来验证nginx能够正确地将.php文件传递给我们的php处理器。我们可以通过在我们的文档根目录下创建一个测试php文件来实现这一点在文本编辑器的文档根目录中打开一个名为info.php的新文件:
sudo vim /var/www/html/info.php
键入或粘贴到新文件中的以下行。这是有效的PHP代码,将返回有关我们的服务器的信息:
当你完成后,保存并关闭文件。现在,您可以访问您的服务器的域名或公共IP地址,然后在/info.php中访问此页面。
http://server_domain_or_IP/info.php
你应该看到一个由php生成的关于你的服务器信息的网页: