Cómo instalar CraftCMS con Apache y Let’s Encrypt SSL en Ubuntu 22.04 LTS
Craft es un sistema de gestión de contenidos de código abierto, flexible y rico en funciones para desarrolladores y autores de contenidos. Ofrece todas las funciones de personalización necesarias para construir un sitio web potente. Te permite gestionar el contenido de varios sitios desde un único panel de control. Es una solución alternativa a WordPress y Drupal para construir experiencias digitales a medida. Tiene cientos de plugins gratuitos y de pago que te permiten añadir funcionalidades.
Este post explicará cómo instalar Craft CMS con Apache y Let’s Encrypt SSL en 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 configurada en el servidor.
Instalar servidor LAMP
Craft CMS se ejecuta en el servidor web, está escrito en PHP y utiliza MariaDB como backend de base de datos. Así que necesitarás instalar todos esos paquetes en tu servidor.
Puedes ejecutar el siguiente comando para instalar todos esos paquetes:
apt-get install apache2 mariadb-server php php-cli libapache2-mod-php php-common php-json php-curl php-gd php-imagick php-json php-mbstring php-mysql php-pgsql php-zip php-intl php-xml -y
Después de instalar todos los paquetes, edita el archivo de configuración de PHP y cambia los ajustes por defecto:
nano /etc/php/8.1/php.ini
Cambia los siguientes ajustes:
memory_limit = 512M post_max_size = 32M upload_max_filesize = 32M max_execution_time = 360
Guarda y cierra el archivo y reinicia el servicio Apache para aplicar los cambios:
systemctl restart apache2
Crear una base de datos para CraftCMS
A continuación, tendrás que crear una base de datos y un usuario para Fork CMS. En primer lugar, inicia sesión en el intérprete de comandos MariaDB con el siguiente comando:
mysql
Una vez que hayas iniciado sesión, crea una base de datos y un usuario con el siguiente comando:
MariaDB [(none)]> CREATE DATABASE craftcms; MariaDB [(none)]> GRANT ALL ON craftcms.* TO 'craftuser' IDENTIFIED BY 'password';
A continuación, vacía los privilegios y sal del intérprete de comandos MariaDB con el siguiente comando:
MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> EXIT;
En este punto, la base de datos MariaDB está creada para Craft CMS. Ahora puedes pasar al siguiente paso.
Instalar Craft CMS utilizando Compose
A continuación, tendrás que instalar el Compositor para descargar la última versión de Craft CMS. Puedes instalarlo utilizando el siguiente comando:
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
Una vez instalado el Compositor, navega al directorio raíz web de Apache y crea un proyecto Craft CMS utilizando el siguiente comando:
cd /var/www/html composer create-project craftcms/craft craftcms
Se te pedirá que proporciones la configuración de tu base de datos, el nombre de usuario admin, la contraseña y la URL del sitio, como se muestra a continuación:
Which database driver are you using? (mysql or pgsql) [mysql] Database server name or IP address: [127.0.0.1] Database port: [3306] Database username: [root] craftuser Database password: Database name: craft Database table prefix: Testing database credentials ... success! Saving database credentials to your .env file ... done Install Craft now? (yes|no) [yes]:yes Username: [admin] admin Email: [email protected] Password: Confirm: Site name: CraftCMS Site Site URL: http://craftcms.example.com Site language: [en-US] > add foreign key fk_rlbmgnhpxsljkaunjwnsezfrnrkhwzpthfsq: {{%widgets}} (userId) references {{%users}} (id) ... done (time: 0.035s) > populating the info table ... done > saving default site data ... done > saving the first user ... done *** installed Craft successfully (time: 5.449s)
A continuación, establece el permiso y la propiedad adecuados para el directorio Craft CMS:
chown -R www-data:www-data /var/www/html/craftcms/ chmod -R 755 /var/www/html/craftcms/
Una vez que hayas terminado, puedes continuar con el siguiente paso.
Configurar Apache para Craft CMS
A continuación, tendrás que crear un archivo de configuración de host virtual Apache para Craft CMS. Puedes crearlo con el siguiente comando:
nano /etc/apache2/sites-available/craftcms.conf
Añade las siguientes líneas:
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/html/craftcms/web ServerName craftcms.example.com <Directory /var/www/html/craftcms/web/> Options FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/html/craftcms/web/> RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*) index.php [PT,L] </Directory> </VirtualHost>
Guarda y cierra el archivo y, a continuación, activa el host virtual de Apache y el módulo de reescritura con el siguiente comando:
a2ensite craftcms.conf a2enmod rewrite
A continuación, reinicia el servicio Apache para aplicar los cambios:
systemctl restart apache2
También puedes comprobar el estado de Apache con el siguiente comando:
systemctl status apache2
Obtendrás la siguiente salida:
? apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2022-06-17 15:48:11 UTC; 31min ago Docs: https://httpd.apache.org/docs/2.4/ Process: 37935 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Process: 40916 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS) Main PID: 37939 (apache2) Tasks: 6 (limit: 2292) Memory: 53.0M CPU: 28.718s CGroup: /system.slice/apache2.service ??37939 /usr/sbin/apache2 -k start ??40920 /usr/sbin/apache2 -k start ??40921 /usr/sbin/apache2 -k start ??40922 /usr/sbin/apache2 -k start ??40923 /usr/sbin/apache2 -k start ??40924 /usr/sbin/apache2 -k start Jun 17 15:48:11 ubuntu2204 systemd[1]: Starting The Apache HTTP Server...
Una vez configurado tu servidor web Apache, puedes pasar al siguiente paso.
Accede a la Interfaz Web de Craft CMS
Ahora, abre tu navegador web y escribe la URL http://craftcms.example.com para acceder a la interfaz web de Craft CMS. Deberías ver la siguiente página:
Haz clic en ir a tu panel de control. Serás redirigido a la página de inicio de sesión de Craft CMS:
Proporciona tu nombre de usuario y contraseña de administrador y haz clic en el botón de inicio de sesión. Deberías ver el panel de control de Craft CMS en la siguiente página:
Asegura Craft CMS con Let’s Encrypt SSL
A continuación, es una buena idea asegurar tu sitio web con Let’s Encrypt SSL. Primero, instala el paquete cliente de Certbot con el siguiente comando:
apt-get install python3-certbot-apache -y
Tras la instalación, ejecuta el siguiente comando para proteger tu sitio web con Let’s Encrypt SSL:
certbot --apache -d craftcms.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 craftcms.example.com Enabled Apache rewrite module Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/craftcms-le-ssl.conf Enabled Apache socache_shmcb module Enabled Apache ssl module Deploying Certificate to VirtualHost /etc/apache2/sites-available/craftcms-le-ssl.conf Enabling available site: /etc/apache2/sites-available/craftcms-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/craftcms.conf to ssl vhost in /etc/apache2/sites-available/craftcms-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://craftcms.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=craftcms.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/craftcms.example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/craftcms.example.com/privkey.pem Your cert will expire on 2022-09-17. 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 con éxito Craft CMS con Apache y Let’s Encrypt SSL en Ubuntu 22.04. Ahora puedes explorar las características de CraftCMS y empezar a crear un sitio web potente utilizando Craft CMS. No dudes en preguntarme si tienes alguna duda.