LNMP环境搭建指引

>>返回:CVM使用手册

目录


适用范围

经过统计,许多第三方开发者的应用都是基于LNMP架构,即Linux+Nginx+MySQL+PHP
为帮助入门级开发者在CVM上快速完成环境的安装和配置,特别提供本指引。
适用范围:
(1)SUSE10 和 CentOS6.2 操作系统的CVM。
(2)本文描述的所有软件安装都基于平台下载源,平台下载源说明详见:平台下载源(YaST/Yum)使用简介

步骤描述

1. 软件安装

1.首先请安装并启动nginx
平台下载源提供的nginx版本为1.0.15,配置文件在/etc/nginx/下,默认的服务器根目录是/usr/share/nginx/html/,,默认监听80端口,可以通过ps查看nginx进程是否运行,netstat查看是否监听80端口。
命令如下:

安装: #zypper in nginx
开启nginx服务:#service nginx start



2.安装Mysql
平台下载源提供的mysql版本是5.0.96,安装好后mysql服务会自动启动,默认情况下root用户密码为空用户可以自己配置账户和密码。
命令如下:

#zypper in MySQL-server-community
#zypper in MySQL-client-community



3.安装PHP和php-fpm
平台下载源提供的php的版本目前是5.3.15(后续可能不断升级到最新稳定版),php.ini配置文件在/etc/php5/cli/下,php-fpm的配置文件在/etc/php5/fpm/下。
命令如下:

#zypper in php5
#zypper in php5-fpm



4.安装php5-mysql
命令如下:

#zypper in php5-mysql



2. 安装PHP扩展库

PHP扩展库的安装分为2种情况:
1. 直接在下载源里搜索扩展库并安装:
(针对下载源里提供了该扩展库已经编译好的二进制包,例如php5-curl扩展库)
(1)通过#zypper se [扩展库名称] 来搜索扩展库;
(2)使用#zypper install [扩展库名称] 来安装扩展库;
(3)使用#php -m |grep [扩展库名称] 来核实是否已安装。

以安装php5-curl扩展库为例,安装过程详细说明如下:
(1)通过#zypper se php5-curl 来搜索扩展库;
(2)使用#zypper install php5-curl 来安装扩展库;
(3)使用#php -m |grep php5-curl 来核实是否已安装。

2. 使用PHP扩展库的源码包安装:
(针对下载源里没有提供该扩展库的二进制包或源码包)
(1)下载源码包;
(2)解压后到源码包运行phpize,之后再编译安装;
(3)最后在php.ini目录中加入so。


以安装php-memcached扩展库为例,安装过程详细说明如下:
(以下示例适用于开发者机器上已经正确安装了make和php5,开发者可按照上文第4节说明搜索make和php5并进行安装)

(1)首先安装libmemcached和libmemcached-devel,命令如下:

#zypper in libmemcached libmemcached-devel

(2)安装php5-devel,命令如下:

#zypper in php5-devel

(3)解压下载好的php-memcached扩展库(建议下载地址:http://pecl.php.net/package/memcached 下载)。
解压过程如下图所示:
YaST_7.png
(4)用phpize命令生成configure文件:
YaST_8.png
可看到目录下多了configure文件:
YaST_9.png

(5)编译memcached扩展库,命令如下:

#./configure --enable-memcached
#make && make install

注意:
请确认configure是否提示成功,如果失败,请根据提示安装相关缺少的软件包或者解决对应的问题。
make install成功后,会在/usr/lib64/php5/extensions下生成文件memcached.so.
(6)添加so到php.ini文件中:
copy上面(3)中解压后的文件memcached.ini到/etc/php5/conf.d(请确保有root权限或该目录的写权限),在memcached.ini里增加如下一行:
YaST_10.png

(7)通过php -m命令查看模块是否加载成功:
YaST_11.png
(8)如果正确配置了web服务器和php环境,重启服务后将在phpinfo中显示如下类似信息:
YaST_12.png

3. 配置

1.配置nginx
(1)查看/etc/nginx/conf.d/default.conf中是否有如下配置,若没有则需要完成以下配置:

location ~\.php$
{

      root /usr/share/nginx/html;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
      include fastcgi_params;

}


(2)完成配置后通过下面命令使配置生效

#service nginx reload



2.配置php-fpm
(1)操作说明:
在/etc/php5/fpm/中有一个php-fpm.conf.default的文件,将其复制并重命名为php-fpm.conf。
完成上述操作后可以直接通过service php-fpm start命令启动或者在已启动时通过service php-fpm reload使配置生效。
如果启动显示“fail to open error_log”时,请建立/usr/var/log/目录,或者在php-fpm.conf里面自定义修改默认error_log目录。

(2)php-fpm.conf配置文件相关参数说明:

参数名称 是否必须 示例 描述
pm pm = dynamic 取值为dynamic或static,如果不传值则默认为dynamic。

如果设置dynamic,则必须配置下面的3个参数,以进行子进程数量动态设置。

pm.max_children pm.max_children = 50 设置启动时创建的子进程数目。
仅在pm设置为dynamic时使用,且必须设置。
pm.start_servers 必须 pm.start_servers = 20 子进程的数量。

pm设置为static时表示创建的子进程数量;pm设置为dynamic时表示最大可创建的子进程数量。

pm.max_spare_servers pm.max_spare_servers = 35 设置空闲服务进程的最大数目。

仅在pm设置为dynamic时使用,且必须设置。



4. 服务状态管理

1. nginx状态管理

service nginx {start|stop|status|try-restart|restart|force-reload|reload|upgrade|configtest}


2. php-fpm状态管理

service php-fpm {start|stop|status|try-restart|restart|force-reload|reload}


3. mysql状态管理

service mysql {start|stop|restart|reload|force-reload|status}

5. LNMP相关配置文件

Nginx配置文件:
主配置文件:/etc/nginx/nginx.conf
Nginx Server配置文件:/etc/nginx/conf.d/default.conf

PHP配置文件:
/etc/php5/cli/php.ini

php-fpm配置文件:
/etc/php5/fpm/php-fpm.conf

以上信息是否解决您的问题?

Copyright © 1998 - 2018 Tencent. All Rights Reserved.

腾讯公司 版权所有

有问必答 返回顶部