Cómo instalar Neos CMS en Ubuntu 22.04

Neos CMS es un sistema de gestión de contenidos gratuito, de código abierto e innovador que te ayuda a gestionar sitios web y blogs sin necesidad de conocimientos de codificación. Es sencillo, seguro y está diseñado para facilitar su uso, lo que ayuda a los empresarios a colaborar con los usuarios a través de múltiples dispositivos. Ofrece funciones muy útiles, como compatibilidad total con Unicode, internacionalización completa, SEO, edición en línea y mucho más. La idea central del proyecto es permitir a los editores editar el contenido de la forma más fluida posible, conservando su estructura.

En este tutorial, te mostraremos cómo instalar Neos CMS con Apache y Let’s Encrypt SSL en un servidor Ubuntu 22.04.

Requisitos previos

  • Un servidor con Ubuntu 22.04.
  • Un nombre de dominio válido apuntado con la IP de tu servidor.
  • Una contraseña de root está configurada en el servidor.

Cómo empezar

En primer lugar, ejecuta los siguientes comandos para actualizar todos los paquetes de tu sistema a las versiones actualizadas:

apt update -y
apt upgrade -y

Una vez que hayas terminado, puedes pasar al siguiente paso.

Instalar Apache, MariaDB y PHP

A continuación, tendrás que instalar Apache, MariaDB, PHP y otros paquetes necesarios en tu sistema. Ejecuta el siguiente comando para instalarlos todos:

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

Tras instalar todos los paquetes, edita el archivo php.ini y realiza algunos cambios:

nano /etc/php/8.1/apache2/php.ini

Cambia las siguientes líneas:

short_open_tag = On
memory_limit = 256M
upload_max_filesize = 150M
max_execution_time = 360
date.timezone = UTC

Guarda y cierra el archivo, luego reinicia el servicio Apache para aplicar los cambios:

systemctl restart apache2

Crear una base de datos para Neos CMS

En primer lugar, tendrás que establecer una contraseña de root de MariaDB y asegurar la instalación. Puedes hacerlo utilizando el siguiente comando:

mysql_secure_installation

Responde a todas las preguntas como se muestra a continuación:

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

Una vez que hayas terminado, inicia sesión en MariaDB con el siguiente comando:

mysql -u root -p

Una vez que hayas iniciado sesión, crea una base de datos y un usuario para Neos CMS utilizando el siguiente comando:

MariaDB [(none)]> CREATE DATABASE neosdb;
MariaDB [(none)]> CREATE USER 'neos'@'localhost' IDENTIFIED BY 'mypassword';

A continuación, concede todos los privilegios a la base de datos de Neos con el siguiente comando:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON neosdb.* TO 'neos'@'localhost' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

A continuación, cambia el conjunto de caracteres de la base de datos a utf8mb4, elimina los privilegios y sal de MariaDB con el siguiente comando:

MariaDB [(none)]> ALTER DATABASE neosdb charset=utf8mb4;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

A continuación, edita el archivo de configuración de MariaDB y realiza algunos cambios:

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Añade las siguientes líneas:

innodb_file_format = Barracuda
innodb_large_prefix = 1
innodb_file_per_table = 1
innodb_default_row_format = dynamic

Guarda y cierra el archivo y reinicia el servicio MariaDB para aplicar los cambios:

systemctl restart mariadb

Una vez que hayas terminado, puedes pasar al siguiente paso.

Instalar Neos CMS

Antes de empezar, tendrás que instalar Composer en tu sistema. Composer es un gestor de dependencias que se utiliza para instalar dependencias de PHP.

Ejecuta el siguiente comando para instalar Composer:

curl -sS https://getcomposer.org/installer | php

Deberías obtener la siguiente salida:

All settings correct for using Composer
Downloading...

Composer (version 2.4.1) successfully installed to: /root/composer.phar
Use it: php composer.phar

A continuación, mueve el archivo Composer a la ubicación del sistema:

mv composer.phar /usr/local/bin/composer

A continuación, cambia el directorio a la raíz web de Apache y descarga el Neos CMS con el siguiente comando:

cd /var/www/html/
git clone https://github.com/neos/neos-base-distribution.git

A continuación, cambia el nombre del directorio descargado y ejecuta el comando composer para instalar todas las dependencias de PHP:

mv neos-base-distribution neoscms
cd neoscms 
composer install

A continuación, establece el permiso y la propiedad adecuados para el directorio Neos:

