Nginx正在迅速超越Apache,成为最受欢迎的Web服务器。对于使用Rails和Python等语言构建的Web应用程序来说,它几乎无处不在,但在PHP世界中赶上它要慢一些。造成这种情况的部分原因是PHP和Apache轻松结合在一起。但是,PHP和Nginx几乎可以轻松地进行协作,并且随着PHP 7的发布,将两者结合起来是一个相当快捷的选择。

包装

首先是第一。更新Ubuntu,并获取Nginx和PHP软件包。

# sudo apt-get update && sudo apt-get -y upgrade
# sudo apt-get -y install nginx php7.0 php7.0-fpm

安装完成后,所有软件包均应就位,并且可以正常运行。为确保确实如此,您可以检查Nginx和PHP-FPM服务是否都在Systemd中运行。

# sudo systemctl status nginx
# sudo systemctl status php7.0-fpm

如果Systemd确认这两个服务都在运行,则服务器实际上应该已经启动,并且您应该能够通过导航到默认的Nginx欢迎页面来查看localhost在浏览器中。

组态

当然,还没有准备好实际托管任何东西。需要一些配置以将Nginx指向一些实际内容并提高安全性。 Nginx配置文件的根目录位于/etc/nginx。值得庆幸的是,Ubuntu已经有一些默认设置,这些配置使配置过程更加容易。

Nginx.conf

Nginx的主要配置文件是nginx.conf。在您选择的文本编辑器中打开它。它需要root权限,因此像Vim这样的基于文本的编辑器可能是最好的。默认配置几乎是正确的。显然,可以采取一些措施来提高系统速度和安全性,但是其中大多数都超出了本基础教程的范围。如果您想提高性能,则注释的Gzip选项将有助于压缩并可以加快处理速度。在安全方面,添加以下三行将有助于防止恶意活动。

add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
(adsbygoogle = window.adsbygoogle || [])。push({});

网站配置

添加行后,保存并退出。 Nginx根目录中有两个文件夹,sites-available和sites-enabled。sites-available存储站点配置。sites-enabled包含指向以下配置文件的符号链接sites-available。这样,启用和禁用站点就像创建和删除符号链接一样简单。

使用文本编辑器在以下位置创建文件/etc/nginx/sites-available/yoursite。该文件将包含新PHP 7网站的任何site-specific配置。下面的示例在注释中细分了每一行的功能。这是相当基本的配置,但可以完成工作。

server {
#Nginx should listen on port 80 for requests to yoursite.com
listen 80;
server_name yoursite.com;
#Create access and error logs in /var/log/nginx
access_log /var/log/nginx/yoursite.access_log main;
error_log /var/log/nginx/yoursite.error_log info;
#Nginx should look in /var/www/yoursite for your website
root /var/www/yoursite/;
#The homepage of your website is a file called index.php
index index.php;
#Specifies that Nginx is looking for .php files
location ~ \.php$ {
#If a file isn’t found, 404
try_files $uri =404;
#Include Nginx’s fastcgi configuration
include /etc/nginx/fastcgi.conf;
#Look for the FastCGI Process Manager at this location
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}

创建该文件后,将其保存并移至sites-enabled目录。从那里,创建符号链接回到刚刚创建的文件。

# cd /etc/nginx/sites-enabled
# sudo ln -s /etc/nginx/sites-available/yoursite

PHP.ini安全

安全性是一个不断变化的目标,不可能随时应对所有可能的威胁,但是始终最好锁定所有新服务器的安装始终是一个好主意。您可以对广告进行一些简单的调整php.ini有助于保护PHP安全的配置文件。使用您的文本编辑器,打开/etc/php/7.0/fpm/php.ini。这是一个巨大的文件。同样,Vim或具有搜索功能的东西可能是最好的。

第一次发现disable_functions并添加phpinfo,system,mail,exec到已经存在的函数字符串的末尾。然后找到file_uploads并将其设置为Off。接下来,找到sql.safe_mode并切换On。最后找到allow_url_fopen并将其设置为Off。在关闭文件之前,在末尾再添加一行。

register_globals = Off

完成后,保存并关闭。重新启动服务器,它应该已经准备就绪。

# sudo systemctl restart php7.0-fpm
# sudo systemctl restart nginx

接下来要去哪里

就目前而言,Ubuntu服务器应该能够运行大多数PHP网站。放置在/var/www/yoursite将由服务器运行。它将寻找index.php首先提交文件,网站可以在那里分出表格。当然,在速度,安全性以及几乎任何特殊情况下,配置PHP和Nginx还有很多事情要做,但是现在您有了一个很好的起点。