构建LEMP网站平台

一 LEMP平台的组成

构建LEMP平台需要Linux(操作系统,这里使用RHEL6.0-32位)、MySQL(数据库服务器)、PHP(网页编辑语言),

与LAMP的区别在于提供网站服务的软件是Nginx,并且Nginx与PHP的协作配置也不同

二 LEMP平台的部署

在Nginx的环境下进行一下操作:下载安装源码包mysql并调整优化、下载安装PHP源码包并调整优化

1安装mysql数据库

解压并配置

注:--with-charset:指定默认使用的字符集编码;--with-collation:指定默认使用的字符集校对规则,utf8_general_ci是适用于UTF-8字符集的通用规则;--with-extra-charsets:指定额外支持的其他字符集编码

编译并安装

优化调整

初始化数据库

启动mysql服务并设置管理员密码

2安装PHP解析环境

解压并配置

较新版本(如5.3)的PHP已经自带FPM(fastCGI process manager,FastCGI进程管理器)模块,用来对PHP解析实例进行管理,优化解析效率,因此在配置PHP编译选项时应添加"--enable-fpm"以启用此模块

注:在RHEL6的64系统中按上面的配置项配置可能会报以下错误,如果要是报错的话请按如下方法解决:

解决方法:

根据报错发现是因为libpng.so和libpng.a找不到,但libpng的相关软件包我已经安装了,如下图查询结果,发现libpng的包都安装了。

那为什么还报libpng.so和libpng.a找不到呢?

要解决的问题就是它没找到,我安装了的,那我得去找找看它到底是放那里去了。执行下列命令,可以查找libpng.so在那里

更新

通过上面的搜索其实就知道一些原因了,configure一般的搜索编译路径为/usr/lib/下,因为php默认就在/usr/lib/下找相关库文件,而x64机器上是在:/usr/lib64.这时你就可以直接把需要的库文件从/usr/lib64中拷贝到/usr/lib/中去就可以了

解决完后重新执行./configure进行编译前的配置

如果报configure: error: libjpeg.(a|so) not found错误解决方法和上面的解决方法类似。具体操作如下:

如果报下面错误

usr/bin/install: cannot create regular file `/usr/local/man/man1/cjpeg.1': No such file or directory
make: *** [install] Error 1
提示找不到目录。既然电脑找不到,咱们人脑可以找嘛,自己先创建先
mkdir /usr/local/man
mkdir /usr/local/man1 创建完了再来

类似错误很多,方法也很多,我们得灵活应变,具体问题具体分析!

编译并安装

优化调整

3安装ZendGuardLander优化模块

复制模块到指定目录

修改php.ini文件,以便模块的识别

(直接添加到首行的下面)

4配置Nginx支持PHP环境

若要让Nginx能够解析PHP网页,有两种方法:一,充当中介,将访问PHP页面的WEB请求转交给其他服务器(LAMP)去处理;二,通过使用PHP的FPM模块来调用本机的PHP环境

如果选用FPM方式,则需要先启动php-fpm进程,以便监听PHP解析请求。参考范例建立php-fpm.conf配置文件,并修改其中的PID文件、运行用户、服务数(进程数量)等相关设置,然后启动php-fpm程序即可(默认监听本机的9000端口)

修改php-fpm.conf配置文件

去掉注释(PID文件位置)

将nobody换成nginx(运行用户和组)

一下都去掉注释即可(启动时开启的进程数、最少空闲进程数、最多空闲进程数)

启动php-fpm并查看监听

修改Nginx服务脚本

在php-fpm.conf文件中,pid配置行指出了PID信息的存放位置,对应的实际路径为/usr/local/php5/var/run/php-fpm.pid,根据上述信息,可以修改Nginx服务脚本,以便在启动/停止Nginx服务器时将php-fpm进程也自动启动/停止

5配置Nginx支持PHP解析

无论是将PHP页面交给LAMP服务器去解析,还是调用本机的php-fpm进程进行解析,都需要在"server{}"配置段中添加location设置,以便指定当访问.php面页时采取何种操作。

第一种方法(转交给其他WEB服务器处理)

使用的配置语句如下所示,例如,交给IP地址为192.168.0.200的LAMP服务器处理,从而实现由Nginx负责静态页面,LAMP负责动态页面的分离效果

第二种方法(调用本机的php-fpm进程进行解析)

使用的配置语句如下所示。在conf/目录下的fastcgi.conf文件中已经包含必需的宏设置,可通过include语句添加进来;完成修改后重新加载nginx服务即可生效

6 PHP页面访问测试

在PHP文档根目录下创建一个测试网页,以便测试PHP语名能否正常解析,以及能否访问MYSQL数据库,如果成果,则LEMP搭建成功

测试页内容如下

在客户端进行访问测试