GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Ejecutando concrete5 en Nginx (LEMP) en Debian Squeeze/Ubuntu 12.10

Este tutorial muestra cómo puede instalar y ejecutar un sitio web concrete5 en un sistema Debian Squeeze o Ubuntu 12.10 que tiene instalado nginx 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. concrete5 es un sistema de gestión de contenido (CMS) gratuito y de código abierto.

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

1 nota preliminar

Quiero instalar concrete5 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, como se muestra en estos tutoriales:

  • Instalación de Nginx con compatibilidad con PHP5 y MySQL en Debian Squeeze
  • Instalación de Nginx con soporte PHP5 (y PHP-FPM) y MySQL en Ubuntu 12.10

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 (como en Instalación de Nginx con PHP5 (y PHP-FPM) y compatibilidad con MySQL en Ubuntu 12.10), reinícielo de la siguiente manera:

/etc/init.d/php5-fpm restart

Si usa el programa spawn-fcgi de lighttpd como su demonio FastCGI (como en Installing Nginx With PHP5 And MySQL Support On Debian Squeeze), 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 concrete5

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

Debido a que concrete5 viene como un archivo .zip, necesitamos instalar unzip:

apt-get install unzip

A continuación, descargamos concrete5 (http://www.concrete5.org/developers/downloads/) y lo colocamos en nuestro documento raíz:

cd /tmp
mkdir concrete5
cd concrete5
wget -O concrete5.6.0.2.zip http://www.concrete5.org/download_file/-/view/44326/8497/
unzip concrete5.6.0.2.zip
rm -f concrete5.6.0.2.zip
cd concrete5.6.0.2/
mv * /var/www/www.example.com/web/

Se recomienda hacer que la raíz del documento y los archivos concrete5 en él puedan ser escritos 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 concrete5 (incluido un usuario de MySQL concrete5), puede hacerlo de la siguiente manera (llamo a la base de datos concrete5 en este ejemplo, y el usuario se llama concrete5_admin, y su contraseña es concrete5_admin_password):

mysqladmin -u root -p create concrete5
mysql -u root -p
GRANT ALL PRIVILEGES ON concrete5.* TO 'concrete5_admin'@'localhost' IDENTIFIED BY 'concrete5_admin_password';
GRANT ALL PRIVILEGES ON concrete5.* TO 'concrete5_admin'@'localhost.localdomain' IDENTIFIED BY 'concrete5_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-available/ de la siguiente manera (he ajustado la ubicación de ubicación de PHP ~ \.php($|/) {} según a http://www.justasysadmin.net/en/practical/configuration-concrete-5-nginx/):

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

Para habilitar ese 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 concrete5 basado en la web yendo a http://www.example.com - asegúrese de que su sistema cumpla con todos los requisitos y luego haga clic en Continuar con la instalación:

A continuación, especifique un nombre de sitio, una dirección de correo electrónico de administrador y una contraseña, y complete los detalles de la base de datos MySQL. Luego, desplácese hacia abajo:

En la parte inferior de la página, puede elegir instalar algún contenido de demostración o un sitio vacío. Haga su elección y haga clic en Instalar concrete5:

concrete5 ahora se está instalando:

Después de una instalación exitosa, verá este mensaje. Haga clic en Continuar a su sitio para ir a su portada de concrete5:

Cuando visita la página principal por primera vez, hay una superposición de Javascript que contiene algunos enlaces útiles. Puede hacer clic para eliminarlo:

Así es como se ve su página principal (con contenido de demostración). Las URL reales deberían funcionar de inmediato.

Este es el panel de control de conrete5:

Y así es como se ve el sitio de demostración para un visitante normal:

4 Enlaces

  • concreto5:http://www.concrete5.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. Ejecutando TYPO3 6.2 en Nginx (LEMP) en Debian Wheezy/Ubuntu 13.10

  3. Cómo instalar TYPO3 7 en Nginx (LEMP) en Ubuntu 15.10

  4. Cómo instalar LEMP en Ubuntu 16.04

  5. Cómo instalar LEMP en Ubuntu 18.04

Cómo instalar LEMP Stack en servidor/escritorio Ubuntu 20.04

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

    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 index.htm default.html default.htm;
    
           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 / {
                    try_files $uri $uri/ /index.php$request_uri /index.php;
           }
    
           location ~ \.php($|/) {
                    try_files $uri =404;
                    fastcgi_pass unix:/var/run/php5-fpm.sock; # use this if PHP-FPM is running on Unix socket /var/run/php5-fpm.sock (Ubuntu 12.10 default)
                    #fastcgi_pass 127.0.0.1:9000; # use this if PHP-FPM is running on TCP port 9000 (Debian Squeeze default)
                    include /etc/nginx/fastcgi_params;
                    fastcgi_index index.php;
                    set $script $uri;
                    set $path_info "";
                    if ($uri ~ "^(.+\.php)(/.+)") {
                            set $script $1;
                            set $path_info $2;
                    }
                    fastcgi_param URI $uri;
                    fastcgi_param PATH_INFO $path_info;
                    fastcgi_param SCRIPT_NAME $script;
                    fastcgi_param SCRIPT_FILENAME $document_root$script;
           }
    }