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以更新我們使用的任何子模型/依賴關係/要求。
首先,感謝您為您的下一個商業或開源項目選擇此軟件。
如果您想將一些價值帶給該軟件背後的價值,就像他們為您賦予價值一樣,您可能會以以下方式做出貢獻:
快樂的編碼:-)