Cómo instalar Craft CMS con Nginx en Ubuntu 20.04

Forzar instalación de paquetes.

Craft CMS es un sistema de gesti√≥n de contenido gratuito y de c√≥digo abierto para sitios web. Con el respaldo de una comunidad grande y creciente de desarrolladores y dise√Īadores, ofrece una gama de caracter√≠sticas innovadoras con un dise√Īo elegante que lo hace f√°cil de usar. Tambi√©n le permite controlar todos los aspectos del desarrollo de su sitio.

Es una excelente alternativa a WordPress y Drupal, que son dos de los sistemas de administración de contenido más populares que se usan en la actualidad.

Un sistema de administración de contenido (CMS) es un software que se utiliza para facilitar la administración del contenido web, como editar contenido o agregar nuevas páginas e imágenes. Operar un sitio web puede ser difícil si necesita crear cada página individualmente en código utilizando HTML u otros lenguajes de marcado; esto puede causar problemas si tiene varias personas trabajando en su sitio a la vez, ya que es posible que no haya acuerdo sobre cómo deben verse o comportarse ciertos elementos.

El uso de un CMS le permite establecer la estructura general de cada página, así como elementos específicos, como una publicación de blog o una descripción del producto; luego, cuando alguien más necesita editar esa información, solo necesita usar el CMS.

Esta guía muestra cómo instalar Craft CMS en Ubuntu 20.04 LTS (Focal Fossa). Le mostrará cómo instalar Craft CMS en su servidor Ubuntu. Si desea utilizar la base de datos MySQL/MariaDB, esta guía también lo ayudará a instalarla.

El proceso para instalar Craft CMS en Ubuntu es similar, independientemente de la distribuci√≥n y la versi√≥n que est√© utilizando, por lo que deber√≠a poder seguir esta gu√≠a incluso si su sistema es ligeramente diferente. Este tutorial fue creado con una nueva instalaci√≥n de Ubuntu en mente; sin embargo, algunos pasos pueden variar ligeramente seg√ļn la configuraci√≥n actual de su servidor.

requisitos previos

Para seguir esta guía necesitarás algunas cosas:

  • Un servidor con Ubuntu 20.04 LTS.
  • Un usuario no root con privilegios sudo configurados en su servidor Ubuntu.

Empezando

Actualizando tu sistema

Primero, inicie sesión en su servidor como su usuario no root ejecutando el siguiente comando:

ssh [email protected]_instance_ip

El nombre de usuario es root, te conectas al servidor ‘instance_ip’ usando el protocolo SSH

your_instance_ip es la dirección IP privada de su servidor donde se instalará Craft CMS.

Actualice su sistema operativo ejecutando el siguiente comando:

sudo apt update && sudo apt upgrade -y

Sudo apt update se ejecuta para garantizar que su sistema Ubuntu est√© actualizado. Este comando har√° que Ubuntu descargue nuevos paquetes de Ubuntu de los repositorios de Ubuntu y los instale en su sistema operativo Ubuntu. Ubuntu usa un repositorio (o m√°s precisamente, ¬ęrepositorios¬Ľ) que son centros de distribuci√≥n de software de donde Ubuntu obtiene todas sus aplicaciones.

sudo apt upgrade es un comando de Ubuntu para actualizar y mejorar el software de Ubuntu. Esto actualiza su software de Ubuntu, que incluye la actualizaci√≥n del n√ļcleo de Ubuntu, los paquetes instalados y cualquier nueva versi√≥n del software de Ubuntu.

-y es la forma abreviada de –yes. El comando de Ubuntu ‘apt upgrade -y’ significa que Ubuntu aceptar√° autom√°ticamente cualquier solicitud de actualizaci√≥n de software de Ubuntu.

Si obtiene alg√ļn error al ejecutar este comando, es posible que deba corregir los errores con el Centro de software de Ubuntu o mediante una terminal. Puede hacer esto escribiendo sudo apt-get -f install y siguiendo las instrucciones en el Centro de software de Ubuntu para solucionar todos los problemas, o puede usar el comando de Terminal ¬ęsudo dpkg –configure -a¬Ľ para corregir errores y luego volver a ejecutar el comando de arriba.

sudo apt-get -f install
sudo dpkg --configure -a

