LNMP的源碼搭建

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.tarhttp://www.php.net), nginx-1.1.18.tarhttp://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環境。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章