1. PHP版本不符合需求
错误表现:运行php -v显示的版本低于或高于项目要求,导致依赖特定版本的功能无法正常工作。
解决方法:
sudo apt updatesudo apt install php8.2 php8.2-cli php8.2-mysql php8.2-curlsudo update-alternatives --config php,选择对应版本编号。2. PHP模块缺失
错误表现:运行PHP脚本时提示“Call to undefined function xxx()”(如mysql_connect()、curl_init()),或功能无法正常使用。
解决方法:
sudo apt install php-mysqlsudo phpenmod mysqlsudo systemctl restart apache2 或 sudo systemctl restart nginx。3. PHP配置文件错误
错误表现:修改php.ini后重启服务报错(如“Invalid configuration directive”),或配置未生效。
解决方法:
php.ini文件(CLI版:/etc/php/8.2/cli/php.ini;Apache版:/etc/php/8.2/apache2/php.ini;FPM版:/etc/php/8.2/fpm/php.ini)php --ini命令查看当前加载的配置文件路径sudo cp /etc/php/8.2/cli/php.ini.bak /etc/php/8.2/cli/php.ini(需提前备份)4. PHP-FPM错误(502 Bad Gateway/无法启动)
错误表现:Nginx/Apache返回502错误,或systemctl restart php-fpm时报错“failed to load configuration file”。
解决方法:
sudo php-fpm -t,定位错误行(如php-fpm.conf中意外的等号、重复的listen指令)fastcgi_pass与PHP-FPM的listen值一致(如fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;对应listen = /var/run/php/php8.2-fpm.sock)php-fpm.conf中的listen.owner/listen.group设置为www-data(默认Web用户),并与Web服务器用户一致sudo systemctl restart php-fpm。5. 文件权限问题
错误表现:脚本无法读取/写入文件(如“Permission denied”),或上传文件失败。
解决方法:
www-data:sudo chown -R www-data:www-data /var/www/htmlsudo chmod -R 755 /var/www/htmlsudo chmod -R 775 /var/www/html/uploads。6. 数据库连接错误
错误表现:脚本提示“Access denied for user ‘xxx’@‘localhost’”或“Could not connect to MySQL”。
解决方法:
sudo systemctl status mariadb(Debian默认使用MariaDB)sudo mysql -u root -p,执行GRANT ALL PRIVILEGES ON mydb.* TO 'username'@'localhost' IDENTIFIED BY 'password';,然后FLUSH PRIVILEGES;。7. 日志分析技巧
解决方法:
/var/log/php8.2-fpm.log或/var/log/apache2/error.log):sudo tail -f /var/log/php8.2-fpm.log(实时查看)php.ini中的display_errors = On,error_reporting = E_ALL,重启服务display_errors,通过日志排查问题。