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:
Haz clic en Ir a la configuración. Deberías ver la siguiente página:
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:
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:
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:
Proporciona tu nombre, nombre de usuario admin, contraseña, y pulsa el botón Siguiente. Deberías ver la siguiente página:
Haz clic en el botón Ir al backend. Deberías ver la página de inicio de sesión de Neos CMS:
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:
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.