将 Laravel 项目迁移到 CentOS 服务器,通常包含:环境准备 → 代码上传 → 依赖安装 → 配置 → 权限 → Web 服务配置 → 测试。下面给你一个完整、可操作的流程(以 CentOS 7/8 + Nginx + PHP + MySQL 为例)。
ssh root@服务器IP
yum update -y
yum install nginx -y
systemctl start nginx
systemctl enable nginx
yum install epel-release -y
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
yum install yum-utils -y
yum-config-manager --enable remi-php81
yum install php php-cli php-fpm php-mysqlnd php-zip php-gd php-mbstring php-curl php-xml php-bcmath -y
启动 PHP-FPM:
systemctl start php-fpm
systemctl enable php-fpm
yum install mariadb-server -y
systemctl start mariadb
systemctl enable mariadb
初始化数据库:
mysql_secure_installation
创建数据库:
CREATE DATABASE laravel_db;
CREATE USER 'laravel'@'localhost' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel'@'localhost';
FLUSH PRIVILEGES;
cd /var/www
git clone 你的仓库地址 laravel
本地:
zip -r laravel.zip .
服务器:
cd /var/www
unzip laravel.zip -d laravel
cd /var/www/laravel
composer install --optimize-autoloader --no-dev
如果没装 Composer:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
mv composer.phar /usr/local/bin/composer
cp .env.example .env
php artisan key:generate
修改数据库信息:
DB_DATABASE=laravel_db
DB_USERNAME=laravel
DB_PASSWORD=密码
php artisan migrate --force
如有 Seed:
php artisan db:seed --force
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
编辑:
vim /etc/nginx/conf.d/laravel.conf
示例配置:
server {
listen 80;
server_name 你的域名或IP;
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 -t
systemctl restart nginx
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
setsebool -P httpd_can_network_connect 1
setsebool -P httpd_unified 1
php artisan config:cache
php artisan route:cache
php artisan view:cache
| 问题 | 解决 |
|---|---|
| 500 错误 | 看 storage/logs/laravel.log |
| 403 | 权限 / SELinux |
| 404 | Nginx rewrite |
| 白屏 | php artisan config:clear |
如果你愿意,我可以:
你现在的 CentOS 版本和 PHP 版本是多少?