Installing NEOS CMS on Ubuntu 18.04 LTS

Neos is a modern, free, and open-source content management system designed for easy website building and management. Built on its own PHP framework, Neos allows you to create a fully customized experience. More than just a CMS, it is a content application platform adaptable to the needs of any enterprise, with the convenience of content editing right in the browser.

This tutorial will guide you through the installation of Neos on an Ubuntu 18.04 server.

Requirements

  • A server running Ubuntu 18.04.
  • Root password configured on your server.

Getting Started

Begin by updating your server to the latest package versions. Execute the following commands:

apt-get update -y
apt-get upgrade -y

After the updates, restart your server to apply all changes.

Install LAMP Server

To set up Neos, you’ll need to install the Apache web server, MariaDB database server, PHP, and additional necessary packages. Run:

    apt-get install apache2 mariadb-server php7.2 libapache2-mod-php7.2 php7.2-common php7.2-mysql php7.2-gmp 
    php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc php7.2-gd php7.2-bcmath php7.2-xml php7.2-cli 
    php7.2-zip curl unzip git -y

With the packages installed, start Apache and MariaDB services, and enable them to start at boot time:

    systemctl start apache2
systemctl start mariadb
systemctl enable apache2
systemctl enable mariadb

Modify the php.ini file with the following configurations:

nano /etc/php/7.2/apache2/php.ini
    short_open_tag = On
    memory_limit = 256M
    upload_max_filesize = 150M
    max_execution_time = 360
    date.timezone = Asia/Kolkata

Configure MariaDB Database

First, secure your MariaDB installation:

mysql_secure_installation

Respond to the prompts as shown below:

    Enter current password for root (enter for none): 
    Set root password? [Y/n]: N 
    Remove anonymous users? [Y/n]: Y 
    Disallow root login remotely? [Y/n]: Y 
    Remove test database and access to it? [Y/n]: Y 
    Reload privilege tables now? [Y/n]: Y

With MariaDB secured, create a database and user for Neos:

mysql -u root -p
    CREATE DATABASE neosdb;
    CREATE USER 'neos'@'localhost' IDENTIFIED BY 'mypassword';

Grant privileges and set the character set to UTF8:

    GRANT ALL PRIVILEGES ON neosdb.* TO 'neos'@'localhost' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
    ALTER DATABASE neosdb charset=utf8;
    FLUSH PRIVILEGES;
    EXIT;

Edit the MariaDB configuration file:

nano /etc/mysql/mariadb.conf.d/50-server.cnf
    innodb_file_format = Barracuda
    innodb_large_prefix = 1
    innodb_file_per_table = 1
    innodb_default_row_format = dynamic

Restart MariaDB to apply changes:

systemctl restart mariadb

Verify service status with:

systemctl status mariadb

Install Neos CMS

Install Composer, a dependency manager for PHP:

    curl -sS https://getcomposer.org/installer | php
    sudo mv composer.phar /usr/local/bin/composer

Navigate to Apache’s web root and install Neos:

cd /var/www/html/
composer create-project --no-dev neos/neos-base-distribution neoscms
chown -R www-data:www-data /var/www/html/neoscms/
chmod -R 755 /var/www/html/neoscms/

Configure Apache for NeosCMS

Create an Apache virtual host configuration for Neos:

nano /etc/apache2/sites-available/neoscms.conf
    <VirtualHost *:80>
         ServerAdmin admin@example.com
         DocumentRoot /var/www/html/neoscms/Web
         ServerName example.com
         <Directory /var/www/html/neoscms/Web/>
              Options FollowSymlinks
              AllowOverride All
              Require all granted
         </Directory>

         ErrorLog ${APACHE_LOG_DIR}/neos_error.log
         CustomLog ${APACHE_LOG_DIR}/neos_access.log combined
        
         <Directory /var/www/html/neoscms/Web/>
            RewriteEngine on
            RewriteBase /
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*) index.php [PT,L]
        </Directory>
    </VirtualHost>

Enable the Neos site and Apache rewrite module:

a2ensite neoscms.conf
a2enmod rewrite

Restart Apache to finalize the setup:

systemctl restart apache2

Check Apache’s status using:

systemctl status apache2

Access Neos Web Interface

Launch a browser and access Neos at http://example.com/setup. You’ll see the setup page:

Neos Login

Enter the setup password found in the /var/www/html/neoscms/Data/SetupPassword.txt file and click Login. Continue following the setup steps, ensuring all required components are present, configuring the database, and setting up an administrator account.

You can skip creating a new site for now if desired, and upon successful installation, you’ll reach the completion page.

Neos setup complete

Click on the Go to backend button, and you’ll be redirected to the Neos login page. Log in with your admin credentials to access the Neos admin interface.

Conclusion

Congratulations! You’ve successfully installed Neos CMS on an Ubuntu 18.04 server. Enjoy hosting your website or blog with Neos, and don’t hesitate to reach out for assistance if you have any questions.

FAQ

1. What is Neos CMS?

Neos is a content management system and content application platform, known for its flexibility and customization capabilities, ideal for creating personalized web experiences.

2. Can I install Neos on a different version of Ubuntu?

Yes, while this guide is for Ubuntu 18.04, Neos can be installed on other versions of Ubuntu or even different Linux distributions by adjusting some installation steps according to the system’s package manager and software compatibility.

3. How can I access my Neos installation?

Use a web browser to visit your server’s domain configured in the virtual host, e.g., http://example.com, to begin the setup process or access the Neos dashboard.

4. What should I do if I encounter errors during installation?

Ensure all dependencies are correctly installed, check server logs for detailed error reports, and verify configuration files. If the issues persist, consult the Neos documentation or community forums for further guidance.