GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Ejecutando TYPO3 6.2 en Nginx (LEMP) en Debian Wheezy/Ubuntu 13.10

Este tutorial muestra cómo puede instalar y ejecutar un sitio web TYPO3 (versión 6.2) en un sistema Debian Wheezy o Ubuntu 13.10 que tiene nginx instalado en lugar de Apache (LEMP =L inux + nginx (pronunciado "e motor x") + M ySQL + P HP). nginx es un servidor HTTP que usa muchos menos recursos que Apache y entrega páginas mucho más rápido, especialmente archivos estáticos.

¡No emito ninguna garantía de que esto funcione para usted!

1 nota preliminar

Quiero instalar TYPO3 en un host virtual llamado www.example.com/example.com aquí con la raíz del documento /var/www/www.example.com/web.

Debería tener una instalación de LEMP en funcionamiento.

Una nota para los usuarios de Ubuntu:

Debido a que debemos 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

2 Instalación de APC

APC 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. 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 php-apc

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

/etc/init.d/php5-fpm restart

Si usa el programa spawn-fcgi de lighttpd como su demonio FastCGI, debemos eliminar el proceso spawn-fcgi actual (que se ejecuta en el puerto 9000) y crear uno nuevo. Ejecutar

netstat -tap

para averiguar el PID del proceso actual de spawn-fcgi:

[email protected]:~# netstat -tap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 *:sunrpc                *:*                     LISTEN      734/portmap
tcp        0      0 *:www                   *:*                     LISTEN      2987/nginx
tcp        0      0 *:ssh                   *:*                     LISTEN      1531/sshd
tcp        0      0 *:57174                 *:*                     LISTEN      748/rpc.statd
tcp        0      0 localhost.localdom:smtp *:*                     LISTEN      1507/exim4
tcp        0      0 localhost.localdom:9000 *:*                     LISTEN      1542/php5-cgi
tcp        0      0 localhost.localdo:mysql *:*                     LISTEN      1168/mysqld
tcp        0     52 server1.example.com:ssh 192.168.0.198:2462      ESTABLISHED 1557/0
tcp6       0      0 [::]:www                [::]:*                  LISTEN      2987/nginx
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      1531/sshd
tcp6       0      0 ip6-localhost:smtp      [::]:*                  LISTEN      1507/exim4
[email protected]:~#

En el resultado anterior, el PID es 1542, por lo que podemos eliminar el proceso actual de la siguiente manera:

kill -9 1542

Luego creamos un nuevo proceso spawn-fcgi:

/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

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

cd /tmp
wget http://downloads.sourceforge.net/project/typo3/TYPO3%20Source%20and%20Dummy/TYPO3%206.2.1/typo3_src-6.2.1.tar.gz
tar xvfz typo3_src-6.2.1.tar.gz
cd typo3_src-6.2.1/
mv * /var/www/www.example.com/web/

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 -u root -p create typo3
mysql -u root -p
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 un nginx configuración de vhost para nuestro vhost www.example.com en el directorio /etc/nginx/sites-available/ de la siguiente manera:

vi /etc/nginx/sites-available/www.example.com.vhost

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:

vi /etc/nginx/mime.types
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;
        }

}

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:

/etc/init.d/nginx reload

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 verifica si se cumplen todos los requisitos previos:si solo ve la advertencia de que /typo3_src debe ser un enlace, puede continuar haciendo clic en Sé lo que estoy haciendo, ¡continúe! - si hay otras advertencias, debe intentar solucionarlas ahora:

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. 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). 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 se está descargando la lista de sitios web de demostración disponibles:

Si desea instalar uno de ellos, haga clic en el botón Instalar correspondiente:

Después de una instalación exitosa, verá la siguiente pantalla. Puede ignorar la advertencia de RealURL:

Si deja el backend, el sitio de demostración tiene el siguiente aspecto. Si lo navega, notará que las URL limpias funcionan de manera predeterminada:

4 Enlaces

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

Sobre el autor

Falko Timme es el propietario de Timme Hosting (alojamiento web nginx ultrarrápido). Es el mantenedor principal de HowtoForge (desde 2005) y uno de los principales desarrolladores de ISPConfig (desde 2000). También ha contribuido al libro de O'Reilly "Administración del sistema Linux".


Ubuntu
  1. Cómo instalar y configurar Nginx en Ubuntu 18.04 / Debian 9

  2. Configuración de ISPConfig Perfect Multiserver en Ubuntu 20.04 y Debian 10

  3. Instale la plataforma de computación en la nube OpenQRM en Ubuntu 14.04 / Debian Wheezy

  4. Ejemplo de uso del cortafuegos UFW en Debian/Ubuntu

  5. Cómo instalar LEMP en Ubuntu 18.04

Instale NextCloud en Ubuntu 18.04 con Nginx (LEMP Stack)

Cómo instalar Nginx, MySQL y PHP (LEMP) en Ubuntu 20.04

Cómo instalar LEMP en Ubuntu 15.10

Cómo instalar LEMP en Ubuntu 16.04

Cómo instalar LEMP en Ubuntu 18.04 LTS

Cómo instalar LEMP en Ubuntu 20.04 LTS

    [...]
            text/x-component                        htc;
    [...]