设为首页 收藏本站
查看: 1398|回复: 0

企业WEB服务器LNMP详解

[复制链接]
累计签到:13 天
连续签到:1 天
发表于 2015-11-16 13:35:47 | 显示全部楼层 |阅读模式
      部署LNMP和部署LAMP方法是一样的,只不过是WEB服务器软件换了而已,这里使用的WEB服务器软件就是一篇文章中所部署的Nginx,所谓的LNMP也就是Linux+Nginx+Mysql+PHP。之所以使用LNMP是因为它是一个高性能的动态网站平台,在某些领域比LAMP还要出色,那么接下来我们就来部署一下LNMP环境吧。

  部署环境:
  操作系统:rhel6.0_x64
  Nginx:nginx-1.0.8.tar.gz
  Mysql:mysql-5.1.55.tar.gz
  PHP:php-5.3.6.tar.gz
  

  部署LNMP一共分为以下几个步骤:
  一、安装Linux
  这个大家都会,就不啰嗦了,不会的可以参考作者相关文章,有详细介绍。
  

  二、安装Nginx
  作者上一篇文章就详细介绍了如何安装Nginx,大家如果不会的可以参考作者上一篇文章,作者这里就不在详细叙述了。
  

  三、安装Mysql数据库
  1、编译安装Mysql
[iyunv@web /]#tar zxf /usr/src/mysql-5.1.55.tar.gz
[iyunv@web /]#cd /usr/src/mysql-5.1.55
[iyunv@web mysql-5.1.55]#./configure --prefix=/usr/src/mysql --with-charset=utf8 --with-collation_general_ci --with-extra-charsets=gbk,gb2312
[iyunv@web mysql-5.1.55]#make && make install  
  注意:上述配置参数解释如下:
  --with-charset:指定默认使用的字符集编码;
  --with-collation:指定默认使用的字符集校对规则,utf8_general_ci是适用于UTF-8字符集的通用规则;
  --with-extra-charsets:指定额外支持的其他字符集编码。
  
  2、优化调整Mysql服务:
  
[iyunv@web mysql-5.1.55]#cp -p support-files/my-medium.cnf /etc/my.cnf
[iyunv@web mysql-5.1.55]#cp support-files/my-server /etc/init.d/mysqld
[iyunv@web mysql-5.1.55]#chmod a+x /etc/init.d/mysqld
[iyunv@web mysql-5.1.55]#ln -s /usr/local/mysql/bin/* /usr/local/bin/
[iyunv@web mysql-5.1.55]#ln -s /usr/local/mysql/lib/mysql/* /usr/lib/
[iyunv@web mysql-5.1.55]#ln -s /usr/local/mysql/include/mysql/* /usr/include/  
  3、创建Mysql用户以及初始化Mysql数据库:
  
[iyunv@web mysql-5.1.55]#useradd -M -u 27 -s /sbin/nologin mysql
[iyunv@web mysql-5.1.55]#cd /usr/local/mysql/bin
[iyunv@web bin]#./mysql_install_db --user=mysql
[iyunv@web bin]#chown -R root:mysql /usr/local/mysql/
[iyunv@web bin]#chown -R mysql /usr/local/mysql/var/  

  4、启动Mysql服务,并为root用户设置密码
[iyunv@web bin]#service mysqld start
[iyunv@web bin]#mysqladmin -u root -p password ‘pwd@123’  

  四、安装PHP解析环境
      较新版本(如5.3)的PHP已经自带FPM(fastCGI  process  manager,FastCGI进程管理器)模块,用来对PHP解析实例进行管理,优化解析效率,因此在配置PHP编译选项时应添加”--enable-fpm”以启用此模块。为了提高PHP解析效率,建议将相应版本的ZendGuardLander也装上。
  1、解压并配置PHP
  
[iyunv@web /]#tar zxf /usr/src/php-5.3.6.tar.gz
[iyunv@web /]#cd /usr/src/php-5.3.6
[iyunv@web php-5.3.6]#./configure --prefix=/usr/local/php5 --with-gd --with-zlib -with-mysql=/usr/local/mysql --with-config-file=/usr/local/php5 --enable-mbstring --enable-fpm  注意:配置如果“configure:error: libpng.(a|so) not found.”错误。
  解决方法:

  根据报错发现是因为libpng.solibpng.a找不到,检查libpng的相关软件是否已经安装,如果已安装,需要将“/usr/lib64/libpng*”库文件拷贝到“/usr/lib”下。执行如下命令:
[iyunv@web /]#cp -frp /usr/lib64/libpng* /usr/libyuanyi  原因:因为configure一般的搜索编译路径为/usr/lib/下,而x64位的系统默认在“/usr/lib64”下,因此需要拷贝到“/usr/lib”目录下。
  如果报configure: error: libjpeg.(a|so) not found错误解决方法和上面的解决方法类似。
  2、编译安装PHP,并配置安装后的调整
  
  
[iyunv@web php-5.3.6]#make && make install
[iyunv@web php-5.3.6]#cp php.ini-development /usr/local/php5/php.ini
[iyunv@web php-5.3.6]#ln -s /usr/local/php5/bin/* /usr/loacl/bin
[iyunv@web php-5.3.6]#ln -s /usr/local/php5/sbin/* /usr/local/sbin  3、安装ZendGuardLander
  注:若RHEL664位系统,该软件得到其官网下载64位的相应软件包,若用32位的就会报错。下载地址:http://www.zend.com/en/products/guard/downloads
  
