LNMP環境的×××


LNMP環境的搭建是每個linux運維人員必會的基本技能,我習慣根據我的需求來進行精簡安裝,下面我來貼出我的搭建步驟:(linux系統就的安裝步驟就不在此敘述,略)

mysql源碼包下載地址:http://mysql.mirror.kangaroot.net/Downloads/

cmake源碼包下載地址:http://www.cmake.org/files/

步驟一:安裝nginx

在安裝nginx之前,我們需要檢查本機linux系統內是否已經安裝gcc、pcre、pcre-devel,如果沒安裝請執行 yum install gcc pcre pcre-devel。完成後我們繼續:

將nginx下載在/usr/local/src目錄下:

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

[root@localhost src]#wget http://nginx.org/download/nginx-1.2.6.tar.gz

下載完成後進行解壓安裝:

[root@localhost src]#tar zxvf nginx-1.2.6.tar.gz

[root@localhost src]#cd nginx-1.2.6

[root@localhost nginx-1.2.6]#./configure --prefix=/usr/local/nginx        (這裏需要指定pcre庫的路徑:--with-pcre=【path】因爲我們yum安裝的pcre及pcre-devel所以可以不用添加該參數,但如果我們採用的是tar包安裝,我們需指定pcre路徑,尤其注意爲源碼的路徑,不是安裝路徑。還有很多參數,因爲我的沒什麼其他需求,所以一切從簡,這裏就略去)

[root@localhost nginx-1.2.6]#make ;make install  

若整個安裝過程中無報錯,那麼我們安裝的就基本ok了;


[root@localhost nginx-1.2.6]#cd /usr/local/nginx

[root@localhost nginx]#ls

client_body_temp  fastcgi_temp  logs        sbin       uwsgi_temp

conf              html          proxy_temp  scgi_temp

