BALCMS 는 Zend 프레임 워크 및 교리 ORM 전원 CMS입니다.
BALCMS는 새로운 모듈 만 추가하여 직접 확장 할 수 있으므로 CMS를 직접 수정하여 직접 확장 할 수 있으므로 다른 CMS와 다릅니다 (CMS는 단지 모듈과 일련의 종속성이므로). 내가 아는 다른 CMS는 실제로 개발자가 CMS를 쉽고 직접적으로 확장 할 수 없으며 일반적으로 특정 및 제한된 플러그인 프레임 워크에 잠겨 있습니다. 사용자 정의 애플리케이션을 위해 확장 가능하고 확장 가능한 CMS를 구축하려는 경우 실제로 볼을 짜증나게합니다. 따라서 BALCM에 대해 좋아하지 않거나 새로운 기능을 추가 해야하는 경우 직접 들어가서 수행 할 수 있습니다! 잠금이 아닌 기초로 생각하십시오. 해방됩니다! BALCMS는 또한 고도로 의견이 많은 소프트웨어이며, 종교적으로 모범 사례를 따릅니다.
BALCMS는 명령 줄에 크게 의존합니다. UNIX/MAC/Linux 플랫폼에있는 경우 설치 및 사용법이 매우 간단합니다. Windows 플랫폼에있는 경우 학습 곡선에 직면 할 수 있으며 (Cygwin 터미널을 통해 명령을 실행해야 함) Mac을 얻는 것이 좋습니다.
우리는이 종속성이 모범 사례로 정당화 된 것으로 간주하기 때문에 명령 줄의 종속성을 대체 할 프론트 엔드 GUI는 없습니다. 당신이 그것에 익숙해지면, 당신은 whiz입니다. 이제 그것은 힘을 실어주고 있습니다.
Windows의 경우 다음을 설치해야합니다.
Unix/Mac/Linux의 경우 다음을 설치해야합니다.
이러한 설치는 다음과 같은 요구 사항을 제공합니다.
첫째, 환경이 올바르게 구성되도록해야합니다. 이 실행의 경우 ./cli check-env . 오류 메시지를 반환하지 않으면 진행할 수 있습니다. 그렇다면 메시지에 참석하십시오. GIT 설치가 구성되지 않았다는 메시지를받는다면, 가장 쉬운 방법은 GitHub에서 새 무료 계정을 설정하고, 새 저장소를 만들고, 저장소 사용에 대한 지침을 따르고, 리포지토리를 설정하고 설정하는 것입니다. 일단 GIT 설치를 완료 한 후에는 다시 ./cli check-env 못한다는 것을 알 수 없으며, 아무것도 찾을 수 없다는 것을 확인하십시오. BALCMS 설치.
다음 명령을 실행하십시오.
mkdir mywebsite
cd mywebsite
curl -OL http://github.com/balupton/balcms/raw/master/cli
./cli birth
설명 : 여기서 우리가하는 일은 새로운 웹 사이트 디렉토리 (폴더)를 만들고 응용 프로그램의 명령 줄 인터페이스를 가져 오는 것입니다. 이 파일을 사용하면
./cli birth실행할 수 있습니다../cli birth명령은 실제로 다음과 같은 세 가지 중요한 명령으로 구성됩니다.
./cli init-new는 로컬 저장소 (새 저장소로)를 초기화하고 CMS의 핵심을 잡습니다../cli configure을 구성합니다../cli installCMS 데이터베이스를 설치하고 권한을 조정하고 CRON 작업을 실행합니다.
우리는이 명령을 나중에 사용할 것입니다.
그것이 실행되는 동안 귀하의 웹 사이트에는 자체 공개 또는 개인 Git 저장소가 필요합니다. GitHub에서 하나를 만들 수 있습니다 (개인이 원하는 경우 유료 계정이 필요합니다) 또는 대체 개인 GIT 호스트를 찾을 수 있습니다.
해당 명령이 실행되고 원격 git 저장소가 설정되면. 로컬 저장소를 원격 저장소와 연결하고 싶습니다. 원격 저장소 [email protected]:balupton/balcms.git Read+Writ 이를 통해 우리는 다음과 같은 명령을 실행할 것입니다.
git remote add origin {your git repos read/write url} ; make deploy
설명 : 여기서 두 번째 명령
./cli deploy개발 지점에서 안정적인 지점으로, 안정적인 지점에서master브랜치로 변경을 보냅니다. 마지막으로 모든 변경 사항을 원격 저장소로 보냅니다.
원격 서버 (웹 사이트가 실제로 호스팅되고 액세스되는 경우)에 배포 할 수 있으므로 원격 저장소에 변경 사항을 보내려고합니다. 다른 이점은 또한 개발 환경 충돌이 발생하는 경우에도 원격 백업이있을 것입니다. 마지막으로 가장 좋은 장점은 우리가 다른 사람들과 함께 일한다면 우리 모두가 완벽하게 협력 할 수 있다는 것입니다.
일이 끝나면 이제 새로운 BALCMS 웹 사이트를 방문 할 수 있습니다. 따라서 우리가 설치 한 디렉토리 (예 http://localhost/sites/mywebsite )로 이동할 수 있습니다.
새 웹 사이트를 관리하려면 웹 사이트 (예 http://localhost/sites/mywebsite/admin )의 admin 위치로 이동합니다. 기본 사용자 이름은 admin 이며 암호는 random 입니다. 구성 파일 application/data/fixtures/data.yml 에 지정되어 있거나 사용자 관리 영역을 사용하여 변경할 수 있습니다.
BALCM의 구조는 테마, 미디어 업로드, 이미지 크기 조정을 지원하여 더 쉬운 구성 및 로컬라이즈를위한 추가 확장 기능을 갖춘 표준 모듈 식 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 입니다. 사용자 정의 기능을 추가하기 위해 BALCM을 확장 할 계획이 없다면 다른 구성 파일을 터치 할 필요가 없습니다.
문서 파일에는 인라인 문서 (내부의 문서)가 포함되거나 자체 설명입니다. 콘텐츠에 사용하려는 편집자를 변경하는 과정은 다음과 같습니다.
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를 모두 지원하는 서버는 거의 없지만 (서버는 둘 다 필요합니다) 이점은 방대합니다. 우리는 Mediatemple과 함께 호스팅하는 것이 순수한 멋진 기능을 지원하는 것이 좋습니다.이 순수한 멋진 기능을 지원합니다 (계획은 또한 제공하는 것이 매우 저렴하고 지원은 환상적이며 시스템은 매우 유연하고 모든 요구에 맞게 사용자 정의 할 수 있습니다) - 다시 순수합니다. 서버가 SSH+GIT를 지원하지 않으면 폴백 옵션을 사용할 수 있으므로 괜찮습니다. 우리가 어떻게 할 것인지 다루겠습니다.
SSH를 통해 서버에 로그인하려고합니다 (이를 수행하는 방법은 서버 설명서를 참조하십시오).
완료되면 웹 사이트 디렉토리 (예 : public_html )에 cd 사용하려고합니다.
이 디렉토리는 깨끗한 설치를 할 때 비어 있어야합니다 (비어 있지 않은 경우 백업하고 비워립니다). 이제 비어 있으므로 다음 명령을 실행하고 싶습니다.
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 저장소가 있기 때문에 (그래서 우리는 단지 가져옵니다).
당신은 지금 끝났고, 당신은 이제 웹 사이트가 살아 있습니다.
폴백 옵션 : 타사 배치 시스템을 사용하십시오. 이 옵션에는 타사에 계정을 등록하고 GIT 저장소를 설정하고 서버 세부 정보를 제공하며 배포 설정을 지정해야합니다. 좋지만 여러 사이트에 배포 할 때 비용이 많이들 수 있으며 라이브 사이트에서 파일을 편집 할 수 없습니다 (대신 로컬 사이트에서 변경 한 다음 배포해야 함). 또한 변경 사항을 배포하는 데 공정한 시간이 걸릴 수 있습니다 (몇 분에서 몇 시간). 이 경로를 가면 배치를 권장합니다. 시스템은 매우 잘 작동하며 저렴한 가격이 있습니다. 이 옵션 사용 방법은 선택한 시스템의 문서를 참조하십시오.
바보 같은 옵션 : FTP를 통해 파일을 수동으로 전송합니다. 이 옵션이 어리석은 이유는 버전 제어를 사용하지 않는 문제를 상속하기 때문입니다. 라이브 서버와 로컬 사본 사이의 불일치로 인해 불일치 및 디버깅 및 유지 보수 악몽이 발생합니다. 마조히스트가 아닌 한이 옵션을 사용하지 마십시오. 우리는이 옵션을 다루지 않을 것입니다.
참고 : 라이브 사이트에 배포하기 전에 config.php 파일에 프로덕션 환경을 추가하고 application/config/application.yml 파일에서 프로덕션 환경에 대한 데이터베이스를 설정해야합니다.
로컬 사본에 만족하고 라이브 사이트에 배포하려면 이미 친숙한 명령을 실행하면 웹 사이트 디렉토리에 ./cli deploy 해야합니다.
원격 git 저장소에 변경 사항을 배포 한 후에는 이러한 변경 사항을 라이브 서버로 끌어 올릴 것입니다. 이것은 우리가 선택한 옵션에 따라 다릅니다.
폴백 옵션 (제 3 자 시스템) 사용 :이 옵션을 사용하면 원격 git 저장소에서 라이브 서버로의 배포가 자동으로 발생하거나 시스템에 로그인하여 변경 사항을 수동으로 배포하고 매우 오랫동안 기다려야 할 수도 있습니다.
권장 옵션 (SSH+GIT)을 사용 : SSH는 웹 서버로 SSH를, CD를 Live Sites 디렉토리로 (GIT 저장소를 설정할 때와 마찬가지로)로 CD를 원할 것입니다. 간단히 명령을 실행하려면 ./cli update 실행하려면. 이는 최근의 모든 변경 사항을 가져오고 구성이 최신 상태인지 확인합니다.
애플리케이션을 최신 BALCMS 버전으로 업그레이드하려면 응용 프로그램 디렉토리에서 ./cli upgrade 실행하면됩니다.
설명 : 이것이 할 일은 최신 BALCMS 버전을 BALCMS 브랜치로 가져 와서 DEV 지점으로 병합하는 것입니다.
충돌이 있으면 git mergetool 사용하여 정렬 할 수 있습니다.
모든 충돌이 해결되면 업그레이드가 성공적으로 진행되면 ./cli configure .
먼저 다음 상업 또는 오픈 소스 프로젝트를 위해이 소프트웨어를 선택해 주셔서 감사합니다.
이 소프트웨어의 배후에있는 사람들에게 가치를 돌려주고 싶다면, 그들이 당신에게 가치를 부여한 것처럼, 당신은 다음과 같은 방식으로 기여할 수 있습니다.
행복한 코딩 :-)