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"