下面我們可以檢測一下nginx的啓動配置文件,若無報錯就可以啓動nginx;
root@localhost nginx]#sbin/nginx -t
[root@localhost ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful  (ok成功了)
[root@localhost nginx]# sbin/nginx (直接用腳本執行啓動nginx,很多朋友習慣在/etc/rc.d/init.d/下做一個啓動腳本,然後用chkconfig nginx on把它設置爲開機啓動。我習慣直接在/etc/rc.d/rc.local文件下直接添加nginx的啓動腳本,其實效果也一樣)
[root@localhost nginx]#ps -ef |grep nginx  (查進程看nginx是否啓動成功)
root      5736     1  0 13:48 ?        00:00:00 nginx: master process sbin/nginx
nobody   20277  5736  0 15:06 ?        00:00:00 nginx: worker process
(啓動成功)
查看nginx的端口: [root@localhost nginx]#netstat -nutpl |grep nginx |grep -v grep
tcp        0      0 0.0.0.0:80                 0.0.0.0:*                   LISTEN      5736/nginx              (nginx啓動端口爲80)
nginx啓動成功後,我們在瀏覽器裏面輸入  該虛擬機ip

這樣,我們的nginx就安裝ok了。
步驟二:安裝mysql
首先我們先新建用戶mysql及用戶所屬組mysql
[root@localhost nginx]#groupadd mysql
[root@localhost nginx]#useradd  mysql -s /sbin/nologin -g mysql
下載mysql在/usr/local/src/下並進行解壓安裝:
[root@localhost nginx]#cd /usr/local/src/
[root@localhost src]#wget http://download.chinaunix.net/down.php?id=34728&ResourceID=7159&site=1 (mysql官網上面的mysql企業版現在都要收費,社區版爲rpm包;在www.chinauninx.net上有mysql的tar包,我們選擇tar安裝。)
[root@localhost src]#ls
mysql-5.0.88.tar.gz           nginx-1.2.6.tar.gz
[root@localhost src]#tar zxvf mysql-5.0.88
[root@localhost src]#cd mysql-5.0.88
[root@localhost mysql-5.0.88]#./configure --prefix=/usr/local/mysql
[root@localhost mysql-5.0.88]#make ;make install
安裝若無報錯,完成後執行:
[root@localhost mysql-5.0.88]#cd /usr/local/mysql/
[root@localhost mysql]#chown -R mysql:mysql .
[root@localhost mysql]#/usr/local/mysql/bin/mysql_intall_db --user=mysql
執行完成該步驟,會有不少提示,如執行/usr/local/bin/mysqld_safe & 來啓動mysql進程,/usr/local/mysql/mysqladmin -uroot password '新密碼'等;但在我們執行/usr/local/mysql/bin/mysql_intall_db --user=mysql後,在/usr/local/mysql下會自動生成一個var目錄,該目錄的屬主及所屬組爲root,所以我們得首先執行:
[root@localhost mysql]#chown -R mysql:mysql .
[root@localhost mysql]#bin/mysqld_safe &  (注意,如果我們已經用yum安裝過mysql,又害怕用yum remove mysql卸載會卸載多餘的包,我們需要先確認mysql進程沒有啓動,並且將/etc/my.conf移除,不然會報錯,無法啓動mysql。)
查看mysql進程及啓動端口是否爲3306,來確認mysql是否啓動成功:
[root@localhost mysql]#ps -ef |grep mysql |grep -v mysql
root       349  2865  0 13:21 pts/1    00:00:00 /bin/sh bin/mysqld_safe
mysql      367   349  0 13:21 pts/1    00:00:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/localhost.localdomain.pid --skip-external-locking
進程確認已經啓動
[root@localhost mysql]# netstat -nutpl |grep mysql
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      367/mysqld          

端口確認爲3306,這樣,我們的mysql安裝成功。



有時候mysql啓動不了,報錯如下:

有時候我們安裝的mysql不會再安裝路徑下生成var目錄,而會在/var/lib/目錄下面生成mysql目錄,/var/lib/mysql/  所以當我們啓動的時候會報錯,提示沒有/tmp/mysql/mysql.sock   。此時我們做一個軟連接即可:

ln  –s /var/lib/mysql/mysql.sock  /tmp/mysql/mysql.sock



步驟三:安裝php並整合mysql及nginx

將php源碼包下載在/usr/local/src/下並進行解壓安裝
[root@localhost mysql]#cd /usr/local/src/
[root@localhost src]#wget http://cn2.php.net/get/php-5.4.11.tar.bz2/from/this/mirror
[root@localhost src]#tar zxvf php-5.4.11.tar.gz
[root@localhost src]#cd php-5.4.11
[root@localhost php-5.4.11]#./configure --prefix=/usr/local/php\
--enable-fpm\(必須制定這個參數,執行後會生成可執行的fpm ATPI)
--with-mysql=/usr/local/mysql/\

--with-mysqli=/usr/local/mysql/bin/mysql_config\(這倆個關於mysql的參數是爲了整合mysql)

--with-gd  (php連接gd庫,要確認系統已安裝libpng跟libpng-devel包)

執行完成後,在etc目錄下午php-fpm.conf配置文件,但有一個php-fpm.conf.default配置文件,我們將其拷貝或者改名成爲php-fpm.conf,一般選擇拷貝,留default做備份文件;
[root@localhost php-5.4.11]#cp /usr/local/php/etc/php-fpm.conf.default    /usr/local/php/etc/php-fpm.conf
完成後我們可以啓動php服務,啓動服務用/usr/local/php/sbin/php-fpm 查看進程及端口就不在敘述,接下來我們整合nginx:
nginx整合php其實很簡單,在nginx的配置文件nginx.conf裏面子帶有加載php的內容,如下:
 #location ~ \.php$ {
       #    root           html;
       #    fastcgi_pass   127.0.0.1:9000;
       #    fastcgi_index  index.php;
       #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
       #    include        fastcgi_params;
       #}
我們將該段內容前端的#註釋掉,及
#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;處指定一下php程序的放置目錄即可:
 location ~ \.php$ {
           root           html;
           fastcgi_pass   127.0.0.1:9000;
           fastcgi_index  index.php;
           fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
           include        fastcgi_params;
       }
然後,我們在我們指定的php程序的放置目錄/usr/local/nginx/html/下新建一個簡單的php程序;
[root@localhost php-5.4.11]#vim /usr/local/nginx/html/phpinfo.php
<?php
phpinfo ();
?>
保存退出後,先檢查nginx的配置有無問題,無報錯即重新加載nginx:
[root@localhost php-5.4.11]#/usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
ok,無報錯;
[root@localhost php-5.4.11]#/usr/local/nginx/sbin/nginx -s reload
再次查看nginx進程及端口是否正常,確認防火牆及selinux在停止狀態,然後再我們的瀏覽器裏面輸入我們linux的ip/phpinfo.php進行訪問:

測試能否連接上Mysql

編輯/usr/local/nginx/html/index.php,添加如下內容

<?php

$link=mysql_connect('localhost','root','');

if ($link)

             echo "Successfuly";

else

             echo "Faile";

mysql_close();

?>

保存退出。

在瀏覽器中輸入   linux主機的ip/index.php,若出現以下內容,則說明我們的php可以連接到mysql上。



ok,我們的LNMP環境的簡單搭建告一段落。

如有不足望指正,萬分感謝。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章