chown -R www-data:www-data /var/www/html/neoscms/
chmod -R 755 /var/www/html/neoscms/

Una vez que hayas terminado, puedes pasar al siguiente paso.

Configurar Apache para Neos CMS

A continuación, tendrás que crear un archivo de configuración de host virtual de Apache para alojar Neos CMS. Puedes crearlo con el siguiente comando:

nano /etc/apache2/sites-available/neoscms.conf

Añade las siguientes líneas:

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/html/neoscms/Web
     ServerName neos.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>

Guarda y cierra el archivo, luego activa el host virtual y habilita el módulo de reescritura de Apache con el siguiente comando:

a2ensite neoscms.conf
a2enmod rewrite

A continuación, reinicia el servicio Apache para aplicar los cambios:

systemctl restart apache2

También puedes comprobar el estado del servicio Apache con el siguiente comando:

systemctl status apache2

Deberías obtener la siguiente salida:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-09-04 08:07:38 UTC; 8s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 22571 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 22577 (apache2)
      Tasks: 6 (limit: 4579)
     Memory: 14.7M
        CPU: 128ms
     CGroup: /system.slice/apache2.service
             ??22577 /usr/sbin/apache2 -k start
             ??22578 /usr/sbin/apache2 -k start
             ??22579 /usr/sbin/apache2 -k start
             ??22580 /usr/sbin/apache2 -k start
             ??22581 /usr/sbin/apache2 -k start
             ??22582 /usr/sbin/apache2 -k start

Sep 04 08:07:38 ubuntu2204 systemd[1]: Starting The Apache HTTP Server...

En este punto, el servidor web Apache está configurado para servir Neos CMS. Ahora puedes pasar al siguiente paso.

Accede a Neos CMS

Ahora, abre tu navegador web y accede a Neos CMS utilizando la URL http://neos.example.com. Serás redirigido a la siguiente página:

Neos CMS

Haz clic en Ir a la configuración. Deberías ver la siguiente página:

Iniciar sesión

Introduce la contraseña de configuración del archivo SetupPassword.txt y pulsa el botón Iniciar sesión. Deberías ver la siguiente página:

Requisitos del sistema

Asegúrate de que están instaladas todas las extensiones PHP necesarias y pulsa el botón Siguiente. Deberías ver la siguiente página:

Configuración de la base de datos

Proporciona el nombre de tu base de datos, el nombre de usuario de la base de datos, el host de la base de datos, la contraseña y pulsa el botón Siguiente. Deberías ver la siguiente página:

Cuenta Admin

Proporciona tu nombre, nombre de usuario admin, contraseña, y pulsa el botón Siguiente. Deberías ver la siguiente página:

Crear un nuevo sitio

Configuración Neos completa

Haz clic en el botón Ir al backend. Deberías ver la página de inicio de sesión de Neos CMS:

Neos admin login

Proporciona tu nombre de usuario admin, contraseña y haz clic en el botón Iniciar sesión. Deberías ver el panel de Neos CMS en la siguiente página:

Salpicadero Neos

Asegura Neos CMS con Let’s Encrypt

Es una buena idea asegurar tu sitio web con Let’s Encrypt Free SSL. Primero, instala el cliente Certbot para instalar y gestionar el SSL. Puedes instalarlo con el siguiente comando:

apt-get install python3-certbot-apache -y

Una vez instalado, ejecuta el siguiente comando para proteger tu sitio web con Let’s Encrypt SSL:

certbot --apache -d neos.example.com

Se te pedirá que proporciones tu correo electrónico y aceptes las condiciones del servicio, como se muestra a continuación:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Plugins selected: Authenticator apache, Installer apache
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for neos.example.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/neos-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/neos-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/neos-le-ssl.conf

A continuación, selecciona si deseas o no redirigir el tráfico HTTP a HTTPS, como se muestra a continuación:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Escribe 2 y pulsa Intro para instalar Let’s Encrypt SSL en tu sitio web:

Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/neos.conf to ssl vhost in /etc/apache2/sites-available/neos-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://neos.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=neos.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/neos.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/neos.example.com/privkey.pem
   Your cert will expire on 2022-12-07. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Conclusión

Enhorabuena! has instalado correctamente Neos CMS con Apache y Let’s Encrypt SSL en el servidor Ubuntu 22.04. Ahora puedes crear y editar fácilmente tu sitio web a través del navegador web. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...