LAMP VS LNMP

网友投稿 781 2022-05-29

LAMP  VS  LNMP

1.1 Apache与Nginx 的异同

Apache 、Nginx与Mysql+PHP搭配都可以提供一套完整的Web服务。一般简写为LAMP(Apache+Mysql+PHP)、LNMP(Nginx++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 allow,deny下面的一行修改为 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.    已获取安装apache2、myslq、php所需的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.    已获取安装apache2、php所需的源码压缩包

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、            关联apache和php

# 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 源码安装

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

前提条件

a.    已获取安装nginx、php所需的源码压缩包

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

LAMP VS LNMP

# ./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、              关联php和nginx

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

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

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

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

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

LNMP PHP Nginx LAMP

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python进阶(二十五)-Python读写文件
下一篇:如何优雅拒绝产品经理的不合理需求
相关文章