centos6.4 nginx php mysql 編譯安裝一些補充事項

最近經濟出問題,只好更好一下VPS。由快速的香港VPS(75元/月)更好爲 米國VPS(39元/月).php

趁着週末,決定拋棄軍哥的LNMP一鍵包了,本身去編譯安裝LNMP,哈。平時在羣裏看一些朋友都在編譯安裝了,遂本身也動手體驗一下。PS:我用ubuntu下,基本都是apt-get完成的,基本版本能夠保持最新的了。html

說個題外話,爲何我要編譯LNMP呢?由於軍哥的LNMP一鍵包並不是比較新的版本,爲了保持本身的程序和本身的開發環境持平,遂選擇編譯安裝。mysql

一些參考的網站:
linux

NGINX安裝:http://www.nginx.cn/installnginx

PHP安裝:http://www.nginx.cn/231.htmlsql

Mysql安裝:http://blog.51yip.com/mysql/1312.html (Mysql源碼包下載:http://download.softagency.net/MySQL/Downloads/MySQL-5.6/shell

Nginx的安裝過程,基本按照參考網站的方法進行就能夠了,這裏沒有比較大的問題。
ubuntu

接着安裝PHP,這裏可能會出現比較多的問題了。服務器

1.編譯安裝時,socket

./configure #此處必需要帶安裝目錄(在你不熟悉PHP的目錄佈置下)。
./configure --prefix=/usr/local/php  --enable-fpm #這部分記得寫上,後面的參數都是安裝時附帶安裝上的擴展。

編譯安裝完畢後,配置一下nginx,讓nginx可以支持PHP. 接下來,會遇到一個問題,如何重啓php-fpm?

文中給出的 kill -INT `cat /usr/local/php/var/run/php-fpm.pid` 可能並不能終止php-fpm!這時候能夠用這個方式來重啓 php-fpm.

ps -ef | grep php-fpm #獲取php-fpm的進程

kill [進程的ID]  #終止php-fpm進程; [進程ID]指的是 標記着master 的進程ID 。不含[] 例如root 19723 1 0 17:49 ? 00:00:00 php-fpm: master process

/usr/local/php/sbin/php-fpm #啓動php-fpm

好了,php-fpm已經重啓了。若是按照上面方法,你終止後沒法啓動php-fpm,請回看參考網站,第一次編譯安裝先按照教程操做一次就好了。另外,我下載的是5.5.9 ,將教程的php-5.4.7.tar.gz 改成 php-5.9.9.tar.gz 則可。

php.ini 若是不知道在哪裏,寫一個測試的文件( phpinfo() ),上傳到服務器。你就知道php.ini在哪裏了。默認編譯安裝完畢,是沒有這個文件的。你要從 安裝包中 複製一份過去。參照網站有說起的。

PHP安裝完畢,接着咱們安裝mysql. 網上一些教程比較舊,還用make安裝。剛開始我就被坑了很多。還有就是,我一直想吐槽Mysql官方,找個下載地址都很難,網上教程說起的地址都已經404.。Mysql安裝參照本文前面的網站,基本能夠正常安裝的了。

Msyql安裝完畢,有一些地方須要注意的,mysql.cnf配置文件記得添加,否則的話,後面啓動可能會出現報錯的現象

socket = /usr/local/mysql/mysql.sock

接着去下載phpMyAdmin。這裏就不說起方法了。運行時,會遇到某些函數沒有運行的狀況. 這說明咱們缺乏一些必要的擴展。

回答PHP的源碼安裝包(示例都是在 /usr/local/src/php-5.5.9). ,在ext目錄下,進入須要安裝的擴展。

安裝方法以下:

/usr/local/php/bin/phpize #只有在PHP擴展時,纔有效。具體用途本身谷歌吧。若是你運行這個命令提示 不存在。那麼說明你沒有安裝上面的教程安裝,用這個命令找 這個文件吧: find / -name phpize
./configure --with-php-config=/usr/local/php/bin/php-config #添加擴展到PHP配置文件
make #提示一下,這裏很容易會出現 error [xxx.lo] 1 之類錯誤。這時候自行搜索對應的擴展安裝方法就好了。切忌直接搜索 make: *** [xxxx.lo] Error x 。這是浪費人生事件。最好的解決是:php編譯XXX擴展方法
make install #
編譯完畢後,別忘在 php.ini添加對應的配置項 extension=xxx.so

三個常見的擴展安裝配置方法:

./configure --with-php-config=/usr/local/php/bin/php-config --with-mysql=/usr/local/mysql #Mysql 
./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/mysql/bin/mysql_config #Mysqli
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo_mysql=/usr/local/mysql #pdo

另外,安裝完Mysql, Mysqli, PDO_Mysql擴展後,記獲得php.ini中添加對應的設置.否則 會沒法鏈接Mysql
pdo_mysql.default_socket= /usr/local/mysql/mysql.sock
mysqli.default_socket = /usr/local/mysql/mysql.sock
mysql.default_socket = /usr/local/mysql/mysql.sock

nginx php mysql配置好後,phpMyAdmin可能會遇到 沒法登錄之類的問題。

嘗試將config.sample.inc.php 修改成 config.inc.php

基本上,LNMP已經能夠正常使用了!後面在更新業務的需求,進行擴展的安裝。對了,Mysql默認編譯安裝完畢後,可能處於 嚴格模式。 親們,記得改成 寬鬆模式。 

後記:在接觸此次編譯安裝,發現並無想象中的難,不少地方都是本身疏忽大意容易起的。linux有一個很好的特色,每一個操做出錯,都會有對應的錯誤提示。根據上面的提示,網上一搜基本都有答案。找不到的話,換一個思路去搜索,說不定就找到答案了。其次就是,網上不少教程都是老舊的,並且一推站互抄,太噁心了。最後,上面操做若是會編寫shell腳本的話,之後能夠更加事倍功半 :)

相關文章
相關標籤/搜索