GNU/Linux >> Tutoriales Linux >  >> Cent OS

Instalar Nginx + Php FPM + APC en CentOS 6.4

Servidor LEMP

Un servidor lemp ejecuta Nginx servidor web junto con Php y Mysql o MariaDB en un Linux sistema. Nginx se está volviendo cada vez más popular debido a su estructura liviana y su capacidad para manejar grandes cantidades de tráfico de manera óptima. Mariadb es el reemplazo de mysql porque mysql ya no es muy gratuito. En este tutorial configuraremos Nginx con Php FPM en CentOS. Las instrucciones para instalar MariaDB se cubrirán en otra publicación.

CentOS es un sistema operativo muy popular para servidores web basados ​​en Linux. CentOS (Community Enterprise Operating System) se basa en RHEL (RedHat Enterprice Linux) y es 100 % compatible con el sistema binario. Para nosotros, simplemente significa que es similar a rhel en su funcionamiento y entorno y que tenemos el práctico comando yum disponible para instalar software fácilmente desde los repositorios. En este ejemplo, trabajaremos en CentOS 6.4 que, en el momento de esta publicación, es una versión reciente.

Instalar Nginx

El primer paso es instalar el servidor web Nginx. Nginx no está disponible en los repositorios predeterminados de CentOS, pero nginx proporciona repositorios específicos de centos para facilitar su uso.

Agregue el repositorio nginx

Creamos un archivo de repositorio en el directorio /etc/yum.repos.d

$ nano /etc/yum.repos.d/nginx.repo

Ahora abra el archivo y agregue las siguientes líneas. Nginx proporciona estas instrucciones directamente.

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

Guardar y cerrar. Ahora se puede instalar nginx.

$ yum install nginx

Lo anterior descargará e instalará el servidor web nginx y lo dejará listo para usar.
Después de que se complete la instalación, es hora de hacer una inspección. Primero use el comando de servicio para verificar el estado de nginx.

[[email protected] ~]# service nginx status
nginx is stopped

Lo anterior muestra que el servicio nginx está ahí pero está detenido. Luego verifique la configuración usando la opción t con el comando nginx.

[[email protected] ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

El comando anterior indica que la configuración está bien y que todo está listo para ejecutarse. Y lo más importante, también indica la ubicación del archivo de configuración de nginx. Para crear hosts virtuales/dominios múltiples, es importante crear archivos de configuración separados para cada host. Las configuraciones de hosts virtuales se encuentran en /etc/nginx/conf.d/

Bien, ahora iniciemos el servidor nginx.

[[email protected] conf.d]# service nginx start
Starting nginx:                                            [  OK  ]

Ahora nginx está en funcionamiento. Encuentre la dirección IP del servidor nginx usando ifconfig y conéctese a esa IP desde un navegador para probarlo.

http://192.168.1.4/

Es posible que deba abrir el puerto 80 en el servidor centos, si aún no está abierto. Consulte este tutorial sobre cómo abrir el puerto http en centos. Una vez que esté abierta, la dirección IP del servidor nginx debería cargar la página con contenido como este

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

Creación de alojamiento virtual

Los hosts virtuales o "Server Blocks", como los llama nginx, permiten que nginx sirva múltiples hosts en función de un nombre. Por ejemplo, puede alojar abc.com y cde.com juntos. Todo lo que necesita es un archivo de configuración para cada host que contenga la configuración específica del host, como el directorio raíz, etc.

El directorio /etc/nginx/conf.d/ contiene un archivo de configuración default.conf que tiene la configuración de un host virtual que funcionará a través de http://localhost/

Verifique el archivo y mostrará la ubicación de los archivos web que se llama raíz.

location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

Entonces, nuestro archivo web (.html, .php y todo) debe colocarse dentro de /usr/share/nginx/html directorio.

Para crear más hosts virtuales, simplemente copie el archivo default.conf y edite la configuración de ruta raíz y nombre_servidor para que coincida con la de su dominio/host.

$ cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/mysite.conf

Ahora edite mysite.conf y configure ajustes como directorio raíz y nombre_servidor.
Luego pruebe su configuración nginx y reinicie el servidor. Eso debería crear el nuevo host virtual.

Permisos de archivo

Al configurar el directorio raíz para los archivos web, debe asegurarse de que los archivos y todos los directorios principales sean legibles por "grupo" y "otros" en el sistema. Por ejemplo, un permiso de 0755. Nginx no podría leer los archivos si los directorios principales no son legibles.

Por ejemplo, si elige colocar sus archivos web en el siguiente directorio

/home/joe/public_html

Luego, asegúrese de que los directorios home y joe sean legibles por grupo y otros. De lo contrario, incluso si otros pueden leer los archivos web, pero no el directorio principal joe, entonces nginx no podría leer los archivos y el registro de errores contendría mensajes como este

open() "/home/joe/public_html/index.html" failed (13: Permission denied)

Instalar PHP y FPM

Ahora que el servidor nginx está en funcionamiento, la siguiente tarea es instalar el intérprete de php para que nginx pueda procesar los archivos .php.

Dado que php-fpm ya forma parte del repositorio de CentOS, no necesitamos crear otra entrada de repositorio como la que hicimos para el paquete nginx. Entonces, para instalar php-fpm, solo podemos usar el comando yum.

$ yum install php-fpm

Es posible que desee utilizar la opción "-C" si no desea que yum actualice los datos del repositorio antes de instalar los paquetes.

Ahora verifique el estado del servicio php-fpm

# service php-fpm status
php-fpm is stopped

Entonces empiezalo

# service php-fpm start
Starting php-fpm:                                          [  OK  ]
[[email protected] ~]#

Ahora es el momento de crear un script php y probarlo. El directorio de archivos web es /usr/share/nginx/html
Así que cree un archivo en ese directorio.

# nano /usr/share/nginx/html/phpinfo.php

Después de eso, le agregamos este contenido.

<?php 
phpinfo();

Ahora es el momento de abrir el archivo a través de nuestro navegador.

http://192.168.1.4/phpinfo.php

NO, aún no funcionará, ya que no hemos configurado nginx para ejecutar scripts php.

Configurar Nginx para ejecutar php

Nginx ya viene con una configuración predeterminada para usar php fpm. Abra el archivo /etc/nginx/conf.d/default.conf y descomente las siguientes líneas.

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
	root           /usr/share/nginx/html;
	fastcgi_pass   127.0.0.1:9000;
	fastcgi_index  index.php;
	fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
	include        fastcgi_params;
}

