LAMP VS LNMP

举报
云点小助手 发表于 2017/03/06 10:46:19 2017/03/06
【摘要】 Apache 、Nginx与Mysql+PHP搭配都可以提供一套完整的Web服务。一般简写为LAMP(Apache+Mysql+PHP)、LNMP(Nginx++Mysql+PHP)。

LAMP  VS  LNMP

1.1 ApacheNginx 的异同

Apache NginxMysql+PHP搭配都可以提供一套完整的Web服务。一般简写为LAMPApache+Mysql+PHP)、LNMPNginx++Mysql+PHP)。

apache适用性很强,几乎可以运行在所有的计算机平台,功能模块很多。有强大的rewrite功能,与PHP共同使用时比较简单,不需要其他服务配合使用。但是Apache处理请求时是同步、阻塞型的,一个连接对应一个进程,所以CPU、内存消耗大,并发性能较差。

Nginx则是轻量级、异步、非阻塞型的web服务,多连接可以对应一个进程,因此CPU、内存消耗小,并发性能高,处理静态请求能力很强。Nginx的配置也很简单,但rewrite功能不敌apache,在稳定性、安全性方面也有所欠缺。

如今很多公司开始采用nginx代替apache,或者用nginx处理静态请求,让apache处理动态请求。

1.2 部署LAMP

1.2.1 镜像安装

前提条件

a.    已获取安装操作系统的iso镜像文件,以suse11sp3为例:

SLES-11-SP3-DVD-x86_64-GM-DVD1.iso

b.    服务器已安装GCC编译器

c.    服务器未安装过php,否则请确保对已安装php清理干净

安装Web Server

# mkdir /opt/iso

# mount –o loop /opt/SLES-11-SP3-DVD-x86_64-GM-DVD1.iso /opt/iso/

# zypper ar /opt/iso suse11sp3

# zypper install apache2

# zypper install mysql

# zypper install php53 php53-mysql apache2-mod_php53 php53-zlib libxml2 libmm14 libmcrypt php53-mcrypt php53-curl php53-gd

修改配置文件

1、     配置rewrite# vi /etc/sysconfig/apache2

APACHE_MODULES加入"rewrite"字段:

2、     执行命令:# SuSEconfig

3、     打开配置文件:# vi /etc/apache2/default-server.conf

a.  Options None 修改为 Options FollowSymLinks

b.  AllowOverride None 修改为 AllowOverride All

c.  Order allowdeny下面的一行修改为 Allow from all

d.    修改WebServer根路径,所有网页将默认从此路径下访问

4、     启动Mysql

5、     重启Apache

1.2.1 安装操作系统时同步安装

在进入Software选项页面后,点击进入,勾选“Web and LAMP Server”和“C/C++ Compiler and Tools”,如下图:

这种方式安装Web Server,可能还需要安装一些php的相关组件。装完系统后借助镜像安装即可,可参考1.2.1章节。

 

1.2.2 rpm安装

前提条件

a.    已获取安装apache2myslqphp所需的rpm

b.    服务器已安装GCC编译器

c.    服务器未安装过php,否则请确保对已安装php清理干净

安装apache2

# rpm -ivh libapr1-XXX.rpm

# rpm -ivh libapr-util1-XXX.rpm

# rpm -ivh apache2-XXX.rpm

# rpm –ivh apache2-prefork- XXX.rpm

安装mysql

# rpm -ivh mysql-shared-XXX.rpm

# rpm -ivh mysql-client-XXX.rpm

# rpm -ivh perl-Data-ShowTable-XXX.rpm

# rpm -ivh perl-DBD-mysql-XXX.rpm

# rpm -ivh mysql-XXX.rpm

安装php

# rmp -ivh libmm14-XXX.rpm

# rpm -ivh php53-XXX.rpm

# rpm -ivh apache2-mod_php53-XXX.rpm

# rpm -ivh php53-mysql-XXX.rpm

# rpm -ivh php53-zlib-XXX.rpm

# rpm -ivh php53-curl-XXX.rpm

# rpm -ivh libmcrypt-XXX.rpm

# rpm -ivh libmxml2-XXX.rpm

# rpm -ivh php53-mcrypt-XXX.rpm

# rpm -ivh php53-gd-XXX.rpm

修改配置文件

参考1.2.1章节

 

1.2.3 源码安装

前提条件

a.    已获取安装apache2php所需的源码压缩包

b.    服务器已安装GCC编译器

c.    服务器未安装过php,否则请确保对已安装php清理干净

安装apache2

1、            安装APR apr-1.4.6.tar.gz

# tar -zxf apr-1.4.6.tar.gz 

# cd apr-1.4.6

# ./configure --prefix=/usr/local/apr 

# make 

# make install 

2、            安装APR-util apr-util-1.4.1.tar.gz

# tar -zxf apr-util-1.4.1.tar.gz 

# cd apr-util-1.4.1

# ./configure --prefix=/usr/local/apr-util --with-apr = /usr/local/apr/bin/apr-1-config 

# make 

# make install 

3、            安装PCRE pcre-8.30.zip

# unzip -o pcre-8.30.zip 

# cd pcre-8.30

# ./configure --prefix=/usr/local/pcre 

# make 

# make install 

4、            安装Apache2 httpd-2.4.2.tar.gz

# tar -zvxf httpd-2.4.2.tar.gz 

