Concrete CMS 是一款以“直觉化编辑”著称的 PHP 内容管理系统,它的最大特点就是前台页面直接点击编辑,不需要进入复杂的后台菜单层层寻找功能。对于很多想快速建站又不想被技术细节拖住的个人站长或小团队来说,Concrete CMS 是一个相当友好的选择。不过再友好的程序,要放到公网上运行,第一步依然是服务器环境的准备。很多人以为部署 PHP 程序就是上传文件然后访问安装向导,实际过程中因为 PHP 版本、扩展缺失、目录权限或者伪静态规则没配对,卡在安装界面半天找不到原因的情况非常普遍。这篇文章就把云服务器部署 Concrete CMS 的完整流程拆开来讲,从基础环境到最终上线,每一步都给出明确的操作思路和常见问题说明。

在开始之前,需要明确一点:Concrete CMS 官方推荐的运行环境是 PHP 7.4 到 8.1 之间的版本,搭配 MySQL 或 MariaDB 数据库,Web 服务器可以选择 Apache 或者 Nginx。如果你的云服务器是新开的,一般系统盘选择 Ubuntu 20.04 或 22.04 LTS 会更省心,因为软件源里的 PHP 和扩展包比较齐全。CentOS 系列虽然也能用,但很多仓库默认 PHP 版本偏低,需要额外添加第三方源,操作上多一步。所以本文以 Ubuntu 22.04 系统为例,Web 服务器使用 Apache,数据库使用 MariaDB,这套组合对新手比较友好,网上资料也最多。
第一步:准备云服务器与基础软件
购买云服务器时,最低配置建议 1 核 CPU、1GB 内存起步。Concrete CMS 本身不算特别吃资源,但如果服务器同时跑数据库和 Web 服务,1GB 内存有时在安装 Composer 依赖或者执行数据库导入时会显得紧张。预算允许的话,2GB 内存会更舒服。操作系统选择 Ubuntu 22.04 LTS,镜像选纯净版即可,不要选预装宝塔或其他面板的版本,因为本教程会手动配置环境,面板反而可能干扰后续操作。
拿到服务器后,先通过 SSH 登录,更新软件源并安装一些基础工具。执行 sudo apt update && sudo apt upgrade -y 把系统补丁打上。然后安装 Apache、MariaDB 和 PHP 相关的包。这里要注意,如果只安装 PHP 核心,后续 Concrete CMS 会提示缺少很多扩展,所以一次性把常用扩展都装上更省事。命令可以写成一条长命令,也可以分步执行。安装过程中如果提示需要设置 MariaDB root 密码,建议设置一个强密码并妥善记录,后面配置数据库连接要用。
第二步:安装 PHP 扩展并调整配置
Concrete CMS 对 PHP 扩展的要求比较明确,除了常见的 mysqli、gd、curl、mbstring、xml、zip 之外,还特别需要 intl 和 fileinfo 扩展。缺少 intl 扩展会导致安装向导直接报错,缺少 fileinfo 则在上传图片或文件时无法正确识别 MIME 类型。另外,OPcache 虽然不是必需,但开启后能明显提升 PHP 执行性能,尤其是访问量上来之后。使用 apt 安装时,包名通常是 php8.1-xxx 这种格式,比如 php8.1-intl、php8.1-gd、php8.1-mbstring 等。
安装完扩展之后,需要修改 PHP 配置文件,把上传文件大小限制和内存限制调高一些。默认的 upload_max_filesize 通常是 2M,而 Concrete CMS 上传主题包或者较大的图片时很容易超过这个限制。打开 /etc/php/8.1/apache2/php.ini,找到 upload_max_filesize 和 post_max_size,把数值改成 64M 或 128M,同时把 memory_limit 调整为 256M。改完保存后,重启 Apache 让配置生效。这一步经常被忽略,导致用户在后台导入主题时反复失败,其实根源就在这里。
第三步:下载 Concrete CMS 并上传到服务器
获取 Concrete CMS 源码有两种方式:一种是从官网下载 zip 压缩包,另一种是通过 Composer 创建项目。对于不熟悉命令行的用户,直接下载 zip 包更直观。访问 Concrete CMS 官网的下载页面,选择最新稳定版,下载后得到一个 zip 文件。把这个文件上传到云服务器的 Web 根目录,通常 Apache 默认根目录是 /var/www/html。上传可以用 scp 命令,也可以用 SFTP 工具。
上传完成后,先删除根目录下默认的 index.html 文件(如果有),然后解压 zip 包。注意不要直接解压到当前目录导致多出一层文件夹,应该把解压出来的所有文件和目录移动到 Web 根目录下。解压命令是 unzip concretecms-x.x.x.zip,解压后如果看到有一个 concretecms-x.x.x 的文件夹,就把里面的内容移动到上级目录。移动完成后,Web 根目录下应该能看到 index.php、concrete 目录、application 目录等。
第四步:创建数据库并配置连接
Concrete CMS 在安装时需要连接一个空的数据库。登录 MariaDB,执行 sudo mysql -u root -p,然后创建数据库和专用用户。例如创建一个名为 concretecms 的数据库,再创建一个名为 concreteuser 的用户,密码自定义,并授予该用户对 concretecms 数据库的全部权限。这样比直接使用 root 用户连接更安全,也能避免后续修改密码影响其他应用。
创建好数据库之后,回到浏览器访问你的服务器 IP 或域名,Concrete CMS 会自动跳转到安装向导。在数据库连接页面,填写刚才创建的数据库名、用户名、密码,数据库主机通常保持 localhost 即可。如果连接失败,先检查 MariaDB 服务是否启动,再确认用户权限是否刷新。安装向导还会要求设置管理员账号、站点名称等信息,按提示填写即可。安装完成后,系统会提示删除安装目录,记得按照提示把 /install 目录删除或重命名,否则网站会一直提示安全风险。
第五步:配置文件权限与伪静态规则
Concrete CMS 需要 Web 服务器对某些目录有写权限,主要是 application/files 目录和 application/config 目录。安装完成后,把这两个目录以及其中的文件所有者设置为 www-data(Apache 默认运行用户),并赋予适当的读写权限。命令大致为 sudo chown -R www-data:www-data /var/www/html/application/files 和 sudo chmod -R 755 /var/www/html/application/files。如果权限设置不当,后台编辑页面时会出现无法保存图片或缓存文件的问题。
伪静态规则方面,如果使用 Apache,Concrete CMS 自带 .htaccess 文件,通常不需要额外配置,只要确保 Apache 的 mod_rewrite 模块已启用即可。启用命令是 sudo a2enmod rewrite,然后重启 Apache。如果使用 Nginx,则需要手动添加 location 规则,把请求转发到 index.php。很多教程只讲了 Apache 的情况,Nginx 用户在部署时容易卡在 404 或主页空白,本质就是伪静态没配对。建议 Nginx 用户参考 Concrete CMS 官方文档中的 Nginx 配置示例,根据实际路径调整 root 和 fastcgi_pass。
第六步:安全加固与性能调优建议
网站上线后,安全是第一位的。首先删除安装目录、修改管理员密码为强密码、关闭 PHP 错误显示。然后可以考虑启用 HTTPS,使用 Let's Encrypt 免费证书,配置 Apache 或 Nginx 强制跳转 HTTPS。另外,限制后台登录页面的访问频率,安装 fail2ban 之类的工具防止暴力破解。Concrete CMS 后台地址默认是 /index.php/login,可以把它加入监控范围。
性能方面,前面提到的 OPcache 一定要开启,同时可以启用 MariaDB 的查询缓存或调整 InnoDB 缓冲池大小。如果服务器内存足够,安装 Redis 并配合 Concrete CMS 的缓存驱动,能显著减少数据库查询次数。图片较多的站点,还可以配置 CDN 加速静态资源。不过这些优化属于进阶内容,初期先保证站点稳定运行,后续根据访问量逐步调整即可。
整个部署流程走下来,你会发现 Concrete CMS 的安装门槛其实不算高,关键是把 PHP 扩展、文件权限和伪静态这三块弄对。很多人卡住不是因为程序复杂,而是因为环境没配全或者细节遗漏。建议每次操作后都记录一下改动,方便回滚排查。等你成功部署一次,再迁移或复制站点就会轻车熟路。
Concrete CMS部署云服务器配置PHP CMS安装修改时间:2026-09-24 13:29:06