设为首页 收藏本站
查看: 1730|回复: 6

[经验分享] LEMP架构及应用部署——Nginx延伸

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2013-7-18 08:36:52 | 显示全部楼层 |阅读模式

与构建LAMP平台类似,构建LEMP平台也需要LINUX服务器、MYSQL数据库、PHP解析

环境,区别主要在于Nginx与PHP的协作配置上:

1)以编译方式安装Nginx :

2)安装MYSQL数据库——以编译方式安装(实验环境前提条件:http://wenzhongxiang.blog./6370734/1251063):

释放MYSQL的源码包:

[iyunv@nginx ~]# tar zxvf mysql-5.1.55.tar.gz


编译前配置:

[iyunv@nginx mysql-5.1.55]# ./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=gbk,gb2312

205300350.jpg

注解:

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

编译并安装MYSQL:

[iyunv@nginx mysql-5.1.55]# make && make install


优化调整:

[iyunv@nginx mysql-5.1.55]# cp -f support-files/my-medium.cnf /etc/my.cnf

cp:是否覆盖"/etc/my.cnf"? y

[iyunv@nginx mysql-5.1.55]# cp support-files/mysql.server /etc/init.d/mysqld

[iyunv@nginx mysql-5.1.55]# chmod a+x /etc/init.d/mysqld

[iyunv@nginx mysql-5.1.55]# chkconfig --add mysqld

[iyunv@nginx mysql-5.1.55]# ln -s /usr/local/mysql/bin/* /usr/local/bin/

[iyunv@nginx mysql-5.1.55]# ln -s /usr/local/mysql/lib/mysql/* /usr/lib/

[iyunv@nginx mysql-5.1.55]# ln -s /usr/local/mysql/include/mysql/* /usr/include/

205301505.jpg

初始化数据库:

[iyunv@nginx mysql-5.1.55]# useradd -M -s /sbin/nologin mysql

[iyunv@nginx mysql-5.1.55]# cd /usr/local/mysql/bin/

[iyunv@nginx bin]# ./mysql_install_db --user=mysql

205301306.jpg

[iyunv@nginx bin]# chown -R root:mysql /usr/local/mysql/

[iyunv@nginx bin]# chown -R mysql /usr/local/mysql/var/

205301272.jpg

启动MYSQL服务并为root用户设置密码:

[iyunv@nginx bin]# service mysqld start

[iyunv@nginx bin]# mysqladmin -u root password '123456'

205301365.jpg

3)安装PHP解析环境:

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

为了提高PHP解析效率,建议将相应版本的ZendGuardLander也装上

释放PHP源码包:

[iyunv@nginx ~]# tar zxvf php-5.3.6.tar.gz

编译前配置:

[iyunv@nginx php-5.3.6]# ./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --enable-mbstring --enable-fpm

205437247.jpg

编译并安装PHP:


安装后的调整:

[iyunv@nginx php-5.3.6]# cp php.ini-development /usr/local/php5/php.ini

[iyunv@nginx php-5.3.6]# ln -s /usr/local/php5/bin/* /usr/local/bin/

[iyunv@nginx php-5.3.6]# ln -s /usr/local/php5/sbin/* /usr/local/sbin/

205437938.jpg

