1. 程式人生 > >Linux(CentOS6.x)下使用yum軟體管理工具安裝LNMP(Nginx+PHP+Mysql)環境並配置虛擬主機vhost

Linux(CentOS6.x)下使用yum軟體管理工具安裝LNMP(Nginx+PHP+Mysql)環境並配置虛擬主機vhost

 前言:之前本小生也嘗試過原始碼安裝,即在官網下載nginx,php,mysql的tar包然後手工一步一步的搭建,但是期間發現,每個軟體在linux環境執行時都需要大量的依賴包,比如nginx需要gcc等,php需要pcre等,都需要逐個的去官網找安裝包安裝,比較麻煩和繁瑣,尤其是在安裝前執行配置環境變數./configure 時,稍不留神或者之前少安裝了某個依賴包,那就是頻繁的報錯和除錯了,對於有時間做研究來說是可以提高經驗和熟知原理,但是在工作重心放在開發上,想要快速搭建環境來講,還是推薦大家使用CentOS自帶的yum軟體管理工具來實現,比較方便快捷,下面我們來搭建環境:

1準備工作:

 關閉防火牆 (老百姓專用),執行

  1. chkconfig iptables off  

 配置CentOS 6.x 第三方yum源(CentOS預設的標準源裡沒有nginx軟體包),第三方軟體源很多,我選用的是atomic軟體源,當然還有其他輸入Adobe等很多軟體源可選。

 首先安裝atomic軟體源的指令碼,找一個下載存放的目錄,我的是 /usr/local/src 執行:

  1. cd /usr/local/src  

然後下載atomic指令碼,執行:
  1. wget http://www.atomicorp.com/installers/atomic  

下載後執行這個指令碼,給yum新增atomic源的軟體支援,執行:
  1. sh ./atomic  

執行後可以執行一下 yum 

check-update 來看看是否需要有更新的軟體,執行:

  1. yum check-update  


執行過後,我們來安裝Nginx所必要的依賴包和環境,依靠yum的話只要輸入對軟體名稱,yum全搞定,執行:

  1. yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel gcc gcc-c++ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2 libxml2-devel imake autoconf automake screen sysstat compat-libstdc++-33 curl curl-devel  

如果你不確定你的主機是否之前裝了環境,可以先解除安裝一下,這裡給出yum解除安裝方法,如果是原始碼安裝的話需要逐個解除安裝,yum解除安裝的話執行:
  1. yum remove nginx  
  2. yum remove mysql  
  3. yum remove php  

2 安裝 Nginx

下面安裝Nginx,由於前邊已經做好準備,後邊很簡單的執行:

  1. yum install nginx  

一切自動安裝完後,啟動Nginx的服務:
  1. service nginx start  

如需系統開機啟動則執行:
  1. chkconfig --levels 235 nginx on  

這裡設定了linux下235級別啟動

3 安裝 Mysql

執行:

  1. yum install mysql mysql-server mysql-devel  

安裝啟動mysql
  1. service mysqld start  

設定開機啟動:
  1. chkconfig --levels 235 mysqld on  

由於Mysql預設安裝後的賬號密碼均為root,你可能需要修改密碼,執行
  1. mysql -h localhost -u root  

輸入預設密碼root(有的沒有預設密碼,直接回車)

執行sql語句來修改mysql密碼,也可以修改配置檔案,這裡修改密碼的sql語句為:

  1. update mysql.user set password = PASSWORD('*********') where user='root';  
  2. flush privileges;  

4安裝PHP

首先安裝PHP需要依賴的環境,依舊是直接yum安裝,執行:

  1. yum install php lighttpd-fastcgi php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap   

然後安裝php,執行:
  1. yum install  php-tidy php-common php-devel php-fpm php-mysql  

安裝成功後啟動,執行:
  1. service php-fpm start  

這裡我裝的是php5.4以上的版本,所以啟動fpm。

設定開機啟動

  1. chkconfig --levels 235 php-fpm on  

