温馨提示×

CentOS能否支持Laravel

小樊
39
2026-08-29 16:10:42
栏目: 智能运维

结论:可以。CentOS 完全支持 Laravel。

Laravel 基于 PHP 的 Web 框架,并不依赖特定的 Linux 发行版,只要系统满足其运行环境要求即可。CentOS(包括 CentOS 7 和 CentOS 8 Stream)是服务器领域非常主流的选择,非常适合部署 Laravel。

以下是详细的说明和部署建议:

1. 核心要求

Laravel 的运行只依赖以下几点,CentOS 都可以很好地满足:

  • Web 服务器:Nginx 或 Apache(CentOS 仓库均有)。
  • PHP 版本:必须满足 Laravel 版本的要求(例如 Laravel 10 需要 PHP 8.1+)。
  • 数据库:MySQL、MariaDB 或 PostgreSQL(CentOS 对 MariaDB 支持很好)。
  • 其他扩展:如 fileinfo, mbstring, curl, zip 等。

2. 版本选择(重要)

由于 CentOS 不同版本的软件源策略不同,部署方式略有区别:

情况 A:CentOS 7 (传统稳定版)

  • 现状:CentOS 7 已于 2024 年 6 月 30 日 EOL(停止维护)。
  • PHP 问题:系统自带的 YUM 源中的 PHP 版本非常旧(通常是 5.4)。
  • 解决方案必须使用第三方源(如 Remi 仓库)来安装新版本的 PHP(8.1, 8.2 等)。
  • 建议:如果这是新项目,不建议再使用 CentOS 7,除非是维护旧系统。

情况 B:CentOS Stream 8 / 9 (当前主流)

  • 现状:CentOS 8 已停止维护,建议使用 CentOS Stream 9。
  • PHP 问题:AppStream 仓库中的 PHP 版本较新(通常在 7.4 或 8.0 左右),但可能还是不够新(例如 Laravel 11 需要 PHP 8.2+)。
  • 解决方案:同样推荐使用 Remi 仓库 来获取最新的 PHP 版本。

3. 推荐部署架构

在 CentOS 上部署 Laravel 的标准架构通常是: CentOS + Nginx + PHP-FPM + MariaDB/MySQL + Redis

4. 快速部署示例 (以 CentOS 7/8 安装 PHP 8.2 为例)

如果你决定在 CentOS 上部署,以下是大致的步骤流程:

步骤 1:安装 EPEL 和 Remi 源

# CentOS 7
yum install -y epel-release
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm

# CentOS 8/Stream 8
dnf install -y epel-release
dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm

步骤 2:启用 PHP 8.2 (假设使用 Laravel 10/11)

# 安装 yum-utils 以便使用 yum-config-manager
yum install -y yum-utils

# 禁用旧版本,启用 8.2
yum-config-manager --disable 'remi-php*'
yum-config-manager --enable remi-php82

步骤 3:安装 PHP 及扩展

yum install -y php php-cli php-fpm php-json php-common php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-json

步骤 4:安装 Composer

Laravel 依赖 Composer 管理包。

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

步骤 5:安装 Nginx 并配置

yum install -y nginx

配置 Nginx 的 server 块,将 root 指向 Laravel 项目的 public 目录,并将请求转发给 php-fpm

5. 注意事项

  1. 权限问题:CentOS 默认开启了 SELinux,这经常导致 Laravel 的存储目录(storage/)无法写入或 Nginx 无法访问。
    • 临时关闭测试:setenforce 0
    • 或者正确配置 SELinux:chcon -R -t httpd_sys_rw_content_t storage/
  2. 防火墙:CentOS 默认使用 firewalld,需要开放 80 或 443 端口。
    firewall-cmd --permanent --zone=public --add-service=http
    firewall-cmd --reload
    
  3. 生产环境:如果这是生产环境,建议使用 Rocky LinuxAlmaLinux 替代 CentOS(它们是 CentOS 的继任者,更稳定且长期支持),操作流程完全一样。

总结

CentOS 可以完美运行 Laravel。 只要记得通过 Remi 源安装较新版本的 PHP,并处理好 Nginx 配置和 SELinux 权限即可。

0