问答
登录
充值
控制台
186****8524
退出
问答
问答首页
云计算
编程语言
网络安全
智能运维
大数据
深度学习
centos
laravel在centos上的配置步骤
小樊
35
2025-12-13 12:15:42
栏目:
智能运维
在 CentOS 上部署 Laravel 的完整步骤
一 准备系统与仓库
更新系统并安装基础工具:
sudo yum update -y
sudo yum install -y epel-release yum-utils git unzip
启用
Remi
仓库(便于安装新版本 PHP):
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
选择需要的 PHP 版本(示例启用
PHP 8.2
):sudo yum-config-manager --enable remi-php82
说明:Laravel 要求
PHP >= 7.3
;以下以
CentOS 7
为例,如使用
CentOS 8/Stream
,包管理器与仓库名可能不同(dnf/yum、AppStream)。
二 安装与启动服务
安装
PHP 与常用扩展
(以 PHP 8.2 为例,按项目增减扩展):
sudo yum install -y php82 php82-php-fpm php82-php-mysqlnd php82-php-gd php82-php-mbstring php82-php-curl php82-php-xml php82-php-zip php82-php-bcmath php82-php-opcache
安装
Nginx
:
sudo yum install -y nginx
sudo systemctl start nginx && sudo systemctl enable nginx
安装
数据库
(二选一)
MySQL 5.7:
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
sudo rpm -ivh mysql57-community-release-el7-11.noarch.rpm
sudo yum install -y mysql-server
sudo systemctl start mysqld && sudo systemctl enable mysqld
获取初始密码:sudo grep ‘temporary password’ /var/log/mysqld.log
登录后设置强密码:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘YourStrongP@ssw0rd!’;
运行安全脚本:sudo mysql_secure_installation
MariaDB(替代方案):
sudo yum install -y mariadb-server mariadb
sudo systemctl start mariadb && sudo systemctl enable mariadb
sudo mysql_secure_installation
安装
Composer
(PHP 依赖管理):
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
三 配置 PHP-FPM 与 Nginx
PHP-FPM(以 PHP 8.2 为例,使用 Unix Socket)
主配置:/etc/opt/remi/php82/php.ini
建议:cgi.fix_pathinfo=0
池配置:/etc/opt/remi/php82/php-fpm.d/www.conf
用户/组与 Nginx 保持一致(查看:egrep ‘^(user|group)’ /etc/nginx/nginx.conf)
user = nginx
group = nginx
监听套接字(目录需存在,若不存在先创建)
listen = /run/php-fpm/remi-php82/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
启动:sudo systemctl start php82-php-fpm && sudo systemctl enable php82-php-fpm
Nginx 虚拟主机(/etc/nginx/conf.d/laravel.conf)
示例:
server {
listen 80;
server_name your_domain_or_ip;
root /var/www/laravel/public; index index.php;
add_header X-Frame-Options “SAMEORIGIN”;
add_header X-Content-Type-Options “nosniff”;
charset utf-8;
location / { try_files $uri $uri/ /index.php?$query_string; }
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ .php$ {
fastcgi_pass unix:/run/php-fpm/remi-php82/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /.(?!well-known).* { deny all; }
}
检查并重载:
sudo nginx -t && sudo systemctl reload nginx
可选:使用
Apache
时启用模块并配置虚拟主机(AllowOverride All、DocumentRoot 指向 public)。
四 部署 Laravel 项目
获取代码(示例两种方式)
全新项目:composer create-project --prefer-dist laravel/laravel /var/www/laravel
已有项目:cd /var/www && git clone
laravel && cd laravel
安装依赖(生产环境建议 --no-dev)
composer install --optimize-autoloader --no-dev
配置环境
cp .env.example .env
编辑 .env(数据库与 URL)
APP_NAME=Laravel
APP_ENV=production
APP_DEBUG=false
APP_URL=http://your_domain_or_ip
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=your_password
生成应用密钥:php artisan key:generate
数据库
登录数据库后执行:
CREATE DATABASE laravel_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER ‘laravel_user’@‘localhost’ IDENTIFIED BY ‘YourStrongP@ssw0rd!’;
GRANT ALL PRIVILEGES ON laravel_db.* TO ‘laravel_user’@‘localhost’;
FLUSH PRIVILEGES;
迁移与(可选)填充:php artisan migrate --force
权限(以 Nginx 运行用户为
nginx
为例)
sudo chown -R nginx:nginx /var/www/laravel
sudo find /var/www/laravel -type f -exec chmod 644 {} ;
sudo find /var/www/laravel -type d -exec chmod 755 {} ;
sudo chmod -R 775 /var/www/laravel/storage /var/www/laravel/bootstrap/cache
优化(生产)
php artisan config:cache
php artisan route:cache
php artisan view:cache
访问测试:打开浏览器访问 http://your_domain_or_ip。
五 常见问题与优化
SELinux 导致 403/500:
查看状态:/usr/sbin/sestatus -v
临时宽松:sudo setenforce 0(重启失效)
永久调整:编辑 /etc/selinux/config 将 SELINUX=enforcing 改为 SELINUX=permissive 并重启(或按需配置正确的 SELinux 策略)
目录权限与所有权:确保
storage
、
bootstrap/cache
对
Web 服务用户
可写;避免使用 777,优先 775/755 并正确归属用户组
路由/页面空白:检查 .env 配置、APP_DEBUG、日志(storage/logs/laravel.log)、以及 Nginx fastcgi_param SCRIPT_FILENAME 是否为
$realpath_root$fastcgi_script_name
队列与计划任务(可选)
队列工作进程:nohup php artisan queue:work --queue=default --tries=3 &
计划任务:编辑 crontab -e 添加
cd /var/www/laravel && php artisan schedule:run >> /dev/null 2>&1
版本提示:Laravel 10/11 要求
PHP 8.1+
;本示例以
PHP 8.2
为例,若需其他版本,启用对应
remi-php
仓库并调整 php-fpm 套接字路径与命令路径。
0
赞
0
踩
看了该问题的人还看了
Laravel在Debian上的配置步骤是什么
laravel在centos上怎么配置
laravel在centos上如何配置
laravel在centos上如何配置环境
laravel项目在centos上的部署步骤
laravel在centos上的队列如何配置
laravel在centos上的路由如何配置
Laravel在Debian上的配置步骤
laravel在centos上的路由配置
产品服务
云服务器
高防服务器
高防IP
裸金属服务器
专属宿主机
机柜租用
SSL证书
弹性IP
云硬盘
地区划分
香港服务器
美国服务器
德国服务器
日本服务器
帮助支持
帮助中心
网站备案
安全漏洞
关于我们
关于亿速云
客户案例
新闻资讯
加入亿速云
联系亿速云
行业资讯-文章归档
问答-问答归档