LNMP簡介:
LNMP代表的就是:Linux系統下Nginx+MySQL+PHP這種網站服務器架構。Linux是一類Unix計算機操作系統的統稱,是目前最流行的免費操作系統。代表版本有:debian、centos、ubuntu、fedora、gentoo等。 Nginx是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP代理服務器。 Mysql是一個小型關係型數據庫管理系統。 PHP是一種在服務器端執行的嵌入HTML文檔的腳本語言。 這四種軟件均爲免費開源軟件,組合到一起,成爲一個免費、高效、擴展性強的網站服務系統。
Nginx是一個小巧而高效的Linux下的Web服務器軟件,是由 Igor Sysoev 爲俄羅斯訪問量第二的 Rambler 站點開發的,已經在一些俄羅斯的大型網站上運行多年,相當的穩定。Nginx性能穩定、功能豐富、運維簡單、處理靜態文件速度快且消耗系統資源極少。作爲 Web 服務器:相比 Apache,Nginx 使用更少的資源,支持更多的併發連接,體現更高的效率。作爲負載均衡服務器:Nginx 既可以在內部直接支持 Rails 和 PHP,也可以支持作爲 HTTP代理服務器對外進行服務。
LNMP源碼搭建
所需源碼:
php-5.4.0.tar(http://www.php.net), nginx-1.1.18.tar(http://www.nginx.org),mysql-5.0.95.tar(http://www.mysql.com)
linux版本爲企業版5.4,ip地址192.168.101.22
首先編輯yum,在/etc/yum.repos.d/目錄下編輯rhel-debuginfo.repo(我們使用的是本地yum):
建立光盤掛載點/mnt/cdrom,將光盤掛載上面mount /dev/cdrom /mnt/cdrom。
用yum grouplist來查看開發環境所用的組,其中開發環境所需的有:開發庫Development Librarity 、開發工具 Development Tools、
需安裝pcre-devel指令爲:yum install pcre-devel
下面開始安裝源碼
一、 編譯安裝nginx-1.1.18
1、添加nginx系統組和用戶
groupadd -r nginx
useradd -r -g nginx -s /bin/false -M nginx
2、編譯
[root@Eleven ~]# tar -zxvf nginx-1.1.18.tar.gz -C /usr/src/
[root@Eleven ~]# cd /usr/src/nginx-1.1.18/
./configure \
--prefix=/usr \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/nginx/client/ \
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi \
--with-pcre
說明:--prefix=/usr 軟件安裝目錄
--sbin-path=/usr/sbin/nginx 軟件的二進制文件目錄
--conf-path=/etc/nginx/nginx.conf 軟件的配置文件目錄
--error-log-path=/var/log/nginx/error.log 錯誤日誌
--http-log-path=/var/log/nginx/access.log 訪問日誌
--pid-path=/var/run/nginx/nginx.pid 軟件的進程號文件
--lock-path=/var/lock/nginx.lock 軟件的鎖文件nginx.lock路徑
--user=nginx 指定所屬用戶
--group=nginx 指定所屬組
--with-http_ssl_module 添加了ssl模塊支持
--with-http_flv_module 添加了flv模塊支持
--with-http_stub_status_module
--with-http_gzip_static_module 添加了靜態壓縮模塊支持
--http-client-body-temp-path=/var/tmp/nginx/client/ http 客戶端請求臨時文件的存放路徑
--http-proxy-temp-path=/var/tmp/nginx/proxy/ 代理訪問的臨時文件存放路徑
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ fastcgi 臨時文件存放路徑
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi
--http-scgi-temp-path=/var/tmp/nginx/scgi
3、安裝
make && make install
mkdir -pv /var/tmp/nginx/client
[root@Eleven nginx-1.1.18]# nginx
查看端口
[root@Eleven nginx-1.1.18]# netstat -tupln |grep nginx
測試:
二、 編譯安裝mysql
如果沒有安裝ncurses-devel首先安裝解決依賴關係,指令:yum -y install ncurses-devel
創建MySQL用戶,指令:useradd -M -s /sbin/nologin mysql
[root@Eleven ~]# tar -zxvf mysql-5.0.95.tar.gz -C /usr/src/
[root@Eleven ~]# cd /usr/src/mysql-5.0.95/
./configure \
--prefix=/usr/local/mysql \
--without-debug \ # 取消調試模式提高性能
--with-extra-charsets=utf8,gbk \ # 僅僅指定需要的默認字符集提高性能
--enable-assembler \ # 使用匯編模式提高性能
--with-mysqld-ldflags=-all-static \ # 以靜態方式編譯提高性能
--with-client-ldflags=-all-static \
--with-unix-socket-path=/tmp/mysql.sock \ # 使用unix socket提高性能
--with-ssl
回車
然後執行:make && make install
安裝完成後複製配置文件和啓動腳本:
cp support-files/my-medium.cnf /etc/my.cnf # 複製配置文件
cp support-files/mysql.server /etc/init.d/mysqld # 複製啓動腳本
chmod +x /etc/init.d/mysqld # 給啓動腳本執行權限
ln -s /usr/local/mysql/bin/* /usr/local/bin/ # 爲可執行的二進制文件做軟連接
ln -s /usr/local/mysql/lib/mysql/lib* /usr/lib/ # 爲動態鏈接庫做一個軟連接
mysql_install_db --user=mysql # 用MySQL用戶安裝數據庫
chown -R root.mysql /usr/local/mysql/ # 更改安裝目錄屬主爲root,屬組爲mysql
chown -R mysql.mysql /usr/local/mysql/var/ # 更改數據庫目錄屬主和屬組都爲mysql
然後啓動mysql
測試:
可知mysql已成功安裝
三、編譯安裝PHP
在安裝php之前首先解決依賴關係,需安裝幾個源碼包:
(1)、libmcrypt-2.5.8.tar.bz2,下載地址:
[root@Eleven ~]# tar -jxvf libmcrypt-2.5.8.tar.bz2 -C /usr/src/
[root@Eleven ~]# cd /usr/src/libmcrypt-2.5.8/
[root@Eleven libmcrypt-2.5.8]# ./configure
[root@Eleven libmcrypt-2.5.8]# make && make install
(2)、mhash-0.9.9.9.tar.bz2 下載地址:
[root@Eleven ~]# tar -jxvf mhash-0.9.9.9.tar.bz2 -C /usr/src/
[root@Eleven ~]# cd /usr/src/mhash-0.9.9.9/
[root@Eleven mhash-0.9.9.9]# ./configure
[root@Eleven mhash-0.9.9.9]# make && make install
這兩個包安裝完成後要把動態鏈接庫做一個軟連接到/usr/lib,以爲接下來的mcrypt依賴於這兩個包
ln -s /usr/local/lib/libmcrypt* /usr/lib
ln -s /usr/local/lib/libmhash.* /usr/lib/
(3)、mcrypt-2.6.8.tar.gz,下載地址:
[root@Eleven ~]# tar -zxvf mcrypt-2.6.8.tar.gz -C /usr/src/
[root@Eleven ~]# cd /usr/src/mcrypt-2.6.8/
[root@Eleven mcrypt-2.6.8]# ./configure
[root@Eleven mcrypt-2.6.8]# make && make install
下面安裝php
首先解決依賴,指令:
yum –y install libxml2-devel curl-devel libpng-devel openldap-devel
[root@Eleven ~]# tar -zxvf php-5.4.0.tar.gz -C /usr/src/
[root@Eleven ~]# cd /usr/src/php-5.4.0/
[root@Eleven php-5.4.0]#./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql/ --with-zlib --enable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --with-curl --with-curlwrappers --enable-fpm --enable-fastcgi --with-mcrypt --with-gd --with-openssl --with-mhash --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc -enable-zip --enable-soap
[root@Eleven php-5.4.0]# make && make install
到這裏整個LNMP已經安裝完成.下面我們就配置php和nginx能運行php網站:
首先爲php創建配置文件,指令:
(1)cp php.ini-production /usr/local/php/php.ini # 如果是開發就複製php.ini-development
(2)cp /usr/local/php/etc/php-fpm.conf.default
/usr/local/php/etc/php-fpm.conf
(3)ln -s /usr/local/php/bin/php /usr/bin/
然後配置php-fpm,編輯php-fpm.conf
[root@Eleven php-5.4.0]# vim /usr/local/php/etc/php-fpm.conf
修改143行:如下
啓動php-fpm:
mkdir /var/run/php-fpm
/usr/local/php/sbin/php-fpm (一定要執行,否則不能成功)
[root@Eleven local]# cd /etc/nginx/
[root@Eleven nginx]# vim nginx.conf
增加下面幾行
修改完畢後保存退出重啓nginx:
[root@Eleven nginx]# pkill -1 nginx
然後在/usr/html/下創建index.php
[root@Eleven nginx]# vim /usr/html/index.php
寫入如下內容;
測試:用瀏覽器訪問http://192.168.101.22/index.php
可以看到已成功連接php。
然後在進行測試php連接mysql,繼續編輯index.php頁面,內容改爲:
測試結果爲:
可以看到php與mysql以成功連接。
至此我們已經搭建好了LNMP環境。