php-fpm配置
mariadb密碼重置
MariaDB慢查詢日誌php
查看php.ini路徑:mysql
1)/usr/local/php-fpm/bin/php -i |head 2)用phpinfo 在站點目錄建立,不建議使用 vi /usr/local/php-fpm/etc/php.ini disable_functions = phpinfo 此處設置將不顯示phpinfo的信息,可是會報錯,能夠打開:php_flag[display_errors] = on(頁面顯示報錯信息) 或php_admin_value[error_log] = /var/log/fpm-php.www.log查看報錯
補充:nginx
curl -k -H "host:discuz.tobe.com" https://127.0.0.1/phpinfo.php -I 能夠測試報錯,禁用phpinfo後
1、php-fpm配置sql
php-fpm配置文件路徑:安全
/usr/local/php-fpm/etc/php-fpm.conf 文件中 包含了一個目錄: include=/usr/local/php-fpm/etc/php-fpm.d/*.conf 這個目錄中 www.conf 就是其中子配置文件
www.conf配置講解:curl
pool 名字: [www] 能夠自定義,php-fpm啓動後,ps aux |grep php-fpm 看最右側,就是pool的名字
user = php-fpm 查看進程的最左側就是該進程的用戶名字 group = php-fpm listen 指定監聽的IP:port或者socket地址 這個socket地址須要和nginx配置文件裏面的那個fastcgi_pass所制定的地址一致,不然就會502 若是監聽的是socket文件,那麼要保證nginx服務用戶(nginx)對該socket文件有讀寫權限,不然502 listen.mode 指定socket文件的權限 fastcgi_pass unix:/tmp/www.socket; 寫socket的路徑
在頁面訪問報錯報錯:socket
查看報錯日誌 : /var/log/nginx/error.log這裏報錯是由於權限不足函數
更改www.conf配置文件 listen.mode 指定socket文件的權限,而後重啓php-fpm便可php-fpm
pm = dynamic 動態模式,啓動服務的形式,靜態:static pm.max_children = 5 最大進程數 pm.start_servers = 2 啓動時啓動幾個子進程 pm.min_spare_servers = 1 空閒時,最少不能少於幾個子進程 pm.max_spare_servers = 3 空閒時,最多不能多於幾個子進程 pm.max_requests = 500 單個子進程最多處理多少個請求,處理完成後進程會自動結束 關於php.ini的 php_flag[display_errors] = off 若是開啓,報錯會直接在頁面中顯示,調試時開啓使用 php_admin_value[error_log] = /var/log/fpm-php.www.log 錯誤日誌,注意是否有寫權限 php_admin_flag[log_errors] = on 是否開啓日誌記錄 php_admin_value[error_reporting] = E_ALL 錯誤日誌級別
針對php-fpm配置slow 日誌測試
slowlog = /tmp/php.slow 定義php-fpm慢執行日誌路徑 request_slowlog_timeout = 1 超時時間(1秒) /etc/init.d/php-fpm reload
在phpinfo.php中使用sleep函數睡眠2秒,此時會在tmp/php.slow記錄日誌
並會提示哪裏存在問題,而且當網站訪問慢的時候,能夠經過此處排查
curl -k -H "host:discuz.tobe.com" https://127.0.0.1/phpinfo.php
配置open_basedir
定義php服務所能容許的活動路徑,目錄之間用冒號分割
vi /usr/local/php-fpm/etc/php-fpm.d/www.conf
添加下面這段配置
php-fpm.conf優先級比php.ini高
php_admin_value[open_basedir] = /data/wwwroot/discuz.tobe.com:/tmp
讓多個網站相互不影響,配置多個pool,把多個站的資源獨立出來
定義多個配置文件,在配置文件中指定不一樣的listen地址 不一樣的 [pool_name]
blog.conf
[blog] user = php-fpm group = php-fpm listen = /tmp/blog.socket listen.mode = 0666 pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 slowlog = /tmp/php.slow request_slowlog_timeout = 1 php_flag[display_errors] = off php_admin_value[error_log] = /var/log/fpm-php.www.log php_admin_flag[log_errors] = on php_admin_value[error_reporting] = E_ALL php_admin_value[open_basedir] = /data/wwwroot/blog.tobe.com:/tmp #/tmp目錄有可能會寫入臨時文件,全部都要加上
discuz.conf
[discuz] user = php-fpm group = php-fpm listen = /tmp/discuz.socket listen.mode = 0666 pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 slowlog = /tmp/php.slow request_slowlog_timeout = 1 php_flag[display_errors] = off php_admin_value[error_log] = /var/log/fpm-php.www.log php_admin_flag[log_errors] = on php_admin_value[error_reporting] = E_ALL php_admin_value[open_basedir] = /data/wwwroot/discuz.tobe.com:/tmp #/tmp目錄有可能會寫入臨時文件,全部都要加上
/usr/local/php-fpm/sbin/php-fpm -t 檢查語法錯誤
/etc/init.d/php-fpm restart 重啓服務
在/tmp下出現這兩個socket
更改完成後,須要把/etc/nginx/conf.d/blog.tobe.com.conf 虛擬主機的fastcgi_pass更改
fastcgi_pass unix:/tmp/blog.socket;
vi /usr/local/php-fpm/etc/php.ini #不建議在此處更改open_basedir,當有多個網站的時候,會下降安全係數
若是隻定義/home目錄,訪問時會報錯,由於這個網站不在這個目錄下,並在日誌中能夠查看到錯誤信息
/var/log/fpm-php.www.log
2、mariadb密碼重置
當不記得密碼時:
1)編輯/etc/my.cnf
增長:skip-grant 重啓服務 /etc/init.d/mysqld restart 此時不輸入密碼也能夠登錄 mysql-uroot
2)登陸進MariaDB,執行
use mysql 切換到mysql庫 desc user 查看user表的全部字段 update user set authentication_string=password("tobe123") where user='root';
3)退出MariaDB,刪除/etc/my.cnf裏面的skip-grant, 重啓服務 /etc/init.d/mysqld restart
4)用新密碼登陸便可
mysql在5.7.36版本以後把密碼字段存到了authentication_string字段裏,在以前版本存在password字段裏。 update user set password=password("tobe123") where user='root';
3、MariaDB慢查詢日誌
配置
1)進入MariaDB裏面執行:
show variables like 'slow%'; show variables like 'datadir'; show variables like 'long%';
long_query_time 超時時間, 該參數最好改成2秒,查詢時間超過2秒就已經比較慢了
2)打開配置文件/etc/my.cnf,編輯,增長:
vi /etc/my.cnf
slow_query_log = ON slow_query_log_file = /data/mysql/tobe04-slow.log long_query_time = 2
3)重啓服務 /etc/init.d/mysqld restart
生成日誌文件
4)模擬慢查詢
select sleep(5);
5)查看慢查詢日誌:
/data/mysql/tobe04-slow.log 日誌中會顯示出錯誤信息
擴展:
show processlist; 查看全部隊列,info字段sql顯示不完整 show full processlist; info部分的語句徹底顯示
mysql -uroot -ptobe123 -e "show processlist"