eZ Publish is one of the most well known and widespread web content management systems. Because its setup is not trivial, this tutorial shows how to install it on an Ubuntu server.
eZ Publish is an open-source content management system (CMS) that allows users to build dynamic websites with ease. It is particularly well-suited for large-scale websites that require flexibility and scalability. In this guide, we'll walk you through the steps to build a website using eZ Publish, including setup, customization, and deployment.
✅ System Requirements for eZ Publish
Before installing eZ Publish, make sure your server environment meets the following conditions:
- PHP Version: Your server should be running PHP 8.1 to 8.4
- Web Server: Apache 2.4 or higher is recommended. Nginx can also be used if properly configured.
- Database Server: You will need either MySQL version 8.0 or higher, or MariaDB version 10 or higher.
- Composer: Composer is required to install and manage PHP dependencies. Make sure you have the latest version installed globally on your system.
- Other PHP Extensions: You will also need some common PHP extensions, including:
- php-intl
- php-curl
- php-mbstring
- php-mysql
- php-xml
- php-zip
- php-gd (if using image features)
Make sure all these components are installed and properly configured before starting the eZ Publish installation process.
Step 1: Install Dependencies
sudo apt update;
sudo apt install apache2 php php-cli php-intl php-curl php-mbstring php-mysql php-xml php-zip unzip git mysql-server;
Step 2: Composer
curl -sS https://getcomposer.org/installer | php;
sudo mv composer.phar /usr/local/bin/composer;
Step 3: Download eZ Publish (by 7x )
git https://github.com/se7enxweb/ezpublish.git ezpublish;
cd ezpublish;
composer install;
⚙️ Step 4: Configure Database
mysql -u root -p;
CREATE DATABASE ezpublish CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON ezpublish.* TO 'ezuser'@'localhost' IDENTIFIED BY 'yourpassword';
FLUSH PRIVILEGES;
EXIT;
️ Step 5: Set Permissions
sudo chmod -R 755 index.php settings design var;
sudo chown -R www-data:www-data index.php design settings var;
Step 6: Configuration Files
sudo nano /etc/apache2/sites-available/ezpublish.conf;
<VirtualHost *:80>
ServerName ezpublish.local
DocumentRoot /path/to/ezpublish/web
<Directory /path/to/ezpublish/web>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/ez_error.log
CustomLog ${APACHE_LOG_DIR}/ez_access.log combined
</VirtualHost>
sudo a2ensite ezpublish.conf;
sudo a2enmod rewrite;
sudo systemctl restart apache2;
Step 7: Run the setup wizard
-
Open your browser and navigate to:
http://ezpublish.local
- The setup wizard based installer will walk you through
- Setting DB credentials
- Setting site parameters
- Choosing language
- Creating an admin user
- Install site package and configure website
Step 8: Complete the setup wizard
You will see the Welcome page of the eZ Publish installation:
Choose the language used during installation process from the drop down. Click on Next.
Step 9: Setup wizard system check
NOTE; my set up had missing php extension intl while preparing this demo. Normally this extension is required by eZ publish.
Step 10: Setup wizard mail configuration
On the next step you have to choose which email sending method to use – the Sendmail to send the email directly through the MTA on the server or to use the SMTP email outgoing server:
Both work flawlessly. However, if you choose to use the SMTP server, you will have to fill the fields required for the SMTP authentication. First you have to create a valid email account through your cPanel. Once you do this, type its details in the fields on the installation page. Note that the server name has to be your full domain name and the username has to be the full email account name (for example – [email protected]).
In this tutorial we are going to choose Sendmail for our outgoing emails. Click on Next.
Now you have to choose what type of database your website should use.
You can select each of the MySQL or MySQL Improved radio buttons and click on Next:
Step 11: Setup wizard database configuration
On the next page you have to write down the database details. Server name should remain localhost. In the username and password fields type the user details associated to the database that will be used for the eZ Publish page. The default database port is 3306.
Leave the socket field empty and once you are ready click on Next.
On this page you can enter your database host details.
Step 12: Setup wizard site language configuration
Follows the language setup page. Please use the radio buttons to choose the default language for your website and select the check box for each additional language you wish to add to the site. Leave the Enable Unicode setup check box selected.
Click on Next to continue the installation.
Step 13: Setup wizard site package configuration
Next step is to choose an site package to install into to your website. We recommend you to choose the Simple site package.
When you are done click on Next.
Step 14: Setup wizard content language mapping configuration
When you are ready click on Next. If you have closely followed the MySQL database set steps, no error will occur.
Step 15: Setup wizard site access configuration
Select the siteaccesss installation type you want. We recommend using the hostname setting.
Step 16: Setup wizard site details configuration
Setting up site details. Remember to select the right database.
Step 17: Setup wizard site administrator configuration
Now Set up administrator login, then click Next;
Step 18: Setup wizard welcome to our community
Next is the last page before the eZ Publish database get published and your system configured. Then click next.
Step 19: Setup wizard installation finished
Your site is now ready open the uses site in a new tab and see the front design. Open the admin site in a new tab.
Now your site is installed correctly enjoy.
Step 20: Login to Admin.
After completing the installation wizard, it will direct you to the administrative interface to manage your eZ Publish site.
Enter the administrator username and password that you created during the installation process.
Once logged in, you'll be taken to the eZ Publish Admin Dashboard, where you can:
-
- Manage content
- Create user roles and permissions
- Configure site settings
- Install additional extensions or packages
- Monitor system logs and performance
Step 21: Set Up Your Website Structure
eZ Publish allows you to organize your content in a structured way. You can define content types, sections, and categories, which makes managing content easier.
Documentation:
- Content Types:
- eZ Publish allows you to create custom content types (e.g., articles, blog posts, events).
-
- To create a new content type, go to the Admin panel, navigate to Content > Content Types, and click "Create New."
- Define the fields for each content type, such as title, body, images, and metadata.
- A section is a part of the site where you group similar content. For instance, you can have sections for blog posts, news, or products.
- Content Structure:
-
- eZ Publish uses a hierarchical content structure, allowing you to organize your content in a tree-like format.
- You can create sub-pages, categories, and tags to structure your website content.
-
- To create content, go to Content > Create Content, choose a content type, and fill in the necessary details.
- Sections and Locations:
-
- To create a new section, go to Content > Sections in the Admin panel and define the section's parameters.
Step 22: Customize Your Website Design
eZ Publish offers flexible theming and templating options, enabling you to create a custom design that suits your brand or project.
Documentation:
- Install and Configure a Theme:
- eZ Publish comes with a default theme, but you can customize it or install third-party themes.
-
- To install a new theme, you need to modify the ezpublish setting configuration file to link to your theme folder.
-
- Themes are located in the design/ directory. To create a custom theme, create a new folder within this directory.
- Create Templates:
-
- eZ publish uses eztpl templates for rendering content. Templates define the structure and style of your pages.
- To create a custom template for your content, navigate to design/your_theme/templates/ and create a .tpl file.
-
- For example, a basic template for rendering an article might look like this:
4. <h1>{$node.name|wash()}</h1>
<div>{attribute_view_gui attribute=$node.data_map.description}</div>
- Styling with CSS:
-
- To customize the appearance, you can add CSS styles to the theme’s styles.css or another stylesheet.
-
- eZ Publish also supports CSS preprocessors like SASS and LESS if you need advanced styling features.
Step 23: Add and Manage Content
Once you have your structure and design in place, it's time to add content to your website. eZ Publish makes it easy to manage different types of content and organize them based on your site’s requirements.
Documentation:
- Create New Content:
- In the Admin panel, go to Content > Create Content.
-
- Select the content type (e.g., Article, Blog Post) and enter the content in the provided fields (title, body text, images, etc.).
-
- You can also assign content to specific sections and categories.
- Editing Content:
-
- To edit existing content, navigate to Content > Content Items, find the content you want to edit, and click on it.
- You can update fields, images, and other media or change the content's status (e.g., draft, published).
- Content Workflow:
-
- eZ Publish allows you to manage content workflows, enabling review and approval before content goes live.
-
- You can define workflows for different content types (e.g., article submission, blog review) in the Admin Panel > Workflow.
Step 24: Set Up Search and SEO Features
To enhance your website’s functionality and visibility, you can set up search features and optimize the site for search engines.
Documentation:
- Search Setup:
- eZ Publish comes with a built-in search engine powered by Apache Solr, which provides powerful search capabilities for your website.
-
- You can define which content types and attributes should be indexed by the search engine.
- SEO Configuration:
-
- eZ Publish allows you to set SEO-friendly URLs, meta tags, and content descriptions.
- Use the SEO module in the Admin Panel to optimize your content for search engines.
-
- For each content type, configure fields like meta descriptions, keywords, and titles.
Step 25: Deploy Your Website
After developing and testing your website, it’s time to deploy it to a live server.
Documentation:
- Choose a Web Hosting Provider:
- eZ Publish requires a PHP-compatible hosting provider with MySQL or MariaDB support.
-
- Popular hosting providers for eZ Publish include 7x, ezpublishhosting.com, hosting.com and aws
- Upload Files to Your Server:
-
- Use SFTP or SSH to upload your project files (e.g., code, themes, and content) to the server.
- Ensure that all dependencies are installed, including Composer and the required PHP extensions.
- Go Live:
-
- Once everything is uploaded and configured, point your domain name to the live server.
-
- Verify that the site works correctly and is accessible to users.
Step 26: Maintain and Update Your Website
After launching your website, regular maintenance and updates are essential to keep it running smoothly.
Documentation:
- Backup Regularly:
- Set up automated backups for your website's content and database to prevent data loss.
-
- Regularly back up your server files and database to ensure that you can recover quickly in case of any issues.
- Back up before you update
- Update eZ Publish:
-
- Periodically, eZ Publish releases updates to improve functionality and security.
- Use Composer to update eZ Publish and all its dependencies:
composer update
- Monitor Performance:
-
- Use tools like Google Analytics, server logs, and eZ Publish’s built-in monitoring features to track website performance and user engagement.
-
- Optimize the site’s speed and security by implementing caching strategies and ensuring that the software is up-to-date.
HAPPY HACKING!