php-fpm的pool, php-fpm慢執行日誌,open_basedir,php-fpm進程管理

php-fpm的pool

  • vim /usr/local/php/etc/php-fpm.conf//在[global]部分增長
  • include = etc/php-fpm.d/*.conf
  • mkdir /usr/local/php/etc/php-fpm.d/
  • cd /usr/local/php/etc/php-fpm.d/
  • vim www.conf //內容以下

[www]php

listen = /tmp/www.socknginx

listen.mode=666vim

user = php-fpm瀏覽器

group = php-fpmcurl

pm = dynamicphp-fpm

pm.max_children = 50測試

pm.start_servers = 20網站

pm.min_spare_servers = 5url

pm.max_spare_servers = 35spa

pm.max_requests = 500

rlimit_files = 1024

  • 繼續編輯配置文件
  • vim aming.conf //內容以下

[aming]

listen = /tmp/aming.sock

listen.mode=666

user = php-fpm

group = php-fpm

pm = dynamic

pm.max_children = 50

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

pm.max_requests = 500

rlimit_files = 1024

  • /usr/local/php/sbin/php-fpm –t
  • /etc/init.d/php-fpm restart

切換目錄,查看到定義的一個www的pool

編輯php-fpm配置文件vim /usr/local/php-fpm/etc/php-fpm.conf ,添加內容,保存退出

檢查語法錯誤,並從新加載

查看進程,會發現多了

切換目錄,編輯test.com.conf

編輯aaa.com.conf文件,增長內容,保存退出

添加php-fpm子配置文件

在php-fpm中的 [global] 中加入include = etc/php-fpm.d/*.conf 

而後刪掉出[global]之外的內容,按100dd快速刪除

而後建立php-fpm.d目錄,切換目錄,建立www.conf和aming.conf文件,保存退出

檢查是否有語法錯誤,並從新加載

再查看進程

php-fpm慢執行日誌

  • vim /usr/local/php-fpm/etc/php-fpm.d/www.conf//加入以下內容

request_slowlog_timeout = 1

slowlog = /usr/local/php-fpm/var/log/www-slow.log

  • 配置nginx的虛擬主機test.com.conf,把unix:/tmp/php-fcgi.sock改成unix:/tmp/www.sock
  • 從新加載nginx服務
  • vim /data/wwwroot/test.com/sleep.php//寫入以下內容

 

<?php

echo 「test slow log」;

sleep(2);echo 「done」;

?>

  • curl -x127.0.0.1:80 test.com/sleep.php
  • cat /usr/local/php-fpm/var/log/www-slow.log

若是PHP網站訪問慢,咱們能夠經過查看慢執行日誌來分析

編輯vim /usr/local/php-fpm/etc/php-fpm.d/www.conf,增長內容,保存退出

檢查是否有語法錯誤,並從新加載

查看是否生成慢執行日誌,發現是空的

編寫測試腳本

運行腳本,發現有錯誤

打開配置文件,搜索/display_errors,修改以下,保存退出

從新加載並運行腳本,會看到語法錯誤,多是逗號或者分號寫的不對

從新編輯腳本文件,修改爲英文狀態下的

而後運行腳本(發現有停頓),並生成慢日誌,能夠分析慢日誌來解決php網站運行慢的緣由

open_basedir

  • vim /usr/local/php-fpm/etc/php-fpm.d/test.conf//加入以下內容

php_admin_value[open_basedir]=/data/wwwroot/aming.com:/tmp/

  • 建立測試php腳本,進行測試
  • 再次更改aming.conf,修改路徑,再次測試
  • 配置錯誤日誌
  • 再次測試
  • 查看錯誤日誌

編輯vim /usr/local/php-fpm/etc/php-fpm.d/www.conf,添加一行,保存退出

從新加載

訪問測試

打開配置文件vi /usr/local/php-fpm/etc/php.ini,定義錯誤日誌。

搜索/display_errors並修改display_errors=off,讓別人不能經過瀏覽器看到你的錯誤信息。

搜索 /error_log,指定錯誤日誌在哪裏

搜索error_reporting,註釋掉error_reporting,前面加個分號,本身添加一個error_reporting

從新加載,而後測試訪問,訪問正常

php-fpm進程管理

pm = dynamic,定義進程啓動方式(dynamic表示動態,static表示靜態),這裏定義dynamic,下面的配置才能所有生效。

pm.max_children = 50 ,啓動的最大子進程數,ps aux能夠查看

pm.start_servers = 20,啓動服務時會啓動的進程數

pm.min_spare_servers = 5,定義在空閒時段,子進程數的最少數量,低於此數值,自動派生新的子進程

pm.max_spare_servers = 35,定義在空閒時段,子進程數的最大值,高於此數值,開始清理空閒的子進程

pm.max_requests = 500,定義一個子進程最多處理的請求數,也就是說在一個php-fpm的子進程最多能夠處理這麼多請求,當達到這個數值時,它會自動退出。

相關文章
相關標籤/搜索