天天看點

Linux下lnmp源碼搭建

一:lnmp介紹:

LNMP代表的就是:Linux系統下Nginx+MySQL+PHP這種網站伺服器架構。

Linux是一類Unix計算機作業系統的統稱,是目前最流行的免費作業系統

Nginx是一個高性能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP代理伺服器

Mysql是一個小型關系型資料庫管理系統。

PHP是一種在伺服器端執行的嵌入HTML文檔的腳本語言。

這四種軟體均為免費開源軟體,組合到一起,成為一個免費、高效、擴充性強的網站服務系統。

二:搭建過程:

[root@lyt ~]# mkdir /mnt/cdrom

[root@lyt ~]# mount /dev/cdrom /mnt/cdrom/

[root@lyt ~]# cd /mnt/cdrom/Server/

[root@lyt Server]# vim /etc/yum.repos.d/rhel-debuginfo.repo

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568301NvYx.png"></a>

這裡需要安裝pcre正則函數庫

[root@lyt Server]# ll pcre*

[root@lyt Server]# yum list all |grep pcre       #檢視pcre的相關資訊

[root@lyt Server]# yum install pcre-devel

安裝libevent:(事件觸發的網絡庫)

[root@lyt Server]# cd

[root@lyt ~]# tar  -zxvf libevent-2.0.16-stable.tar.gz -C /usr/local/src/

[root@lyt ~]# cd /usr/local/src/

[root@lyt src]# cd libevent-2.0.16-stable/

[root@lyt libevent-2.0.16-stable]# ./configure           #檢測預編譯環境

[root@lyt libevent-2.0.16-stable]# make            #編譯

[root@lyt libevent-2.0.16-stable]# make install

[root@lyt libevent-2.0.16-stable]# vim /etc/ld.so.conf.d/libevent.conf           #編輯該檔案如圖:

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568303o3dJ.png"></a>

[root@lyt libevent-2.0.16-stable]# ldconfig –v      #手動調用庫檔案

[root@lyt libevent-2.0.16-stable]# ldconfig -pv |grep libevent         #檢視調用/usr/local/lib中的庫檔案

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568306h0DA.png"></a>

[root@lyt libevent-2.0.16-stable]# cd

Nginx安裝:

[root@lyt ~]# tar -zxvf nginx-1.0.11.tar.gz -C /usr/local/src/

[root@lyt src]# cd nginx-1.0.11/

[root@lyt nginx-1.0.11]# groupadd -r nginx          #建立系統組gninx,-r表示系統

[root@lyt nginx-1.0.11]# useradd -r -g nginx -s /bin/false -M nginx       #建立一個系統賬号nginx,加入系統組nginx,-M表示系統賬号不需要建立家目錄。使用/bin/false    ,-s表示shell。也可以使用-s  /sbin/nologin

[root@lyt nginx-1.0.11]# ./configure \

[root@lyt nginx-1.0.11]# mkdir -pv /var/tmp/nginx/client       #建立目錄。(在上個圖檔中沒有建立記錄用戶端資訊的目錄)

[root@lyt nginx-1.0.11]# make

[root@lyt nginx-1.0.11]# make install

[root@lyt nginx-1.0.11]# nginx        #啟動nginx服務

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568310nQU5.png"></a>

安裝mysql綠色軟體:

[root@lyt nginx-1.0.11]# cd

[root@lyt ~]# tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local

[root@lyt ~]# cd /usr/local

[root@lyt local]# cd mysql-5.5.15-linux2.6-i686/

[root@lyt mysql-5.5.15-linux2.6-i686]# cat INSTALL-BINARY  | less       #利用管道分頁檢視INSTALL-BINARY檔案

[root@lyt local]# groupadd mysql           #建立一個mysql組

[root@lyt local]# useradd -r -g mysql mysql           #建立一個mysql使用者,并将其加入到mysql組中

[root@lyt local]# cd /usr/local/

第四部拆封包件已經執行過,這裡不再執行

[root@lyt local]# ln -s mysql-5.5.15-linux2.6-i686/ mysql         #建立一個符号連接配接mysql,指向mysql-5.5.15-linux2.6-i686

[root@lyt local]# cd mysql

[root@lyt mysql]# chown -R mysql .        #将mysql下所有的檔案的所屬使用者全都改為mysql。

[root@lyt mysql]# chgrp -R mysql .         #将mysql下所有的檔案的所屬組全都改為mysql。

[root@lyt mysql]# scripts/mysql_install_db --user=mysql           #使用scrpts初始化腳本,用剛才建立的mysql使用者運作,安裝資料庫mysql

[root@lyt mysql]# chown -R root  .           #将所屬使用者改為root使用者

