Linux下搭建nginx和php環境

來源:互聯網
上載者:User

1. 先分享php 5.2的安裝方法,準備安裝包nginx-0.8.53.tar.gz,解壓,進入目錄

2. 執行

./configure --prefix=/home/taozi.ly/nginxmake && make install

3. 這樣的話預設的設定檔為/home/taozi.ly/nginx/conf/nginx.conf,執行檔案為/home/taozi.ly/nginx/sbin/nginx,

pid檔案為/home/taozi.ly/nginx/logs/nginx.pid,因此在使用者主目錄下建立開機檔案start.sh和關閉檔案stop.sh

開機檔案內容為

/home/taozi.ly/nginx/sbin/nginx

關閉檔案內容為

pid=`cat /home/taozi.ly//nginx/logs/nginx.pid`kill $pid

更進階的用法

nginx -s stop quick exit nginx -s quit graceful quit nginx -s reload changing configuration, starting a new worker, quitting an old worker gracefully  nginx -s reopen reopening log files 

 

4. 安裝php-fpm,準備好php-5.2.14.tar.gz和php-5.2.14-fpm-0.5.14.diff.gz,解壓php-5.2.14.tar.gz

然後分別執行解壓和打補丁命令

gzip -d php-5.2.14-fpm-0.5.14.diff.gz   patch -d php-5.2.14 -p1 < php-5.2.14-fpm-0.5.14.diff

這樣php 5.2.14就支援fastcgi了。php 5.3.x開始就內建了對fastcgi的支援,無需補丁

5. 然後進入php-5.2.14目錄,執行如下命令

./configure --prefix=/home/taozi.ly/php --enable-fastcgi /--enable-force-cgi-redirect --enable-fpm /--with-config-file-path=/home/taozi.ly/php/lib --with-mysql=/home/taozi.ly/mysql /--with-pdo-mysql=/home/taozi.ly/mysql --with-curl=/home/taozi.ly/curl --enable-mbstring完成後再執行make && make install

6. 完畢後修改nginx的設定檔,

server {       listen       9999;       server_name  localhost;        location / {           root   /home/taozi.ly/nginx/html;           index  index.php index.html index.htm;       }                 error_page   500 502 503 504  /50x.html;       location = /50x.html {           root   /home/taozi.ly/nginx/html;       }       location ~ /.php$ {           fastcgi_pass   127.0.0.1:9000;           fastcgi_index  index.php;           fastcgi_param  SCRIPT_FILENAME  /home/taozi.ly/nginx/html$fastcgi_script_name;           include        fastcgi_params;       }   }

執行/home/taozi.ly/php/sbin/php-fpm ,然後啟動nginx,最後在html檔案夾下建立index.php,

輸出phpinfo看看成功沒

7. 需要注意的地方

如果修改了php.ini,只需執行/home/taozi.ly/php/sbin/php-fpm reload 即可,不必重啟fpm和nginx

開發測試的時候需要把php.ini的 display_errors 開啟,否則nginx遇錯直接給出500頁面,不會顯示錯誤資訊

8. php 5.3.3及以上的版本內建了fpm ,此處用5.3.4舉例,下載後解壓,進入解壓後目錄

./configure --prefix=/home/taozi.ly/php --enable-fpm /--with-config-file-path=/home/taozi.ly/php/lib --with-mysql=/home/taozi.ly/mysql /--with-pdo-mysql=/home/taozi.ly/mysql --with-curl=/home/taozi.ly/curl --enable-mbstring
make && make install

9. 再把php.ini-production複製到/home/taozi.ly/php/lib下,改名php.ini,

把/home/taozi.ly/php/etc/php-fpm.conf.default複製一份到相同目錄命名為php-fpm.conf

10. 開啟php-fpm.conf,去掉相應的分號注釋,最後如下

pid = run/php-fpm.pid error_log = log/php-fpm.loglisten = 127.0.0.1:9000user = taozi.lygroup = adminpm = dynamicpm.max_children = 50pm.start_servers = 20pm.min_spare_servers = 5pm.max_spare_servers = 35pm.max_requests = 500

11. php 5.3.3 下的php-fpm 不再支援 php-fpm 以前具有的 /home/taozi.ly/php/sbin/php-fpm (start|stop|reload)等命令,需要使用訊號控制:

master進程可以理解以下訊號

INT, TERM 立刻終止

QUIT 平滑終止

USR1 重新開啟記錄檔

USR2 平滑重載所有worker進程並重新載入配置和二進位模組

樣本:

php-fpm 關閉:kill -INT `cat /home/taozi.ly/php/var/run/php-fpm.pid`
php-fpm 重啟:kill -USR2 `cat /home/taozi.ly/php/var/run/php-fpm.pid`

查看php-fpm進程數:

ps aux | grep -c php-fpm
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.