前言
最近倒腾tornado以及这个网站从SAE迁回了腾讯云,花了不少时间和nginx打交道。所以准备记录一下我怎么倒腾Nginx的过程。(同时控诉一下Apache2的恶心)
安装Nginx服务器
为了展现一个动态网页,我们现在就部署Nginx,Nginx是一款现代和高效的网络服务器。
下面所有的命令都是基于Ubuntu自带的默认源,也就是说,你只需要巧妙的使用apt
来安装就可以了。
因为我们这是第一次使用apt来安装,所以我们需要先更新源。
|
|
在Ubuntu 14.04这个版本里,Nginx会根据安装时候的配置来决定启动方式。
你可以直接通过访问IP或者域名来观察Nginx是否启动完毕了。
如果你不知道的话,很简单,运行下面的命令就可以知道自己服务器公共的IP地址了。
|
|
|
|
或者你觉得麻烦,这样也可以:
|
|
|
|
这样就知道了地址。这里由于我在的RWTH-Aachen屏蔽了这个网站,所以就查不到,具体情况你可以联系网管。
直接输入IP或者域名。
|
|
如果你看到了Nginx的欢迎页面,那么恭喜您,Ngnix就装好了。
安装MySQL来储存数据
现在我们已经安装好了网络服务器了,那么我们就需要一个数据库来支撑我们整个网站的数据储存业务了。
最简单的就是输入下面的命令:
|
|
在此期间,你会被要求输入一个MySQL管理员的密码。
这样,MySQL就安装好了,但是需要我们来配置。
首先,我们需要让MySQL生成一个可以存储信息和数据结构的目录,我们只需要键入下面的命令:
|
|
接下来,你可以运行一个安全脚本来引导你做一些安全的配置,你需要输入命令:
|
|
在这个过程中,你需要在安装过程中提供您MySQL管理员的密码。
接着,他会询问您是否想变更密码,如果您对您现在的MySQL密码很满意的话,输入N
然后按下Enter
键就可以了,接着,您需要移除测试的数据库和用户。在这个过程中,您只需要一路按Enter
来继续就可以了。
一旦脚本跑完了,那么MySQL就对数据饥渴难耐了。
安装PHP
现在,我们已经安装好了承载页面的Nginx服务器和存储数据的MySQL数据库,但是我们还是需要一些东西来串接这两个东西并且生成动态界面。这样我们就可以使用PHP来完成这个任务。
因为Nginx和其他服务器不同,其并不包含原生的PHP处理模块,所以我们需要安装php5-fpm
(fastCGI process manager)。我们会指定Nginx将PHP请求给这个软件用于处理。
我们可以安装这个模块并且还需要一个安装一个能够让PHP和我们后台数据库交互的包。这次安装会放入所有必要的PHP核心文件。你需要键入:
|
|
配置PHP处理模块
现在我们已经安装了PHP,但是我们还是要做一些细微的调整来让我们的安装更为安全。
使用root权限来打开php5-fpm
的配置文件:
|
|
在这个文件中,我们找到第一个参数cgi.fix_pathinfo
,这个被一个;
所注释掉,并且默认设置为1。
这个是一个非常危险的设定,因为其告诉PHP对于那些没有办法完全匹配的请求执行最为接近的文件。这样就可能使得用户能够执行一些他们并不能被允许执行的脚本。
我们就需要关闭这个设定:
|
|
保存这个文件,并且完成设定。
现在,我们就需要重启我们的PHP处理器:
|
|
这样我们的设定就会应用了。
配置Nginx使用我们的PHP处理器
现在,我们啥都安装好了,现在我们唯一要做的就是配置Nginx来使用我们的PHP来处理动态界面。
我们需要在服务器层次上配置。如果我们想要Nginx默认的话,只需要这样:
|
|
移除掉注释之后,整个文件就会像这样:
|
|
当然,我们需要为我们的网站做一些细微的调整:
- 首先,我们需要添加一个
index.php
的选项来置于我们索引页。这样当处理一些针对目录的请求的时候,就会自动寻找这个目录下的index.php
文件来加载动态页面。 - 我们同样需要修改server_name来指出我们服务器的域名或者是IP地址
- 事实上,一些配置文件有一些被注释掉的定义处理错误行为的函数,我们需要消掉这些注释,以便于我们能够支持这些行为。
- 对于每一个PHP的请求,我们需要消掉其他的部分的注释。并且我们还需要添加
add_files
来使得我们的Nginx不会向PHP处理器传递太多的错误请求。
所以说,现在我们要变成这样(注意高亮)
|
|
当修改好了之后,你就可以保存文件了。
然后重启Nginx服务器:
|
|
创建一个PHP文件来测试配置
你的LEMP环境就这样被配置好了,但是我们还是要测试来确保Nginx能够正确的处理.php
文件。
就上面所述,我们可以直接在文件夹中创建一个PHP文件。打开一个名为info.php的新文件。
|
|
我们可以把下面的内容键入到文件之中,这个有效的PHP代码就能够反映我们服务器的一些情况。
|
|
保存并且关闭文件。
现在你可以在浏览器中访问这个界面:
|
|
这样你就可以看见一个被PHP创建的反映你情况的界面。
如果你看见了一个像这样的页面,那么你的Nginx的PHP环境就配置完毕了。
接着,为了防止我们信息的泄露,删除这个文件就可以了。
|
|