SCRIPT_FILENAME es muy importante y debe apuntar a la ubicación correcta; de lo contrario, seguirá recibiendo "Archivo no encontrado". error.

Guarde el archivo y ciérrelo. Ahora pruebe su nueva configuración de nginx.

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[[email protected] ~]#

La configuración está bien. Ahora reinicie nginx para que la nueva configuración surta efecto.

# service nginx restart
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]
[[email protected] ~]#

Hecho. Ahora abra el script php en su navegador y debería funcionar de inmediato.

http://192.168.1.4/phpinfo.php

Instalar PCA

APC es el caché php alternativo que permite que php almacene en caché tanto los datos del usuario como el código de operación. Esto hace que la ejecución de php sea más rápida de lo habitual. El paquete para APC está disponible en el propio repositorio base, por lo que no es necesario configurar ningún repositorio adicional.

Instálalo usando yum de inmediato.

# yum install php-pecl-apc

Ahora reinicie php-fpm para que apc se habilite

# service php-fpm restart
Stopping php-fpm:                                          [  OK  ]
Starting php-fpm:                                          [  OK  ]
[[email protected] php.d]#

El archivo de configuración para apc se encuentra en la siguiente ruta.

/etc/php.d/apc.ini

La misma ruta también se menciona en la salida de la función phpinfo() si desea verificar.
La sección Configuración de la página phpinfo.php debe tener una sección para apc que muestre los valores de varias directivas apc. Todas esas directivas se pueden configurar en el archivo apc.ini.

Notas

1. Al configurar hosts virtuales, la prueba de configuración de nginx puede fallar con un error como este

# nginx -t
nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32
nginx: configuration file /etc/nginx/nginx.conf test failed

Para corregir este error, abra el archivo de configuración principal de nginx ubicado en /etc/nginx/nginx.conf y agregue la siguiente línea en el bloque http.

server_names_hash_bucket_size 64;

Eso aumentará el tamaño del depósito de hash y corregirá el error.


Cent OS
  1. Cómo instalar o actualizar a PHP 7 en CentOS 7 Linux Server

  2. Instalar PHP 7.4 en CentOS 8

  3. Cómo instalar PHP 5.6 en CentOS 7

  4. Cómo instalar PHP 8 en CentOS 7

  5. Instale PHP Server Monitor en un VPS CentOS 7 Linux

Instale Nginx en CentOS 7 / RHEL 7

Cómo instalar Nginx en CentOS

Cómo instalar LEMP en CentOS 7

Cómo instalar Nginx en CentOS 6

Cómo instalar el servidor LEMP en CentOS 8

Cómo instalar Nginx en CentOS 7