使用 Laravel 快速构建网站系列 —— 内容管理系统:PyroCMS

PyroCMS

1、简介

PyroCMS是一个MVC架构的PHP内容管理系统(CMS),很容易上手,模块化,并且支持多主题和二次开发,在世界范围内被广泛使用。 3.0以前的版本基于CodeIgniter框架进行开发,目前主版本是3.0 ,基于Laravel 5.1。

2、网站

https://www.pyrocms.com/

3、GitHub

https://github.com/pyrocms/pyrocms

4、安装

系统要求

安装之前,确保服务器满足以下要求:

  • PHP >= 5.5.9
  • OpenSSL扩展
  • PDO扩展
  • Mbstring扩展
  • Tokenizer扩展
  • Fileinfo扩展
  • GD库(>=2.0)或Imagick扩展(>=6.5.7)

安装PyroCMS

PyroCMS使用Composer管理依赖,因此,使用之前,确保机器已经安装了Composer。

通过Composer安装:

composer create-project pyrocms/pyrocms=3.0-beta1 --prefer-dist

目录权限

安装完成后,需要配置一些目录的访问权限。storagepublic/assetsbootstrap/cache目录及其子目录必须有写权限。如果你使用的是Homestead虚拟机,这些权限已经为你设置好了。

运行安装器

下载并安装PyroCMS及其依赖之后,还需要在浏览器中进一步做初始化配置才能正式使用。此时你需要访问站点URL并跳转到安装界面(自动),第一次访问需要等待较长时间,这是因为第一次加载主题资源会进行编译和缓存。

5、配置

基本配置

PyroCMS和Laravel框架的所有配置文件都存放在config目录下,每一个配置项都是文档化的,所以看起来很轻松。

覆盖配置

可以通过覆盖config/streams中的配置值来指定流平台(Streams Platform)的配置值。例如,如果你想要覆盖streams::assets.paths的值,可以添加自己的assets.php配置文件如下:

config/streams/assets.php

在该配置文件中定义自己的paths值:

<?php
    return [
        'paths' => [
            'https://s3-us-west-1.amazonaws.com/bucket'
        ]
    ];

可以在vendor/anomaly/streams-platform/resources/config查看流平台的有效配置。所有配置值都可以通过上述方式覆盖。

类似的,可以在config/addon/example-module中覆盖新增的配置。

目录权限

安装完成后,需要配置一些权限。storagepublic/assetsbootstrap/cache目录及其子目录必须是可写的,如果你使用的是Homestead虚拟机,这些权限已经配置好了。

应用key

接下来需要设置应用key为一个随机字符串,如果你通过Composer或安装器进行安装,则该key已经通过key:generate命令设置好了,该字符串应该是32位长,并且可以在.env文件中进行设置/修改。如果应用key没有被设置,那么用户session和其它加密数据将会有安全隐患!

额外配置

几乎不需要再进行其它配置就可以进行开发了,当然你可以再去浏览下config/app.php文件和其文档,其中还包含了一些其它配置如timezonelocale,分别用于设置时区和语言。

还可以配置Laravel框架的额外组件,例如缓存、数据库和Session等。

安装完成后,还需要使用Laravel环境文件.env(默认已经为你生成了)配置本地环境。

优雅的URL(SEO友好)

Apache

PyroCMS和Laravel一样包含了一个public/.htaccess文件用于设置URL不包含index.php。如果你使用Apache作为web服务器,确保已经启用了mod_rewrite模块。

如果默认的.htaccess文件不起作用,将其内容替换如下:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

Nginx

在Nginx中,使用如下设置:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

当然,如果你使用的是Homestead,这些都已经为你设置好了,无需再做额外操作。

环境配置

参考Laravel环境配置文档

配置缓存

参考Laravel配置缓存文档

访问配置值

参考Laravel访问配置值文档

访问新增/核心配置值

你可以像访问其他配置值一样访问流平台(Streams Platform)配置值:

$value = config('streams::assets.paths');
$value = config('anomaly.module.users::throttle.max_attempts');

6、维护模式

参考Laravel维护模式文档

扩展阅读:实例教程 —— 如何在Windows上快速安装配置PyroCMS

学院君

学院君 has written 548 articles

资深PHP工程师,Laravel学院院长