====== dotCMS ====== ===== Build ===== Trying a build on work PC VM (Centos 6.2). I suspect this won't have the grunt to run dotCMS - but will give it a go... Cloned existing VM (as Springboard needed a downgraded 5.0 mysql database - dotCMS needs at least 5.1 which is the standard for CentOS6). $ sudo service mysql stop $ sudo yum remove MySQL-client MySQL-server MySQL-shared ... $ sudo yum install mysql-server ... $ sudo yum list mysql* ... Installed Packages mysql.i686 5.1.61-4.el6 @base mysql-libs.i686 5.1.61-4.el6 @base mysql-server.i686 5.1.61-4.el6 @base ... $ sudo chkconfig mysqld on $ sudo chkconfig --list|grep mysqld mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off $ sudo service mysqld start ... $ /usr/bin/mysql_secure_installation ... $ sudo /usr/bin/mysql_upgrade -u root -p ... (Probably did not need to run mysql_secure_installation, as database details were already set-up from the 5.0 install - but ran upgrade and then deleted any non-system databases.) Increased VM memory to 2GB, and downloaded ZIP file: $ mkdir dotcms $ cd dotcms/ $ unzip ~/Downloads/dotcms_2.1.1.zip ... $ mysql -u root -p ... mysql> create database dotcms default character set = utf8 default collate = utf8_general_ci; ... mysql> grant all privileges on dotcms.* to "dotcms-user"@"%" identified by "password"; ... mysql> grant select on mysql.proc to "dotcms-user"@"%"; ... mysql> flush privileges; ... Need to edit the database properties - in dotcms/dotserver/tomcat/conf/Catalina/localhost/ROOT.xml $ vi dotcms/dotserver/tomcat/conf/Catalina/localhost/ROOT.xml ... ... Edit the server settings (host/port) - defaults to localhost, port 80: $ vi dotcms/dotserver/tomcat/conf/server.xml ... ... Update script permissions: $ chmod 755 dotcms/dotserver/bin/*.sh $ chmod 755 dotcms/dotserver/tomcat/bin/*.sh Start-up... (NOTE: On a re-configured VM make sure that you don't have a rogue $CATALINA_HOME setting - as I did - I've set this up now with $JAVA_HOME set, but no $CATALINA_HOME) $ cd dotcms/dotserver/ $ ./bin/startup.sh $ less tomcat/logs/dotcms.log ... Up and running... ===== WebDav ===== On Centos6 install devfs2: $ sudo yum install davfs2 ... $ sudo mkdir /dav $ sudo mount -t davfs http://localhost:8000/webdav/autopub/ /dav Please enter the username to authenticate with server http://localhost:8000/webdav/autopub/ or hit enter for none. Username: admin@dotcms.com Please enter the password to authenticate user admin@dotcms.com with server http://localhost:8000/webdav/autopub/ or hit enter for none. Password: This makes files available on Centos filesystem: $ ls -l /dav/ total 0 drwxr-xr-x 15 root root 0 Apr 25 10:05 demo.dotcms.com drwx------ 2 root root 0 Sep 27 10:07 lost+found drwxr-xr-x 12 root root 0 Jun 21 16:53 m.demo.dotcms.com drwxr-xr-x 3 root root 0 Feb 29 2012 shared drwxr-xr-x 2 root root 0 Sep 27 10:09 system ===== Build on Home Laptop ===== **N.B. dotCMS 2.1.1 doesn't start up on 64-bit Linux, apparently a 'data' issue that should be resolved in 2.2. Also, dotCMS won't currently build in Java 7 - must use Java 6** Started with standard Centos 6.3 netinstall... [[linux:centos6netinstall#core_install]] Used default (minimal) installation. Will need Java 6, MySQL 5.1, and dotCMS software... # yum update ... # yum install mysql-server ... # chkconfig mysqld on # service mysqld start ... # /usr/bin/mysql_secure_installation # cd /srv/ # tar -zxf ~/jdk-7u7-linux-x64.gz # ln -s /srv/jdk1.7.0_07/ /srv/java # ls -l lrwxrwxrwx. 1 root root 17 Sep 19 23:01 java -> /srv/jdk1.7.0_07/ drwxr-xr-x. 8 root root 4096 Aug 29 02:12 jdk1.7.0_07 Added non-root account, and define Java home an path: # useradd dotcms # passwd dotcms ... # su - dotcms $ vi ~/.bash_profile ... export JAVA_HOME=/srv/java export PATH=$JAVA_HOME/bin:$PATH:$HOME/bin Now unpack the dotCMS package (had to install unzip too!): # yum install unzip ... $ mkdir dotcms $ cd dotcms $ unzip ../dotcms_2.1.1.zip ... Create database, and user: $ mysql -u root -p ... mysql> create database dotcms default character set = utf8 default collate = utf8_general_ci; ... mysql> grant all privileges on dotcms.* to "dotcms-user"@"%" identified by "password"; ... mysql> grant select on mysql.proc to "dotcms-user"@"%"; ... mysql> flush privileges; ... Configure the database properties... $ vi ~/dotcms/dotserver/tomcat/conf/Catalina/localhost/ROOT.xml ... ... Edit the server settings (host/port) - defaults to localhost, port 80: $ vi ~/dotcms/dotserver/tomcat/conf/server.xml ... ... Update script permissions: $ chmod 755 ~/dotcms/dotserver/bin/*.sh $ chmod 755 ~/dotcms/dotserver/tomcat/bin/*.sh Start-up... $ cd ~/dotcms/dotserver/ $ ./bin/startup.sh $ less tomcat/logs/dotcms.log ... ===== Resources ===== Documentation: http://dotcms.com/docs/2.0/TableOfContents Architecture Overview: {{:work:dotcms-architecture.pdf|}} ===== Site Building ===== So how do we build and deploy sites? Have started creating a copy of the Significance website. Started by creating a copy of the magazine article section page as a dotCMS template (everything in one template), then getting all the assets (images, CSS, javascript) and loading then into dotCMS via webdav. >I've had issues with the WebDAV, though it is now working. I can't help thinking this is rather flaky - but there you are. From this starting point I have started to separate out the parts of this page into Springboard like blocks, using dotCMS containers. >How can we move templates from one site to another, or one dotCMS instance to another? >How can we control access to site editors, to only allow them access to edit 'editable' content? >The use of containers in templates is hard-coded - not re-using templates as in Springboard. How would we organise sites in dotCMS? Next I want to create a magazine article listing... ...also work out how to export/import these (non-WebDAV accessible) assets... ===== gitflow on Centos ===== $ curl -LO http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm ... $ sudo vi /etc/yum.repos.d/epel.repo [epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 ... $ sudo yum --enablerepo=epel install gitflow ... === Licence Key === The licence file I have moved and preserved on my dotCMS instances is found here: dotCMS/dotCMS/assets/license/license.dat (The license folder doesn’t exist if there’s no licence key.) This will be preserved if all instance assets are copied from one server to another – and I assume the key will work on any instance.