搭建lnmp環境

1、php源碼安裝及php-fpm配置
php

  1. 下載php wget http://mirrors.sohu.com/php/php-5.6.2.tar.gzhtml

  2. 安裝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

期間你會發現可能有如下錯誤:

Cannot find MySQL header files under /usr/include/mysql

原本是系統找不到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操做而已!!!!!!!

我的總結經驗,求贊贊,搞了挺久!!!!!

相關文章
相關標籤/搜索