Laravel依赖通过Composer管理,需先确保系统安装Composer。若未安装,执行以下命令:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
验证安装:composer --version(应显示Composer版本号)。
Laravel对PHP版本和扩展有明确要求(如Laravel 10.x需PHP 8.1+),需通过以下命令确认:
php -v # 检查PHP版本
php -m # 检查已安装扩展
必需扩展:mbstring(字符串处理)、openssl(加密)、pdo_mysql(MySQL连接)、tokenizer(代码解析)、xml(XML处理)、gd(图像处理)、bcmath(数学运算)。
安装缺失扩展(以Ubuntu为例):
sudo apt update
sudo apt install php-mbstring php-openssl php-pdo-mysql php-tokenizer php-xml php-gd php-bcmath
修改php.ini(如取消扩展注释)后,重启Web服务器(Apache/Nginx)使配置生效。
进入Laravel项目根目录,执行以下命令安装composer.json中定义的依赖:
composer install
若遇到依赖冲突(如版本不兼容),可编辑composer.json文件调整依赖版本(如将"illuminate/support": "^9.0"改为具体版本),再运行composer update更新依赖。
Laravel通过.env文件管理环境配置(如数据库连接、APP_KEY)。需将.env.example复制为.env:
cp .env.example .env
编辑.env文件,填写必要配置(如数据库用户名、密码、APP_KEY):
APP_ENV=local
APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database
DB_USERNAME=your_username
DB_PASSWORD=your_password
生成APP_KEY(若未自动生成):
php artisan key:generate
确保.env文件不被版本控制(如Git忽略),避免敏感信息泄露。
Laravel的storage(日志、缓存、上传文件)和bootstrap/cache(框架缓存)目录需要Web服务器用户(如www-data)的写权限。执行以下命令:
sudo chown -R www-data:www-data /path/to/your/laravel-project # 更改所有权(根据实际项目路径调整)
sudo chmod -R 775 /path/to/your/laravel-project/storage /path/to/your/laravel-project/bootstrap/cache # 授予写权限
注意:避免直接使用777权限(存在安全风险),优先使用www-data用户组。
若安装依赖时出现“下载失败”或“缓存错误”,可清除Composer缓存后重试:
composer clear-cache
再执行composer install或composer update。
若遇到“Composer版本过旧”错误(如Laravel 8.x需Composer 2.0+),可升级Composer:
composer self-update
升级后验证版本:composer --version(应显示2.0及以上)。
若安装依赖时提示“Allowed memory size exhausted”,可通过增加内存限制解决:
php -d memory_limit=-1 /usr/bin/composer install
或临时修改php.ini中的memory_limit值(如memory_limit = 512M),重启Web服务器后生效。
确保Web服务器(Nginx/Apache)正确指向Laravel项目的public目录(入口文件index.php所在位置),并配置PHP-FPM解析。
sudo nano /etc/nginx/sites-available/your-project
添加以下内容(替换/path/to/your/laravel-project为实际路径):server {
listen 80;
server_name your_domain_or_ip;
root /path/to/your/laravel-project/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 根据PHP版本调整
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
启用配置并重启Nginx:sudo ln -s /etc/nginx/sites-available/your-project /etc/nginx/sites-enabled
sudo nginx -t # 测试配置语法
sudo systemctl restart nginx
rewrite模块和站点:sudo a2enmod rewrite
sudo a2ensite your-project.conf
sudo systemctl restart apache2
确保your-project.conf中包含AllowOverride All(允许.htaccess覆盖配置)。通过以上步骤,可解决Ubuntu环境下Laravel的常见依赖问题。若仍有错误,建议查看Laravel日志文件(storage/logs/laravel.log)获取详细错误信息,针对性排查。