intro
Hi all, This is mostly a vagrant guide for me, which may be useful for somebody. Don't be mad if there is something wrong...
install
First, you need to install virtualbox. Then go to vagrant home page and install get the last version of the software.
config
To start an environment :
vagrant init precise32 http://files.vagrantup.com/precise32.box
vagrant up
This will create a virtual machine based on Ubuntu Precise Pangolin (12.04 LTS 32bits).
You can ssh the box, the user is vagrant
and the password is also vagrant
.
opencms !
I actually used this for an OpenCms project, so I'll explain here the steps to get a working installation of OpenCms (with Apache, Tomcat etc.)
apt-get all the things !
Run the following commands :
sudo apt-get update
retrieves the last packages informationssudo apt-get install vim vim-nox
installs vim (because it rocks)sudo apt-get install openjdk-7-jdk
installs java 7sudo apt-get install mysql-server
installs mysql (it asks for a password for the root user)sudo apt-get install tomcat7 tomcat7-admin
installs tomcat7
That's all we need for now !
tomcat configuration
Edit the tomcat configuration with sudo vi /etc/tomcat7/server.xml
to add:
<Host name="leproject.ehret" appBase="/home/vagrant/www" >
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="leproject.ehret." suffix=".log" timestamp="true" />
<Context path="/manager" privileged="true" docBase="/usr/share/tomcat7-admin/manager"></Context>
<Context path="" docBase="" />
</Host>
mysql configuration
Edit the mysql configuration with sudo vi /etc/mysql/my.cnf
to change this line :
max_allowed_packet = 64M
The default value is 16M, which means you can't upload files bigger than 16M into OpenCms. 64M is a large but reasonable value.
Connect to mysql with mysql -u root -p
and enter your password.
Create a database for your new project (reference):
CREATE DATABASE menagerie;
Create a user with nice permissions for this database (reference):
CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' WITH GRANT OPTION;
It's time to restart mysql with sudo /etc/init.d/mysql restart
opencms, finally !
Create a "www" folder with mkdir www
, then cd www
to go into it and run :
wget http://www.opencms.org/downloads/opencms/opencms_8.5.1.zip
This is the current version, check the link on OpenCms home page. Unzip the file.
It's time to restart tomcat with sudo /etc/init.d/tomcat7 restart
. It will deploy the opencms.war file.
Run sudo vi /etc/hosts
to add:
127.0.0.1 back-leproject.ehret
127.0.0.1 leproject.ehret
Run sudo chmod -R 777 opencms
in the "www" folder to give full right to Tomcat (it's a development platform, so who cares ?).
You can go now to http://back-leproject.ehret:8080/opencms/setup to install OpenCms. Once installed, you can go to http://back-leproject.ehret:8080/opencms/opencms/system/login with user name Admin
and password admin
.
i can has moar ?
Yes. We're going to set nicer urls and hide tomcat behind apache.
opencms configuration
Run the following commands :
cd ~/www
to go in the folder where OpenCms is installedmv opencms ROOT
to rename opencms root folder
While you are in the "www" folder, edit the opencms configuration file with vi ROOT/WEB-INF/config/opencms-system.xml
and update the following:
<sites>
<workplace-server>http://back-leproject.ehret</workplace-server>
<default-uri>/sites/project/</default-uri>
<shared-folder>/shared/</shared-folder>
<site server="http://leproject.ehret" uri="/sites/project/"/>
</sites>
This will enable the "http://back-leproject.ehret" url to reach the OpenCms Workplace, and a "http://leproject.ehret" url for the frontend.
If you are still in the "www" folder, edit another opencms configuration file with vi ROOT/WEB-INF/config/opencms-importexport.xml
and update the following:
- from
<vfs-prefix>${CONTEXT_NAME}${SERVLET_NAME}</vfs-prefix>
- to
<vfs-prefix></vfs-prefix>
apache / tomcat connection
We don't want to use the 8080 port ! First, install apache2 and mod_jk :
sudo apt-get install apache2
installs apachesudo apt-get install libapache2-mod-jk
installs apache / tomcat connector
tomcat configuration
Edit the tomcat configuration with sudo vi /etc/tomcat7/server.xml
and uncomment the following line:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
Also, update the server declaration like :
<Host name="back-leproject.ehret" appBase="/home/vagrant/www" unpackWARs="true" autoDeploy="false" deployOnStartup="false">
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="leproject.ehret." suffix=".log" timestamp="true" />
<Context path="/manager" privileged="true" docBase="/usr/share/tomcat7-admin/manager"></Context>
<Context path="" docBase="ROOT" />
<Alias>leproject.ehret</Alias>
</Host>
apache configuration
worker
You can edit the worker properties with sudo vi /etc/libapache2-mod-jk/workers.properties
. I actually only changed the path to tomcat and the jvm. The default name is "ajp13_worker".
virtualhost
Create a new file with sudo vi /etc/apache2/sites-available/leproject.ehret
with the following content:
<VirtualHost *:80>
ServerAdmin siegfried@ehret.me
ServerName back-project.ehret
ServerAlias project.ehret
DocumentRoot /home/vagrant/www/
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
JkMount /opencms/* ajp13_worker
JkMount /export/* ajp13_worker
JkMount /resources/* ajp13_worker
JkMount /manager/* ajp13_worker
RewriteEngine On
RewriteCond %{REQUEST_URI} \/export\/(.*)
RewriteCond /home/vagrant/www/ROOT%{REQUEST_URI} -f
RewriteRule .* /ROOT%{REQUEST_URI} [PT]
RewriteCond %{REQUEST_URI} !^/opencms/.*$
RewriteCond %{REQUEST_URI} !^/export/.*$
RewriteCond %{REQUEST_URI} !^/resources/.*$
RewriteCond %{REQUEST_URI} !^/stats/.*$
RewriteCond %{REQUEST_URI} !^/manager/.*$
RewriteRule .* /opencms%{REQUEST_URI} [QSA,PT]
</VirtualHost>
Then run cd /etc/apache2/sites-enabled/
and sudo ln -s ../sites/available/leproject.ehret
to enable the site in apache.
finally...
- Restart tomcat with
sudo /etc/init.d/tomcat7 restart
- Restart apache with
sudo /etc/init.d/apache2 restart
You should be able to reach the back office at http://back-leproject.ehret/system/login and the front at http://leproject.ehret/.