Salida de muestra:

Forzar instalación de paquetes.

Instalación de dependencias

Instale las dependencias ejecutando el siguiente comando:

sudo apt install -y curl wget vim git unzip socat

curl es para que Ubuntu descargue actualizaciones de Ubuntu desde los repositorios de Ubuntu. wget es un software gratuito compatible con Ubuntu y otros sistemas operativos Linux para obtener archivos mediante los protocolos HTTP, HTTPS y FTP.

vim es un popular editor de texto basado en Unix que se ejecuta en casi todos los sistemas Unix, así como en Microsoft Windows.

Ubuntu usa descomprimir para extraer archivos de un archivo ZIP.

Ubuntu usa socat, una utilidad basada en la línea de comandos para abrir conexiones entre dos aplicaciones diferentes mientras usa los flujos o archivos estándar de entrada y salida.

Salida de muestra:

Instalar dependencias

Instalar servidor LEMP

Craft CMS est√° escrito en PHP y utiliza MySQL/MariaDB como motor de base de datos. Configuraremos Ubuntu para usarlo juntos usando ¬ęuna pila LEMP¬Ľ. Una pila LEMP es un acr√≥nimo de Linux, servidor web Nginx, motor de base de datos MySQL/MariaDB y lenguaje de programaci√≥n PHP.

Primero, instale el servidor Nginx y MariaDB ejecutando el siguiente comando en su terminal:

sudo apt-get install nginx mariadb-server -y

Salida de muestra:

Instalar Nginx

Una vez que ambos estén instalados, puede instalar PHP ejecutando el siguiente comando en su terminal:

sudo apt-get install php php-cli php-fpm php-common php-curl php-gd php-imagick php-json php-mbstring php-mysql php-pgsql php-zip php-intl php-xml -y

php-cli es la interfaz de l√≠nea de comandos para PHP, y el nombre del paquete predeterminado era ¬ęphp5¬Ľ en el pasado. Ahora se renombra a ¬ęphp¬Ľ.

php-fpm es la versi√≥n en espera de php-cgi. Puede manejar bien las solicitudes simult√°neas y es √ļtil para usarse detr√°s de un servidor proxy.

php-common es para bibliotecas comunes que necesitan otros m√≥dulos, por ejemplo, php-json se instala autom√°ticamente cuando instalamos ¬ęphp¬Ľ.

php-curl es un módulo para acceder a la URL a través de cURL (herramienta de línea de comandos que envía solicitudes HTTP).

Nota: Ubuntu utiliza el Centro de software de Ubuntu para instalar el software de Ubuntu. Sin embargo, Ubuntu Software Center no puede descargar ni instalar software de terceros como algunos paquetes de Python (virtualenv, etc.) requeridos por Craft CMS. En el Centro de software de Ubuntu, debe copiar y pegar manualmente los comandos que se encuentran aquí en una ventana de Terminal y seguir las instrucciones.

Después de instalar todos los paquetes, edite el archivo php.ini en el directorio de Ubuntu etc/php/7.4/fpm:

sudo nano /etc/php/7.4/fpm/php.ini

Cambie las siguientes configuraciones en el archivo:

memory_limit = 512M
post_max_size = 32M
upload_max_filesize = 32M
date.timezone = Asia/Kolkata

Craft CMS necesita memory_limit = 512M, en Ubuntu 20.04 LTS, PHP no puede cambiar el límite de memoria por sí mismo, por lo que debemos cambiarlo manualmente en el archivo php.ini.

Se necesitan post_max_size = 32M y upload_max_filesize = 32M para cargar archivos de imagen a través del CMS, Ubuntu 20.04 LTS ha establecido los valores de post_max_size y upload_max_filesize en 16M de manera predeterminada en el archivo php.ini de Ubuntu, Craft CMS requiere 32M.

Craft CMS también requiere date.timezone = Asia/Kolkata para mostrar la hora correctamente en Ubuntu 20.04 LTS. Ubuntu 20.04 LTS usa UTC-5 como zona horaria de forma predeterminada, Craft CMS requiere la zona horaria en UTC+05:30 (hora estándar de la India).

Después de editar el archivo php.ini, guarde y cierre el archivo y luego reinicie el servicio PHP-FPM de Ubuntu:

