Supervisor 是一个进程控制系统,用于管理、监控和控制后台进程。它确保这些进程持续运行,即使出现错误或崩溃也能自动重启。对于 Laravel 8 应用程序,Supervisor 可以用来管理队列工作器、定时任务等长时间运行的进程。
在共享主机上,由于权限和资源限制,可能无法直接安装和配置 Supervisor。以下是一些备选方案:
#!/bin/bash
php /path/to/your/laravel/project/artisan queue:work --sleep=3 --tries=3
crontab -e
添加以下行:
* * * * * /path/to/your/script.sh >> /path/to/your/laravel/project/storage/logs/cron.log 2>&1
这会每分钟运行一次队列工作器脚本。
FROM php:7.4-fpm
# 安装依赖
RUN apt-get update && apt-get install -y \
libpng-dev \
libjpeg-dev \
libfreetype6-dev \
libzip-dev \
zip \
unzip \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j$(nproc) gd zip pdo_mysql
# 安装 Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# 复制 Laravel 项目
COPY . /var/www/html
WORKDIR /var/www/html
# 安装 Laravel 依赖
RUN composer install --optimize-autoloader --no-dev
# 设置文件权限
RUN chown -R www-data:www-data /var/www/html/storage /var/www/html/bootstrap/cache
version: '3'
services:
web:
build: .
ports:
- "80:80"
volumes:
- .:/var/www/html
depends_on:
- db
db:
image: mysql:5.7
environment:
MYSQL_DATABASE: your_database
MYSQL_USER: your_user
MYSQL_PASSWORD: your_password
MYSQL_ROOT_PASSWORD: your_root_password
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
docker-compose up -d
通过这些方法,你可以在共享主机上有效地管理和监控 Laravel 8 应用程序的后台进程。
领取专属 10元无门槛券
手把手带您无忧上云