[iyunv@web /]#tar zxf /usr/src/ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz
[iyunv@web /]#cd ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x/
[iyunv@web /]#cp ZendGuardLoader.so /usr/local/php5/lib/php/  修改php.ini文件,添加如下内容
  
[iyunv@web /]#vim /usr/local/php5/php.ini
...//省略部分内容
zend_extension=/usr/local/php5/lib/php/ZendGuarLoader.so
zend_loader.enable=1  4、配置Nginx支持PHP环境
  
      若要让Nginx能够解析PHP网页,有两种方法可以选择;其一,充当中介,将访问PHP页面的WEB请求转交给其他服务器(LAMP)去处理;其二,通过使用PHPFPM模块来调用本机的PHP环境,在此作者选择后者。
  
      如果选用FPM方式,则需要先启动php-fpm进程,以便监听PHP解析请求。参考范例建立php-fpm.conf配置文件,并修改其中的PID文件、运行用户、服务数(进程数量)等相关设置,然后启动php-fpm程序即可(默认监听本机的9000端口)
  
[iyunv@web /]#cd /usr/local/php5/etc/
[iyunv@web etc]#cp php-fpm.conf.default php-fpm.conf
[iyunv@web etc]#vim php-fpm.conf
...//省略部分内容                 #修改如下内容
pid = run/php-fpm.pid
user = nginx
group = nginx
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35  修改完成后,启动php-fpm,并查看地址监听。
[iyunv@web /]#/usr/local/sbin/php-fpm
[iyunv@web /]#netstat -anpt | grep php-fpm  5、修改nginx启动脚本,使php-fpm随nginx启动而启动
  

  
  
[iyunv@web /]#vim /etc/init.d/nginx
#!/bin/bash
# chkconfig: 2345 99 20
# description: Nginx service Control Script
cmd="/usr/local/naginx/sbin/nginx"
pid="/usr/local/nginx/logs/nginx.pid"
fpm_cmd="/usr/local/sbin/php-fpm"      #添加php-fpm
fpm_pid="/usr/local/php5/var/run/php-fpm.pid"    #添加php-fpm.pid
case "$1" in
start)
$cmd
$fpm_cmd      #添加fpm_cmd
;;
stop)
kill -s QUIT $(cat $pid)
kill -s QUIT $(more $fpm_pid)   #添加fpm_pid
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $pid)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac  这样一来,一旦启动或关闭nginx服务,php-fpm程序也会随之启动或关闭,不需要额外再启动或关闭php-fpm。

  6、配置Nginx支持PHP解析
  
      无论是将PHP页面交给LAMP服务器去解析,还是调用本机的php-fpm进程进行解析,都需要在”server{}”配置段中添加location设置,以便指定当访问.php面页时采取何种操作。
  方法一:转交给其他WEB服务器处理,例如:交给IP地址为192.168.0.200LAMP服务器处理,从而实现由Nginx负责静态页面,LAMP负责动态页面的分离效果。
  
  
  
server  {
…… //省略部分信息
location  ~  \.php$  {                       //访问.php页面的配置段
proxy_pass   http://192.168.0.200:80;  //APACHE服务器的监听地址
}
}  上面这种写法只是发送以.php为后缀的页面访问请求给其他WEB服务器,如果有其格式的文件访问(如:htmljpg等)就会出问题。访问不了了。

  方法二:调用本机的php-fpm进程,使用的配置语句如下所示。在conf/目录下的fastcgi.conf文件中已经包含必需的宏设置,可通过include语句添加进来。
server  {
…… //省略部分信息
location  ~  \.php$ {                //访问php页面的配置段
root    /var/www/benet;        //PHP网页文档根目录
fastcgi_pass  127.0.0.1:9000;  //php-fpm的监听地址
fastcgi_index  index.php;      //PHP首页文件
include   fastcgi.conf;        //包括fastcgi.conf样本配置
}
}  本文档中作者选择的是第二种方法,完成修改后重新加载nginx服务即可生效。
  作者Nginx配置文中整个server段的配置内容如下:
  
server {
listen 80;
server_name www.benet.com;
charset utf-8;
access_log logs/benet.access.log main;
location /{
root /var/www/benet/;
index index.html index.php;
}
location ~ \.php$ {
root /var/www/benet;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
}
[iyunv@web /]service nginx restart  7、添加一个测试网页,检测是否支持PHP解析

  
      在PHP文档根目录下创建一个测试网页,以便测试PHP语名能否正常解析,以及能否访问MYSQL数据库。测试页内容如下:
  
  
[iyunv@web /]vim /var/www/benet/index.php
<?php
$link=mysql_connect('localhost','root','pwd@123');
if($link) echo "sucess!!!";
mysql_close();
?>  8、访问测试网页,看看是否连接成功。


DSC0000.jpg
      至此LNMP换机已经搭建完成了,现在还流行一种WEB平台的搭建方法,叫做LNMMP。它是结合Memcached缓存系统实现高效的用户访问效率的WEB服务器解决方案。大家有兴趣可以自己去研究研究。

  

  

  

  
  
  本文出自 “邓奇的Blog” 博客,请务必保留此出处http://dengqi.blog.iyunv.com/5685776/1291010
   
版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 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-139959-1-1.html 上篇帖子: LNMP一键安装环境 wordpress后台部分页面出现502解决办法 下篇帖子: LNMP CentOS 6.x fastcgi spawn-fcgi v1
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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