安装ZendGuardLander(下载地址:http://www.zend.com/en/products/guard/downloads):

[iyunv@nginx ~]# tar zxf ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz

[iyunv@nginx ~]# cd ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x/

[iyunv@nginx php-5.3.x]# cp ZendGuardLoader.so /usr/local/php5/lib/php/

205437572.jpg

修改php.ini文件:

[iyunv@nginx php-5.3.x]# vim /usr/local/php5/php.ini


在php.ini中添加如下配置:

zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so

zend_loader.enable=1

205451574.jpg

配置Nginx支持PHP环境:

若要让Nginx能够解析PHP网页,有两种方法可以选择;

  • 其一:充当中介,将访问PHP页面的WEB请求转交给其他服务器(LAMP)去处理;
  • 其二,通过使用PHP的FPM模块来调用本机的PHP环境

如果选用FPM方式,则需要先启动php-fpm进程,以便监听PHP解析请求。

参考范例建立php-fpm.conf配置文件,并修改其中的PID文件、运行用户、服务数(进程数量)等相关设置,然后启动php-fpm程序即可(默认监听本机的9000端口

[iyunv@nginx php-5.3.x]# cd /usr/local/php5/etc/

[iyunv@nginx etc]# cp php-fpm.conf.default php-fpm.conf

[iyunv@nginx etc]# vim php-fpm.conf

205451226.jpg

修改内容如下:

pid = run/php-fpm.pid

user = nginx

group = nginx

pm.max_children = 50

pm.start_servers = 20

pm.min_spare_servers = 5

205451424.jpg

按以上提示修改php-fpm.conf文件,改完后保存退出。

启动php-fpm并查看地址监听。

[iyunv@nginx ~]# /usr/local/sbin/php-fpm

[iyunv@nginx ~]# netstat -anpl | grep php-fpm

205507839.jpg

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


在nginx服务脚本相应位置中添加如下内容:

PROG_FPM="/usr/local/sbin/php-fpm"

PIDF_FPM="/usr/local/php5/var/run/php-fpm.pid"

205507989.jpg

这样一为,一旦启动或关闭nginx服务,php-fpm程序也会随之启动或关闭,不需要额外再启动或关闭php-fpm.。

4)配置Nginx支持PHP解析:

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

对于第一种方法(转交给其他WEB服务器处理),使用的配置语句如下所示,例如,交给IP地址为192.168.10.1的LAMP服务器处理,从而实现由Nginx负责静态页面,LAMP负责动态页面的分离效果。

server{

…… //省略部分信息

location~\.php${                                                    //访问.php页面的配置段

    proxy_passhttp://192.168.10.1:80;                      //APACHE服务器的监听地址

    }

上面这种写法只是发送以.php为后缀的页面访问请求给其他WEB服务器,如果有其格式的文件访问(如:html、jpg等)就会出问题。访问不了了。

或者

location/{                                                                //访问.php页面的配置段

    proxy_passhttp://192.168.10.1:80;                        //APACHE服务器的监听地址

    }

}

对于第二种方法(调用本机的php-fpm进程),使用的配置语句如下所示。在conf/目录下的fastcgi.conf文件中已经包含必需的宏设置,可通过include语句添加进来。

server{

…… //省略部分信息

location~\.php$ {                                                    //访问php页面的配置段

    root/var/www/benet;                                                //PHP网页文档根目录

    fastcgi_pass127.0.0.1:9000;                                //php-fpm的监听地址

    fastcgi_indexindex.php;                                        //PHP首页文件

    includefastcgi.conf;                                                //包括fastcgi.conf样本配置

    }

}

下边用第二种方法,完成修改后重新加载nginx服务即可生效。

205507162.jpg

location ~ \.php$ {

    root /var/www/accp;

    fastcgi_pass 127.0.0.1:9000;

    fastcgi_indexindex.php;

    include fastcgi.conf;

    }

PHP页面访问测试:

在PHP文档根目录下创建一个测试网页,以便测试PHP语名能否正常解析,以及能否访问MYSQL数据库。测试页内容如下:


<?php

$link=mysql_connect('localhost','root','123456');

if ($link) echo "恭喜你,数据库连接成功!!!";

mysql_close();

?>

205507292.jpg

然后访测试:http://www.benet.com/test.php若能看到成功提示信息表示一切正常。

205508781.jpg

5)在LEMP平台中部署WEB应用:

LEMP平台与LAMP平台是非常相似的,区别主要在于所用WEB服务软件的不同,而这与使用PHP开发的WEB应用程序并无太大关系,因此PHP应用的部署方法也是类似的,

下面以“天空网络电影系统(简称SKYUC)”为例介绍在LEMP平台中的部署过程。并架设Discuz论坛做验证:

释放并部署程序代码:

[iyunv@nginx ~]# tar jxf SKYUC_3.2.2_Free_For_PHP5.3.tar.bz2

[iyunv@nginx ~]# mv SKYUC_3.2.2_Free_For_PHP5.3/wwwroot/ /var/www/benet/skyuc

[iyunv@nginx ~]# cd /var/www/benet/skyuc/

[iyunv@nginx skyuc]# chown -R nginx:nginx admincp/ data/ templates/ upload/

205508894.jpg

创建数据库并授权用户runskyuc:

205528495.jpg

安装WEB应用:

访问http://www.benet.com/skyuc/install/index.php,将会打开SKYUC的安装程序,根据页面提示,只需三步即可完成安装:

205530657.jpg

注意适当调整权限

[iyunv@nginx skyuc]# chmod -R 777 admincp/ data/ templates/ upload/


继续访问WEB应用系统:

205531719.jpg

205532373.jpg

205533668.jpg

完成安装后,注意将install/目录转移,以避免重复安装,降低安全风险。

[iyunv@nginx skyuc]# mv install install.lock

[iyunv@nginx skyuc]# chmod 600 install.lock/


这是数据库后台:

205534123.jpg

这是前台天空网络主页:

205558151.jpg

架设Discuz论坛:

建立用于bbs论坛的数据库及用户:

205558336.jpg

解压下载的软件包,上传程序文件:

205558369.jpg

在浏览器中访问http://www.benet.com/bbs/install根据向导页面的提示进行安装:

205558739.jpg

根据报错原因将php.ini 中的 short_open_tag 设置为 On,然后重启WEB服务,否则程序无法正常运行,修改后要重启nginx服务。


再次通过访问http://www.benet.com/bbs就可以访问了:

有时检测运行环境也会报错,如下:

205559624.jpg

解决方案如下(生产环境下根据实际做相应的修改):

205559950.jpg

继续安装

205559385.jpg

205624624.jpg

登录主页面:

205600399.jpg



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-7588-1-1.html 上篇帖子: nginx封禁IP--HttpLimitReqModule 下篇帖子: Nginx负载均衡

尚未签到

发表于 2013-7-21 21:56:13 | 显示全部楼层
比我有才的都没我帅,比我帅的都没我有才!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-7-25 11:31:50 | 显示全部楼层
男人偷腥时的智商仅次于爱因斯坦!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-7-25 11:31:50 | 显示全部楼层
俺从不写措字,但俺写通假字!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-7-30 07:43:07 | 显示全部楼层
男人有冲动可能是爱你,也可能是不爱,但没有冲动肯定是不爱!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-8-4 22:16:59 | 显示全部楼层
天塌下来你顶着,我垫着!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-8-10 06:00:16 | 显示全部楼层
这是什么东东啊

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表