【摘要】:接下来将介绍以性能优越而著称的LNMP环境。Nginx的URL处理模块基于pcre实现,所以在安装Nginx前需要安装pcre类库。使用ls/usr/local/nginx命令可以查看Nginx安装后的目录结构。接下来将使用源代码安装方式安装PHP 5.3.6,以便让Nginx能够解释PHP程序。listen配置项表示监听地址及端口,Nginx之所以能够处理PHP,就是利用反向代理将URL请求到该监听地址。
XAMPP是世界上使用最多的PHP开发环境集成安装包,同样提供了Linux安装包,由于它的安装过程非常简单,只需要几个命令即可,在此就不进行过多的介绍,读者如需了解更多,可以浏览官方的支持网页http://www.apachefriends.org/zh_cn/xampp-linux.html#1673。接下来将介绍以性能优越而著称的LNMP环境。
1.Nginx
所谓的LNMP即Linux+Nginx+MySQL+PHP软件包的组合名。对于MySQL及PHP相信读者已经非常熟悉,Nginx是最近两年才在国内流行的,为了方便后面的学习,接下来首先对Nginx进行简单介绍。
(1)Nginx的简介
Nginx是由俄罗斯综合门户网站Rambler.ru开发并维护的一套Web服务代理软件,在应对大访问量的情况下,是Apache的最佳替代品。Nginx之所以性能高效,主要由于Nginx采用了epoll网络模型,该模型是Linux 2.6内核中新的IO接口,能够有效地减少CPU性能消耗。最为重要的一点是Nginx本身只支持纯静态的文件解释。对于动态脚本,Nginx不像Apache直接加载模块进行解释,而是将请求提交给CGI进程管理器(例如PHP-FPM),这种分工明确但配合紧密的工作方式,使得Nginx时刻保持稳定、高速的运行状态。
由于Nginx出色的表现,世界上许多大型网站均使用Nginx来作为负载均衡服务器、缓存服务器、Web服务器等。国内的淘宝网是最早使用Nginx的中文网站,甚至在Nginx的基础上开发了Tengine项目,感兴趣的读者可以浏览项目网址http://tengine.taobao.org/。
对于普通的管理人员或者PHP程序员而言,使用Nginx比使用Apache、Lighttp更加容易。Nginx的配置文件简单明了,并不需要太多的额外知识即可掌握。Nginx支持Apache主流的功能,甚至支持得更好,包括UrlReWriter、数据缓存、信息收集、FastCGI、CGI等。下面将首先讲解在CentOS 6.0操作系统下安装Nginx的全过程。
(2)Nginx的安装
首先以Root的身份登录CentOS,在终端状态下输入“mkdirp/data1”命令创建数据存放目录,然后使用“cd/data1”命令切换到“data1”目录,以下的操作将会在“data1”目录中完成。首先使用yum升级或安装系统工具类库(需要系统接入互联网)。
接着就可以安装Nginx了,这里安装的版本为1.3.8。Nginx的URL处理模块基于pcre实现,所以在安装Nginx前需要安装pcre类库。读者可以在官方网站中获取到相关源代码包,也可以使用以下命令进行获取。
下载完成后,就可安装pcre了。
然后创建Nginx运行用户及用户组,这里将使用WWW用户及用户组运行Nginx。
接着就可以安装Nginx 1.3.8了。
通过前面的步骤,Nginx的安装就完成了。使用ls/usr/local/nginx命令可以查看Nginx安装后的目录结构。Nginx非常灵活,默认情况下并不需要做任何配置即可正常运行。
启动成功后,直接访问服务器所在IP即可看到Nginx成功提示页面。需要注意的是,此时的Nginx只能用于做代理服务器、缓存服务器以及解释静态文件。接下来将使用源代码安装方式安装PHP 5.3.6,以便让Nginx能够解释PHP程序。
2.安装PHP
前面提到过Nginx本身不支持解释cgi程序,所要必须借助于第三方FastCGI管理器实现动态程序解释。对于PHP而言,常用的FastCGI管理器有spawn-fcgi及php-fpm。其中spawn-fcgi是lighttp服务器的一部分,现在已经成为一个独立的项目,在安装时可以以独立的安装包进行安装;php-fpm在PHP 5.3.2版本之前也是一个独立的项目,现在已经成为PHP的一部分,并以插件的方式整合到PHP中。接下来将以PHP 5.3.6为例,详细介绍PHP的安装过程。
(1)安装PHP依赖库
在安装PHP 5.3.6之前,需要安装或更新PHP依赖库。这里将继续以源代码包安装方式进行安装,首先下载源代码包。
下载完成后,接下来就可以安装了。
(2)安装PHP
安装PHP相对比较简单,只需要在编译时加入php-fpm扩展即可。此外为了能够连接MySQL数据库,还需要加入相应的扩展。
通过前面的步骤,PHP就安装完成了,接下来只需要创建php-fpm配置文件即可启动PHP引擎。
(3)配置文件
PHP 5.3.6安装完成后,并没有自动生成php-fpm配置文件,但提供了一个php-fpm.conf.default模板文件,接下来需要将该文件复制一份,用于正式的配置文件。(www.chuimin.cn)
打开php-fpm.conf配置,这里需要修改运行用户及用户组(与Nginx相同)。此外还需要修改pm.start_servers(动态方式下起始进程数量)及pm.min_spare_servers(动态方式下最小php-fpm进程数量)配置项。如以下代码所示。
listen配置项表示监听地址及端口,Nginx之所以能够处理PHP,就是利用反向代理将URL请求到该监听地址。
(4)启动php-fpm
PHP 5.3.6安装完成后,并没有自动生成php.ini配置文件,但在源代码包中提供了一个php.ini-production模板文件,接下来需要将该文件复制一份,用于正式的配置文件。
通过前面的步骤,php-fpm及PHP已经安装完成了。最后只需要启动php-fpm即可。
php-fpm主进程默认使用9000端口,要检测是否成功运行,可以使用netstat-nlpt|grep9000命令查看。
3.配置Nginx
前面提到过,虽然Nginx已经安装成功,但此时的Nginx与PHP毫无关联,它们之间是两个不同的服务。接下来将通过配置Nginx,实现解释PHP。首先打开Nginx配置文件。
然后修改运行用户名及用户组为www,并且在server节点中加入PHP请求转发支持,如以下代码所示。
如上述代码所示,fastcgi_pass配置项表示fastcgi管理器地址,即php-fpm地址。include表示包含外部文件,该文件用于配置fastcgi运行方式,内容如以下代码所示。
fcgi.conf文件路径需要与nginx.conf文件平级,默认情况下该文件并不存在,需要开发人员手动创建。
最终,nginx.conf配置文件代码如下。
标粗的即为需要改动的配置,完成后只需要重启Nginx即可。
需要注意的是,如果php-fpm不在当前机器上,而是采用集群部署方式,防火墙需要开启9000端口,或者关闭防火墙。读者可以在/home/wwwroot创建PHP文件,以便测试PHP是否运行正常。
4.安装MySQL
MySQL的安装方式有很多种,其中最常用的有使用yum和rpm安装,这里继续以源代码的安装方式安装MySQL 5.5.3。安装步骤如下。
需要注意的是在编译时务必开启partition插件,该插件用于实现数据表分区,本书第7章7.5节将介绍数据表分区的内容。安装耗时根据机器性能有所出入,一般在30~90min之间。
安装完成后,在/usr/local/mysql目录中可以找到MySQL相关可执行文件,同时在/etc目录下可以找到my.cnf配置文件。需要注意的是/etc/my.cnf配置文件并不能满足启动MySQL的环境需求,事实上安装程序已经在/usr/local/mysql/share/mysql/目录中创建了多个MySQL配置文件模板,这里将使用my-medium.cnf模板文件作为配置文件,将其替换my.cnf文件即可。
my-medium.cnf模板文件不需作任何修改就已经能够满足启动MySQL的需要。MySQL安装完成后,所有可执行工具存放于/usr/local/mysql/bin/目录。其中mysql_install_db是一个用初始化MySQL数据库的工具,在启动MySQL前需要使用该工具创建MySQL默认数据库及存放目录(安装程序并不会自动创建)。
执行完mysql_install_db命令后,向导将会在/usr/local/mysql/var创建名为“mysql”的数据库,该数据库存放着与用户授权、系统运行状态等关键数据。通过前面的步骤,接下就可以启动MySQL主程序了。
前面虽然创建了“mysql”数据库,但并没有创建登录用户数据。接下来将使用mysqldump工具创建登录用户及用户密码。
至此,MySQL的安装就完成了。可以使用pstree|grep mysql命令检测mysqld_safe主程序是否存在,或者直接在终端登录MySQL数据库。
为了便于操作,读者可以使用phpmyadmin等管理工具对数据库进行管理。关闭MySQL时直接结束mysqld主进程即可。
相关推荐