到此,Nginx,PHP,Mysql已經都安裝完畢並且開始運行了,由於yum軟體管理工具都是選取列入軟體的最穩定版本(注意並不是老舊的版本,軟體源會更新到最新的穩定版)來安裝到你的機器上,也就是說軟體的版本在你安裝的時候不會被選擇,而是yum給你安哪個就是哪個,如果需要最新版則需要手工去更新rpm管理包,但是yum所下載的最穩定版本已經基本夠線上建站,工作,學習使用了,下面我們來配置使Nginx支援PHP

首先備份一下Nginx配置檔案,並使用預設的配置檔案,依次執行:

  1. mv /etc/nginx/nginx.conf /etc/nginx/nginx.confbak  
  2. cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf  

之後修改nginx配置檔案,新增fastcgi支援(使Nginx可以解析PHP指令碼,有時遇到雖然路徑配對了,但是不顯示php頁面卻把頁面給下載了,就是這塊沒起作用),執行:
  1. vim /etc/nginx/nginx.conf  

開啟後在server作用域括號內找到index  index.html index.htm;這行,在後邊新增上index.php,這樣可以預設找到php檔案的首頁,之後找到被註釋了的FastCGI作用域,然後把前邊註釋符號#去掉,類似:
  1. location ~ \.php$ {  
  2.     root           /www;  
  3.     fastcgi_pass   127.0.0.1:9000;  
  4.     fastcgi_index  index.php;  
  5.     fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;  
  6.     include        fastcgi_params;  
  7. }  

注:root引數是你網站的根目錄,我設定的是根目錄下的www目錄

之後,最好修改一下php的系統時間,也就是差八小時那個問題,並設定一下cgi.fix_pathinfo = 1 來防止壞蛋用二進位制程式碼通過php上傳來惡意搞你,可以訪問 :

  1. vi /etc/php.ini  

來設定

最後,重啟Nginx和php-fpm來更新我們的配置,執行:

  1. service nginx restart && service php-fpm restart  

現在,我們就可以執行php檔案了,在你的根目錄下,建立一個index.php檔案,裡面輸出phpinfo()函式,然後通過主機ip,我這裡是http://10.3.130.46/index.php,訪問,如果出現正確的輸出,證明環境搭建完畢。

在開發和學習中,我們可能需要很多的虛擬主機來安置不同的網站和開發任務,yum安裝後搭建虛擬主機的方法如下:

訪問:

  1. cd /etc/nginx  

在這個資料夾下建立一個vhost資料夾,執行:
  1. mkdir vhost  

然後在這個目錄內建立一個你的虛擬站點的配置檔案,我這裡起名叫www.test.com.conf,執行:
  1. vim vhost/www.test.com.conf  

開啟後加入這個虛擬站點的基本配置,根目錄(之前在/www下建好test目錄)和php支援等,如下:
  1. server  
  2.         {         
  3.                 listen       80;  
  4.                 server_name www.test.com;  
  5.                 index index.php index.html;  
  6.                 root  /www/test;  
  7.                 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$  
  8.                         {         
  9.                                 expires      30d;  
  10.                         }  
  11.                 location ~ .*\.(js|css)?$  
  12.                         {         
  13.                                 expires      12h;  
  14.                         }  
  15.                 location /  
  16.                 {         
  17.                         try_files $uri $uri/ /index.php$is_args$args;  
  18.                 }  
  19.                 location ~ \.php$  
  20.                 {         
  21.                         try_files $uri =404;  
  22.                         fastcgi_pass  127.0.0.1:9000;  
  23.                         fastcgi_index index.php;  
  24.                         include fcgi.conf;  
  25.                 }  
  26.                 access_log  /var/log/www.test.com.log;  
  27.         }  

儲存完畢後,我們需要在nginx主配置檔案nginx.conf中引入vhost內的配置檔案,執行:
  1. vim /etc/nginx/nginx.conf  

在http作用域括號內,server作用域括號外,我這裡選擇了放在server結束大括號下邊,新增
  1. include vhost/*.conf;  

儲存,之後重啟nginx,執行:
  1. service nginx restart  

在本機綁定了host之後,瀏覽器訪問www.test.com檢視你配置的虛擬主機,如果可以訪問則成功。