[root@lyt mysql]# chown -R mysql data         #将data目錄的所屬使用者改為mysql

[root@lyt mysql]# cp  support-files/my-medium.cnf   /etc/my.cnf

[root@lyt mysql]# bin/mysqld_safe --user=mysql &amp;         #啟動mysql

[root@lyt mysql]# netstat -tupln |less       #檢視端口号

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_13465683132GNQ.png"></a>

[root@lyt mysql]# cp   support-files/mysql.server    /etc/init.d/mysqld          #将mysql.server 拷貝到/etc/init.d/下,改名為mysqld,此指令拷貝成

功後可以使用service  mysqld restart指令。

[root@lyt mysql]# chkconfig --add mysqld      #将mysql服務加入到chkconfig中,可以使用chkconfig來管理

[root@lyt ~]# vim /etc/ld.so.conf        #檢視該檔案

[root@lyt mysql]# cd /etc/ld.so.conf.d/

由于mysql的庫檔案存在于/usr/local/mysql/lib檔案中,而系統的庫檔案存放于/usr/lib或者/lib中,是以需要建立/etc/ld.so.conf.d/mysql.conf檔案,當系統啟動時調用/usr/local/mysql/lib中的庫檔案。

[root@lyt ld.so.conf.d]# vim mysql.conf           #建立mysql.conf檔案,系統啟動時可以調用/usr/local/mysql/lib下的庫檔案

[root@lyt ld.so.conf.d]# ldconfig -v |grep mysql           #檢視mysql的系統調用

由于mysql的頭檔案存在于/usr/local/mysql/include檔案中,而系統的頭檔案存放于/usr/include中,是以需要在/usr/include中建立連接配接,當系統啟動時調用/usr/local/mysql/include中的頭檔案

[root@lyt ld.so.conf.d]# cd /usr/include/

[root@lyt include]# ln -s /usr/local/mysql/include/  mysql #建立一個字元連接配接mysql,連接配接到/usr/local/mysql/include

安裝php:

[root@lyt include]# cd

[root@lyt ~]# tar -jxvf php-5.3.7.tar.bz2 -C /usr/local/src/

[root@lyt src]# cd php-5.3.7/

[root@lyt php-5.3.7]#./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --enable-fpm  --with-libevent-dir=/usr/local --with-

mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml

--with-iconv-dir=/usr/local

[root@lyt php-5.3.7]# make   

[root@lyt php-5.3.7]# make install

[root@lyt php-5.3.7]# cp php.ini-production /usr/local/php/etc/php.ini

[root@lyt php-5.3.7]# cp  /usr/local/php/etc/php-fpm.conf.default  /usr/local/php/etc/php-fpm.conf

[root@lyt php-5.3.7]# cd /usr/local/php/etc/

[root@lyt etc]# vim php-fpm.conf        #編輯該檔案,啟用如下行

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568323N51h.png"></a>

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568325j01P.png"></a>

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568327KO1b.png"></a>

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568328UFhw.png"></a>

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_13465683318Opl.png"></a>

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_13465683330hdg.png"></a>

[root@lyt etc]# /usr/local/php/sbin/php-fpm &amp;         #啟動fastcgi

[root@lyt etc]# vim /etc/nginx/fastcgi.conf

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568336aMyY.png"></a>

保證兩個檔案相同(fastcgi.conf 和 fastcgi_params)

[root@lyt etc]# cd /etc/nginx/

[root@lyt nginx]# cat fastcgi.conf&amp;gt;fastcgi_params         #将fastcgi.conf中的内容重定向到fastcgi_params

[root@lyt nginx]# vim /etc/nginx/nginx.conf

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568338XLNZ.png"></a>

[root@lyt nginx]# cd /usr/html/

[root@lyt html]# vim index.html

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568340qyVE.png"></a>

[root@lyt html]# mv index.html index.php         #重命名

[root@lyt html]# vim /etc/nginx/nginx.conf

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568342t1rF.png"></a>

[root@lyt html]# pkill -1 nginx

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568343lMUl.png"></a>

[root@lyt html]# vim /usr/html/index.php

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568346TS7F.png"></a>

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568348FB8E.png"></a>

[root@lyt html]# /usr/local/mysql/bin/mysqladmin -u root -p password '123'           #為資料庫建立密碼

[root@lyt html]# /usr/local/mysql/bin/mysql -u root –p      #使用密碼登入資料庫

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568353EG4C.png"></a>

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568357DISp.png"></a>

<a href="http://5493845.blog.51cto.com/attachment/201209/2/5493845_1346568359DNTS.png"></a>

本文轉自 liuyatao666 51CTO部落格,原文連結:http://blog.51cto.com/5503845/980000,如需轉載請自行聯系原作者