在Linux下部署Laravel项目需要经过以下几个步骤:
首先,确保你的Linux系统已经安装了以下软件:
将你的Laravel项目上传到服务器。你可以使用FTP、SCP或其他文件传输方法。
在项目根目录下运行以下命令,安装项目所需的PHP依赖:
composer install
复制.env.example
文件并重命名为.env
:
cp .env.example .env
编辑.env
文件,配置数据库连接、邮件驱动等相关信息。
运行以下命令生成Laravel应用密钥:
php artisan key:generate
如果你的项目包含数据迁移或数据填充文件,请运行以下命令:
php artisan migrate
php artisan db:seed
根据你使用的Web服务器(Nginx或Apache),配置虚拟主机。以下是一个简单的Nginx配置示例:
server {
listen 80;
server_name example.com; # 替换为你的域名
root /path/to/your/laravel/project; # 替换为你的项目路径
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
index index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; # 根据你的PHP版本修改
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
对于Apache,你需要启用mod_rewrite
模块,并在项目根目录下创建一个.htaccess
文件,内容如下:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
对于Nginx,运行以下命令:
sudo service nginx restart
对于Apache,运行以下命令:
sudo service apache2 restart
确保Laravel项目的storage
和bootstrap/cache
目录具有可写权限:
sudo chmod -R 775 storage bootstrap/cache
至此,你的Laravel项目应该已经在Linux服务器上成功部署。访问你的域名,你应该能看到Laravel项目的首页。