GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar TYPO3 7 con Nginx y MariaDB en Debian 8 (Jessie)

Este tutorial muestra cómo instalar y configurar un sitio web TYPO3 (versión 7) en un servidor Debian 8 (Jessie) que tiene instalado Nginx como servidor web y MariaDB como servidor de base de datos. Nginx es un servidor web rápido que reemplaza al servidor web estándar "Apache" en esta configuración, MariaDB es una bifurcación de MySQl que es más rápida que MySQL y desarrollada por el inventor original de MySQL, Monty Widenius.

Typo3 es un sistema CMS de clase empresarial escrito en PHP que tiene una gran comunidad de usuarios y desarrolladores.

Nota Preliminar

Quiero instalar TYPO3 en un host virtual llamado www.example.com aquí con la raíz del documento /var/www/www.example.com/web. Mi servidor usa la dirección IP 192.168.1.100, reemplace esta IP en todos los archivos de configuración y comandos con la dirección IP de su servidor.

El tutorial asume que ya tiene una instalación de Nginx en funcionamiento; de lo contrario, siga primero esta guía para instalar Nginx, PHP y MariaDB.

Inicie sesión como usuario raíz en el servidor y continúe con el siguiente paso.

Instalando APCu

APCu es un caché de código de operación de PHP gratuito y abierto para almacenar en caché y optimizar el código intermedio de PHP, agrega las funciones proporcionadas anteriormente por APC al opcache de PHP ahora integrado. Es similar a otros cachés de código de operación de PHP, como eAccelerator y XCache. Se recomienda encarecidamente tener uno de estos instalados para acelerar su página PHP.

APC se puede instalar de la siguiente manera:

apt-get install php5-apcu

Si usa PHP-FPM como su demonio FastCGI, reinícielo de la siguiente manera:

systemctl restart php5-fpm.service

Instalando TYPO3

La raíz del documento de mi sitio web www.example.com es /var/www/www.example.com/web; si no existe, créelo de la siguiente manera:

mkdir -p /var/www/www.example.com/web

A continuación, descargamos TYPO3 7.6.4 como un archivo .tar.gz desde https://typo3.org/download/ y lo colocamos en la raíz de nuestro documento:

cd /tmp
wget http://downloads.sourceforge.net/project/typo3/TYPO3%20Source%20and%20Dummy/TYPO3%207.6.4/typo3_src-7.6.4.tar.gz
tar xfz typo3_src-7.6.4.tar.gz
mv typo3_src-7.6.4 /var/www/www.example.com/
cd /var/www/www.example.com/web
ln -s ../typo3_src-7.6.4 typo3_src
ln -s typo3_src/index.php
ln -s typo3_src/typo3

Se recomienda hacer que el documento sea raíz y que los archivos TYPO3 que contiene sean editables por el demonio nginx que se ejecuta como usuario www-data y grupo www-data:

chown -R www-data:www-data /var/www/www.example.com/web

Si aún no ha creado una base de datos MySQL para TYPO3 (incluido un usuario de MySQL TYPO3), puede hacerlo de la siguiente manera (llamo a la base de datos typo3 en este ejemplo, y el usuario se llama typo3_admin, y su contraseña es typo3_admin_password):

mysqladmin --defaults-file=/etc/mysql/debian.cnf create typo3
mysql --defaults-file=/etc/mysql/debian.cnf
GRANT ALL PRIVILEGES ON typo3.* TO 'typo3_admin'@'localhost' IDENTIFIED BY 'typo3_admin_password';
GRANT ALL PRIVILEGES ON typo3.* TO 'typo3_admin'@'localhost.localdomain' IDENTIFIED BY 'typo3_admin_password';
FLUSH PRIVILEGES;
quit;

A continuación, creamos una configuración de vhost nginx para nuestro vhost www.example.com en el directorio /etc/nginx/sites-disponible/ de la siguiente manera:

nano /etc/nginx/sites-available/www.example.com.vhost
server {
       listen 80;
       server_name www.example.com example.com;
       root /var/www/www.example.com/web;

       if ($http_host != "www.example.com") {
                 rewrite ^ http://www.example.com$request_uri permanent;
       }

       index index.php index.html;

       location = /favicon.ico {
                log_not_found off;
                access_log off;
       }

       location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
       }

       # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
       location ~ /\. {
                deny all;
                access_log off;
                log_not_found off;
       }

        location ~ \.php$ {
                        try_files $uri =404;
                        include /etc/nginx/fastcgi_params;
                        fastcgi_pass unix:/var/run/php5-fpm.sock;
                        fastcgi_index index.php;
                        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                        fastcgi_intercept_errors on;
                        fastcgi_buffer_size 128k;
                        fastcgi_buffers 256 16k;
                        fastcgi_busy_buffers_size 256k;
                        fastcgi_temp_file_write_size 256k;
                        fastcgi_read_timeout 1200;
        }
		
        client_max_body_size 100M;

        location ~ /\.(js|css)$ {
                expires 604800s;
        }

        if (!-e $request_filename){
                rewrite ^/(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ /$1.$3 last;
        }

        location ~* ^/fileadmin/(.*/)?_recycler_/ {
                deny all;
        }
        location ~* ^/fileadmin/templates/.*(\.txt|\.ts)$ {
                deny all;
        }
        location ~* ^/typo3conf/ext/[^/]+/Resources/Private/ {
                deny all;
        }
        location ~* ^/(typo3/|fileadmin/|typo3conf/|typo3temp/|uploads/|favicon\.ico) {
        }

        location / {
                        if ($query_string ~ ".+") {
                                return 405;
                        }
                        if ($http_cookie ~ 'nc_staticfilecache|be_typo_user|fe_typo_user' ) {
                                return 405;
                        } # pass POST requests to PHP
                        if ($request_method !~ ^(GET|HEAD)$ ) {
                                return 405;
                        }
                        if ($http_pragma = 'no-cache') {
                                return 405;
                        }
                        if ($http_cache_control = 'no-cache') {
                                return 405;
                        }
                        error_page 405 = @nocache;

                        try_files /typo3temp/tx_ncstaticfilecache/$host${request_uri}index.html @nocache;
        }

        location @nocache {
                        try_files $uri $uri/ /index.php$is_args$args;
        }

}

