介面伺服器需要安裝nginx+mysql+php
一、安裝nginx(參照資源服配置)
二、安裝mysql (參照遊戲服配置中mysql安裝部分)
三、安裝php
這個地方是最重要的地方,因為預設情況下Nginx和PHP他倆之間是一點感覺沒有的。在之前,很多朋友都搭建過Apache+PHP,Apache+PHP編譯後產生的是模組檔案,而Nginx+PHP需要 PHP產生可執行檔才可以,所以要利用fastcgi技術來實現Nginx與PHP的整合,這個只要我們安裝是啟用FastCGI即可。此次我們安裝PHP不僅使用了FastCGI,而且還使用了PHP-FPM這麼一個東東,PHP-FPM說白了是一個管理FastCGI的一個管理器,它作為PHP的外掛程式存在,在安裝PHP要想使用PHP-FPM時就需要把PHP-FPM以補丁的形式安裝到PHP中,而且PHP要與PHP-FPM版本一致,這是必須的,切記!
yum install libxml2 libxml2-devel
yum install libpng*
yum install gd
tar zxvf php-5.2.13.tar.gz
gzip -cd php-5.2.13-fpm-0.5.13.diff.gz | patch -d php-5.2.13 -p1 //將php-5.3.0-fpm-0.5.12.diff.gz以補丁形式加到php-5.3.0裡面
cd php-5.2.13
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --enable-fastcgi --enable-fpm
make
make install
cp php.ini-dist /usr/local/php/etc/php.ini
註:Nginx+PHP整合,在安裝時必須啟用--enable-fastcgi和--enable-fpm
/usr/local/php/sbin/php-fpm start
在啟動PHP-FPM時會報上面這個錯誤,原因是PHP-FPM自己不知道以那個使用者和組運行PHP,所以我們要修改一個檔案,把檔案中的注釋去掉即可(開啟檔案把紅色部分刪除),然後PHP-FPM會以nobody使用者和組去運行PHP。
vi /usr/local/php/etc/php-fpm.conf
/usr/local/php/sbin/php-fpm start
ps -aux | grep php
echo "/usr/local/php/sbin/php-fpm start" >>/etc/rc.local
Nginx自己並不處理動態網頁的請求,而且Nginx將得到的動態請求轉交給PHP,下面我們開啟Nginx的設定檔看一下
vi /usr/local/nginx/conf/nginx.conf
註:上面的/var/www/html 是我們PHP網站放置的路徑
如所示,我們在前面已經看到過Nginx是通過原生9000連接埠將PHP請求轉寄給PHP的,而我們可以看到PHP自己是從原生9000連接埠偵聽資料,Nginx與PHP通過原生9000 連接埠完成了資料請求。
四、 測試
vi /var/www/html/test.php
<?php
phpinfo();
?>
殺死進程並啟動
pkill php
pkill nginx
/usr/local/php/sbin/php-fpm start
/etc/rc.d/init.d/nginx start
重啟PHP與nginx後(可以用殺死進程的方式關閉,然後在啟動)我們在瀏覽器中輸入http://本機IP/test.php
另外介面測試參考介面文檔
為介面服授權:
grant all on shuihu.account to "test"@"192.168.1.22" identified by "123456";
隱藏版本號碼
編輯nginx.conf
vi /usr/local/nginx/conf/nginx.conf
在keepalive_timeout 65; 這行下面添加server_tokens off;
修改fastcgi.conf
vi /usr/local/nginx/conf/fastcgi.conf
把fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
修改為fastcgi_param SERVER_SOFTWARE nginx
[root@~]# curl --head 127.0.0.1
HTTP/1.1 403 Forbidden
Server: nginx
Date: Thu, 04 Aug 2011 07:41:54 GMT
Content-Type: text/html
Content-Length: 162
Connection: keep-alive
重啟nginx
service nginx restart
或則平滑重啟nginx
再檢查一下設定檔:
/usr/local/nginx/sbin/nginx -t
如果螢幕顯示以下兩行資訊,說明設定檔正確:
the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok
the configuration file /usr/local/webserver/nginx/conf/nginx.conf was tested successfully
平滑重啟:
對於Nginx 0.8.x版本,現在平滑重啟Nginx配置非常簡單,執行以下命令即可:
/usr/local/nginx/sbin/nginx -s reload