You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL2 Ubuntu22.04下Laravel项目pdo_mysql及权限问题求助

解决方案

一、修复PDO_MySQL加载错误

错误提示undefined symbol: pdo_parse_params说明基础PDO扩展未正确加载或加载顺序错误,按以下步骤处理:

  1. 检查PDO基础扩展状态
    执行命令查看已加载的PDO相关扩展:
php -m | grep pdo

输出应包含pdo和pdo_mysql,如果缺少pdo,先安装基础PDO扩展:

sudo apt install --reinstall php8.1-pdo  # Ubuntu22.04默认PHP版本为8.1,可根据实际版本替换
  1. 调整扩展加载顺序
    编辑PHP配置文件(需同时检查CLI和Web服务的配置,比如/etc/php/8.1/cli/php.ini和/etc/php/8.1/fpm/php.ini),确保PDO基础扩展先于PDO_MySQL加载:
extension=pdo.so
extension=pdo_mysql.so

如果配置里没有extension=pdo.so,手动添加到pdo_mysql.so之前。

  1. 重装匹配版本的MySQL扩展
    确保PHP版本与扩展版本完全匹配,执行重装命令:
sudo apt install --reinstall php8.1-mysql

完成后重启PHP服务(如sudo systemctl restart php8.1-fpm),再执行php -i | grep extension_dir验证错误是否消失。

二、解决静态资源(CSS/图片)无法显示及权限问题

Laravel项目的静态资源加载异常通常和权限、编译状态、配置有关:

  1. 修复目录权限
    给Web服务用户(www-data)赋予项目目录权限:
# 替换为你的Laravel项目实际路径
PROJECT_PATH="/home/fantasyroad/your-laravel-project"

sudo chown -R www-data:www-data $PROJECT_PATH
sudo chmod -R 755 $PROJECT_PATH
# 存储和缓存目录需要额外写权限
sudo chmod -R 775 $PROJECT_PATH/storage $PROJECT_PATH/bootstrap/cache
  1. 重新编译前端资源
    由于之前在Mac环境编译的资源可能不兼容,重新安装依赖并编译:
cd $PROJECT_PATH
npm install
npm run build  # 开发环境可改用npm run dev
  1. 验证APP_URL配置
    检查.env文件中的APP_URL是否与访问地址一致,比如:
APP_URL=http://localhost:8000

如果用域名访问,替换为对应域名。

  1. 确认Web服务根目录配置
    如果使用Nginx/Apache,确保根目录指向Laravel的public目录:
  • Nginx示例配置:
server {
    listen 80;
    server_name localhost;
    root /home/fantasyroad/your-laravel-project/public;

    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }
}
  • Apache示例配置:
<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /home/fantasyroad/your-laravel-project/public

    <Directory /home/fantasyroad/your-laravel-project/public>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

配置完成后重启Web服务(sudo systemctl restart nginx或apache2)。

内容的提问来源于stack exchange,提问作者Matthew Fuller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 02:06:22