以下是Laravel项目在Linux上的部署流程:
sudo apt update && sudo apt upgrade -y # Debian/Ubuntu
sudo yum update -y # CentOS/RHEL
php-fpm
、php-mysql
等):sudo apt install php php-fpm php-mysql php-curl php-mbstring php-xml php-zip
sudo yum install php php-fpm php-mysqlnd php-curl php-mbstring php-xml php-bcmath
sudo apt install nginx
(Debian/Ubuntu)或 sudo yum install nginx
(CentOS/RHEL)sudo apt install mysql-server
(Debian/Ubuntu)或 sudo yum install mariadb-server
(CentOS/RHEL)curl -sS https://getcomposer.org/installer | php
,然后 sudo mv composer.phar /usr/local/bin/composer
/var/www/
目录下,如/var/www/laravel-project
。cp .env.example .env
nano .env
修改数据库连接、APP_KEY等配置(生成APP_KEY需后续执行php artisan key:generate
)。composer install --optimize-autoloader --no-dev
php artisan key:generate
CREATE DATABASE laravel_db;
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'localhost';
FLUSH PRIVILEGES;
执行迁移:php artisan migrate
。sudo nano /etc/nginx/sites-available/laravel
添加以下内容(替换/path-to-laravel
为实际路径):server {
listen 80;
server_name your-domain.com;
root /path-to-laravel/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:/var/run/php/php8.1-fpm.sock; # 根据PHP版本调整
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
启用配置:sudo ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/
,然后测试并重启Nginx:sudo nginx -t
sudo systemctl restart nginx
sudo chown -R www-data:www-data /var/www/laravel-project # Debian/Ubuntu
sudo chown -R apache:apache /var/www/laravel-project # CentOS/RHEL
sudo chmod -R 775 /var/www/laravel-project/storage /var/www/laravel-project/bootstrap/cache
php artisan config:cache
php artisan route:cache
访问http://your-domain.com
,若看到Laravel欢迎页面则部署成功。查看日志排查问题:
/var/log/nginx/error.log
/var/www/laravel-project/storage/logs/laravel.log