BALCMS是一个Zend框架和学说ORM驱动的CMS。
BALCMS与其他CMS不同,因为我们只需添加一个新的模块即可直接扩展它 - 甚至只需直接修改CMS(因为CMS只是一个模块和一系列依赖项)。我所知道的其他CMS实际上没有允许开发人员如此轻松而直接地扩展CMS,通常您会锁定到特定且有限的插件框架中 - 如果您试图为自定义应用程序构建可扩展且可扩展的CMS,这确实会吸引球。因此,如果您不喜欢巴尔奇或需要添加新功能,则可以直接进入那里并进行!将其视为基础,而不是锁定。这是解放的! Balcms也是高度自以为是的软件,它虔诚地遵循最佳实践。
BALCM在很大程度上取决于命令行。如果您在UNIX/MAC/Linux平台上,您会发现安装和使用非常简单。如果您在Windows平台上,则可能会面临相当多的学习曲线(并且需要通过Cygwin终端运行命令) - 我们建议获取Mac。
将永远不会有前端GUI来替换对命令行的依赖性,因为我们认为这种依赖性是有道理的最佳实践。一旦您熟悉它,您就会对。现在这正在赋予力量。
对于Windows,您需要安装:
对于UNIX/MAC/Linux,您需要安装:
这些安装将为您提供以下要求:
首先,我们需要确保正确配置您的环境。对于此运行./cli check-env 。如果它没有返回任何错误消息,则可以继续进行。如果确实这样做,请参加消息。如果您收到消息说未配置您的GIT安装,那么配置它的最简单方法是在Github上设置一个新的免费帐户,与他们一起创建一个新的存储库,请按照他们的使用和设置./cli check-env库来按照他们的说明进行操作 - 一旦完成您的git安装,您将无法进行配置。巴尔奇。
运行以下命令:
mkdir mywebsite
cd mywebsite
curl -OL http://github.com/balupton/balcms/raw/master/cli
./cli birth
说明:我们在这里做的是创建我们的新网站目录(文件夹),然后获取应用程序的命令行界面。有了这个文件,我们可以运行
./cli birth。./cli birth命令实际上由其他三个重要命令组成:
./cli init-new./cli configure,以获取CMS的依赖关系和要求并配置目录结构./cli install安装CMS的数据库,调整权限并运行任何CRON作业。
我们将使用这些命令,稍后再使用。
在运行时,您的网站将需要其自己的公共或私人GIT存储库。您可以在GitHub上创建一个(尽管如果您想要一个私人帐户,则需要一个付费帐户),也可以找到替代的私人Git主机。
这些命令运行后,设置了您的远程git存储库。我们想将本地存储库与远程存储库相关联。我们通过复制远程存储库的读取+写URL来做到这一点,它应该看起来像[email protected]:balupton/balcms.git 。因此,我们将运行以下命令:
git remote add origin {your git repos read/write url} ; make deploy
说明:此处的第二个命令
./cli deploy将将我们的更改从开发分支发送到稳定的分支,然后从稳定的分支到master分支。最后,然后将所有这些更改发送给我们的远程存储库。
我们希望将更改发送到远程存储库,因为我们可以部署到远程服务器(实际上将托管和访问我们的网站)。如果我们的开发环境崩溃,我们还将有一个远程备份。最后的好处,也许最好的是,如果我们与其他人合作,它使我们都可以无缝合作。
完成所有操作后,您现在就可以访问您的新Balcms网站。因此,让我们导航到我们的Localhost和我们在(例如http://localhost/sites/mywebsite )中安装的目录。
要管理您的新网站,您将在您的网站上使用admin位置(例如http://localhost/sites/mywebsite/admin )。默认用户名是admin ,并且密码是random - 这些是在“配置文件” application/data/fixtures/data.yml中指定的,或者您可以使用用户管理区域更改它们。
BALCMS的结构基于标准的模块化Zend框架结构,并具有其他扩展,以更容易配置和本地化,并支持主题,媒体上传,图像调整开箱即用。
因此,让我们看一下结构:
.gitignore - Used to tell Git about the files that we do not want committed to our repository (e.g. cache files)
.htaccess - Used to tell Apache about how requests should be handled
application/
config/
data/
cache/
database/ - Contains our SQLite Databases
dump/
fixtures/ - Contains our Initial Database Data
logs/
schema/ - Contains our Database Structure
layouts/
models/ - Contains the Models we actually use, these inherit from the models in the following sub-directories
Bal/ - Core models included by the BalPHP Library
Balcms/ - Core models used by BalCMS (these typically inherit the Bal models)
Base/ - Autogenerated by Doctrine ORM
modules/
balcms/
config/ - Our module specific Configuration
controllers/ - Our module specific Business Logic
BackController.php - For our Administration/Back Area
FeedController.php - For our News/RSS/Atom/Subscription Feeds
FrontController.php - For our Public/Front Area
views/ - Our module specific View Logic
helpers/ - Contains our Standard Content Widgets (used within our posts)
scripts/ - Contains our View Scripts
default/ - Contains our Default/Base Modules (used for Error Handling)
cli - BalCMS's Command Line Interface
common/ - Used to contain our submodules/requirements/dependencies used by BalCMS (e.g. zend framework)
config.php
il8n/ - Contains our Localisation/Language files.
index.php
public/
images/
media/
cache/ - Used by the inbuilt bundlers (View Helpers: HeadScriptBundler, HeadLinkBundler)
scripts/
styles/
deleted/ - Where deleted files go (if we don't hard delete them)
image.php - Handles on-the-fly image resizing
images/ - Where the generated/compressed/resized images go
invoices/ - Used for our invoicing functionality (not documented)
uploads/ - Where user uploads go
scripts/
styles/
themes/ - Where our applications themes go, if you want to customise the look and feel of the application, this is where it's at.
albeo/ - The default theme. Creamy green.
balcms/ - The administration theme.
titan - A creamy brown theme.
README.md - This readme that you're reading right now.
robots.txt - What to tell Search Engines. Read up on google.
scripts/ - Contains scripts used by our CLI to perform specific actions
tests/ - Unit tests for our application.
如果以上任何一种令人困惑,请参考以下文章:
BALCMS在以下位置具有配置文件:
config.php - Used detect and set our environment (i.e. development, staging or production).
application/
config/
application.yml - Used to specify the configuration for our environments.
core.yml - Used to specify the paths that our environments will use.
nav.yml - Used to specify navigation items used in our CMS.
routes.yml - Used to specify how requests are directed in our CMS.
default/ - Contains the files that the above config files inherit their config from. Never edit the files in this directory (as they will be overwritten when you do an upgrade).
data/
fixtures/
data.yml - Used to specify the default data that is loaded into our database
schema/
schema.yml - Used to specify our database structure (our models)
您感兴趣的文件主要是config.php和application.yml ,有时是nav.yml 。除非您打算扩展BALCMS添加自定义功能,否则您将不需要触摸其他配置文件。
文档文件要么包括内联文档(其中的文档),要么是自我解释的。更改我们要用于内容的编辑器的过程将像这样:
application/config/default/application.yml中查看,查找适当的属性 - 在这种情况下,它的editor.code 。application/config/application.yml中的适当环境中,以便我们编辑我们的配置文件,而不是默认文件。./cli clean-config以确保应用更改 - 我们确实尝试自动检测更改,但是有时会派上用场。 为了提交您的更改,您需要运行以下命令:
cd mywebsite
git status
git add -u
git status
git add {the untracked files reported by the git status}
git commit -m "My Changes... {this is your message}" (note: this commits your changes)
git push origin --all (note: this sends your changes to the remote repository)
说明:
git status作用是向我们展示我们所做的更改,我们第一次使用它来检查正在做出的更改(因此我们可以分辨我们是否要进行这些更改)。实际上,我们可以通过运行git diff看到详细的更改。然后,我们通过使用git add添加了想要的文件。在上面的示例中,我们使用git add -u因为它可以为我们节省大量键入,它会自动将更改添加到所有跟踪的文件(git存储库已经知道的文件)中。运行git add -u后。
设置实时服务器可以通过以下两种方式完成。
推荐选项: SSH+git。此选项纯粹是很棒的,它快速,简单,易于使用,并允许我们在远程服务器上编辑文件。尽管很少有服务器支持SSH和GIT(您的服务器都需要) - 但好处是巨大的。我们建议使用Mediatiatemple举办,因为它们也很棒,因此他们确实支持这一纯粹的出色功能(他们的计划也非常便宜,他们提供的服务非常奇妙,并且他们的系统非常灵活且可根据您的所有需求进行自定义) - 同样,它们纯粹是很棒的。如果您的服务器不支持SSH+GIT,则可以使用“后备”选项。让我们介绍如何做到这一点。
您需要通过SSH登录服务器(请参阅服务器手册以获取此操作)。
完成后,您将需要将cd降为网站目录(例如public_html )。
当我们进行干净的安装时,该目录应为空(如果它不是空的,请将其备份并为空)。现在它已经空了,我们想运行以下命令:
curl -OL http://github.com/balupton/balcms/raw/master/cli
git init
git remote add origin {your git repos read/write url}
./cli init-existing; ./cli configure; ./cli install
说明:尽管存在一些差异,但这些命令看起来应该与我们的本地安装命令非常相似。我们从像往常一样从中获取CLI开始,尽管现在我们称
git init致电,但这告诉我们的环境将当前目录视为GIT存储库。然后,我们继续将目录与远程存储库相关联。最后,我们运行命令./cli init-existing; ./cli configure; ./cli install。这与以前相同,但是这次我们运行./cli init-existing,而不是./cli init-new- 因为我们现在拥有一个正在使用的现有git存储库(所以我们只是获取它),而在我们必须从scratch创建Git Repository之前(它的分支,结构等)。
你们现在都完成了,您的网站现在已经存在了。
后备选项:使用第三方部署系统。此选项涉及在第三方注册帐户,与他们一起设置GIT存储库,为他们提供服务器详细信息,并指定部署设置。很好,但是当您部署到多个站点时,不允许您在实时网站上编辑文件时会变得昂贵(相反,您必须在本地站点上进行更改,然后部署)。部署更改也可能需要一段时间(从几分钟到几个小时)。如果您走这条路线,我们建议Deployhq-它们的系统运行良好,并且价格合理。有关如何使用此选项,请参阅所选系统的文档。
愚蠢的选项:手动将文件传输到FTP。此选项很愚蠢的原因是,它继承了不使用任何版本控件的问题 - 您很快就会在实时服务器和本地副本之间差异,从而导致不一致,调试和维护和维护噩梦。除非您是受虐狂,否则请不要使用此选项。我们不会涵盖此选项。
注意:在部署到实时站点之前,您需要将生产环境添加到config.php文件中,并在application/config/application.yml文件中为生产环境设置数据库。
一旦我们对本地副本感到满意,并且我们想将其部署到实时网站,我们只需运行已经熟悉的命令./cli deploy在我们的网站目录中即可。
一旦将更改部署到远程GIT存储库中,我们将要将这些更改拉到我们的实时服务器上。这取决于我们选择的选项。
使用后备选项(第三方系统):使用此选项,可能会自动发生从远程GIT存储库中的部署到我们的实时服务器,或者我们可能需要登录到他们的系统并手动部署更改并等待很长时间。
使用推荐选项(SSH+GIT):我们将要进入我们的Web服务器和CD进入Live Sites目录(就像设置Git存储库时一样)。一旦那里需要简单地运行命令./cli update 。这将获取所有最近的更改,并确保我们的配置是最新的。
要将您的应用程序升级到最新的BALCMS版本,您只需要在应用程序目录中运行./cli upgrade 。
说明:这将做的是将最新的balcms版本获取到Balcms分支中,然后将其合并到我们的开发分支中。
如果您有任何冲突,则可以使用git mergetool将它们整理出来。
一旦解决了所有冲突,升级就成功进行了。您需要运行./cli configure以更新我们使用的任何子模型/依赖关系/要求。
首先,感谢您为您的下一个商业或开源项目选择此软件。
如果您想将一些价值带给该软件背后的价值,就像他们为您赋予价值一样,您可能会以以下方式做出贡献:
快乐的编码:-)