在 CentOS 上“管 Laravel”通常指:安装运行环境、部署项目、日常运维、队列/定时任务、日志与监控。下面按实战流程给你一套清晰思路(以 CentOS 7/8 + PHP 8.x + Nginx + MariaDB/MySQL 为例)。
sudo dnf update -y # CentOS 8
# 或
sudo yum update -y # CentOS 7
sudo dnf install -y epel-release
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo dnf module enable php:remi-8.2 -y
sudo dnf install -y php php-cli php-fpm php-mysqlnd php-mbstring php-xml php-curl php-zip php-gd php-bcmath
验证:
php -v
sudo dnf install -y nginx
sudo systemctl enable --now nginx
sudo systemctl enable --now php-fpm
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
cd /var/www
git clone your-repo.git laravel
cd laravel
composer install --no-dev --optimize-autoloader
cp .env.example .env
php artisan key:generate
server {
listen 80;
server_name yourdomain.com;
root /var/www/laravel/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
sudo nginx -t
sudo systemctl restart nginx
sudo chown -R nginx:nginx /var/www/laravel
sudo chmod -R 755 /var/www/laravel
sudo chmod -R 777 /var/www/laravel/storage
sudo dnf install -y mariadb-server
sudo systemctl enable --now mariadb
mysql_secure_installation
建库:
CREATE DATABASE laravel;
CREATE USER 'laravel'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON laravel.* TO 'laravel'@'localhost';
php artisan queue:work
CentOS 用 systemd 管理:
# /etc/systemd/system/laravel-queue.service
[Unit]
Description=Laravel Queue
[Service]
ExecStart=/usr/bin/php /var/www/laravel/artisan queue:work
Restart=always
User=nginx
[Install]
WantedBy=multi-user.target
systemctl enable --now laravel-queue
crontab -e
* * * * * php /var/www/laravel/artisan schedule:run
tail -f /var/www/laravel/storage/logs/laravel.log
日志轮转:
sudo vi /etc/logrotate.d/laravel
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan migrate
✅ 用 systemd 管队列
✅ 用 Nginx + PHP-FPM
✅ 用 git + composer 部署
✅ 用 supervisor(可选) 管进程
✅ 用 防火墙
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
如果你愿意,我可以:
你现在是 学习 / 测试 / 生产部署?