在Ubuntu系统上安装Laravel需先安装PHP 8.3及mbstring、xml、curl、openssl等扩展,再安装Composer,接着用composer create-project创建项目,配置.env并执行php artisan key:generate,最后设置storage和bootstrap/cache权限为775并启动php artisan serve。

在Ubuntu系统上安装Laravel框架,需要先确保PHP环境、Web服务器和数据库组件就绪,再通过Composer创建项目并完成权限与配置初始化。缺少任一环节都会导致artisan命令报错或页面空白。
安装基础运行环境
执行以下命令一次性安装Apache、PHP 8.3及必需扩展(Ubuntu 24.04默认源已含PHP 8.3,无需添加PPA):
sudo apt update && sudo apt install -y apache2 php8.3 php8.3-cli php8.3-mysql php8.3-xml php8.3-mbstring php8.3-curl php8.3-zip php8.3-bcmath php8.3-opcache
安装完成后验证PHP版本和关键扩展是否启用:【必须看到 mbstring、xml、curl、openssl 四项同时出现在输出中】
php -v && php -m | grep -E '^(mbstring|xml|curl|openssl)$'
若某项缺失,例如提示“Module 'mbstring' already loaded”但实际未列出,则需手动启用:sudo phpenmod mbstring;每启用一个模块后重启Apache:sudo systemctl restart apache2。
安装并验证Composer
方法一:直接下载安装(推荐)
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
输入 composer --version 确认输出包含“Composer version”字样且无报错。
方法二:使用apt安装(仅限Ubuntu 24.04+)
sudo apt install composer
注意:该方式安装的Composer版本可能滞后,若后续执行 create-project 报“Your requirements could not be resolved”,请退回方法一安装最新版。
创建Laravel项目
第一步:切换到Web根目录并创建新项目
cd /var/www && sudo composer create-project laravel/laravel myapp --prefer-dist
第二步:修正项目所有权,避免后续写入失败
sudo chown -R $USER:www-data /var/www/myapp
第三步:赋予storage和bootstrap/cache可写权限
cd /var/www/myapp && chmod -R 775 storage bootstrap/cache
这一步漏掉会导致首次访问时抛出“Unable to write to the ‘/var/www/myapp/storage/logs’ directory”错误,且artisan命令无法生成密钥。
配置数据库连接
进入项目目录,复制环境配置文件:
cd /var/www/myapp && cp .env.example .env
用nano编辑数据库配置段:
nano .env
将以下三行按实际MySQL设置修改(假设已安装MySQL并设好root密码):
DB_DATABASE=laravel_app
DB_USERNAME=laravel_user
DB_PASSWORD=your_secure_password
保存退出后,生成应用密钥:
php artisan key:generate
【此命令必须在 .env 文件存在且 DB_* 配置正确后执行,否则会报 “Database connection [mysql] not configured.”】
启动内置开发服务器
cd /var/www/myapp && php artisan serve --host=0.0.0.0 --port=8000
此时打开浏览器访问 http://localhost:8000,应显示Laravel欢迎页。
若页面空白或报500错误,请检查storage/logs/laravel.log末尾是否有Permission denied或Class 'PDO' not found类报错——前者说明权限未设对,后者说明php8.3-mysql未装或未启用。


















