溫馨提示×

centos上laravel如何實現熱更新

小樊
55
2025-05-04 19:43:23
欄目: 智能運維

在CentOS上,Laravel可以通過使用Supervisor和Nginx來實現熱更新。以下是詳細的步驟:

1. 安裝Supervisor

Supervisor是一個進程控制系統,可以用來管理Laravel的隊列和Web服務器進程。

sudo yum install epel-release
sudo yum install supervisor

2. 配置Supervisor

編輯Supervisor的配置文件,通常位于/etc/supervisord.conf/etc/supervisor.d/laravel.conf。

sudo vi /etc/supervisor.d/laravel.conf

添加以下內容:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/your/laravel/project/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
user=your_user
numprocs=8
redirect_stderr=true
stdout_logfile=/path/to/your/laravel/project/storage/logs/worker.log
stopwaitsecs=3600

[program:nginx]
process_name=%(program_name)s_%(process_num)02d
command=/usr/sbin/nginx -g 'daemon off;'
autostart=true
autorestart=true
user=nginx
numprocs=1
redirect_stderr=true
stdout_logfile=/var/log/nginx/access.log
stderr_logfile=/var/log/nginx/error.log

確保將/path/to/your/laravel/project替換為你的Laravel項目的實際路徑,并將your_user替換為運行Laravel進程的用戶。

3. 啟動Supervisor

啟動Supervisor并加載配置:

sudo supervisord -c /etc/supervisord.conf

4. 配置Nginx

確保你的Nginx配置文件正確指向Laravel項目的public目錄。例如:

server {
    listen 80;
    server_name your_domain.com;

    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$ {
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

5. 重啟Nginx

重啟Nginx以應用配置更改:

sudo systemctl restart nginx

6. 熱更新

當你需要更新Laravel項目時,只需將新的代碼部署到服務器上,然后重新加載Supervisor來啟動新的進程。

sudo supervisorctl reread
sudo supervisorctl update

這樣,Supervisor會自動重啟Laravel的隊列和Web服務器進程,實現熱更新。

注意事項

  • 確保你的服務器有足夠的資源來運行多個進程。
  • 在生產環境中,建議使用更高級的部署工具,如Capistrano或Deployer,來自動化部署過程。
  • 定期檢查日志文件以確保沒有錯誤發生。

通過以上步驟,你可以在CentOS上實現Laravel的熱更新。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女