sudo systemctl restart php7.4-fpm

Para verificar el estado del servicio PHP-FPM de Ubuntu, ingrese el siguiente comando:

sudo systemctl status php7.4-fpm

Salida de muestra:

Comprobar el estado de PHP

Ahora que tiene listo el servidor LEMP, vamos al siguiente paso.

Crear base de datos

Ahora vamos a crear una base de datos para Craft CMS. Abra la consola MySQL de Ubuntu:

sudo mysql -u root -p

-p significa contrase√Īa. Si desea conectarse por el usuario root, simplemente escriba -u root y presione Entrar sin escribir ninguna otra informaci√≥n espec√≠fica.

Ingrese la contrase√Īa que estableci√≥ durante la instalaci√≥n de Ubuntu. Luego ejecute los comandos a continuaci√≥n para crear una base de datos llamada ‘craftdb’:

CREATE DATABASE craftdb;
GRANT ALL ON craftdb.* TO 'craftuser' IDENTIFIED BY 'mypassword';
FLUSH PRIVILEGES;
EXIT;

Para usar esta base de datos, necesitamos conectarnos a ella. As√≠ que creamos un usuario llamado ‘craftuser’. Usamos IDENTIFICADO POR en lugar de VALORES porque le decimos a MySQL que solo use la base de datos y ning√ļn otro dato. Reemplace la palabra mypassword con una contrase√Īa segura de su elecci√≥n.

FLUSH PRIVILEGES es descartar todas las transacciones no confirmadas en esta sesión.

Instalación de Craft CMS

Para instalar Craft CMS, primero debemos instalar la √ļltima versi√≥n de Composer. Porque Ubuntu no admite el uso de gemas en su sistema. Solo podemos instalar Craft CMS usando Composer. Ejecutando el siguiente comando para instalar Composer:

sudo curl -sS https://getcomposer.org/installer -o composer-setup.php

-s activa el modo silencioso. De forma predeterminada, curl no muestra la salida a medida que avanza a lo largo de -s, puede pasar una URL para analizarla. En este caso, le estamos diciendo a curl que obtenga la URL https://getcomposre the -s, agregamos la bandera para descargar un archivo (que es https://getcomposer.org/installer) y guardamos la URL, la bandera -o le dice a curl que escriba el archivo descargado en composer-setup.php

A continuación, instale Composer ejecutando el siguiente comando:

sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Se requiere el comando php para decirle a la computadora que desea ejecutar este script PHP sudo composer-setup.php –install-dir=/usr/local/bin –filename=composer

El directorio de instalación es la ruta de destino del Composer. En este caso es /usr/local/bin. Si no desea que el archivo sea accesible para todos los usuarios, utilice ./ o ./. Además, este directorio debe tener permisos de ejecución.

El indicador –filename es el nombre del archivo en el que se instalar√° Composer.

Si no sabe d√≥nde colocarlo, puede copiar el archivo en cualquier directorio de su elecci√≥n o especificarlo despu√©s de –filename

Una vez que Composer esté instalado, verifique la versión instalada usando el siguiente comando:

composer --version

Salida de muestra:

Comprobar la versión del compositor

A continuación, cree un directorio para su proyecto Craft CMS. Creamos un directorio llamado craft en el directorio /var/www/html/. Usaremos este directorio como nuestra raíz web. Es decir, todos los archivos que creamos o páginas que son servidas por Craft CMS serán accedidas desde la raíz web.

mkdir /var/www/html/craft

A continuación, acceda al directorio craft e instale Craft CMS mediante Composer:

cd /var/www/html/craft
composer create-project craftcms/craft

Nota: si está utilizando una versión de Craft anterior a la 0.97, reemplace create-project con install.

advertencia: Esto sobrescribir√° cualquier archivo existente en el directorio.

Si desea tener un directorio diferente para su Craft CMS, puede especificar la opci√≥n –prefer-dist.

Si sus proveedores de alojamiento no permiten cambiar la raíz del documento a /var/www, se recomienda encarecidamente instalar Craft en un subdirectorio de la raíz web como: mkdir craft y ejecutar composer create-project craftcms/craft craft.

Salida de muestra:

Instalar craft cms usando composer

Se le pedir√° que proporcione los detalles de la base de datos, un nombre de usuario y una contrase√Īa para la administraci√≥n.

