LNMP---php-fpm配置、mariadb密碼重置、MariaDB慢查詢日誌

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"

相關文章
相關標籤/搜索