Esta configuración ya contiene todo lo que se necesita para las URL limpias (debido a la línea try_files $uri $uri/ /index.php$is_args$args; en la ubicación @nocache).

A continuación, asegúrese de tener la siguiente línea en /etc/nginx/mime.types:

nano /etc/nginx/mime.types
[...]
        text/x-component                        htc;
[...]

Para habilitar el vhost, creamos un enlace simbólico desde el directorio /etc/nginx/sites-enabled/:

cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/www.example.com.vhost www.example.com.vhost

Vuelva a cargar nginx para que los cambios surtan efecto:

systemctl reload nginx.service

Luego ajuste algunos valores en el archivo php.ini para TYPO3. Uso php-fpm en este servidor, por lo que el archivo es /etc/php5/fpm/php.ini. Abra el archivo con un editor:

nano /etc/php5/fpm/php.ini

y ajuste las siguientes configuraciones.

[...]
always_populate_raw_post_data=-1
[...]
max_execution_time=240
[...]
post_max_size = 20M
[...]
upload_max_filesize = 20M
[...]
max_input_vars=2000
[...]

Aplicar los cambios con:

systemctl reload php5-fpm.service

Ahora podemos iniciar el instalador de TYPO3 basado en la web yendo a http://www.example.com/; primero se le pedirá que cree el archivo FIRST_INSTALL en la raíz del documento para que la instalación pueda continuar:

cd /var/www/www.example.com/web/
touch FIRST_INSTALL
chown www-data:www-data FIRST_INSTALL

Ahora recarga la página. El instalador comprueba si se cumplen todos los requisitos previos; si hay otras advertencias, debe intentar solucionarlas ahora:

Haga clic en Continuar.

A continuación, complete los detalles de la base de datos (usuario:typo3_admin; contraseña:typo3_admin_password de cuando creamos la base de datos typo3) y haga clic en Continuar:

En la página siguiente, elija Usar una base de datos vacía existente y seleccione typo3 en el menú desplegable. Luego haga clic en Continuar:

A continuación, proporcione un nombre de usuario y una contraseña para el usuario administrador de TYPO3 y un nombre para su sitio. Haga clic en Continuar después:

La instalación ya está finalizada. Si desea comenzar con un sitio web de demostración en lugar de un sistema completamente vacío, deje marcada la casilla Sí, descargar la lista de distribuciones (esto no instalará los datos de demostración de inmediato, sino que solo hará que un sitio web de demostración esté disponible en el backend desde donde puede elegir instalarlo). Elegiré comenzar con una página vacía para poder crear un sitio web personalizado. Luego haga clic en Abrir el backend:

El área de administración se puede encontrar en http://www.example.com/typo3/. Inicie sesión con el nombre de usuario admin y la contraseña que definió durante la instalación:

Ahora inicie sesión con el nombre de usuario y la contraseña que eligió durante la configuración de Typo3.

Typo3 se ha instalado correctamente. Ahora puede comenzar a crear su sitio web Typo3.

Imagen de máquina virtual

Este tutorial está disponible como máquina virtual lista para usar en formato OVA / OVF para los suscriptores de Howtoforge. El formato VM es compatible con VMWare y Virtualbox y otras herramientas que pueden importar este formato. Puede encontrar el enlace de descarga en el menú derecho en la parte superior. Haga clic en el nombre del archivo para iniciar la descarga.

Los detalles de inicio de sesión de la máquina virtual son:

Iniciar sesión en Typo3

Nombre de usuario:admin
Contraseña:howtoforge

Inicio de sesión SSH

Nombre de usuario:root
Contraseña:howtoforge

Inicio de sesión en MariaDB

Nombre de usuario:root
Contraseña:howtoforge

Cambie las contraseñas después del primer arranque.

La VM está configurada para la IP estática 192.168.1.100, la IP se puede cambiar en el archivo /etc/network/interfaces.

Enlaces

  • TYPO3:http://typo3.org/
  • nginx:http://nginx.org/
  • Wiki de nginx:http://wiki.nginx.org/
  • Debian:http://www.debian.org/

Debian
  1. Cómo instalar Phorum con Nginx en Debian 9

  2. Cómo instalar Textpattern CMS con Nginx en Debian 10

  3. Cómo instalar y asegurar MariaDB en Debian 11

  4. Cómo instalar Nginx en Debian 8 (Jessie)

  5. Cómo instalar y configurar Mariadb 10 en Debian 11

Cómo instalar TYPO3 8.1 con Nginx (LEMP) en Ubuntu 16.04

Cómo instalar Wordpress con Nginx, MariaDB y HHVM en Debian 8

Cómo instalar y configurar vsftpd con TLS en Debian 8 (Jessie)

Cómo instalar Nextcloud 10 con Nginx en Debian 8

Cómo instalar phpBB con LEMP (Nginx, MariaDB y PHP) en Debian 11 Bullseye

Cómo instalar phpMyAdmin con Nginx en Debian 11