# cd httpd-2.4.2

# ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre/ 

# make

# make install

5、            修改服务端口、服务名、根路径等,确保端口未被其他服务占用

# vi /usr/local/apache2/conf/httpd.conf

6、            启动apache2

# /usr/local/apache2/bin/apachectl start 

# netstat –anp | grep 80  

安装mysql

mysql通过rpm包安装即可,安装结束后需启动mysql服务。

安装php

1、            安装Zlib zlib-1.2.5.tar.gz

# tar -zxvf zlib-1.2.5.tar.gz

# cd  zlib-1.2.5

# ./configure --prefix=/usr/local/zlib/

# make 

# make install

2、            安装gd gd-2.0.33.tar.gz

# tar -zxvf gd-2.0.33.tar.gz

# cd  gd-2.0.33

# ./configure --prefix=/usr/local/gd/ --with-zlib=/usr/local/zlib/

# make 

# make install

3、            安装Curl curl-7.19.4.tar.gz

# tar -zxvf curl-7.19.4.tar.gz 

# cd curl-7.19.4

# ./configure --prefix=/usr/local/curl/ 

# make 

# make install

4、            安装Libxml libxml2-2.7.7.tar.gz

# tar -zxvf libxml2-2.7.7.tar.gz 

# cd libxml2-2.7.7

# ./configure --prefix=/usr/local/libxml2 --with-zlib=/usr/local/zlib/ 

# make 

# make install

5、            安装PHP php-5.3.10.tar.gz

# tar -zxvf php-5.3.10.tar.gz 

#  ./configure --prefix=/usr/local/php/ --with-libxml-dir=/usr/local/libxml2/ --with-gd=/usr/local/gd/  --with-zlib-dir=/usr/local/zlib/ --with-curl=/usr/local/curl/

 

修改配置文件

1、            拷贝php.ini文件

# cp php-5.3.10/php.ini-production /usr/local/php/lib/php.ini 

2、            关联apachephp

# vi /usr/local/apache2/conf/httpd.conf

AddType application/x-gzip .gz .tgz 后面插入如下内容

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

3、        重启apache2

# /usr/local/apache2/bin/apachectl restart

1.3 部署LNMP

1.3.1 源码安装

NginxPHP并不能直接做关联,需要通过fastcgi网关接口来进行通信,因此安装LNMPNginx+Mysql+PHP)就需要通过源码方式安装php-fastcig的管理器php-fpm

前提条件

a.    已获取安装nginxphp所需的源码压缩包

b.    服务器已安装GCC编译器

c.    服务器未安装过php,否则请确保对已安装php清理干净

安装nginx

1、        安装zlib zlib-1.2.7.tar.gz

# tar zlib-1.2.7.tar.gz

# cd zlib-1.2.7

# ./configure --prefix=/usr/local/zlib/

# make

# make install

2、            安装nginx nginx-1.6.2.tar.gz

# tar nginx-1.6.2.tar.gz

# cd nginx-1.6.2

# ./configure --prefix=/usr/local/nginx --without-http_rewrite_module

# make

# make install

3、              修改nginx服务端口等

nginx默认使用80服务端口,如果此端口号已经被其他服务占用,或者规划其他端口提供http服务,在此处进行修改即可。server_name设为nginx所在服务器的IP地址,location是提供http服务的存储根路径,建议放在数据盘下。

# vi /usr/local/nginx/conf/nginx.conf

4、              启动Nginx服务

# cd /usr/local/nginx/sbin

# ./nginx

 

启停服务其他命令:

# ./nginx -s reload

# ./nginx -s stop

 

安装php

1、              安装Fpm  php-fpm-0.6-103-5.3.1.tar.gz

# tar -zxvf php-fpm-0.6-103-5.3.1.tar.gz

# cd  php-fpm-0.6-103-5.3.1

# ./configure --prefix=/usr/local/fpm 

# make 

# make install

2、              安装Libxml libxml2-2.7.7.tar.gz

# tar -zxvf libxml2-2.7.7.tar.gz 

# cd libxml2-2.7.7

# ./configure --prefix=/usr/local/libxml2 --with-zlib=/usr/local/zlib/ 

# make 

# make install

3、              安装PHP php-5.3.10.tar.gz

# tar -zxvf php-5.3.10.tar.gz 

# cd php-5.3.10

# ./configure --prefix=/usr/local/php/ --with-libxml-dir=/usr/local/libxml2/ --with-zlib-dir=/usr/local/zlib/ --enable-fastcgi --enable-fpm

# cp php.ini-production /usr/local/php/etc/php.ini

# mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

# /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini

 

修改配置文件

1、              修改nginx服务端口、服务名、根路径等

# vi /usr/local/nginx/conf/nginx.conf

2、              关联phpnginx

# vi /usr/local/nginx/conf/nginx.conf

       Nginx+PHP Apache+PHP不同,只需要在Apache侧做PHP关联即可,而NginxPHP则分别需要在两边做关联,PHP侧就是通过php-fpm管理器来实现的。如果需要修改fastcgi9000端口为其他端口,则要同时修改nginxphp-fpm的配置文件

#vi /usr/local/php/etc/php-fpm.conf

# vi /usr/local/nginx/conf/nginx.conf

 

作者 | 谷娟

转载请注明出处:华为云博客 https://portal.hwclouds.com/blogs

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200