¬°Debe proporcionar algunas credenciales de usuario para la base de datos MYSQL para que Craft pueda configurar sus claves de seguridad internas! El nombre de host es ‘localhost’, el nombre de usuario es ‘craftuser’ y la contrase√Īa es la que eligi√≥ cuando cre√≥ la base de datos MySQL anterior.

En este punto, Composer debería poder compilar e instalar Craft en un directorio llamado craft dentro de la estructura webroot /var/www. De forma predeterminada, no es accesible a través de Internet a menos que haya habilitado el acceso HTTP.

A continuación, establezca la propiedad adecuada para el directorio Craft recién instalado:

chown -R www-data:www-data /var/www/html/craft

Configuración de Nginx

Nginx se utiliza para atender las solicitudes de los clientes que van directamente a él. Proporciona algunos beneficios adicionales, como el servicio de archivos estáticos muy bien, el almacenamiento en caché de páginas y la compresión gzip de estas páginas.

sudo nano /etc/nginx/conf.d/craft.conf

Complete el archivo con las siguientes líneas:

server {
listen 80;
server_name craft.example.com;
root /var/www/html/craft/web;
index index.php;
location / {
  try_files $uri/index.html $uri $uri/ /index.php?$query_string;
  }
location ~ [^/]\.php(/|$) {
 try_files $uri $uri/ /index.php?$query_string;
 fastcgi_split_path_info ^(.+\.php)(/.+)$;
 fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
 fastcgi_index index.php;
 include fastcgi_params;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 fastcgi_param PATH_INFO $fastcgi_path_info;
 fastcgi_param HTTP_PROXY "";
}
}

Nombre del servidor: este es el nombre de dominio o la dirección IP de su servidor, los clientes lo usarán para resolver a quién necesitan solicitar archivos (en nuestro caso, craft.example.com).

Ra√≠z de documentos: aqu√≠ es donde residen los activos principales de Craft CMS, incluidas las carpetas web y principales que se encuentran en /var/www/html/craft. La ruta que ve aqu√≠ puede ser diferente, seg√ļn la versi√≥n de craft que est√© utilizando o si se ha cambiado la estructura de carpetas.

Try_files $uri $uri/$uri : para cualquier solicitud a un URI relativo como http://craft.example.com/index.php devolverá el archivo index.php que normalmente se encuentra en la raíz del documento de su instalación artesanal.

Ubicación ~ [^/]\.php(/|$) : La expresión regular para archivos PHP básicamente significa buscar cualquier solicitud que termine con .php o que coincida con todo excepto / y $ (busca recursivamente).

Ubicación del socket PHP-FPM: esto lo utilizan las solicitudes de activos principales de Craft CMS, este valor debe corresponder con su nombre de archivo de socket php-fpm en su archivo de configuración principal /etc/php/7.4{5,6}-fpm.conf

Guarde y cierre el archivo, luego verifique que esté funcionando ejecutando:

sudo nginx -t

Salida de muestra:

Verifique la configuración de nginx

Si no hay ning√ļn error, puede reiniciar Nginx con el siguiente comando:

sudo systemctl reload nginx

Acceso a Craft CMS

Ahora que los archivos están configurados, podemos acceder a nuestra instalación de Craft CMS. Apunte su navegador a http://craft.example.com y debería ver la pantalla de bienvenida:

Haga clic en ‘ir a su panel de control’, complete los detalles de su administrador y haga clic en ¬ęiniciar sesi√≥n¬Ľ. Deber√≠a ver el panel predeterminado.

Si ha encontrado un mensaje que dice ¬ę503 No disponible¬Ľ como este:

Aseg√ļrese de tener las √ļltimas actualizaciones de Craft, Craft theme y Craft plugin. Si eso no ayuda, intente los siguientes pasos: aseg√ļrese de que los permisos de la carpeta de Craft sean correctos como se describe en este art√≠culo. Estos archivos deben ser propiedad de root y craft no debe tener permiso de escritura en ninguna de sus carpetas.

Conclusión

¡Felicidades! Ahora ha instalado con éxito CraftCMS en Ubuntu 20.04. ¡Hagamos algunos sitios web! Como siempre, no dude en dejar comentarios o sugerencias a continuación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *