Sulu is a content management system built on Symfony PHP that supports highly customized content administration and publishing environments on the backend. Symfony and Sulu are both open source, free, supported by significant professional communities, and offer expert support.
Sulu is the go-to CMS for many agencies and developers within the PHP Symfony framework since it leverages a set of components ready to construct adaptable and performant backend solutions.
Let’s dive in to learn more about Sulu CMS.
- Sulu CMS: An Overview
- How Does Sulu Work?
- Why Choose Sulu CMS?
- Who Should Use Sulu?
- Usage Statistics
- How to Install Sulu On Cloudways
- Get started With Sulu on Cloudways
Sulu CMS: An Overview
Digital agency professionals have developed Sulu for office professionals to offer everything a digital agency would need to build a project proficiently.
Sulu is designed with high-performance benchmarking at its core, without using any plugins. Integrated SEO functions help sites deliver their best performance to users, search engines, and third-party applications.
How Does Sulu Work?
Sulu is built on top of a well-organized, feature-rich Symfony system.
Symfony’s Model-View-Controller (MVC) structural design is perfect for building systematic and adaptable web applications. The MVC design separates the application into three independent layers:
- The Model layer describes data structures and their relations
- The View layer focuses on complex business logic
- The Controller layer exchanges data between the model and view layers
One of the main advantages of the MVC design is that it makes application management easier since each logical element is kept separate. Therefore, changing one area doesn’t affect the others.
For example, you can use the same data within the Admin portal and both web and mobile applications. This allows you to build fully scalable, easily maintainable, reliable backend solutions.
Why Choose Sulu CMS?
Sulu’s unique bundle of features and performance makes it a top choice for developers. This section covers some important reasons developers pick Sulu as their preferred CMS.
Simple User Interface
Sulu’s intuitive user interface provides content teams with an excellent experience, while developers can create an extensible backend to meet your custom business logic requirements.
Perfect for Enterprise Projects
Sulu is ideal for enterprise applications requiring extensive customization, including
- Business logic–driven applications
- Multilingual, multi-channel, and multi-portal infrastructure
- News and media platforms
- Brand and corporate web presences
- Multi-channel platforms
- Social and collaborative sites
- Portals and intranets
Headless CMS Environment
Business websites have developed into rich software applications, requiring comprehensive integrations, data management capabilities, and business logic. Sulu offers developers a headless CMS environment to execute custom, data-driven capabilities and connect them to any innovative front end.
Sulu also integrates with Sylius , an open-source, headless ecommerce platform that relies on the Symfony framework. Products from Sylius can leverage Sulu’s CMS functions to optimize content. Sulu can hence be used to create an entire webshop, using Sylius as a headless ecommerce platform.
Who Should Use Sulu?
Sulu is designed for content professionals, developers, and digital marketers working in the business sector. The platform positions itself as a solution for enterprise-level websites and applications.
The need for pre-existing templates makes many frameworks unsuitable for clients trying to find an out-of-the-box website solution. But Sulu includes a bundle of functionalities for advanced marketers requiring high-end SEO and deep analytics integration while providing personalized content.
Custom modules can help you develop a well-organized, compliant backend for many business applications. You can find extensive documentation and a live demo here.
Nothing as Easy as Deploying Symfony Apps on Cloud
Have your PHP apps running on managed cloud servers in just a few minutes and enjoy instant performance boosts.
Sulu’s market share has recently increased significantly. Though interest in Sulu CMS has fluctuated throughout the year, it is becoming increasingly popular with content creators and developers.
How to Install Sulu On Cloudways
You can install Sulu on Cloudways in a few minutes by following these easy steps:
Step 1: Launch Your Server
- Visit the Cloudways Platform
- Sign up for a new account or log in with your credentials
- Click on Launch server
- Select PHP Stack as your application
- Fill in your Application , Server , and Project name
Click Launch Now and wait a few minutes for your application to deploy on the server.
Step 2: Initialize Your Project
You can set up your project locally by running the following command:
composer create-project sulu/skeleton my-project -n cd my-project composer install
This will create a directory called “my-project” containing the files from https://github.com/sulu/skeleton , which is a basic setup of your application.
Configure the files in the “config” directory to change your application’s settings. Since Sulu’s content management is built upon webspaces, it is important to configure it correctly. Each of the webspaces configures a content tree, and each content tree may contain translations for different locales.
The default webspace configuration is located in “config/webspaces/example.xml”. You may rename this file to match your project.
To get started, change your webspace’s <name> and the <key> to your project’s name. The name is a human-readable label, shown in the administration interface, and the key is your wepspace’s unique identifier:
<?xml version="1.0" encoding="utf-8"?> <webspace xmlns="http://schemas.sulu.io/webspace/webspace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.sulu.io/webspace/webspace http://schemas.sulu.io/webspace/webspace-1.1.xsd"> <name>My Project</name> <key>my-project</key> <!-- ... --> </webspace>
Learn more about getting started in the Sulu documentation .
The new project should be stored in a Git repository. Execute the commands below to create a new commit and push it to GitHub.
cd my-project git init git remote add origin [email protected]:<username>/<repository>.git git add . git commit -m "Initial commit" git push origin main
Step 3: Configure the Server
- Navigate to the Server and click Settings & Packages in the left-hand navigation
- Change your server’s PHP version to 8.1.
- This will take a few minutes.
Step 4: Launch an SSH Terminal
- Go to the Master Credentials and click Launch SSH terminal :
- Head to the public_html folder and run a git clone command to download your Sulu CMS project:
cd applications/<application-id>/public_html git clone git clone https://github.com/<username>/<repository>.git my-project cd my-project composer install
- Add the .env.local file to configure your database URL:
APP_ENV=dev APP_SECRET=my-super-secret-key DATABASE_URL="mysql://<username>:<password>@127.0.0.1:3306/<db-name>?serverVersion=10.4"
- Find your Database credentials by navigating to the Applications tab and click the www icon on the right-hand side
- Select your application
- And get your credentials under Application Management > Access Details :
- Initialize your database by running the following command:
bin/console sulu:build dev
Step 5: Configure Your NGINX settings
- Configure the root of the NGINX server by setting the configuration to “ my-project/public ”:
- You can now open the Sulu CMS by following the application URL:
- A page like this will indicate that you’ve configured everything correctly:
- Log in to the Sulu admin by adding ” /admin” to the URL. The default credentials are “admin/admin.”
Step 6: Deployment
Get started With Sulu on Cloudways
Want to try it? Sulu is also exceptionally easy for developer onboarding. Get started with Sulu on Cloudways by following the instructions mentioned above!
Shahzeb is a Digital Marketer with a Software Engineering background, works as a Community Manager — PHP Community at Cloudways. He is growth ambitious and aims to learn & share information about PHP & Laravel Development through practice and experimentation. He loves to travel and explore new ideas whenever he finds time. Get in touch with him at [email protected]