前言:之前本小生也嘗試過源碼安裝,即在官網下載nginx,php,mysql的tar包然後手工一步一步的搭建,但是期間發現,每個軟件在linux環境運行時都需要大量的依賴包,比如nginx需要gcc等,php需要pcre等,都需要逐個的去官網找安裝包安裝,比較麻煩和繁瑣,尤其是在安裝前執行配置環境變量./configure 時,稍不留神或者之前少安裝了某個依賴包,那就是頻繁的報錯和調試了,對於有時間做研究來說是可以提高經驗和熟知原理,但是在工作重心放在開發上,想要快速搭建環境來講,還是推薦大家使用CentOS自帶的yum軟件管理工具來實現,比較方便快捷,下面我們來搭建環境:
1準備工作:
關閉防火牆 (老百姓專用),執行
chkconfig iptables off
配置CentOS 6.x 第三方yum源(CentOS默認的標準源裏沒有nginx軟件包),第三方軟件源很多,我選用的是
atomic
軟件源,當然還有其他輸入Adobe等很多軟件源可選。
首先安裝atomic
軟件源的腳本,找一個下載存放的目錄,我的是 /usr/local/src 執行:
cd /usr/local/src
然後下載
atomic
腳本,執行:
wget http://www.atomicorp.com/installers/atomic
下載後執行這個腳本,給yum添加
atomic
源的軟件支持,執行:
sh ./atomic
執行後可以運行一下 yum
check
-
update
來看看是否需要有更新的軟件,執行:
yum check-update
執行過後,我們來安裝Nginx所必要的依賴包和環境,依靠yum的話只要輸入對軟件名稱,yum全搞定,執行:
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卸載的話執行:
yum remove nginx
yum remove mysql
yum remove php
2 安裝 Nginx
下面安裝Nginx,由於前邊已經做好準備,後邊很簡單的執行:
yum install nginx
一切自動安裝完後,啓動Nginx的服務:
service nginx start
如需系統開機啓動則執行:
chkconfig --levels 235 nginx on
這裏設置了linux下235級別啓動
3 安裝 Mysql
執行:
yum install mysql mysql-server mysql-devel
安裝啓動mysql
service mysqld start
設置開機啓動:
chkconfig --levels 235 mysqld on
由於Mysql默認安裝後的賬號密碼均爲root,你可能需要修改密碼,執行
mysql -h localhost -u root
輸入默認密碼root(有的沒有默認密碼,直接回車)
執行sql語句來修改mysql密碼,也可以修改配置文件,這裏修改密碼的sql語句爲:
update mysql.user set password = PASSWORD('*********') where user='root';
flush privileges;
4安裝PHP
首先安裝PHP需要依賴的環境,依舊是直接yum安裝,執行:
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,執行:
yum install php-tidy php-common php-devel php-fpm php-mysql
安裝成功後啓動,執行:
service php-fpm start
這裏我裝的是php5.4以上的版本,所以啓動fpm。
設置開機啓動
chkconfig --levels 235 php-fpm on
到此,Nginx,PHP,Mysql已經都安裝完畢並且開始運行了,由於yum軟件管理工具都是選取列入軟件的最穩定版本(注意並不是老舊的版本,軟件源會更新到最新的穩定版)來安裝到你的機器上,也就是說軟件的版本在你安裝的時候不會被選擇,而是yum給你安哪個就是哪個,如果需要最新版則需要手工去更新rpm管理包,但是yum所下載的最穩定版本已經基本夠線上建站,工作,學習使用了,下面我們來配置使Nginx支持PHP
首先備份一下Nginx配置文件,並使用默認的配置文件,依次執行:
mv /etc/nginx/nginx.conf /etc/nginx/nginx.confbak
cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf
之後
修改nginx配置文件,添加fastcgi支持(使Nginx可以解析PHP腳本,有時遇到雖然路徑配對了,但是不顯示php頁面卻把頁面給下載了,就是這塊沒起作用),執行:
vim /etc/nginx/nginx.conf
打開後在server作用域括號內找到index index.html index.htm;這行,在後邊添加上index.php,這樣可以默認找到php文件的首頁,之後找到被註釋了的FastCGI作用域,然後把前邊註釋符號#去掉,類似:
location ~ \.php$ {
root /www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
注:root參數是你網站的根目錄,我設定的是根目錄下的www目錄
之後,最好修改一下php的系統時間,也就是差八小時那個問題,並設置一下
cgi.fix_pathinfo = 1
來防止壞蛋用二進制代碼通過php上傳來惡意搞你,可以訪問 :
vi /etc/php.ini
來設置
最後,重啓Nginx和php-fpm來更新我們的配置,執行:
service nginx restart && service php-fpm restart
現在,我們就可以運行php文件了,在你的根目錄下,創建一個index.php文件,裏面輸出phpinfo()函數,然後通過主機ip,我這裏是http://10.3.130.46/index.php,訪問,如果出現正確的輸出,證明環境搭建完畢。
在開發和學習中,我們可能需要很多的虛擬主機來安置不同的網站和開發任務,yum安裝後搭建虛擬主機的方法如下:
訪問:
cd /etc/nginx
在這個文件夾下建立一個vhost文件夾,執行:
mkdir vhost
然後在這個目錄內建立一個你的虛擬站點的配置文件,我這裏起名叫www.test.com.conf,執行:
vim vhost/www.test.com.conf
打開後加入這個虛擬站點的基本配置,根目錄(之前在/www下建好test目錄)和php支持等,如下:
server
{
listen 80;
server_name www.test.com;
index index.php index.html;
root /www/test;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location /
{
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$
{
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
access_log /var/log/www.test.com.log;
}
保存完畢後,我們需要在nginx主配置文件nginx.conf中引入vhost內的配置文件,執行:
vim /etc/nginx/nginx.conf
在http作用域括號內,server作用域括號外,我這裏選擇了放在server結束大括號下邊,添加
include vhost/*.conf;
保存,之後重啓nginx,執行:
service nginx restart
在本機綁定了host之後,瀏覽器訪問www.test.com查看你配置的虛擬主機,如果可以訪問則成功。