安裝這兩個花了大約七個小時,簡直呵呵,安裝nginx就是直接 yum install nginx ,但發現一打開php文件就是直接下載該php文件,也就是不能識別php文件,解決這個花了好久,但其實看到別人寫的正確的文章,其實加起來的時間就是十幾分鐘就可以了,網上好多文章可能是系統不同,部分文件也會不同,然后花了好久漸漸弄明白。本篇文章大部分引用seanchan 的 這篇博客 ,但是有部分鏈接失效,并且文件有些不同,我只是在該文章進行完善。
進入正文
開始安裝Nginx和PHP-FPM之前,你必須卸載系統中以前安裝的Apache和PHP。用root登錄輸入下面的命令:
# yum remove httpd* php*
增加額外資源庫
默認情況下,CentOS的官方資源是沒有php-fpm的, 但我們可以從Remi的RPM資源中獲得,它依賴于EPEL資源。我們可以這樣增加兩個資源庫:
# yum install yum-priorities -y # rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm # yum install http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
注意 rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm 是下載EPEL資源,原文中的 epel-release-6-7.noarch.rpm ,但是評論中有人指出6-7已經不能用了,改成 epel-release-6-8 就能用,如果我給的6-8版本不能用,大家可嘗試改成6-8以上的版本試試。
http://rpms.famillecollet.com/enterprise/remi-release-6.rpm 是下載Remi資源,原文中的鏈接也不能用了,我用的是從 這篇博客中 中獲取的。
EPEL成功樣例
Retrieving http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm warning: /var/tmp/rpm-tmp.vfNOg4: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY Preparing... ########################################### [100%] 1:epel-release ########################################### [100%]
Remi下載成功樣例(我只選取最后的部分,出現了Complete!即表示成功了)
Installed: remi-release.noarch 0:6.6-1.el6.remi Complete!
安裝Nginx
輸入下列命令
# yum install nginx
這個一般不會有什么問題,就不取安裝成功的注釋了。
如果你想在系統啟動時自動運行nginx,輸入下列命令:
# chkconfig --level 345 nginx on
第一次啟動nginx,輸入下列命令:
# /etc/init.d/nginx start
我個人比較喜歡 service nginx start
安裝PHP-FPM
輸入下列命令:
# yum --enablerepo=remi install php php-fpm
安裝過程中選擇yes|no的情況下,一律選yes
安裝成功樣例
Installed: php.i686 0:5.4.45-1.el6.remi php-fpm.i686 0:5.4.45-1.el6.remi Dependency Installed: httpd.i686 0:2.2.15-47.el6.centos httpd-tools.i686 0:2.2.15-47.el6.centos php-cli.i686 0:5.4.45-1.el6.remi php-common.i686 0:5.4.45-1.el6.remi Complete!
如果你想在系統啟動時自動運行php-fpm,輸入下列命令:
# chkconfig --level 345 php-fpm on
PHP僅安裝了核心模塊,你很可能需要安裝其他的模塊,比如MySQL、 XML、 GD等等,你可以輸入下列命令:
# yum --enablerepo=remi install php-gd php-mysql php-mbstring php-xml php-mcrypt
第一次啟動php-fpm,輸入下列命令:
# /etc/init.d/php-fpm restart
輸出樣例
Starting php-fpm: [ OK ]
配置PHP-FPM和Nginx,讓他們一起工作
# vi /etc/nginx/nginx.conf
注意,一般這個文件內不會把文件全部寫在里面,打開該文件可以看到在倒處第二行寫了 include /etc/nginx/conf.d/*.conf; ,那我們就去 nginx/conf.d 里面看看有什么文件,發現有 default.conf example_ssl.conf 這兩個文件,就是 default.conf ,如果是其它的系統,文件的地址可能不一樣,但大部分都是 default.conf ,打開該文件進行配置
像下面這樣編輯取消注釋:
... location / { root /usr/share/nginx/html; index index.html index.htm index.php; } ... location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } ...
/usr/share/nginx/html; 是你安裝nginx時默認的代碼文件根目錄
index index.html index.htm index.php; 相比源文件中加入亂 index.php
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 相比源文件是把 $script 換成了 $document_root
重啟Nginx會重新讀取配置文件,輸入
# /etc/init.d/nginx reload
現在在document root目錄下建立下列PHP文件
# vi /usr/share/nginx/html/info.php
文件內容如下:
<?php
phpinfo();
?>
這時在瀏覽器中輸入
localhost/info.php
如果出現 file not found
那就回到 /etc/nginx/conf.d/default.conf 中把我們原先設定的 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 中的 $document_root 換成 /usr/share/nginx/html ,也就是可能程序沒有讀取到nginx根目錄的文件,這時,你就把全路徑寫上,然后在重新加載nginx
# /etc/init.d/nginx reload
這時再刷新 localhost/info.php ,就會出現下面的頁面:
好了。安裝成功!
最后再瞎扯一句,這個下午我看了好多文檔,發現很多都是錯誤了,配置別人看不見你是怎么 配置的,下載不知道你是去哪下載的,就是貼一堆的代碼上去,我知道你是自己看得懂就好,可是過幾個月呢,你還是回會忘掉是吧。以前我也有這毛病,我覺得必須要改改了。這次我把詳細的過程都寫了,可能還是有不足的地方,但我盡量寫的讓開始配置的人懂得怎樣修改,怎樣配置。
################################################
2015/11/1 更新,知道我看到了 這篇文章(CentOS 6.5 yum安裝配置lnmp服務器(Nginx+PHP+MySQL)) < ps: 我會把該文章做個備份>,哭的心都有-_-|||,七八個小時其實只要差不多半小時就足矣,今晚按照該文章的centos系統版本為6.7 64bit。
################################################
最后在附上錘子科技 UI 設計總監方遲,視覺設計總監羅子雄說的話
文章列表