温馨提示×

Ubuntu PHP日志的存储位置及权限

小樊
40
2025-11-30 03:28:38
栏目: 云计算

Ubuntu PHP日志的存储位置与权限

一 常见日志类型与默认路径

  • PHP错误日志(来自php.ini):路径由php.ini的error_log指定;若未显式设置,错误通常写入Web服务器的错误日志。常见位置为**/var/log/php_errors.log**(自定义时)或**/var/log/apache2/error.log**、/var/log/nginx/error.log(未自定义时)。
  • PHP-FPM日志:常见为**/var/log/php-fpm.log/var/log/php7.x-fpm.log**;此外,各进程池日志可在**/var/log/php-fpm/pool.d/www.log/var/log/php7.x-fpm/www.log**;也可在**/etc/php/{版本}/fpm/php-fpm.conf/etc/php/{版本}/fpm/pool.d/www.conf中通过error_log**指令自定义。
  • Web服务器访问/错误日志:Apache 位于**/var/log/apache2/access.log**、/var/log/apache2/error.log;Nginx 位于**/var/log/nginx/access.log**、/var/log/nginx/error.log

二 如何确认你的实际日志路径

  • 查看php.ini中的error_log:执行php --ini定位加载的php.ini,打开对应文件(如**/etc/php/{版本}/{sapi}/php.ini**)查找error_log指令。
  • 查看PHP-FPM配置:在**/etc/php/{版本}/fpm/php-fpm.conf/etc/php/{版本}/fpm/pool.d/www.conf中查找error_log**、access.log指令。
  • 直接查看常见日志文件:使用tail -f实时查看,如**/var/log/php_errors.log**、/var/log/php-fpm.log/var/log/apache2/error.log/var/log/nginx/error.log

三 推荐的权限与属主设置

  • 运行身份:Web服务与PHP-FPM通常以www-data:www-data运行(可在**/etc/php/{版本}/fpm/pool.d/www.conf/etc/apache2/envvars**中确认)。
  • 文件权限:日志文件建议设为660(-rw-rw----),属主为www-data:www-data,以允许进程写入同时限制其他用户访问。
  • 目录权限:日志目录(如**/var/log/php-fpm/或自定义的/var/log/)建议755**,属主root:root,并确保运行用户对父目录有执行权限,以便创建/轮转日志。
  • 示例命令:
    • 创建目录并设权限:sudo mkdir -p /var/log/php-fpm && sudo chown root:root /var/log/php-fpm && sudo chmod 755 /var/log/php-fpm
    • 设日志文件属主与权限:sudo touch /var/log/php-fpm/error.log && sudo chown www-data:www-data /var/log/php-fpm/error.log && sudo chmod 660 /var/log/php-fpm/error.log

四 安全与维护建议

  • 生产环境建议:在php.ini中设置display_errors = Offlog_errors = On,将错误写入日志而非页面暴露。
  • 日志轮转:使用logrotate管理日志大小与保留期,编辑**/etc/logrotate.d/apache2/etc/logrotate.d/nginx**(以及自定义的php-fpm轮转配置),避免磁盘被占满。
  • 变更生效:修改php.ini或PHP-FPM配置后,重启相应服务(如systemctl restart apache2systemctl restart php{版本}-fpmsystemctl restart nginx)。

0