下面给你一套在 CentOS 上部署 Laravel 的完整流程,适用于 CentOS 7 / 8 / Stream,Laravel 8/9/10/11 基本通用。
Laravel 依赖:
# CentOS 7
yum install -y epel-release
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
# CentOS 8 / Stream
dnf install -y epel-release
dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
yum install -y yum-utils
yum-config-manager --enable remi-php82
yum install -y php \
php-cli \
php-fpm \
php-mysql \
php-mbstring \
php-xml \
php-curl \
php-zip \
php-gd \
php-intl \
php-opcache \
php-redis
检查版本:
php -v
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer
composer -V
yum install -y nginx
systemctl enable nginx
systemctl start nginx
mkdir -p /var/www
cd /var/www
git clone https://github.com/yourname/laravel.git
cd laravel
composer install --no-dev --optimize-autoloader
cp .env.example .env
php artisan key:generate
编辑数据库配置:
vi .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=123456
chown -R nginx:nginx /var/www/laravel
chmod -R 755 /var/www/laravel
chmod -R 777 /var/www/laravel/storage
chmod -R 777 /var/www/laravel/bootstrap/cache
编辑配置:
vi /etc/nginx/conf.d/laravel.conf
server {
listen 80;
server_name yourdomain.com;
root /var/www/laravel/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
重载 Nginx:
nginx -t
systemctl reload nginx
systemctl enable php-fpm
systemctl start php-fpm
yum install -y mariadb mariadb-server
systemctl start mariadb
mysql_secure_installation
创建数据库:
CREATE DATABASE laravel;
CREATE USER 'laravel'@'localhost' IDENTIFIED BY '123456';
GRANT ALL ON laravel.* TO 'laravel'@'localhost';
FLUSH PRIVILEGES;
php artisan migrate
php artisan config:cache
php artisan route:cache
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
tail -f /var/www/laravel/storage/logs/laravel.log
chown -R nginx:nginx /var/www/laravel
✅ 关闭 debug
APP_DEBUG=false
✅ 使用 supervisor 管理队列
✅ 使用 Redis
✅ 开启 OPCache
如果你愿意,我可以:
你现在是 本地测试还是线上服务器?