LAMP環境跟LNMP環境有什么不同,主要用什么地方
922
2025-03-31
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
# ./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小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。