GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Craft CMS con Nginx en Ubuntu 20.04

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 necesite 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

Para seguir esta guía necesitará algunas cosas:

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

Cómo empezar

Actualizando su 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, lo 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 hacerlo 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 anterior.

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

Salida de muestra:

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 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:

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 renombró 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.

post_max_size =32M y upload_max_filesize =32M son necesarios 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 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:

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

Creando 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 mediante 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 siguientes comandos 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.

Instalando 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:

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 instalar Craft en un subdirectorio de la raíz web como:mkdir craft y ejecutar composer create-project craftcms/craft craft.

Salida de muestra:

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 se puede acceder 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 servir archivos estáticos muy bien, almacenar páginas en caché y 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 de 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 la estructura de carpetas ha cambiado.

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 de los archivos PHP básicamente significa buscar cualquier solicitud que termine con .php o 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 y luego verifique que funciona ejecutando:

sudo nginx -t

Salida de muestra:

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

sudo systemctl reload nginx

Accediendo 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 de control 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 con 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.


Ubuntu
  1. Cómo instalar WordPress con Nginx en Ubuntu 18.04

  2. Cómo instalar phpMyAdmin con Nginx en Ubuntu 18.04

  3. Cómo instalar MediaWiki con Nginx en Ubuntu 16.04

  4. Cómo instalar Grav CMS con Nginx en Ubuntu 16.04

  5. Cómo instalar SuiteCRM con Nginx en Ubuntu 16.04

Cómo instalar Nginx con ModSecurity en Ubuntu 15.04

Cómo instalar Grav CMS con Nginx en Ubuntu 20.04

Cómo instalar Nextcloud 13 en Ubuntu 16.04 con Nginx

Cómo instalar Craft CMS en Ubuntu 18.04 LTS

Cómo instalar Craft CMS en Ubuntu 20.04 LTS

Cómo instalar Bludit CMS con NGINX en Ubuntu 20.04