En esta guía, aprenderemos cómo instalar y configurar la última versión de Typo3 CMS en Debian 9.
Typo3 es un potente sistema de gestión de contenido de código abierto con la mayoría de las partes escritas en lenguaje de programación PHP. A menudo se implementa en Linux bajo servidores web Apache/Nginx, lenguaje de programación del lado del servidor PHP y sistema de administración de base de datos MySQL/MariaDB, también conocido como pila LAMP o LEMP. La plataforma Typo3 CMS es altamente flexible y escalable y se puede ampliar sin escribir ninguna línea de código, lo que la convierte en la candidata perfecta para implementar sitios web pequeños o potentes portales empresariales multilingües.
Requisitos
- Instalación mínima de Debian 9 en una máquina completa o en un servidor privado virtual
- privilegios de raíz sudo para una cuenta local o remota o acceso directo a la cuenta raíz
- Una dirección IP estática configurada para una de las tarjetas de interfaz de red de su sistema
- Un nombre de dominio, privado o público, según su implementación, con los registros DNS adecuados configurados para servicios web. Si no tiene un nombre de dominio válido o registrado, puede realizar la instalación y acceder al sitio web a través de la dirección IP de su servidor
- Si desea utilizar el registro en el sitio web, la moderación de comentarios y otras funciones, debe tener un servidor de correo en ejecución correctamente configurado en sus instalaciones con acceso remoto a sus servicios IMAP y SMTP.
Preparar el servidor
Antes de comenzar a instalar y configurar Typo desde fuentes en su propio servidor, primero asegúrese de que el sistema cumpla con todos los requisitos de software para compilar e instalar la aplicación. En el primer paso, actualice los repositorios de su sistema y los paquetes de software emitiendo el siguiente comando.
apt update
apt upgrade
Una vez que el sistema se haya actualizado por completo, configure el nombre de su sistema ejecutando el siguiente comando. Reemplace su variable de nombre de host en consecuencia.
Establecer el nombre de host
hostnamectl set-hostname typo
Verifique el nombre de host de la máquina y el archivo de hosts emitiendo los siguientes comandos.
hostnamectl
cat /etc/hostname
hostname –s
hostname –f
Finalmente, reinicie el servidor Debian para aplicar las actualizaciones del núcleo y el nombre de host cambie correctamente.
systemctl reboot
Instalar herramientas requeridas
En el siguiente paso, ejecute el siguiente comando para instalar algunas utilidades necesarias que se utilizarán para administrar aún más su sistema desde la línea de comandos.
apt install wget bash-completion zip unzip
Además, instale el software imagemagick, requerido por Typo3 para crear, editar, componer o convertir mapas de bits u otros tipos de imágenes cargadas en el sitio web.
apt install imagemagick
Typo3 es una plataforma CMS basada en la web escrita principalmente en el lenguaje de programación del lado del servidor PHP. Para ejecutar los scripts de archivos PHP de la aplicación, se debe instalar y poner en funcionamiento en el sistema un servidor web, como un servidor HTTP Apache, y una puerta de enlace de procesamiento PHP.
Instalar Apache y PHP
Para instalar el servidor web Apache y el intérprete PHP junto con todos los módulos PHP necesarios para que la aplicación funcione correctamente, emita el siguiente comando en la consola de su servidor.
apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-zip php7.0-gd php7.0-xml php7.0-gd php7.0-json php7.0-opcache php-imagick php7.0-curl php7.0-mbstring php7.0-bcmath php7.0-gmp
Después de que se hayan instalado Apache y PHP, pruebe si el servidor web está funcionando y escuchando las conexiones de red en el puerto 80 emitiendo el siguiente comando con privilegios de root.
netstat –tlpn
En caso de que la utilidad de red netstat no esté instalada de forma predeterminada en su sistema Debian, ejecute el siguiente comando para instalarla.
apt install net-tools
Al inspeccionar la salida del comando netstat, puede ver que el servidor web Apache está escuchando las conexiones de red entrantes en el puerto 80. Para la misma tarea, también puede usar ss comando, que se instala automáticamente de forma predeterminada en Debian 9.
ss- tulpn
Configurar el cortafuegos
En caso de que tenga un firewall habilitado en su sistema, como la aplicación de firewall UFW, debe agregar una nueva regla para permitir que el tráfico HTTP pase a través del firewall emitiendo el siguiente comando.
ufw allow WWW
o
ufw allow 80/tcp
Si está utilizando iptables reglas sin procesar para administrar las reglas del cortafuegos en su servidor Debian, agregue la siguiente regla para permitir el tráfico entrante del puerto 80 en el cortafuegos para que los visitantes puedan navegar por el sitio web.
apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload
Configurar Apache
Luego, habilite y aplique los siguientes módulos de Apache requeridos por la aplicación web para ejecutarse correctamente, emitiendo el siguiente comando.
a2enmod rewrite deflate headers
systemctl restart apache2
Finalmente, pruebe si la página web predeterminada del servidor web Apache se puede mostrar en los navegadores de su cliente visitando la dirección IP de su máquina Debian o su nombre de dominio o servidor FQDN a través del protocolo HTTP, como se muestra en la imagen a continuación. Si no conoce la dirección IP de su máquina, ejecute ifconfig o ip a comandos para revelar la dirección IP de su servidor.
http://tu_dominio.tld
Para instalar y acceder al panel de administración web Typo3 respaldado y al sitio web frontend a través del protocolo HTTPS que asegurará el tráfico para sus clientes, emita el siguiente comando para habilitar el módulo SSL del servidor web Apache y el archivo de configuración del sitio SSL.
a2enmod ssl
a2ensite default-ssl.conf
A continuación, abra el archivo de configuración del sitio SSL predeterminado de Apache con un editor de texto y habilite las reglas de reescritura de URL agregando las siguientes líneas de código después de DocumentRoot directiva, como se muestra en el siguiente ejemplo:
nano /etc/apache2/sites-enabled/default-ssl.conf
Extracto del archivo de configuración del sitio SSL:
<Directory /var/www/html>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
Además, realice el siguiente cambio en la línea VirtualHost para que se vea como se muestra en el siguiente extracto:
<VirtualHost *:443>
Cierra el archivo Apache SSL y abre /etc/apache2/sites-enabled/000-default.conf para editar y agregar las mismas reglas de reescritura de URL que para el archivo de configuración SSL. Inserte las líneas de código después de DocumentRoot declaración como se muestra en el siguiente ejemplo.
<Directory /var/www/html>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
Finalmente, reinicie el demonio Apache para aplicar todas las reglas configuradas hasta el momento y visite su dominio a través del protocolo HTTP. Debido a que está utilizando los pares de certificados autofirmados automáticamente emitidos por Apache en la instalación, debería mostrarse una advertencia de error en el navegador.
systemctl restart apache2
https://tudominio.tld
Acepte la advertencia para usar el certificado que no es de confianza y continuar y ser redirigido a la página web predeterminada de Apache, como se ilustra en la siguiente imagen.
En caso de que la aplicación de firewall UFW bloquee las conexiones de red entrantes al puerto HTTPS, debe agregar una nueva regla para permitir que el tráfico HTTPS pase a través del firewall emitiendo el siguiente comando.
ufw allow 'WWW Full'
o
ufw allow 443/tcp
Si iptables es la aplicación de firewall predeterminada instalada para proteger su sistema Debian a nivel de red, agregue la siguiente regla para permitir el tráfico entrante del puerto 443 en el firewall para que los visitantes puedan navegar por su nombre de dominio.
iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload
Configurar PHP
En el siguiente paso, debemos realizar algunos cambios adicionales en el archivo de configuración predeterminado de PHP para garantizar que las siguientes variables de PHP estén habilitadas y la zona horaria de PHP la configuración está configurada correctamente y coincide con la ubicación geográfica de su sistema. Abra el /etc/php/7.0/apache2/php.ini para editarlo y asegúrese de que las siguientes líneas estén configuradas de la siguiente manera. Además, inicialmente, haga una copia de seguridad del archivo de configuración de PHP.
cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini
file_uploads = On
memory_limit = 128 M
upload_max_file_size = 64M
max_execution_time = 240
max_input_vars = 1500
date.timezone = Europe/London
Aumentar upload_max_file_size como adecuada para admitir archivos adjuntos de gran tamaño y reemplazar la time.zone variable de acuerdo a su tiempo físico consultando la lista de zonas horarias proporcionada por PHP docs en el siguiente enlace http://php.net/manual/en/timezones.php
Si desea aumentar la velocidad de carga de las páginas de su sitio web a través del complemento OPCache disponible para PHP7, agregue la siguiente configuración de OPCache en la parte inferior del archivo de configuración del intérprete de PHP, como se detalla a continuación:
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
Cierre el archivo de configuración php.ini y verifique si verifica el final del archivo de configuración de PHP para verificar si las variables se agregaron correctamente emitiendo el siguiente comando.
tail /etc/php/7.0/apache2/php.ini
Una vez que haya realizado todos los cambios explicados anteriormente, habilite el módulo OPCache y reinicie el demonio apache para aplicar los nuevos cambios emitiendo los siguientes comandos.
phpenmod opcache
systemctl restart apache2
echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php
https://dominio.tld/info.php
Instalar MariaDB
La plataforma Typo3 CMS almacena diferentes configuraciones, como usuarios, sesiones, contactos, artículos, páginas y otras configuraciones, en una base de datos relacional. En esta guía, configuraremos Typo3 para usar la base de datos MariaDB como backend. Ejecute el siguiente comando para instalar la base de datos MariaDB y el módulo PHP necesario para acceder a la base de datos mysql.
apt install mariadb-server php7.0-mysql mariadb-client
Después de instalar MariaDB, verifique si el demonio se está ejecutando y escucha las conexiones en el host local, puerto 3306, ejecutando netstat. comando.
netstat –tlpn | grep mysql
mysql -h localhost
use mysql;
update user set plugin='' where user='root';
flush privileges;
exit
sudo mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
You already have a root password set, so you can safely answer 'n'.
Change the root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Para probar la configuración de seguridad de MariaDB, intente iniciar sesión en la base de datos desde la consola con una cuenta raíz y no proporcione ninguna contraseña. Se debe denegar el acceso a la base de datos si no se proporciona una contraseña para la cuenta raíz, como se ilustra en el siguiente extracto del comando:
[email protected]:~# mysql -h localhost -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[email protected]:~# mysql -h localhost -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 15
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> exit
Bye
mysql –u root -p
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database typo;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on typo.* to 'typo_user' identified by 'password1';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit
Bye
systemctl restart mysql apache2
systemctl status mysql apache2
Instalar Typo3
Una vez que se cumplan todos los requisitos del sistema para instalar la plataforma Typo3, visite la página de descarga oficial de Typo3 CMS en https://typo3.org/download/ y obtenga el último archivo comprimido del paquete zip con la ayuda de la utilidad wget, emitiendo el siguiente comando.
wget --content-disposition https://get.typo3.org/current/zip
Después de que finalice la descarga del archivo zip, extraiga el archivo comprimido Typo3 zip en su directorio de trabajo actual y enumere los archivos extraídos emitiendo los siguientes comandos.
unzip typo3_src-8.7.8.zip
ls -al typo3_src-8.7.8
rm /var/www/html/index.html
rm /var/www/html/info.php
cp -rf typo3_src-8.7.8/* /var/www/html/
touch /var/www/html/FIRST_INSTALL
chown -R www-data:www-data /var/www/html/
ls –al /var/www/html/
A continuación, continúe con el proceso de instalación de Typo3 CMS abriendo un navegador y navegue por la dirección IP o el nombre de dominio o el FQDN del servidor a través del protocolo HTTPS. En la primera pantalla de instalación, el instalador de Typo3 verificará el entorno de su sistema para determinar si se cumplen todos los requisitos para instalar la aplicación, como se muestra en la imagen a continuación. Si se cumplen todos los requisitos, haga clic en El sistema se ve bien. ¡Continuar! para iniciar el proceso de instalación.
https://tudominio.tld
En la siguiente pantalla de instalación, seleccione la conexión MySQL TCP/IP configurada manualmente y agregue la dirección de la base de datos MySQL, el nombre y las credenciales creadas anteriormente para la base de datos Typo3 CMS. Use la dirección 127.0.0.1 para MySQL Host y deje el número de puerto predeterminado (3306), como se ilustra en la imagen a continuación. Cuando termine, presione el botón Continuar para pasar al siguiente paso de instalación.
En el siguiente paso, elija 'Usar una base de datos vacía existente' opción, seleccione el nombre de la base de datos creada anteriormente para Typo3 y presione el botón Continuar para continuar con el proceso de instalación.
Después de importar el esquema de la base de datos, cree un usuario administrador para Typo3 CMS y escriba una contraseña segura para la cuenta de administrador. Además, agregue un nombre para el sitio web de Typo3, como se ilustra en la imagen a continuación, y presione el botón Continuar para completar el proceso de instalación.
Una vez completada la instalación, el instalador le preguntará si desea un sitio preconfigurado. Elija Sí, descargue la lista de distribuciones y presiona Abrir el backend de TYPO3 botón para ser redirigido al panel del panel del sitio web.
También puede visitar el panel web de administración de Typo3 navegando a la dirección IP de su servidor o nombre de dominio a través del protocolo HTTPS a /typo3/index.php URL Inicie sesión en el panel de Typo3 con las credenciales de la cuenta de administrador configuradas durante el proceso de instalación, como se ilustra en la imagen a continuación.
https://tudominio.tld/typo3/index.php
Después de iniciar sesión en el panel de administración de Typo3, seleccione e instale un paquete de distribución preconfigurado de la lista que se muestra. En esta guía instalaremos y usaremos el paquete de presentación oficial distribución que ofrece Typo3 para crear fácilmente la estructura de la página y los elementos de contenido.
Finalmente, para obligar a los visitantes a navegar por el sitio web de Typo3 y acceder de forma segura a la interfaz de backend a través del protocolo HTTPS, que encripta el tráfico entre el servidor y los navegadores del cliente, regrese a la terminal de su servidor y edite el archivo .htaccess ubicado en la ruta de su sitio web.
Primero, cree el archivo .htaccess basado en el archivo de muestra proporcionado por Typo3, ejecutando el siguiente comando.
cp /var/www/html/_.htaccess /var/www/html/.htaccess
Luego, abra y edite el archivo .htaccess y, en la parte inferior del archivo, modifique la configuración nativa de PHP con las siguientes configuraciones. Puede cambiar la configuración de PHP para que coincida con los recursos de su propio servidor.
nano /var/www/html/.htaccess
.htaccess extracto del archivo:
# Modify PHP settings
php_flag register_globals off
php_flag magic_quotes_gpc Off
php_value upload_max_filesize 500M
php_value post_max_size 500M
# Redirect to HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
Además, cree un nuevo archivo .htaccess en typo3 directorio ubicado en la ruta webroot del dominio para redirigir automáticamente las sesiones del panel de administración a HTTPS.
nano /var/www/html/typo3/.htaccess
.htaccess extracto del archivo:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
Finalmente, visite la página de inicio del sitio web predeterminado de Typo3 navegando a la dirección IP de su servidor o nombre de dominio a través del protocolo HTTPS, como se ilustra en la siguiente captura de pantalla.
https://www.tudominio.tld
¡Eso es todo! Ha instalado y configurado con éxito la plataforma web Typo3 CMS en Debian 9. Sin embargo, debido a que el servidor Apache HTTP utiliza un certificado autofirmado que no es de confianza para cifrar el tráfico entre el servidor y los navegadores de los visitantes, siempre se generará y mostrará un mensaje de advertencia en sus navegadores. . Esta advertencia es mala para los clientes que visitan la página de inicio de su sitio web. En este caso, debe comprar un certificado emitido por una autoridad de certificación de confianza u obtener un par de certificados gratuitos de Let's Encrypt CA.
Para otras configuraciones personalizadas con respecto a la aplicación web Typo3 CMS, visite la página de documentación en la siguiente dirección:https://docs.typo3.org/