以下是在Ubuntu環境下部署Laravel項目的核心步驟:
sudo apt update && sudo apt upgrade -y
sudo apt install nginx php-fpm php-mysql php-gd php-mbstring php-curl php-xml
sudo apt install apache2 php libapache2-mod-php php-mysql
sudo a2enmod rewrite
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
/var/www/your_project
):git clone <倉庫地址> /var/www/your_project
cd /var/www/your_project
composer install --optimize-autoloader --no-dev
.env.example
并修改為.env
,設置數據庫等參數:cp .env.example .env
nano .env
# 修改示例:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=your_db
DB_USERNAME=your_user
DB_PASSWORD=your_password
php artisan key:generate
sudo chown -R www-data:www-data storage bootstrap/cache
sudo chmod -R 755 storage bootstrap/cache
sudo nano /etc/nginx/sites-available/your_project
your_domain
和路徑):server {
listen 80;
server_name your_domain.com;
root /var/www/your_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:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
sudo ln -s /etc/nginx/sites-available/your_project /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx
sudo nano /etc/apache2/sites-available/your_project.conf
your_domain
和路徑):<VirtualHost *:80>
ServerName your_domain.com
DocumentRoot /var/www/your_project/public
<Directory /var/www/your_project/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
sudo a2ensite your_project.conf
sudo systemctl restart apache2
sudo mysql -u root -p
CREATE DATABASE your_db;
USE your_db;
SOURCE /path/to/your_project/database.sql; # 如有需要
php artisan migrate
php artisan config:cache
php artisan route:cache
php artisan view:cache
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your_domain.com
sudo crontab -e
# 添加示例(每分鐘處理隊列):
* * * * * php /var/www/your_project/artisan queue:work