温馨提示
×
立即登录
立即注册
云计算
编程语言
网络安全
智能运维
大数据
深度学习
登 录
注册有礼
控制台
用户中心
财务账户
优惠券
充值
退出
云服务器
香港服务器
高防服务器
最新更新
网站标签
地图导航
产品
首页
>
问答
>
智能运维
>
laravel在centos上的配置步骤
laravel在centos上的配置步骤
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
踩
最新问答
Linux中ThinkPHP如何防止SQL注入
ThinkPHP在Linux怎样配置数据库
ThinkPHP如何在Linux上调试
Ubuntu Fortran如何进行数值模拟
Ubuntu Fortran性能分析怎么做
Ubuntu Fortran代码如何优化
如何利用日志进行Node.js集群监控
如何设置Debian Node.js日志自动清理
Debian Node.js日志中错误堆栈信息解读
相关问答
Laravel在Debian上的配置步骤是什么
laravel在centos上怎么配置
laravel在centos上如何配置
laravel在centos上如何配置环境
laravel项目在centos上的部署步骤
laravel在centos上的队列如何配置
laravel在centos上的路由如何配置
Laravel在Debian上的配置步骤
laravel在centos上的路由配置
相关标签
cms
CDN
cdn缓存
cdn服务器
cdn加速
Static Nat
Dynamic Nat
cdn缓存服务器
cdn防御
申请CDN
centos6
centos7
centos7.4
centos服务器重启
centos版本
查看centos版本
Centos服务器
centos查看系统版本
centos虚拟主机租用
centos云服务器