Welcome to Sulu - a fully-functional Content Management Framework (CMF) based on Symfony2.
Licensed under the MIT License.
##Prerequisites
- webserver with PHP (>=5.4) and a mysql database
- composer
- grunt-cli
- nodejs and npm
- ruby & compass (3.2.13)
Use the following template for your vhost-configuration
<VirtualHost *:80>
DocumentRoot "[path-to-your-workspace]/sulu-standard/web"
ServerName sulu.lo
<Directory "[path-to-your-workspace]/sulu-standard/web">
Options Indexes FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
An extended example for Apache and Nginx can be found here.
Of course you also have to make sure that your webserver user has permission
to access your installation folder. Don't forget to include sulu.lo
in your
hosts-file, if you want to use Sulu on a local machine.
git clone [email protected]:sulu-cmf/sulu-standard.git
cd sulu-standard
git checkout develop
Webspaces are configured in the app/Resources/webspaces
-folder. Copying the existing example should be enough for a local installation:
cp app/Resources/webspaces/sulu.io.xml.dist app/Resources/webspaces/sulu.io.xml
On an online installation you have to adjust the URLs in this file.
Templates are configured in the app/Resources/pages
-folder. Copying the existing default template should be enough for a simple page containing a title, a link and a texteditor:
cp app/Resources/pages/default.xml.dist app/Resources/pages/default.xml
cp app/Resources/pages/overview.xml.dist app/Resources/pages/overview.xml
cp app/Resources/pages/complex.xml.dist app/Resources/pages/complex.xml
You can add more templates by simply adding more files in this folder. Use the default.xml.dist
-file as an example.
Snippets are configured in the app/Resources/snippets
-folder. Copy the existing default snippet-types.
cp app/Resources/snippets/default.xml.dist app/Resources/snippets/default.xml
You can add more snippet-types by simply adding more files in this folder. Use the default.xml.dist
-file as an example.
composer install
Composer will ask for some parameters. The default values are good enough to get a running setup.
rm -rf app/cache/*
rm -rf app/logs/*
mkdir app/data
mkdir uploads/media
mkdir web/uploads/media
APACHEUSER=`ps aux | grep -E '[a]pache|[h]ttpd' | grep -v root | head -1 | cut -d\ -f1`
sudo chmod +a "$APACHEUSER allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs uploads/media web/uploads/media app/data
sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs uploads/media web/uploads/media app/data
rm -rf app/cache/*
rm -rf app/logs/*
mkdir app/data
mkdir uploads && mkdir uploads/media/
mkdir web/uploads && mkdir web/uploads/media/*
sudo setfacl -R -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs uploads/media web/uploads/media app/data
sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs uploads/media web/uploads/media app/data
The following command will intiaialize the database, load the fixtures and do other things required to intiialize your Sulu CMF installation:
Be sure that you installed jackrabbit or doctrine-dbal (next section of instructions)
app/console sulu:build dev
Use Apache Jackrabbit as a content repository (as an alternative to doctrine-dbal (i.e. storing the data in a relational database).
Download the jar file into a Folder of your choice.
wget http://archive.apache.org/dist/jackrabbit/2.6.3/jackrabbit-standalone-2.6.3.jar
java -jar jackrabbit-standalone-2.6.3.jar
brew install imagemagick
brew install php55-imagick
add extension=/path/to/Imagick.so
to php.ini
sudo apt-get install imagemagick
sudo apt-get install php5-imagick
add extension=/path/to/Imagick.so
to php.ini
brew install ghostscript
configurate the path to ghostscript
in app/config/config.yml under sulu_media.ghost_script.path
sudo apt-get install ghostscript
configurate the path to ghostscript
in app/config/config.yml under sulu_media.ghost_script.path
Before you go on with the initialization of the content repository, you have to make sure that all required configuration files exist.
Widgets are small UI-components which are mainly seen in the sidebar. In the configuration file it can be specified which widgets are contained in which sidebar. To use the default configuration just run the follwing command:
cp app/config/widgets.yml.dist app/config/widgets.yml
app/console sulu:security:user:create
Follow the instruction to create a new user
- admin-bundle
- contact-bundle
- content-bundle
- generator-bundle
- portal-bundle
- security-bundle (included but not integrated in other bundles)
- sulu-core
- tag-bundle
- test-bundle
- website-bundle
The route to the backend login is:
sulu.lo/admin/
Documentation can be found here: https://github.com/sulu-cmf/docs