Cómo instalar Tiki Wiki con Apache y Let’s encrypt SSL en Debian 10
TikiWiki es un sistema de gestión de contenidos gratuito y de código abierto escrito en lenguaje PHP. Es muy potente, completo y puede utilizarse para crear sitios web, wikis, aplicaciones web, bases de conocimiento, portales, galerías de imágenes y mucho más. TikiWiki consta de cuatro componentes principales: herramientas de creación y gestión de contenidos, herramientas de comunicación, herramientas de configuración y administración, y herramientas de organización de contenidos y ayudas a la navegación. Con ellas podrás crear y gestionar contenidos, y configurar sitios. TikiWiki incluye un amplio conjunto de funciones, como Foros, Blog, Mapas, Espacio de trabajo, Presentación de diapositivas, Carro de la compra, Seguimiento de errores y problemas, Multilingüe, Galería de archivos e imágenes, Eventos y muchas más.
En este tutorial, aprenderemos a instalar el CMS TikiWiki en Debian 10.
Requisitos
- Un servidor que ejecute Debian 10.
- Una contraseña de root en tu servidor.
Cómo empezar
Antes de empezar, necesitarás actualizar tu sistema con la última versión. Puedes hacerlo ejecutando el siguiente comando:
apt-get update -y apt-get upgrade -y
Una vez actualizado tu servidor, reinícialo para aplicar los cambios.
Instalar el Servidor LAMP
TikiWiki se ejecuta en un servidor web Apache / Nginx, escrito en lenguaje PHP y utiliza MariaDB/MySQL para almacenar sus datos. Así que necesitarás instalar Apache, MariaDB, PHP y otras extensiones necesarias en tu servidor. En primer lugar, instala el servidor Apache y MariaDB con el siguiente comando:
apt-get install apache2 mariadb-server unzip -y
Por defecto, Debian 10 incluye la versión 7.3 de PHP. Pero TikiWiki no soporta PHP 7.3. Por lo tanto, tendrás que instalar PHP 7.2 y otras extensiones necesarias.
Para añadir el repositorio SURY, primero descarga y la clave GPG con el siguiente comando:
wget https://packages.sury.org/php/apt.gpg apt-key add apt.gpg
A continuación, añade el repositorio SURY a APT con el siguiente comando:
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list
A continuación, actualiza el repositorio e instala PHP7.2 junto con todas las extensiones necesarias con los siguientes comandos:
apt-get update -y apt-get install php7.2 libapache2-mod-php7.2 php7.2-common php7.2-sqlite3 php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc php7.2-mysql php7.2-gd php7.2-xml php7.2-cli php7.2-zip -y
Tras instalar PHP7.2, abre el archivo php.ini y modifica algunos ajustes:
nano /etc/php/7.2/apache2/php.ini
Añade las siguientes líneas:
memory_limit = 256M upload_max_filesize = 100M max_execution_time = 360 date.timezone = Asia/Kolkata
Guarda y cierra el archivo cuando hayas terminado. A continuación, pasa al siguiente paso.
Crear base de datos para TikiWiki
Por defecto, MariaDB no está protegida. Por lo tanto, primero tendrás que asegurarla. Puedes asegurarla con el siguiente script:
mysql_secure_installation
Debes responder 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é protegida, accede al shell de MariaDB:
mysql -u root -p
Proporciona tu contraseña de root cuando se te pida y luego crea una base de datos y un usuario para TikiWiki con el siguiente comando:
MariaDB [(none)]> CREATE DATABASE tikidb; MariaDB [(none)]> CREATE USER 'tiki'@'localhost' IDENTIFIED BY 'password';
A continuación, concede todos los privilegios a la Base de Datos TikiWiki con el siguiente comando:
MariaDB [(none)]> GRANT ALL ON tikidb.* TO 'tiki'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
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;
Una vez hecho esto, puedes pasar al siguiente paso.
Descargar TikiWiki
En primer lugar, tendrás que descargar la última versión de TikiWiki del sitio web Sourceforge. Puedes descargarla con el siguiente comando:
cd /var/www/html/ wget https://sourceforge.net/projects/tikiwiki/files/latest/download -O tikiwiki.zip
Una vez completada la descarga, descomprime el archivo descargado con el siguiente comando:
unzip tikiwiki.zip
A continuación, renombra el directorio extraído a tikiwiki con el siguiente comando:
mv tiki-20.0 tikiwiki
A continuación, da los permisos adecuados al directorio tikiwiki con el siguiente comando:
chown -R www-data:www-data /var/www/html/tikiwiki/ chmod -R 755 /var/www/html/tikiwiki/
Una vez que hayas terminado, puedes pasar al siguiente paso.
Configurar Apache para TikiWiki
A continuación, tendrás que crear un archivo de configuración del host virtual de Apache para TikiWiki. Puedes crearlo con el siguiente comando:
nano /etc/apache2/sites-available/tikiwiki.conf
Añade el siguiente contenido:
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/html/tikiwiki ServerName example.com <Directory /var/www/html/tikiwiki/> Options FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/tikiwiki_error.log CustomLog ${APACHE_LOG_DIR}/tikiwiki_access.log combined </VirtualHost>
Guarda y cierra el archivo. A continuación, habilita el archivo de configuración del host virtual con el siguiente comando:
a2ensite tikiwiki.conf
Por último, habilita el módulo de reescritura de Apache y reinicia el servicio Apache para recargar los cambios de configuración con el siguiente comando:
a2enmod rewrite systemctl restart apache2
Accede a la interfaz web de TikiWiki
Ahora, abre tu navegador web y escribe la URL http://example.com. Serás redirigido a la página de bienvenida de TikiWiki:
Selecciona tu idioma y pulsa el botón Continuar. Deberías ver la siguiente página:
Acepta el acuerdo de Licencia y pulsa el botón Continuar. Deberías ver la siguiente página:
Confirma que tu sistema cumple los requisitos mínimos y pulsa el botón Continuar. Debes ver la siguiente página:
Proporciona el nombre de tu base de datos, el nombre de usuario de la base de datos y la contraseña. A continuación, pulsa el botón Continuar. Deberías ver la página siguiente:
Selecciona el motor de base de datos y pulsa el botón Instalar para iniciar la instalación. 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 Continuar, deberías ver la siguiente página:
Proporciona toda la información requerida como Título de la Wiki, Correo electrónico del remitente, Inicio de sesión seguro, Correo electrónico del administrador y haz clic en el botón Continuar. Deberías ver la siguiente página:
Lee toda la información y pulsa el botón Continuar. Deberías ver la siguiente página:
Ahora, pulsa el botón«Entrar en el Instalador de Tiki y Bloqueo«. Deberías ver la siguiente página:
Ahora, establece tu contraseña de administrador y pulsa el botón Aplicar. Deberías ver la siguiente página:
Asegura TikiWiki con Let’s Encrypt
En esta sección, te explicaremos cómo asegurar tu sitio TikiWiki con el SSL gratuito de Let’s Encrypt.
En primer lugar, necesitarás instalar la herramienta Certbot para descargar e instalar Let’s Encrypt free SSL para tu sitio web. Por defecto, la última versión de Certbot no está disponible en el repositorio por defecto de Debian 10. Por tanto, tendrás que añadir el repositorio de Certbot a tu sistema.
Puedes añadir el repositorio de Certbot con el siguiente comando:
apt-get install software-properties-common add-apt-repository ppa:certbot/certbot
A continuación, actualiza el repositorio e instala Certbot con el siguiente comando:
apt-get update -y apt-get install certbot python-certbot-apache -y
Una vez instalado, crea un archivo well-known.conf para que Let’s Encrypt valide tu dominio.
Primero, crea un directorio .well-known y dale los permisos adecuados:
mkdir -p /var/lib/letsencrypt/.well-known chgrp www-data /var/lib/letsencrypt chmod g+s /var/lib/letsencrypt
A continuación, crea un archivo well-known.conf con el siguiente comando:
nano /etc/apache2/conf-available/well-known.conf
Añade las siguientes líneas:
Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" <Directory "/var/lib/letsencrypt/"> AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS </Directory>
Guarda y cierra el archivo. A continuación, habilita los módulos necesarios con el siguiente comando:
a2enmod ssl a2enmod http2 a2enmod headers a2enconf well-known
A continuación, reinicia el servicio Apache para aplicar todos los cambios de configuración:
systemctl restart apache2
Ahora, vamos a empezar a instalar el certificado SSL gratuito para tu dominio ejemplo.com con el siguiente comando:
certbot --apache -d example.com
En primer lugar, tendrás que proporcionar una dirección de correo electrónico válida y aceptar las condiciones del servicio, como se muestra a continuación:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator apache, Installer apache 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 Obtaining a new certificate Performing the following challenges: http-01 challenge for example.com Enabled Apache rewrite module Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/example.com-le-ssl.conf Deploying Certificate to VirtualHost /etc/apache2/sites-available/example.com-le-ssl.conf Enabling available site: /etc/apache2/sites-available/example.com-le-ssl.conf 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
A continuación, elige la opción 2 para descargar e instalar el certificado SSL gratuito para tu dominio. Una vez que la instalación se haya completado con éxito. Deberías obtener la siguiente salida:
Enabled Apache rewrite module Redirecting vhost in /etc/apache2/sites-enabled/example.com.conf to ssl vhost in /etc/apache2/sites-available/ example.com-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2019-10-22. 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" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - 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
Eso es todo. Ahora, abre tu navegador web y accede a tu CMS TikiWiki utilizando la URL https://example.com. Deberías comprobar que tu sitio TikiWiki está correctamente protegido con el certificado SSL gratuito.