GNU/Linux >> Tutoriales Linux >  >> Ubuntu

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

Este tutorial muestra cómo instalar y ejecutar un sitio web TYPO3 (versión 8.1) en un sistema Ubuntu 16.04 que tiene un servidor web Nginx instalado en lugar de Apache. Este tipo de configuración a menudo se llama LEMP =L inux + Nginx (pronunciado "e motor x") + M ySQL + P HP). Nginx es un servidor HTTP rápido y eficiente que usa menos recursos que Apache y entrega páginas mucho más rápido, especialmente archivos estáticos.

1 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.

Debería tener una pila LEMP en funcionamiento. Si aún no tiene una instalación LEMP, use este tutorial: Servidor LEMP de Ubuntu

Debido a que tenemos que ejecutar todos los pasos de este tutorial con privilegios de root, podemos anteponer todos los comandos en este tutorial con la cadena sudo, o convertirnos en root ahora mismo escribiendo

sudo su

Usaré el editor nano para editar archivos de configuración en el shell, nano se puede instalar con este comando:

apt-get install nano 

2 Instalación de TYPO3

Primero instalaremos algunos módulos PHP adicionales que Typo3 requiere:

apt-get install php7.0-soap php7.0-zip

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 8.1 como un archivo .tar.gz desde http://typo3.org/download/ y lo ubicamos en la raíz de nuestro documento:

cd /var/www/www.example.com
wget get.typo3.org/8.1 -O typo3_src-8.1.2.tar.gz
tar xfz typo3_src-8.1.2.tar.gz
rm typo3_src-8.1.2.tar.gz
cd web
ln -s ../typo3_src-8.1.2 typo3_src
ln -s typo3_src/index.php index.php
ln -s typo3_src/typo3 typo3

Se recomienda hacer que el documento sea raíz y 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

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

mysql --defaults-file=/etc/mysql/debian.cnf
CREATE DATABASE typo3;
ALTER DATABASE typo3 CHARACTER SET utf8 COLLATE utf8_general_ci;
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 de Nginx para nuestro vhost de 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/php/php7.0-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:

service nginx reload

Cree el archivo FIRST_INSTALL en la raíz del sitio web para habilitar el instalador de TYPO3.

touch /var/www/www.example.com/web/FIRST_INSTALL

Y cambie el propietario a www-data para que el script de instalación de TYPO3 pueda eliminar el archivo cuando finalice la instalación.

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

Tenemos que ajustar algunos valores de php.ini para que coincidan con los requisitos de TYPO3. Abra el archivo php.ini:

nano /etc/php/7.0/fpm/php.ini

Y ajuste las siguientes opciones de configuración para que tengan estos valores:

[....]
max_execution_time=240
[....]
post_max_size = 20M
[....]
upload_max_filesize = 20M
[....]
max_input_vars=1500
[....]
memory_limit = 256M
[....]

Luego guarde el archivo y reinicie PHP-FPM para cargar la nueva configuración:

service php7.0-fpm restart

Ahora podemos iniciar el instalador de TYPO3 basado en la web yendo a http://www.example.com/:

Haga clic en el botón "El sistema se ve bien. Continuar" para iniciar el proceso de instalación. En caso de que esta página muestre un mensaje de que no se cumplen todos los requisitos previos, primero ajuste su configuración para que coincida con los requisitos antes de continuar con la instalación:

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), seleccione el tipo de conexión socket 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 e ingrese un nombre para su sitio web de TYPO3. Haz clic en Continuar y luego:

La instalación ya está finalizada. Si desea comenzar con un sitio web de demostración en lugar de un sistema completamente vacío, seleccione la opción Sí, descargue 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 para instalarlo). Elegiré aquí para no descargar ningún sitio de demostración. 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:

E inicie sesión con el usuario administrador de TYPO3 que creó anteriormente.

Y comience a construir su sitio web TYPO3. La interfaz mostrará un error como "Servicio no disponible (503) ¡No se encontraron páginas en el nivel raíz!" hasta que agregó una página raíz en el backend. Recomiendo echar un vistazo a la excelente documentación de TYPO3 sobre cómo crear su primer sitio web en TYPO3 si aún no está familiarizado con este CMS.

3 Descarga de imagen de maquina virtual de este tutorial

Este tutorial está disponible como una imagen de máquina virtual lista para usar en formato ovf/ova para los suscriptores de Howtoforge. El formato VM es compatible con VMWare y Virtualbox. La imagen de la máquina virtual utiliza los siguientes detalles de inicio de sesión:

Inicio de sesión SSH/Shell

Nombre de usuario:administrador
Contraseña:howtoforge

Este usuario tiene derechos sudo.

Inicio de sesión en MySQL/MariaDB

Nombre de usuario:root
Contraseña:howtoforge

La IP de la VM es 192.168.1.100, se puede cambiar en el archivo /etc/network/interfaces.

Inicio de sesión en TYPO3

Nombre de usuario:admin
Contraseña:howtoforge

Cambie todas las contraseñas anteriores para proteger la máquina virtual.

4 Enlaces

  • TYPO3:http://typo3.org/
  • Nginx:http://nginx.org/
  • Wiki de Nginx:http://wiki.nginx.org/
  • Ubuntu:http://www.ubuntu.com/

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 LEMP en Ubuntu 18.04

Cómo instalar phpMyAdmin con Nginx (LEMP) en Ubuntu 20.04 LTS

Cómo instalar Nextcloud 13 en Ubuntu 16.04 con Nginx

Cómo instalar phpMyAdmin con Nginx (LEMP) en Ubuntu 18.04 LTS

Cómo instalar LEMP en Ubuntu 15.10

Cómo instalar LEMP en Ubuntu 16.04

Cómo instalar LEMP Stack con PhpMyAdmin en Ubuntu 20.04