1、php源碼安裝及php-fpm配置
php
下載php wget http://mirrors.sohu.com/php/php-5.6.2.tar.gzhtml
安裝php編譯時所依賴的安裝包java
yum -y install gcc gcc-c++ libxml2 libxml2-develnode
3.解壓下載後的php-5.6.2.tar.gzmysql
tar -xf php-5.6.2.tar.gznginx
4.c++
如今開始配置php5.6,使用以下命令:sql
cd php-5.6.2數據庫
./configure --enable-fpm --enable-mbstring --with-mysql=/usr/local/mysqlapi
注意上述命令中--enable-fpm的做用是開啓php的fastcgi功能即開啓php-fpm功能,--with- mysql=/usr/local/mysql是啓用php支持mysql的功能,/usr/local/mysql是mysql數據庫的安裝路徑。
--enable-mbstring表示啓用mbstring模塊mbstring模塊的主要做用在於檢測和轉換編碼,提供對應的多字節操做的字符串函數。目前php內部的編碼只支持ISO-8859-*、EUC-JP、UTF-8,其餘的編碼的語言是沒辦法在php程序上正確顯示的,因此咱們要啓用mbstring模塊。
同時咱們也只是簡單的開啓和擴展php的一部分功能,其餘須要的功能,請自行添加。
5.
配置完畢後,咱們如今來編譯php,使用make命令,以下:
make
6.
咱們如今開始安裝php,使用以下命令:
make install
安裝完畢後,咱們能夠經過php –v命令查看是否安裝成功。以下:
php –v
經過這樣安裝完畢後,你會發如今/usr/local/lib目錄下沒有php.ini文件。在這咱們就先複製php安裝文件提供的模版,以下:
cp php.ini-production /usr/local/lib/php.ini
7.
注意php.ini文件通常在/usr/local/lib/和/etc目錄下。有關php安裝完畢後,沒有php.ini文件的,咱們再另一篇文章再介紹。
不要覺得到這php的安裝就完畢了,LNMP環境中的nginx是不支持php的,須要經過fastcgi來處理有關php的請求。而php須要php-fpm這個組件來支持。
在php5.3.3之前的版本php-fpm是以一個補丁包的形式存在的,而php5.3.3之後的php-fpm只須要在安裝php-fpm開啓這個功能便可。這個也就是前邊,咱們再配置php使用到的那個命令--enable-fpm。
php-fpm功能開啓後,咱們還須要配置php-fpm。其實php-fpm的配置文件在安裝php時,已經爲咱們提供了一個配置文件的模版。該模版爲/usr/local/etc/php-fpm.conf.default,以下:
more /usr/local/etc/php-fpm.conf.default
8.
咱們如今只須要複製一份該文件,並重命名爲php-fpm.conf,以下:
cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
爲了讓php-fpm已服務的形式啓動。咱們須要複製php安裝目錄下/sapi/fpm/init.d.php-fpm文件。以下:
cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
9.
過上圖,咱們也能夠很清楚的看到php-fpm文件目前沒有執行權限。賦予php-fpm執行權限,並啓動php-fpm,以下:
chmod a+x /etc/init.d/php-fpm
/etc/init.d/php-fpm start
netstat -tunlp |grep 9000
10.php搞定!!!!!!!!
2、安裝和配置nginx
安裝Pcre(Nginx須要):
yum install pcre pcre-devel
################## Nginx 編譯安裝 ######################
groupadd www
useradd -g www www
mkdir -p /data/www
chown -R www:www /data/www
Nginx編譯參數
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module
make && make install
/usr/local/nginx/sbin/nginx // 啓動Nginx
最後
如今再來配置nginx,使其支持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;
}
3、安裝mysql(yum命令安裝)
rpm -qa | grep mysql // 這個命令就會查看該操做系統上是否已經安裝了mysql數據庫
經過這個命令查看該系統中是否已經安裝了mysql,能夠看到個人系統比較乾淨,沒有安裝任何版本的mysql,若是你係統有安裝,那能夠選擇進行卸載
[root@liang ~]# rpm -e mysql // 普通刪除模式[root@liang ~]# rpm -e --nodeps mysql // 強力刪除模式,若是使用上面命令刪除時,提示有依賴的其它文件,則用該命令能夠對其進行強力刪除
使用yum命令進行mysql的安裝
[root@liang ~]# yum list | grep mysql
而後經過下面的命令進行數據庫的安裝
[root@liang ~]# yum install -y mysql-server mysql mysql-devel
安裝成功後,經過如下命令能夠查看已安裝數據庫的版本信息
[root@liang ~]# rpm -qi mysql-server
先經過:service mysqld status 查看mysql是否啓動
(沒裝mysql service 也可經過 /etc/rc.d/init.d/mysqld status查看)
若沒啓動,則啓動mysql:service mysqld start
最後咱們設置mysql的用戶和密碼
mysqladmin -u root password '123456'
此時咱們就能夠經過 mysql -u root -p 命令來登陸咱們的mysql數據庫了
4、在php下增長mysql、pdo_mysql擴展(重點,因爲本人是cents64位系統,一個隱藏問題搞了哥很久,下面會講解這個蛋疼的問題!!!!!!!!)
(1)增長php的mysql擴展
首先去到php版本目錄的ext文件下的msyql中,如個人php版本目錄是PHP/php5.6.7,因此命令爲cd /PHP/php5.6.7/ext/mysql
而後運行phpize命令生成configure文件,個人phpize文件在/usr/local/bin下,
因此直接運行/usr/local/bin/phpize命令生成configure
而後運行./configure --with-php-config=/usr/local/bin/php-config --with-mysql=/usr
這裏最關鍵的是經過--with-mysql參數告訴mysql客戶端的位置。這樣才能生成mysql.so
期間你會發現可能有如下錯誤:
原本是系統找不到mysql客戶端頭文件致使的,但是咱們用命令
find -name mysql.h找一下這個文件的位置,這尼瑪的明明/usr/include/mysql就存在這個文件,可是爲什麼說找不到呢?(ps:若是你找不到的話,請安裝yum install mysql-devel)
將 /usr/include/mysql 目錄下的mysql頭文件連接到 /usr/local/include/ 的目錄下:
ln -s /usr/include/mysql/* /usr/local/include/(具體位置本身根據本身的狀況修改)
而後再運行一次
./configure --with-php-config=/usr/local/bin/php-config --with-mysql=/usr
後來尼瑪有出錯:
configure: error: Cannot find libmysqlclient under /usr.
Note that the MySQL client library is not bundled anymore!
原來緣由是由於在64位的系統中,發現是在/usr/lib64/mysql/目錄內的libmysqlclient.so.15.0.0作的軟鏈接,PHP默認是去的/usr/lib/搜索,因此沒有找到.(這就是我說的64位的蛋疼問題!!!!!!!!!!!!!!)
解決辦法就是:
cp /usr/lib64/mysql/* /usr/lib/mysql/
最後再./configure --with-php-config=/usr/local/bin/php-config --with-mysql=/usr
終於沒報錯了!!!如圖:
而後在make編譯一下,在make install,成功後會輸出mysql.o文件在如下目錄:
把目錄下的mysql擴展複製到php配置文件目錄下,個人是在/usr/local/lib下,在配置文件php.ini中引入擴展項mysql。o而後重啓php fpm便可。
(2)增長php的pdo_mysql擴展和上面同樣操做,就是把在ext/mysql改變在ext/pdo_mysql目錄下進行./configure --with-php-config=/usr/local/bin/php-config --with-pdo-mysql=/usr操做而已!!!!!!!
我的總結經驗,求贊贊,搞了挺久!!!!!