Cómo instalar ProcessWire CMS en Ubuntu 18.04 LTS
ProcessWire es un sistema de gestión de contenidos basado en PHP, gratuito y de código abierto, y un marco de gestión de contenidos. Es un CMS sencillo, flexible y potente construido para ahorrarte tiempo y trabajar como tú lo haces. ProcessWire proporciona una interfaz web fácil de usar que te permite publicar sitios web fácilmente. Está especialmente diseñado para una facilidad de uso que te permite crear sitios web de contenido potente y dinámico.
Características
- Sistema de control de acceso basado en roles.
- Instalador gráfico basado en la web.
- Proporciona una arquitectura de plugins totalmente modular y un potente sistema de plantillas.
- Soporte multilingüe.
- Admite la edición de texto enriquecido.
- Funciones de carga y edición de archivos e imágenes de arrastrar y soltar.
En este tutorial, explicaré cómo instalar ProcessWire con el servidor web Apache en Ubuntu 18.04 LTS.
Requisitos
- Un servidor con Ubuntu 18.04..
- Un usuario no root con privilegios sudo.
Cómo empezar
Antes de empezar, tendrás que actualizar tu sistema con la última versión. Puedes hacerlo ejecutando el siguiente comando:
sudo apt-get update -y
sudo apt-get upgrade -y
Una vez que tu sistema esté actualizado, reinicia el sistema para aplicar los cambios.
Instalar Apache, MariaDB y PHP
En primer lugar, tendrás que instalar el servidor web Apache, el servidor MariaDB, PHP y otros módulos PHP en tu servidor. Puedes instalar todos los paquetes simplemente ejecutando el siguiente comando:
sudo apt-get install apache2 mariadb-server unzip wget php7.2 php7.2-mysql php7.2-curl php7.2-json php7.2-cgi libapache2-mod-php7.2 php7.2-xmlrpc php7.2-gd php7.2-mbstring php7.2 php7.2-common php7.2-xmlrpc php7.2-soap php7.2-xml php7.2-intl php7.2-cli php7.2-ldap php7.2-zip php7.2-readline php7.2-imap php7.2-tidy php7.2-recode php7.2-sq php7.2-intl -y
Una vez instalados todos los paquetes, abre el archivo php.ini y realiza algunos cambios:
sudo nano /etc/php/7.2/apache2/php.ini
Haz los siguientes cambios:
memory_limit = 300M upload_max_filesize = 200M max_execution_time = 400 date.timezone = Asia/Kolkata
sudo systemctl restart apache2
sudo systemctl restart mariadb
sudo systemctl enable apache2
sudo systemctl enable mariadb
Ahora puedes comprobar el estado del servicio MariaDB con el siguiente comando:
sudo systemctl status mariadb
Salida:
? mariadb.service - MariaDB 10.1.34 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2018-12-01 22:46:13 UTC; 9h ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Process: 1317 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 1313 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS) Process: 935 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ] && systemc Process: 931 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 819 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS) Main PID: 1164 (mysqld) Status: "Taking your SQL requests now..." Tasks: 27 (limit: 2323) CGroup: /system.slice/mariadb.service ??1164 /usr/sbin/mysqld Dec 01 22:45:54 ubuntu1804 systemd[1]: Starting MariaDB 10.1.34 database server... Dec 01 22:46:05 ubuntu1804 mysqld[1164]: 2018-12-01 22:46:05 140324667522176 [Note] /usr/sbin/mysqld (mysqld 10.1.34-MariaDB-0ubuntu0.18.04.1) Dec 01 22:46:13 ubuntu1804 /etc/mysql/debian-start[1318]: Upgrading MySQL tables if necessary. Dec 01 22:46:13 ubuntu1804 systemd[1]: Started MariaDB 10.1.34 database server.
Configurar MariaDB
Por defecto, la instalación de MariaDB no está asegurada. Por lo tanto, tendrás que asegurarla primero. Puedes asegurarla ejecutando el siguiente comando:
sudo 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 MariaDB esté asegurada, entra en el shell de MariaDB:
mysql -u root -p
Proporciona tu contraseña de root. A continuación, crea una base de datos y un usuario para ProcessWire con el siguiente comando:
MariaDB [(none)]> CREATE DATABASE processdb;
MariaDB [(none)]> CREATE USER process;
A continuación, concede privilegios a la base de datos de ProcessWire con el siguiente comando:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON processdb.* TO 'process'@'localhost' IDENTIFIED BY 'password';
A continuación, vacía los privilegios con el siguiente comando:
MariaDB [(none)]> FLUSH PRIVILEGES;
A continuación, sal de la consola de MariaDB con el siguiente comando
MariaDB [(none)]> exit
Descarga e instala ProcessWire
Puedes descargar la última versión de ProcessWire del repositorio Git con el siguiente comando:
wget https://github.com/processwire/processwire/archive/master.zip
Tras la descarga, descomprime el archivo descargado con el siguiente comando:
unzip master.zip
A continuación, copia el directorio extraído al directorio raíz de la web de Apache con el siguiente comando:
sudo cp -r processwire-master /var/www/html/processwire
A continuación, da los permisos adecuados al directorio processwire con el siguiente comando:
sudo chown -R www-data:www-data /var/www/html/processwire/
sudo chmod -R 777 /var/www/html/processwire/
Configurar Apache para ProcessWire
A continuación, tendrás que crear un archivo de host virtual de Apache para ProcessWire. Puedes hacerlo ejecutando el siguiente comando
sudo nano /etc/apache2/sites-available/processwire.conf
Añade las siguientes líneas:
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/html/processwire ServerName example.com <Directory /var/www/html/processwire/> Options +FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/processwire_error.log CustomLog ${APACHE_LOG_DIR}/processwire_access.log combined </VirtualHost>
Guarda y cierra el archivo, cuando hayas terminado. A continuación, habilita el archivo de host virtual de Apache y el módulo de reescritura con el siguiente comando
sudo a2ensite processwire.conf
sudo a2enmod rewrite
Por último, reinicia el servicio de Apache para aplicar todos los cambios:
sudo systemctl restart apache2
Accede a ProcessWire
Abre tu navegador web y escribe la URL http://example.com. Serás redirigido a la página de bienvenida de ProcessWire:
Ahora, haz clic en el botón » Get Started «. Deberías ver la siguiente página:
Selecciona el perfil de instalación del sitio clásico y haz clic en el botón Continuar. Deberías ver la siguiente página:
Después de validar todos los requisitos, haz clic en el botón Continuar con el siguiente paso. Deberías ver la siguiente página:
Aquí, proporciona los detalles de tu base de datos como, nombre de host, nombre de la base de datos, nombre de usuario y contraseña de la base de datos, zona horaria. A continuación, haz clic en el botón Continuar. Deberías ver la siguiente página:
Aquí, proporciona tu URL de inicio de sesión de administrador, el nombre de usuario y la contraseña de administrador. A continuación, haz clic en el botón Continuar. Una vez que la instalación se haya completado con éxito, deberías ver la siguiente página:
Ahora, haz clic en el botón Iniciar sesión en Admin. Deberías ver la siguiente página:
Proporciona tu nombre de usuario y contraseña de administrador. A continuación, haz clic en el botón Iniciar sesión. Deberías ver el panel de control por defecto de ProcessWire en la siguiente página: