Cómo instalar MODX Revolution en un CentOS 7 LAMP VPS
¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i
H2O es un servidor HTTP de nueva generación que cuenta con una excelente y completa implementación de HTTP / 2 de todos los servidores web actuales en uso. Con H2O como su servidor web, puede aprovechar las nuevas características de la especificación HTTP / 2, como la optimización de la latencia, el empuje del servidor y la priorización del lado del servidor que pueden aprovechar las características modernas del navegador de las que rara vez se habla.
En este tutorial detallado, le mostraré paso a paso cómo hacer que H2O se ejecute en su instancia CentOS 7 x64.
Inicie sesión a través de SSH con las credenciales que se encuentran en su instancia y actualice el sistema de la siguiente manera.
sudo yum install epel-release -y
sudo yum clean all && sudo yum update -y
Para instalar H2O en CentOS 7, debe agregar el repositorio Bintray RPM para instalar los binarios de H2O preconstruidos. Use el editor Nano para crear un repositorio personalizado.
sudo nano /etc/yum.repos.d/bintray-h2o-rpm.repo
Copie y pegue el siguiente texto en el archivo repositorio.
[bintray-h2o-rpm]
name=bintray-h2o-rpm
baseurl=https://dl.bintray.com/tatsushid/h2o-rpm/centos/$releasever/$basearch/
gpgcheck=0
repo_gpgcheck=0
enabled=1
A continuación, instale H2O.
sudo yum install h2o -y
Ahora que H2O está instalado, pero antes de habilitar e iniciar el servicio, se requiere una configuración adecuada y necesitamos crear un usuario y un grupo específicos para que se ejecute H2O. Cree un grupo y un usuario para que H2O se ejecute con nombre h2o
.
sudo groupadd -g 101 h2o
sudo useradd -d /etc/h2o -g 101 -M -s /sbin/nologin -u 101 h2o
Los siguientes pasos dar ejemplos de configuraciones de configuración para varios unencrypted
, encrypted
, static
y dynamic
de servidor de configuraciones; así como una combinación de los cuatro.
http://www.example.com
a la http://example.com
configuración (páginas HTML estáticas, sin PHP)Navega al /etc/h2o/
directorio.
cd /etc/h2o/
Cambie el nombre del valor predeterminado h2o.conf
a h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Crea un nuevo h2o.conf
archivo.
sudo nano h2o.conf
Copie y pegue el siguiente texto en el h2o.conf
archivo.
access-log: /var/log/h2o/access.log
compress: ON
error-log: /var/log/h2o/error.log
expires: 1 day
file.index: [ 'index.html' ]
hosts:
"example.com:80":
listen:
port: 80
paths:
"/":
file.dir: /var/www/example.com
"www.example.com:80":
listen:
port: 80
paths:
"/":
redirect:
status: 301
url: "http://example.com/"
pid-file: /var/run/h2o/h2o.pid
send-server-name: OFF
setenv:
HTTP_PROXY: ""
user: h2o
Habilite e inicie el servidor H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Cree un valor predeterminado index.html
utilizando la plantilla en /var/www/html
la opción de directorio que se file.dir
menciona arriba en /var/www/example.com
.
sudo cp -var /var/www/html /var/www/example.com
Ahora, abra su navegador e ingrese el nombre de dominio del servidor ( example.com
o www.example.com
) para su instancia. ¿Estás recibiendo un Unable to connect
o un This site can’t be reached
mensaje? La configuración predeterminada del firewall de CentOS no permite las conexiones entrantes al puerto http. Ejecute lo siguiente para abrirlo.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload
Actualice la página en su navegador ( F5
) y recibirá este mensaje.
Welcome to H2O - an optimized HTTP server
It works!
http://example.com
a la http://www.example.com
configuración (páginas HTML estáticas, sin PHP)Navega al /etc/h2o/
directorio.
cd /etc/h2o/
Cambie el nombre del valor predeterminado h2o.conf
a h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Crea un nuevo h2o.conf
archivo.
sudo nano h2o.conf
Copie y pegue el siguiente texto en el h2o.conf
archivo.
access-log: /var/log/h2o/access.log
compress: ON
error-log: /var/log/h2o/error.log
expires: 1 day
file.index: [ 'index.html' ]
hosts:
"example.com:80":
listen:
port: 80
paths:
"/":
redirect:
status: 301
url: "http://www.example.com/"
"www.example.com:80":
listen:
port: 80
paths:
"/":
file.dir: /var/www/www.example.com
pid-file: /var/run/h2o/h2o.pid
send-server-name: OFF
setenv:
HTTP_PROXY: ""
user: h2o
Habilite e inicie el servidor H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Cree un index.html
archivo predeterminado utilizando la plantilla en /var/www/html
la opción de directorio que se file.dir
menciona arriba en /var/www/www.example.com
.
sudo cp -var /var/www/html /var/www/www.example.com
Ahora, abra su navegador e ingrese el nombre de dominio del servidor ( example.com
o www.example.com
) para su instancia. ¿Estás recibiendo un Unable to connect
o un This site can’t be reached
mensaje? La configuración predeterminada del firewall de CentOS no permite las conexiones entrantes al puerto http. Haga lo siguiente para abrirlo.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload
Actualice la página en su navegador ( F5
) y recibirá este mensaje.
Welcome to H2O - an optimized HTTP server
It works!
http://www.example.com
a http://example.com
(página dinámica, PHP-FPM 5.6.x) ConfiguraciónNavega al /etc/h2o/
directorio.
cd /etc/h2o/
Cambie el nombre del valor predeterminado h2o.conf
a h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Crea un nuevo h2o.conf
archivo.
sudo nano h2o.conf
Copie y pegue el siguiente texto en el h2o.conf
archivo.
access-log: /var/log/h2o/access.log
compress: ON
error-log: /var/log/h2o/error.log
expires: 1 day
file.index: [ 'index.php' ]
hosts:
"example.com:80":
listen:
port: 80
paths:
"/":
file.dir: /var/www/example.com
redirect:
internal: YES
status: 307
url: /index.php
"www.example.com:80":
listen:
port: 80
paths:
"/":
redirect:
status: 301
url: "http://example.com/"
file.custom-handler:
extension: .php
fastcgi.connect:
port: /run/php-fpm-5.6.sock
type: unix
pid-file: /var/run/h2o/h2o.pid
send-server-name: OFF
setenv:
HTTP_PROXY: ""
user: h2o
Para procesar PHP, se debe instalar y configurar el demonio PHP-FPM 5.6. Para instalar una versión de PHP-FPM más nueva que la predeterminada 5.4.x, se debe instalar el repositorio REMI que contiene las versiones de PHP 5.6.x, 7.0.xy 7.1.x. Instale PHP versión 5.6.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php56-php-fpm -y
Navega al /opt/remi/php56/root/etc/
directorio.
cd /opt/remi/php56/root/etc/
Cambie el nombre del valor predeterminado php-fpm.conf
a php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Crea un nuevo php-fpm.conf
archivo.
sudo nano php-fpm.conf
Copie y pegue el siguiente texto en el php-fpm.conf
archivo.
include=/opt/remi/php56/root/etc/php-fpm.d/*.conf
[global]
daemonize = yes
emergency_restart_threshold = 2
emergency_restart_interval = 1m
error_log = /var/log/php-fpm/php-fpm-5.6-error.log
pid = /var/run/php-fpm-5.6.pid
process_control_timeout = 10s
Cambie el nombre del www.conf
archivo predeterminado en el php-fpm.d
directorio.
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Crea un nuevo www.conf
archivo.
sudo nano php-fpm.d/www.conf
Copie y pegue el siguiente texto en el www.conf
archivo. Cambie su pm.max\_children
para que coincida con el número de CPU de acuerdo con su instancia de VPS.
[www]
group = h2o
listen = /var/run/php-fpm-5.6.sock
listen.backlog = 65536
listen.owner = h2o
listen.group = h2o
pm = static
pm.max_children = 2
pm.max_requests = 10240
user = h2o
Cambie el nombre del php.ini
archivo predeterminado .
sudo mv php.ini php.ini.original
Crea un nuevo php.ini
archivo.
sudo nano php.ini
Copie y pegue el texto a continuación en el nuevo php.ini file
. Cambiar el memory\_limit
, post\_max\_size
, upload\_max\_filesize
y date.timezone
de conformidad con la instancia de VPS.
[PHP]
allow_url_fopen = On
always_populate_raw_post_data = -1
display_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
expose_php = Off
log_errors = On
memory_limit = 256M
output_buffering = 4096
post_max_size = 64M
register_argc_argv = Off
request_order = "GP"
upload_max_filesize = 64M
variables_order = "GPCS"
[Date]
date.timezone = America/New_York
[Session]
session.cache_limiter =
session.gc_divisor = 1000
session.hash_bits_per_character = 5
session.save_handler = files
session.save_path = "/opt/remi/php56/root/var/lib/php/session/"
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
Cambie la propiedad del grupo para el /opt/remi/php56/root/var/lib/php/session/
directorio del apache
grupo al h2o
grupo.
sudo chown root.h2o /opt/remi/php56/root/var/lib/php/session/
Cree un directorio donde residirán los registros del servidor PHP-FPM.
sudo mkdir /var/log/php-fpm/
Habilite e inicie el servidor PHP-FPM.
sudo systemctl enable php56-php-fpm
sudo systemctl start php56-php-fpm
Habilite e inicie el servidor H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Cree un directorio donde index.php
residirá el valor predeterminado enumerado por la opción de directorio file.dir
anterior en /var/www/example.com
.
sudo mkdir /var/www/example.com
Cree un valor predeterminado index.php
utilizando el phpinfo
comando para probar PHP.
sudo nano /var/www/example.com/index.php
Copie y pegue el texto a continuación en el nuevo index.php
archivo.
<?php
phpinfo();
?>
Ahora, abra su navegador e ingrese el nombre de dominio del servidor ( example.com
o www.example.com
) para su instancia. ¿Estás recibiendo un Unable to connect
o un This site can’t be reached
mensaje? La configuración predeterminada del firewall de CentOS no permite las conexiones entrantes al puerto http. Haga lo siguiente para abrirlo.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload
Actualice la página en su navegador ( F5
) y obtendrá la página estándar de información de PHP.
http://example.com
a http://www.example.com
(página dinámica, PHP-FPM 5.6.x) ConfiguraciónNavega al /etc/h2o/
directorio.
cd /etc/h2o/
Cambie el nombre del valor predeterminado h2o.conf
a h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Crea un nuevo h2o.conf
archivo.
sudo nano h2o.conf
Copie y pegue el siguiente texto en el h2o.conf
archivo.
access-log: /var/log/h2o/access.log
compress: ON
error-log: /var/log/h2o/error.log
expires: 1 day
file.index: [ 'index.php' ]
hosts:
"example.com:80":
listen:
port: 80
paths:
"/":
redirect:
status: 301
url: "http://www.example.com/"
"www.example.com:80":
listen:
port: 80
paths:
"/":
file.dir: /var/www/www.example.com
redirect:
internal: YES
status: 307
url: /index.php
file.custom-handler:
extension: .php
fastcgi.connect:
port: /run/php-fpm-5.6.sock
type: unix
pid-file: /var/run/h2o/h2o.pid
send-server-name: OFF
setenv:
HTTP_PROXY: ""
user: h2o
In order to process PHP, the PHP-FPM 5.6 daemon must be installed and configured. In order to install a version of PHP-FPM newer than the default 5.4.x, the REMI repo must be installed which contains PHP versions 5.6.x, 7.0.x and 7.1.x. Type the following commands to install PHP version 5.6.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php56-php-fpm -y
Navigate to the /opt/remi/php56/root/etc/
directory.
cd /opt/remi/php56/root/etc/
Rename the default php-fpm.conf
to php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Create a new php-fpm.conf
file.
sudo nano php-fpm.conf
Copy and paste the text below into the php-fpm.conf
file.
include=/opt/remi/php56/root/etc/php-fpm.d/*.conf
[global]
daemonize = yes
emergency_restart_threshold = 2
emergency_restart_interval = 1m
error_log = /var/log/php-fpm/php-fpm-5.6-error.log
pid = /var/run/php-fpm-5.6.pid
process_control_timeout = 10s
Rename the default www.conf
file in the php-fpm.d
directory.
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Create a new www.conf
file.
sudo nano php-fpm.d/www.conf
Copy and paste the following text into the www.conf
file. Change your pm.max\_children
to match the number of CPUs in accordance with your VPS instance.
[www]
group = h2o
listen = /var/run/php-fpm-5.6.sock
listen.backlog = 65536
listen.owner = h2o
listen.group = h2o
pm = static
pm.max_children = 2
pm.max_requests = 10240
user = h2o
Rename the default php.ini
file.
sudo mv php.ini php.ini.original
Create a new php.ini
file.
sudo nano php.ini
Copie y pegue el siguiente texto a continuación en el nuevo php.ini file
. Cambiar el memory\_limit
, post\_max\_size
, upload\_max\_filesize
y date.timezone
de conformidad con la instancia de VPS.
[PHP]
allow_url_fopen = On
always_populate_raw_post_data = -1
display_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
expose_php = Off
log_errors = On
memory_limit = 256M
output_buffering = 4096
post_max_size = 64M
register_argc_argv = Off
request_order = "GP"
upload_max_filesize = 64M
variables_order = "GPCS"
[Date]
date.timezone = America/New_York
[Session]
session.cache_limiter =
session.gc_divisor = 1000
session.hash_bits_per_character = 5
session.save_handler = files
session.save_path = "/opt/remi/php56/root/var/lib/php/session/"
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
Cambie la propiedad del grupo para el /opt/remi/php56/root/var/lib/php/session/
directorio del apache
grupo al h2o
grupo.
sudo chown root.h2o /opt/remi/php56/root/var/lib/php/session/
Cree un directorio donde residirán los registros del servidor PHP-FPM.
sudo mkdir /var/log/php-fpm/
Habilite e inicie el servidor PHP-FPM.
sudo systemctl enable php56-php-fpm
sudo systemctl start php56-php-fpm
Habilite e inicie el servidor H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Cree un directorio donde index.php
residirá el valor predeterminado enumerado por la opción de directorio file.dir
anterior en /var/www/www.example.com
.
sudo mkdir /var/www/www.example.com
Cree un valor predeterminado index.php
utilizando el phpinfo
comando para probar PHP.
sudo nano /var/www/www.example.com/index.php
Copie y pegue el texto a continuación en el nuevo index.php
archivo.
<?php
phpinfo();
?>
Ahora, abra su navegador e ingrese el nombre de dominio del servidor ( example.com
o www.example.com
) para su instancia. ¿Estás recibiendo un Unable to connect
o un This site can’t be reached
mensaje? La configuración predeterminada del firewall de CentOS no permite las conexiones entrantes al puerto http. Haga lo siguiente para abrirlo.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload
Actualice la página en su navegador ( F5
) y obtendrá la página estándar de información de PHP.
http://www.example.com
a http://example.com
(Página dinámica, PHP-FPM 7.1.x) ConfiguraciónNavega al /etc/h2o/
directorio.
cd /etc/h2o/
Cambie el nombre del valor predeterminado h2o.conf
a h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Crea un nuevo h2o.conf
archivo.
sudo nano h2o.conf
Copie y pegue el siguiente texto en el h2o.conf
archivo.
access-log: /var/log/h2o/access.log
compress: ON
error-log: /var/log/h2o/error.log
expires: 1 day
file.index: [ 'index.php' ]
hosts:
"example.com:80":
listen:
port: 80
paths:
"/":
file.dir: /var/www/example.com
redirect:
internal: YES
status: 307
url: /index.php
"www.example.com:80":
listen:
port: 80
paths:
"/":
redirect:
status: 301
url: "http://example.com/"
file.custom-handler:
extension: .php
fastcgi.connect:
port: /run/php-fpm-7.1.sock
type: unix
pid-file: /var/run/h2o/h2o.pid
send-server-name: OFF
setenv:
HTTP_PROXY: ""
user: h2o
Para procesar PHP, el demonio PHP-FPM 7.1 debe estar instalado y configurado. Para instalar una versión de PHP-FPM más nueva que la predeterminada 5.4.x, se debe instalar el repositorio REMI que contiene las versiones de PHP 5.6.x, 7.0.xy 7.1.x. Escriba los siguientes comandos a continuación para instalar PHP versión 7.1.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php71-php-fpm -y
Navega al /etc/opt/remi/php71/
directorio.
cd /etc/opt/remi/php71/
Cambie el nombre del valor predeterminado php-fpm.conf
a php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Crea un nuevo php-fpm.conf
archivo.
sudo nano php-fpm.conf
Copie y pegue el siguiente texto en el php-fpm.conf
archivo.
include=/etc/opt/remi/php71/php-fpm.d/*.conf
[global]
daemonize = yes
emergency_restart_threshold = 2
emergency_restart_interval = 1m
error_log = /var/log/php-fpm/php-fpm-7.1-error.log
pid = /var/run/php-fpm-7.1.pid
process_control_timeout = 10s
Cambie el nombre del www.conf
archivo predeterminado en el php-fpm.d
directorio.
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Crea un nuevo www.conf
archivo.
sudo nano php-fpm.d/www.conf
Copie y pegue el siguiente texto en el www.conf
archivo. Cambie su pm.max\_children
para que coincida con el número de CPU de acuerdo con su instancia de VPS.
[www]
group = h2o
listen = /var/run/php-fpm-7.1.sock
listen.backlog = 65536
listen.owner = h2o
listen.group = h2o
pm = static
pm.max_children = 2
pm.max_requests = 10240
user = h2o
Cambie el nombre del php.ini
archivo predeterminado .
sudo mv php.ini php.ini.original
Crea un nuevo php.ini
archivo.
sudo nano php.ini
Copie y pegue el texto a continuación en el nuevo php.ini file
. Cambiar el memory\_limit
, post\_max\_size
, upload\_max\_filesize
y date.timezone
de conformidad con la instancia de VPS.
[PHP]
allow_url_fopen = On
always_populate_raw_post_data = -1
display_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
expose_php = Off
log_errors = On
memory_limit = 256M
output_buffering = 4096
post_max_size = 64M
register_argc_argv = Off
request_order = "GP"
upload_max_filesize = 64M
variables_order = "GPCS"
[Date]
date.timezone = America/New_York
[Session]
session.cache_limiter =
session.gc_divisor = 1000
session.hash_bits_per_character = 5
session.save_handler = files
session.save_path = "/var/opt/remi/php71/lib/php/session/"
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
Cambie la propiedad del grupo para el /var/opt/remi/php71/lib/php/session/
directorio del apache
grupo al h2o
grupo.
sudo chown root.h2o /var/opt/remi/php71/lib/php/session/
Cree un directorio donde residirán los registros del servidor PHP-FPM.
sudo mkdir /var/log/php-fpm/
Habilite e inicie el servidor PHP-FPM.
sudo systemctl enable php71-php-fpm
sudo systemctl start php71-php-fpm
Habilite e inicie el servidor H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Cree un directorio donde index.php
residirá el valor predeterminado enumerado por la opción de directorio file.dir
anterior en /var/www/example.com
.
sudo mkdir /var/www/example.com
Cree un valor predeterminado index.php
utilizando el phpinfo
comando para probar PHP.
sudo nano /var/www/example.com/index.php
Copie y pegue el texto a continuación en el nuevo index.php
archivo.
<?php
phpinfo();
?>
Now, open your browser and enter the server domain name (example.com
or www.example.com
) for your instance. Are you getting an Unable to connect
or a This site can’t be reached
message? CentOS's default firewall setting disallows incoming connections to the http port. Do the following to open it.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload
Refresh the page in your browser (F5
) and you will get the standard PHP info page.
http://example.com
To http://www.example.com
(Dynamic Page, PHP-FPM 7.1.x) ConfigurationNavigate to the /etc/h2o/
directory.
cd /etc/h2o/
Rename the default h2o.conf
to h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Create a new h2o.conf
file.
sudo nano h2o.conf
Copy and paste the text below into the h2o.conf
file.
access-log: /var/log/h2o/access.log
compress: ON
error-log: /var/log/h2o/error.log
expires: 1 day
file.index: [ 'index.php' ]
hosts:
"example.com:80":
listen:
port: 80
paths:
"/":
redirect:
status: 301
url: "http://www.example.com/"
"www.example.com:80":
listen:
port: 80
paths:
"/":
file.dir: /var/www/www.example.com
redirect:
internal: YES
status: 307
url: /index.php
file.custom-handler:
extension: .php
fastcgi.connect:
port: /run/php-fpm-7.1.sock
type: unix
pid-file: /var/run/h2o/h2o.pid
send-server-name: OFF
setenv:
HTTP_PROXY: ""
user: h2o
In order to process PHP, the PHP-FPM 7.1 daemon must be installed and configured. In order to install a version of PHP-FPM newer than the default 5.4.x, the REMI repo must be installed which contains PHP versions 5.6.x, 7.0.x and 7.1.x. Type the following commands below to install PHP version 7.1.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php71-php-fpm -y
Navigate to the /etc/opt/remi/php71/
directory.
cd /etc/opt/remi/php71/
Rename the default php-fpm.conf
to php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Create a new php-fpm.conf
file.
sudo nano php-fpm.conf
Copy and paste the text below into the php-fpm.conf
file.
include=/etc/opt/remi/php71/php-fpm.d/*.conf
[global]
daemonize = yes
emergency_restart_threshold = 2
emergency_restart_interval = 1m
error_log = /var/log/php-fpm/php-fpm-7.1-error.log
pid = /var/run/php-fpm-7.1.pid
process_control_timeout = 10s
Rename the default www.conf
file in the php-fpm.d
directory.
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Create a new www.conf
file.
sudo nano php-fpm.d/www.conf
Copy and paste the following text into the www.conf
file. Change your pm.max\_children
to match the number of CPUs in accordance with your VPS instance.
[www]
group = h2o
listen = /var/run/php-fpm-7.1.sock
listen.backlog = 65536
listen.owner = h2o
listen.group = h2o
pm = static
pm.max_children = 2
pm.max_requests = 10240
user = h2o
Rename the default php.ini
file.
sudo mv php.ini php.ini.original
Create a new php.ini
file.
sudo nano php.ini
Copy and paste the following text into the new php.ini file
. Change the memory\_limit
, post\_max\_size
, upload\_max\_filesize
and date.timezone
in accordance with your VPS instance.
[PHP]
allow_url_fopen = On
always_populate_raw_post_data = -1
display_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
expose_php = Off
log_errors = On
memory_limit = 256M
output_buffering = 4096
post_max_size = 64M
register_argc_argv = Off
request_order = "GP"
upload_max_filesize = 64M
variables_order = "GPCS"
[Date]
date.timezone = America/New_York
[Session]
session.cache_limiter =
session.gc_divisor = 1000
session.hash_bits_per_character = 5
session.save_handler = files
session.save_path = "/var/opt/remi/php71/lib/php/session"
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
Change the group ownership for the /var/opt/remi/php71/lib/php/session/
directory from the apache
group to the h2o
group.
sudo chown root.h2o /var/opt/remi/php71/lib/php/session/
Create a directory where the PHP-FPM server logs will reside.
sudo mkdir /var/log/php-fpm/
Enable and start the PHP-FPM server.
sudo systemctl enable php71-php-fpm
sudo systemctl start php71-php-fpm
Enable and start the H2O server.
sudo systemctl enable h2o
sudo systemctl start h2o
Create a directory where the default index.php
will reside listed by the directory option file.dir
above in /var/www/example.com
.
sudo mkdir /var/www/www.example.com
Create a default index.php
using the phpinfo
command to test PHP.
sudo nano /var/www/www.example.com/index.php
Copy and paste the text below in the new index.php
file.
<?php
phpinfo();
?>
Now, open your browser and enter the server domain name (example.com
or www.example.com
) for your instance. Are you getting an Unable to connect
or a This site can’t be reached
message? CentOS's default firewall setting disallows incoming connections to the http port. Do the following to open it.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload
Refresh the page in your browser (F5
) and you will get the standard PHP info page.
http://example.com
, http://www.example.com
, and https://www.example.com
to https://example.com
(Static HTML Pages, No PHP) ConfigurationNavigate to the /etc/h2o/
directory.
cd /etc/h2o/
Rename the default h2o.conf
to h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Create a new h2o.conf
file.
sudo nano h2o.conf
Copy and paste the text below into the h2o.conf
file.
access-log: /var/log/h2o/access.log
compress: ON
error-log: /var/log/h2o/error.log
expires: 1 day
file.index: [ 'index.html' ]
hosts:
"example.com:80":
listen:
port: 80
paths:
"/":
redirect:
status: 301
url: "https://example.com/"
"www.example.com:80":
listen:
port: 80
paths:
"/":
redirect:
status: 301
url: "https://www.example.com/"
"example.com:443":
listen:
port: 443
ssl:
<<: !file /etc/h2o/conf.d/ssl.conf
certificate-file: /location/of/certificate/file/fullchain.ext
key-file: /location/of/private/key/file/privkey.ext
paths:
"/":
file.dir: /var/www/example.com
header.add: "strict-transport-security: max-age=31536000; includeSubDomains; preload"
"www.example.com:443":
listen:
port: 443
ssl:
<<: !file /etc/h2o/conf.d/ssl.conf
certificate-file: /location/of/certificate/file/fullchain.ext
key-file: /location/of/private/key/file/privkey.ext
paths:
"/":
header.add: "strict-transport-security: max-age=31536000; includeSubDomains; preload"
redirect:
status: 301
url: "https://example.com/"
pid-file: /var/run/h2o/h2o.pid
send-server-name: OFF
setenv:
HTTP_PROXY: ""
user: h2o
Create a custom directory to store the default SSL options for all websites that use SSL.
sudo mkdir conf.d
Create a new ssl.conf
file.
sudo nano conf.d/ssl.conf
Copie y pegue el siguiente texto en el ssl.conf
archivo.
cipher-preference: server
cipher-suite: ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
dh-file: /etc/ssl/h2o/dhparam_2048.pem
Haga un directorio para almacenar el dhparam_2048.pem
archivo que se regenerará diariamente a través de un cronjob.
sudo mkdir /etc/ssl/h2o/
Crea un nuevo regenerate_dhparam
archivo.
sudo nano /etc/cron.daily/regenerate_dhparam
Copie y pegue el siguiente texto en el regenerate_dhparam
archivo.
#!/bin/bash
cd /etc/ssl/h2o
umask 022
for length in 2048
do
openssl dhparam -out dhparam_$length.tmp $length && mv dhparam_$length.tmp dhparam_$length.pem
chmod 444 dhparam_$length.pem
done
Haga que el archivo bash recién creado sea ejecutable.
sudo chmod +x /etc/cron.daily/regenerate_dhparam
Ejecute el script bash para una primera ejecución ya que H2O no se iniciará correctamente si no se genera. Esto tomará alrededor de un minuto o dos para generar en la primera ejecución.
sudo /etc/cron.daily/regenerate_dhparam
Habilite e inicie el servidor H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Cree un valor predeterminado index.html
utilizando la plantilla en /var/www/html
la opción de directorio que se file.dir
menciona arriba en /var/www/example.com
.
sudo cp -var /var/www/html /var/www/example.com
Ahora, abra su navegador e ingrese el nombre de dominio del servidor ( example.com
o www.example.com
) para su instancia. ¿Estás recibiendo un Unable to connect
o un This site can’t be reached
mensaje? La configuración predeterminada del firewall de CentOS no permite las conexiones entrantes al puerto http. Haga lo siguiente para abrirlo.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Actualice la página en su navegador ( F5
) y recibirá este mensaje.
Welcome to H2O - an optimized HTTP server
It works!
http://example.com
, http://www.example.com
y https://example.com
a la https://www.example.com
configuración (páginas HTML estáticas, sin PHP)Navega al /etc/h2o/
directorio.
cd /etc/h2o/
Cambie el nombre del valor predeterminado h2o.conf
a h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Crea un nuevo h2o.conf
archivo.
sudo nano h2o.conf
Copie y pegue el siguiente texto en el h2o.conf
archivo.
access-log: /var/log/h2o/access.log
compress: ON
error-log: /var/log/h2o/error.log
expires: 1 day
file.index: [ 'index.html' ]
hosts:
"example.com:80":
listen:
port: 80
paths:
"/":
redirect:
status: 301
url: "https://example.com/"
"www.example.com:80":
listen:
port: 80
paths:
"/":
redirect:
status: 301
url: "https://www.example.com/"
"example.com:443":
listen:
port: 443
ssl:
<<: !file /etc/h2o/conf.d/ssl.conf
certificate-file: /location/of/certificate/file/fullchain.ext
key-file: /location/of/private/key/file/privkey.ext
paths:
"/":
header.add: "strict-transport-security: max-age=31536000; includeSubDomains; preload"
redirect:
status: 301
url: "https://www.example.com/"
"www.example.com:443":
listen:
port: 443
ssl:
<<: !file /etc/h2o/conf.d/ssl.conf
certificate-file: /location/of/certificate/file/fullchain.ext
key-file: /location/of/private/key/file/privkey.ext
paths:
"/":
file.dir: /var/www/www.example.com
header.add: "strict-transport-security: max-age=31536000; includeSubDomains; preload"
pid-file: /var/run/h2o/h2o.pid
send-server-name: OFF
setenv:
HTTP_PROXY: ""
user: h2o
Cree un directorio personalizado para almacenar las opciones SSL predeterminadas para todos los sitios web que usan SSL.
sudo mkdir conf.d
Crea un nuevo ssl.conf
archivo.
sudo nano conf.d/ssl.conf
Copie y pegue el siguiente texto en el ssl.conf
archivo.
cipher-preference: server
cipher-suite: ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
dh-file: /etc/ssl/h2o/dhparam_2048.pem
Haga un directorio para almacenar el dhparam_2048.pem
archivo que se regenerará diariamente a través de un cronjob.
sudo mkdir /etc/ssl/h2o/
Crea un nuevo regenerate_dhparam
archivo.
sudo nano /etc/cron.daily/regenerate_dhparam
Copie y pegue el siguiente texto dentro del regenerate_dhparam
archivo.
#!/bin/bash
cd /etc/ssl/h2o
umask 022
for length in 2048
do
openssl dhparam -out dhparam_$length.tmp $length && mv dhparam_$length.tmp dhparam_$length.pem
chmod 444 dhparam_$length.pem
done
Haga que el archivo bash recién creado sea ejecutable.
sudo chmod +x /etc/cron.daily/regenerate_dhparam
Ejecute el script bash para una primera ejecución ya que H2O no se iniciará correctamente si no se genera. Esto tomará alrededor de un minuto o dos para generar en la primera ejecución.
sudo /etc/cron.daily/regenerate_dhparam
Habilite e inicie el servidor H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Cree un valor predeterminado index.html
utilizando la plantilla en /var/www/html
la opción de directorio que se file.dir
menciona arriba en /var/www/www.example.com
.
sudo cp -var /var/www/html /var/www/www.example.com
Ahora, abra su navegador e ingrese el nombre de dominio del servidor ( example.com
o www.example.com
) para su instancia. ¿Estás recibiendo un Unable to connect
o un This site can’t be reached
mensaje? La configuración predeterminada del firewall de CentOS no permite las conexiones entrantes al puerto http. Haga lo siguiente para abrirlo.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Actualice la página en su navegador ( F5
) y recibirá este mensaje.
Welcome to H2O - an optimized HTTP server
It works!
http://example.com
, http://www.example.com
y https://www.example.com
a https://example.com
(Página dinámica, PHP-FPM 5.6.x) ConfiguraciónNavega al /etc/h2o/
directorio.
cd /etc/h2o/
Cambie el nombre del valor predeterminado h2o.conf
a h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Crea un nuevo h2o.conf
archivo.
sudo nano h2o.conf
Copie y pegue el siguiente texto en el h2o.conf
archivo.
access-log: /var/log/h2o/access.log
compress: ON
error-log: /var/log/h2o/error.log
expires: 1 day
file.index: [ 'index.php' ]
hosts:
"example.com:80":
listen:
port: 80
paths:
"/":
redirect:
status: 301
url: "https://example.com/"
"www.example.com:80":
listen:
port: 80
paths:
"/":
redirect:
status: 301
url: "https://www.example.com/"
"example.com:443":
listen:
port: 443
ssl:
<<: !file /etc/h2o/conf.d/ssl.conf
certificate-file: /location/of/certificate/file/fullchain.ext
key-file: /location/of/private/key/file/privkey.ext
paths:
"/":
file.dir: /var/www/example.com
header.add: "strict-transport-security: max-age=31536000; includeSubDomains; preload"
redirect:
internal: YES
status: 307
url: /index.php
"www.example.com:443":
listen:
port: 443
ssl:
<<: !file /etc/h2o/conf.d/ssl.conf
certificate-file: /location/of/certificate/file/fullchain.ext
key-file: /location/of/private/key/file/privkey.ext
paths:
"/":
header.add: "strict-transport-security: max-age=31536000; includeSubDomains; preload"
redirect:
status: 301
url: "https://example.com/"
file.custom-handler:
extension: .php
fastcgi.connect:
port: /run/php-fpm-5.6.sock
type: unix
pid-file: /var/run/h2o/h2o.pid
send-server-name: OFF
setenv:
HTTP_PROXY: ""
user: h2o
Cree un directorio personalizado para almacenar las opciones SSL predeterminadas para todos los sitios web que usan SSL.
sudo mkdir conf.d
Crea un nuevo ssl.conf
archivo.
sudo nano conf.d/ssl.conf
Copie y pegue el siguiente texto en el ssl.conf
archivo.
cipher-preference: server
cipher-suite: ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
dh-file: /etc/ssl/h2o/dhparam_2048.pem
Haga un directorio para almacenar el dhparam_2048.pem
archivo que se regenerará diariamente a través de un cronjob.
sudo mkdir /etc/ssl/h2o/
Crea un nuevo regenerate_dhparam
archivo.
sudo nano /etc/cron.daily/regenerate_dhparam
Copie y pegue el siguiente texto dentro del regenerate_dhparam
archivo.
#!/bin/bash
cd /etc/ssl/h2o
umask 022
for length in 2048
do
openssl dhparam -out dhparam_$length.tmp $length && mv dhparam_$length.tmp dhparam_$length.pem
chmod 444 dhparam_$length.pem
done
Haga que el archivo bash recién creado sea ejecutable.
sudo chmod +x /etc/cron.daily/regenerate_dhparam
Ejecute el script bash para una primera ejecución ya que H2O no se iniciará correctamente si no se genera. Esto tomará alrededor de un minuto o dos para generar en la primera ejecución.
sudo /etc/cron.daily/regenerate_dhparam
Para procesar PHP, se debe instalar y configurar el demonio PHP-FPM 5.6. Para instalar una versión de PHP-FPM más nueva que la predeterminada 5.4.x, se debe instalar el repositorio REMI que contiene las versiones de PHP 5.6.x, 7.0.xy 7.1.x. Escriba los siguientes comandos para instalar PHP versión 5.6.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php56-php-fpm -y
Navega al /opt/remi/php56/root/etc/
directorio.
cd /opt/remi/php56/root/etc/
Cambie el nombre del valor predeterminado php-fpm.conf
a php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Crea un nuevo php-fpm.conf
archivo.
sudo nano php-fpm.conf
Copie y pegue el siguiente texto en el php-fpm.conf
archivo.
include=/opt/remi/php56/root/etc/php-fpm.d/*.conf
[global]
daemonize = yes
emergency_restart_threshold = 2
emergency_restart_interval = 1m
error_log = /var/log/php-fpm/php-fpm-5.6-error.log
pid = /var/run/php-fpm-5.6.pid
process_control_timeout = 10s
Cambie el nombre del www.conf
archivo predeterminado en el php-fpm.d
directorio.
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Crea un nuevo www.conf
archivo.
sudo nano php-fpm.d/www.conf
Copie y pegue el siguiente texto en el www.conf
archivo. Cambie su pm.max\_children
para que coincida con el número de CPU de acuerdo con su instancia de VPS.
[www]
group = h2o
listen = /var/run/php-fpm-5.6.sock
listen.backlog = 65536
listen.owner = h2o
listen.group = h2o
pm = static
pm.max_children = 2
pm.max_requests = 10240
user = h2o
Cambie el nombre del php.ini
archivo predeterminado .
sudo mv php.ini php.ini.original
Crea un nuevo php.ini
archivo.
sudo nano php.ini
Copie y pegue el texto a continuación en el nuevo php.ini file
. Cambiar el memory\_limit
, post\_max\_size
, upload\_max\_filesize
y date.timezone
de conformidad con la instancia de VPS.
[PHP]
allow_url_fopen = On
always_populate_raw_post_data = -1
display_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
expose_php = Off
log_errors = On
memory_limit = 256M
output_buffering = 4096
post_max_size = 64M
register_argc_argv = Off
request_order = "GP"
upload_max_filesize = 64M
variables_order = "GPCS"
[Date]
date.timezone = America/New_York
[Session]
session.cache_limiter =
session.gc_divisor = 1000
session.hash_bits_per_character = 5
session.save_handler = files
session.save_path = "/opt/remi/php56/root/var/lib/php/session/"
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
Cambie la propiedad del grupo para el /opt/remi/php56/root/var/lib/php/session/
directorio del apache
grupo al h2o
grupo.
sudo chown root.h2o /opt/remi/php56/root/var/lib/php/session/
Cree un directorio donde residirán los registros del servidor PHP-FPM.
sudo mkdir /var/log/php-fpm/
Habilite e inicie el servidor PHP-FPM.
sudo systemctl enable php56-php-fpm
sudo systemctl start php56-php-fpm
Habilite e inicie el servidor H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Create a directory where the default index.php
will reside listed by the directory option file.dir
above in /var/www/example.com
.
sudo mkdir /var/www/example.com
Create a default index.php
using the phpinfo
command to test PHP.
sudo nano /var/www/example.com/index.php
Copy and paste the text below in the new index.php
file.
<?php
phpinfo();
?>
Now, open your browser and enter the server domain name (example.com
or www.example.com
) for your instance. Are you getting an Unable to connect
or a This site can’t be reached
message? CentOS's default firewall setting disallows incoming connections to the http port. Do the following to open it.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Refresh the page in your browser (F5
) and you will get the standard PHP info page.
http://example.com
, http://www.example.com
, and https://example.com
to https://www.example.com
(Dynamic Page, PHP-FPM 5.6.x) ConfigurationNavigate to the /etc/h2o/
directory.
cd /etc/h2o/
Cambie el nombre del valor predeterminado h2o.conf
a h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Crea un nuevo h2o.conf
archivo.
sudo nano h2o.conf
Copie y pegue el siguiente texto en el h2o.conf
archivo.
access-log: /var/log/h2o/access.log
compress: ON
error-log: /var/log/h2o/error.log
expires: 1 day
file.index: [ 'index.php' ]
hosts:
"example.com:80":
listen:
port: 80
paths:
"/":
redirect:
status: 301
url: "https://example.com/"
"www.example.com:80":
listen:
port: 80
paths:
"/":
redirect:
status: 301
url: "https://www.example.com/"
"example.com:443":
listen:
port: 443
ssl:
<<: !file /etc/h2o/conf.d/ssl.conf
certificate-file: /location/of/certificate/file/fullchain.ext
key-file: /location/of/private/key/file/privkey.ext
paths:
"/":
header.add: "strict-transport-security: max-age=31536000; includeSubDomains; preload"
redirect:
status: 301
url: "https://www.example.com/"
"www.example.com:443":
listen:
port: 443
ssl:
<<: !file /etc/h2o/conf.d/ssl.conf
certificate-file: /location/of/certificate/file/fullchain.ext
key-file: /location/of/private/key/file/privkey.ext
paths:
"/":
file.dir: /var/www/www.example.com
header.add: "strict-transport-security: max-age=31536000; includeSubDomains; preload"
redirect:
internal: YES
status: 307
url: /index.php
file.custom-handler:
extension: .php
fastcgi.connect:
port: /run/php-fpm-5.6.sock
type: unix
pid-file: /var/run/h2o/h2o.pid
send-server-name: OFF
setenv:
HTTP_PROXY: ""
user: h2o
Cree un directorio personalizado para almacenar las opciones SSL predeterminadas para todos los sitios web que usan SSL.
sudo mkdir conf.d
Crea un nuevo ssl.conf
archivo.
sudo nano conf.d/ssl.conf
Copie y pegue el siguiente texto en el ssl.conf
archivo.
cipher-preference: server
cipher-suite: ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
dh-file: /etc/ssl/h2o/dhparam_2048.pem
Haga un directorio para almacenar el dhparam_2048.pem
archivo que se regenerará diariamente a través de un cronjob.
sudo mkdir /etc/ssl/h2o/
Crea un nuevo regenerate_dhparam
archivo.
sudo nano /etc/cron.daily/regenerate_dhparam
Copie y pegue el siguiente texto dentro del regenerate_dhparam
archivo.
#!/bin/bash
cd /etc/ssl/h2o
umask 022
for length in 2048
do
openssl dhparam -out dhparam_$length.tmp $length && mv dhparam_$length.tmp dhparam_$length.pem
chmod 444 dhparam_$length.pem
done
Haga que el archivo bash recién creado sea ejecutable.
sudo chmod +x /etc/cron.daily/regenerate_dhparam
Ejecute el script bash para una primera ejecución ya que H2O no se iniciará correctamente si no se genera. Esto tomará alrededor de un minuto o dos para generar en la primera ejecución.
sudo /etc/cron.daily/regenerate_dhparam
In order to process PHP, the PHP-FPM 5.6 daemon must be installed and configured. In order to install a version of PHP-FPM newer than the default 5.4.x, the REMI repo must be installed which contains PHP versions 5.6.x, 7.0.x and 7.1.x. Type the following commands to install PHP version 5.6.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php56-php-fpm -y
Navigate to the /opt/remi/php56/root/etc/
directory.
cd /opt/remi/php56/root/etc/
Rename the default php-fpm.conf
to php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Create a new php-fpm.conf
file.
sudo nano php-fpm.conf
Copy and paste the text below into the php-fpm.conf
file.
include=/opt/remi/php56/root/etc/php-fpm.d/*.conf
[global]
daemonize = yes
emergency_restart_threshold = 2
emergency_restart_interval = 1m
error_log = /var/log/php-fpm/php-fpm-5.6-error.log
pid = /var/run/php-fpm-5.6.pid
process_control_timeout = 10s
Rename the default www.conf
file in the php-fpm.d
directory.
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Create a new www.conf
file.
sudo nano php-fpm.d/www.conf
Copy and paste the text below into the www.conf
file. Change your pm.max\_children
to match the number of CPUs in accordance with your VPS instance.
[www]
group = h2o
listen = /var/run/php-fpm-5.6.sock
listen.backlog = 65536
listen.owner = h2o
listen.group = h2o
pm = static
pm.max_children = 2
pm.max_requests = 10240
user = h2o
Rename the default php.ini
file.
sudo mv php.ini php.ini.original
Create a new php.ini
file.
sudo nano php.ini
Copie y pegue el siguiente texto en el nuevo php.ini file
. Cambiar el memory\_limit
, post\_max\_size
, upload\_max\_filesize
y date.timezone
de conformidad con la instancia de VPS.
[PHP]
allow_url_fopen = On
always_populate_raw_post_data = -1
display_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
expose_php = Off
log_errors = On
memory_limit = 256M
output_buffering = 4096
post_max_size = 64M
register_argc_argv = Off
request_order = "GP"
upload_max_filesize = 64M
variables_order = "GPCS"
[Date]
date.timezone = America/New_York
[Session]
session.cache_limiter =
session.gc_divisor = 1000
session.hash_bits_per_character = 5
session.save_handler = files
session.save_path = "/opt/remi/php56/root/var/lib/php/session/"
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
Cambie la propiedad del grupo para el /opt/remi/php56/root/var/lib/php/session/
directorio del apache
grupo al h2o
grupo.
sudo chown root.h2o /opt/remi/php56/root/var/lib/php/session/
Cree un directorio donde residirán los registros del servidor PHP-FPM.
sudo mkdir /var/log/php-fpm/
Habilite e inicie el servidor PHP-FPM.
sudo systemctl enable php56-php-fpm
sudo systemctl start php56-php-fpm
Habilite e inicie el servidor H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Cree un directorio donde index.php
residirá el valor predeterminado enumerado por la opción de directorio file.dir
anterior en /var/www/www.example.com
.
sudo mkdir /var/www/www.example.com
Cree un valor predeterminado index.php
utilizando el phpinfo
comando para probar PHP.
sudo nano /var/www/www.example.com/index.php
Copie y pegue el texto a continuación en el nuevo index.php
archivo.
<?php
phpinfo();
?>
Ahora, abra su navegador e ingrese el nombre de dominio del servidor ( example.com or www.example.com
) para su instancia. ¿Estás recibiendo un Unable to connect
o un This site can’t be reached
mensaje? La configuración predeterminada del firewall de CentOS no permite las conexiones entrantes al puerto http. Haga lo siguiente para abrirlo.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Actualice la página en su navegador ( F5
) y obtendrá la página estándar de información de PHP.
http://example.com
, http://www.example.com
y https://www.example.com
a https://example.com
(Página dinámica, PHP-FPM 7.1.x) ConfiguraciónNavega al /etc/h2o/
directorio.
cd /etc/h2o/
Cambie el nombre del valor predeterminado h2o.conf
a h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Crea un nuevo h2o.conf
archivo.
sudo nano h2o.conf
Copie y pegue el siguiente texto en el h2o.conf
archivo.
access-log: /var/log/h2o/access.log
compress: ON
error-log: /var/log/h2o/error.log
expires: 1 day
file.index: [ 'index.php' ]
hosts:
"example.com:80":
listen:
port: 80
paths:
"/":
redirect:
status: 301
url: "https://example.com/"
"www.example.com:80":
listen:
port: 80
paths:
"/":
redirect:
status: 301
url: "https://www.example.com/"
"example.com:443":
listen:
port: 443
ssl:
<<: !file /etc/h2o/conf.d/ssl.conf
certificate-file: /location/of/certificate/file/fullchain.ext
key-file: /location/of/private/key/file/privkey.ext
paths:
"/":
file.dir: /var/www/example.com
header.add: "strict-transport-security: max-age=31536000; includeSubDomains; preload"
redirect:
internal: YES
status: 307
url: /index.php
"www.example.com:443":
listen:
port: 443
ssl:
<<: !file /etc/h2o/conf.d/ssl.conf
certificate-file: /location/of/certificate/file/fullchain.ext
key-file: /location/of/private/key/file/privkey.ext
paths:
"/":
header.add: "strict-transport-security: max-age=31536000; includeSubDomains; preload"
redirect:
status: 301
url: "https://example.com/"
file.custom-handler:
extension: .php
fastcgi.connect:
port: /run/php-fpm-7.1.sock
type: unix
pid-file: /var/run/h2o/h2o.pid
send-server-name: OFF
setenv:
HTTP_PROXY: ""
user: h2o
Cree un directorio personalizado para almacenar las opciones SSL predeterminadas para todos los sitios web que usan SSL.
sudo mkdir conf.d
Crea un nuevo ssl.conf
archivo.
sudo nano conf.d/ssl.conf
Copie y pegue el siguiente texto en el ssl.conf
archivo.
cipher-preference: server
cipher-suite: ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
dh-file: /etc/ssl/h2o/dhparam_2048.pem
Make a directory to store the dhparam_2048.pem
file that will be regenerated daily via a cronjob.
sudo mkdir /etc/ssl/h2o/
Create a new regenerate_dhparam
file.
sudo nano /etc/cron.daily/regenerate_dhparam
Copy and paste the following text inside of the regenerate_dhparam
file.
#!/bin/bash
cd /etc/ssl/h2o
umask 022
for length in 2048
do
openssl dhparam -out dhparam_$length.tmp $length && mv dhparam_$length.tmp dhparam_$length.pem
chmod 444 dhparam_$length.pem
done
Make the bash file just created executable.
sudo chmod +x /etc/cron.daily/regenerate_dhparam
Execute the bash script for a first run as H2O won't start properly if it's not generated. This will take about a minute or two to generate on first run.
sudo /etc/cron.daily/regenerate_dhparam
In order to process PHP, the PHP-FPM 7.1 daemon must be installed and configured. In order to install a version of PHP-FPM newer than the default 5.4.x, the REMI repo must be installed which contains PHP versions 5.6.x, 7.0.x and 7.1.x. Type the following commands below to install PHP version 7.1.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php71-php-fpm -y
Navigate to the /etc/opt/remi/php71/
directory.
cd /etc/opt/remi/php71/
Rename the default php-fpm.conf
to php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Create a new php-fpm.conf
file.
sudo nano php-fpm.conf
Copie y pegue el siguiente texto en el php-fpm.conf
archivo.
include=/etc/opt/remi/php71/php-fpm.d/*.conf
[global]
daemonize = yes
emergency_restart_threshold = 2
emergency_restart_interval = 1m
error_log = /var/log/php-fpm/php-fpm-7.1-error.log
pid = /var/run/php-fpm-7.1.pid
process_control_timeout = 10s
Cambie el nombre del www.conf
archivo predeterminado en el php-fpm.d
directorio.
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Crea un nuevo www.conf
archivo.
sudo nano php-fpm.d/www.conf
Copie y pegue el siguiente texto en el www.conf
archivo. Cambie su pm.max\_children
para que coincida con el número de CPU de acuerdo con su instancia de VPS.
[www]
group = h2o
listen = /var/run/php-fpm-7.1.sock
listen.backlog = 65536
listen.owner = h2o
listen.group = h2o
pm = static
pm.max_children = 2
pm.max_requests = 10240
user = h2o
Cambie el nombre del php.ini
archivo predeterminado .
sudo mv php.ini php.ini.original
Crea un nuevo php.ini
archivo.
sudo nano php.ini
Copie y pegue el siguiente texto a continuación en el nuevo php.ini file
. Cambiar el memory\_limit
, post\_max\_size
, upload\_max\_filesize
y date.timezone
de conformidad con la instancia de VPS.
[PHP]
allow_url_fopen = On
always_populate_raw_post_data = -1
display_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
expose_php = Off
log_errors = On
memory_limit = 256M
output_buffering = 4096
post_max_size = 64M
register_argc_argv = Off
request_order = "GP"
upload_max_filesize = 64M
variables_order = "GPCS"
[Date]
date.timezone = America/New_York
[Session]
session.cache_limiter =
session.gc_divisor = 1000
session.hash_bits_per_character = 5
session.save_handler = files
session.save_path = "/var/opt/remi/php71/lib/php/session/"
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
Cambie la propiedad del grupo para el /var/opt/remi/php71/lib/php/session/
directorio del apache
grupo al h2o
grupo.
sudo chown root.h2o /var/opt/remi/php71/lib/php/session/
Cree un directorio donde residirán los registros del servidor PHP-FPM.
sudo mkdir /var/log/php-fpm/
Habilite e inicie el servidor PHP-FPM.
sudo systemctl enable php71-php-fpm
sudo systemctl start php71-php-fpm
Habilite e inicie el servidor H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Create a directory where the default index.php
will reside listed by the directory option file.dir
above in /var/www/example.com
.
sudo mkdir /var/www/example.com
Create a default index.php
using the phpinfo
command to test PHP.
sudo nano /var/www/example.com/index.php
Copy and paste the text below in the new index.php
file.
<?php
phpinfo();
?>
Now, open your browser and enter the server domain name (example.com
or www.example.com
) for your instance. Are you getting an Unable to connect
or a This site can’t be reached
message? CentOS's default firewall setting disallows incoming connections to the http port. Do the following to open it.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Refresh the page in your browser (F5
) and you will get the standard PHP info page.
http://example.com
, http://www.example.com
, and https://example.com
to https://www.example.com
(Dynamic Page, PHP-FPM 7.1.x) ConfigurationNavigate to the /etc/h2o/
directory.
cd /etc/h2o/
Rename the default h2o.conf
to h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Create a new h2o.conf
file.
sudo nano h2o.conf
Copy and paste the text below into the h2o.conf
file.
access-log: /var/log/h2o/access.log
compress: ON
error-log: /var/log/h2o/error.log
expires: 1 day
file.index: [ 'index.php' ]
hosts:
"example.com:80":
listen:
port: 80
paths:
"/":
redirect:
status: 301
url: "https://example.com/"
"www.example.com:80":
listen:
port: 80
paths:
"/":
redirect:
status: 301
url: "https://www.example.com/"
"example.com:443":
listen:
port: 443
ssl:
<<: !file /etc/h2o/conf.d/ssl.conf
certificate-file: /location/of/certificate/file/fullchain.ext
key-file: /location/of/private/key/file/privkey.ext
paths:
"/":
header.add: "strict-transport-security: max-age=31536000; includeSubDomains; preload"
redirect:
status: 301
url: "https://www.example.com/"
"www.example.com:443":
listen:
port: 443
ssl:
<<: !file /etc/h2o/conf.d/ssl.conf
certificate-file: /location/of/certificate/file/fullchain.ext
key-file: /location/of/private/key/file/privkey.ext
paths:
"/":
file.dir: /var/www/www.example.com
header.add: "strict-transport-security: max-age=31536000; includeSubDomains; preload"
redirect:
internal: YES
status: 307
url: /index.php
file.custom-handler:
extension: .php
fastcgi.connect:
port: /run/php-fpm-7.1.sock
type: unix
pid-file: /var/run/h2o/h2o.pid
send-server-name: OFF
setenv:
HTTP_PROXY: ""
user: h2o
Create a custom directory to store the default SSL options for all websites that use SSL.
sudo mkdir conf.d
Create a new ssl.conf
file.
sudo nano conf.d/ssl.conf
Copy and paste the text below into the ssl.conf
file.
cipher-preference: server
cipher-suite: ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
dh-file: /etc/ssl/h2o/dhparam_2048.pem
Make a directory to store the dhparam_2048.pem
file that will be regenerated daily via a cronjob.
sudo mkdir /etc/ssl/h2o/
Create a new regenerate_dhparam
file.
sudo nano /etc/cron.daily/regenerate_dhparam
Copy and paste the following text inside of the regenerate_dhparam
file.
#!/bin/bash
cd /etc/ssl/h2o
umask 022
for length in 2048
do
openssl dhparam -out dhparam_$length.tmp $length && mv dhparam_$length.tmp dhparam_$length.pem
chmod 444 dhparam_$length.pem
done
Make the bash file just created executable.
sudo chmod +x /etc/cron.daily/regenerate_dhparam
Execute the bash script for a first run as H2O won't start properly if it's not generated. This will take about a minute or two to generate on first run.
sudo /etc/cron.daily/regenerate_dhparam
Para procesar PHP, el demonio PHP-FPM 7.1 debe estar instalado y configurado. Para instalar una versión de PHP-FPM más nueva que la predeterminada 5.4.x, se debe instalar el repositorio REMI que contiene las versiones de PHP 5.6.x, 7.0.xy 7.1.x. Escriba los siguientes comandos para instalar PHP versión 7.1.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php71-php-fpm -y
Navega al /etc/opt/remi/php71/
directorio.
cd /etc/opt/remi/php71/
Cambie el nombre del valor predeterminado php-fpm.conf
a php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Crea un nuevo php-fpm.conf
archivo.
sudo nano php-fpm.conf
Copie y pegue el siguiente texto en el php-fpm.conf
archivo.
include=/etc/opt/remi/php71/php-fpm.d/*.conf
[global]
daemonize = yes
emergency_restart_threshold = 2
emergency_restart_interval = 1m
error_log = /var/log/php-fpm/php-fpm-7.1-error.log
pid = /var/run/php-fpm-7.1.pid
process_control_timeout = 10s
Cambie el nombre del www.conf
archivo predeterminado en el php-fpm.d
directorio.
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Crea un nuevo www.conf
archivo.
sudo nano php-fpm.d/www.conf
Copie y pegue el siguiente texto en el www.conf
archivo. Cambie su pm.max\_children
para que coincida con el número de CPU de acuerdo con su instancia de VPS.
[www]
group = h2o
listen = /var/run/php-fpm-7.1.sock
listen.backlog = 65536
listen.owner = h2o
listen.group = h2o
pm = static
pm.max_children = 2
pm.max_requests = 10240
user = h2o
Cambie el nombre del php.ini
archivo predeterminado .
sudo mv php.ini php.ini.original
Crea un nuevo php.ini
archivo.
sudo nano php.ini
Copie y pegue el siguiente texto a continuación en el nuevo php.ini file
. Cambiar el memory\_limit
, post\_max\_size
, upload\_max\_filesize
y date.timezone
de conformidad con la instancia de VPS.
[PHP]
allow_url_fopen = On
always_populate_raw_post_data = -1
display_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
expose_php = Off
log_errors = On
memory_limit = 256M
output_buffering = 4096
post_max_size = 64M
register_argc_argv = Off
request_order = "GP"
upload_max_filesize = 64M
variables_order = "GPCS"
[Date]
date.timezone = America/New_York
[Session]
session.cache_limiter =
session.gc_divisor = 1000
session.hash_bits_per_character = 5
session.save_handler = files
session.save_path = "/var/opt/remi/php71/lib/php/session"
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
Cambie la propiedad del grupo para el /var/opt/remi/php71/lib/php/session/
directorio del apache
grupo al h2o
grupo.
sudo chown root.h2o /var/opt/remi/php71/lib/php/session/
Cree un directorio donde residirán los registros del servidor PHP-FPM.
sudo mkdir /var/log/php-fpm/
Habilite e inicie el servidor PHP-FPM.
sudo systemctl enable php71-php-fpm
sudo systemctl start php71-php-fpm
Habilite e inicie el servidor H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Cree un directorio donde index.php
residirá el valor predeterminado enumerado por la opción de directorio file.dir
anterior en /var/www/example.com
.
sudo mkdir /var/www/www.example.com
Cree un valor predeterminado index.php
utilizando el phpinfo
comando para probar PHP.
sudo nano /var/www/www.example.com/index.php
Copie y pegue el texto a continuación en el nuevo index.php
archivo.
<?php
phpinfo();
?>
Ahora, abra su navegador e ingrese el nombre de dominio del servidor ( example.com
o www.example.com
) para su instancia. ¿Estás recibiendo un Unable to connect
o un This site can’t be reached
mensaje? La configuración predeterminada del firewall de CentOS no permite las conexiones entrantes al puerto http. Haga lo siguiente para abrirlo.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Actualice la página en su navegador ( F5
) y obtendrá la página estándar de información de PHP.
Esto concluye mi tutorial. Gracias por leer.
¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i
Vultr le ofrece una increíble conectividad de red privada para servidores que se ejecutan en la misma ubicación. Pero a veces quieres dos servidores en diferentes países.
Using a Different System? Introduction CyberPanel is one of the first control panels on the market that is both open source and uses OpenLiteSpeed. What thi
Using a Different System? ESpeak can generate text-to-speech (TTS) audio files. These can be useful for many reasons, such as creating your own Turin
¿Usando un sistema diferente? Thelia es una herramienta de código abierto para crear sitios web de comercio electrónico y administrar contenido en línea, escrito en PHP. Código fuente de Thelia i
¿Usando un sistema diferente? LibreNMS es un completo sistema de monitoreo de red de código abierto. Utiliza SNMP para obtener los datos de diferentes dispositivos. Una variedad
Cacti es una herramienta de gráficos y monitoreo de red de código abierto y libre escrita en PHP. Con la ayuda de RRDtool (herramienta de base de datos Round-Robin), Cacti se puede usar t
Usar un usuario sudo para acceder a un servidor y ejecutar comandos a nivel raíz es una práctica muy común entre Linux y Unix Systems Administrator. El uso de un sud
¿Usando un sistema diferente? Zabbix es un software gratuito y de código abierto listo para empresas que se utiliza para monitorear la disponibilidad de sistemas y componentes de red.
MODX es un sistema de gestión de contenido gratuito y de código abierto escrito en PHP. Utiliza MySQL o MariaDB para almacenar su base de datos. MODX está diseñado para el negocio i
YOURLS (Your Own URL Shortener) es una aplicación de análisis de datos y acortamiento de URL de código abierto. En este artículo, cubriremos el proceso de instalación
Using a Different System? RTMP is great for serving live content. When RTMP is paired with FFmpeg, streams can be converted into various qualities. Vultr i
LimeSurvey es una herramienta de encuestas en línea gratuita y de código abierto que se utiliza ampliamente para publicar encuestas en línea y para recopilar comentarios de encuestas. En este artículo, voy a
¿Usando un sistema diferente? Vanilla forum es una aplicación de foro de código abierto escrita en PHP. Es totalmente personalizable, fácil de usar y admite dispositivos externos.
¿Usando un sistema diferente? Netdata es una estrella en ascenso en el campo del monitoreo de métricas del sistema en tiempo real. En comparación con otras herramientas del mismo tipo, Netdata:
En este tutorial, aprende bien cómo configurar un servidor multijugador Just Cause 2. Requisitos previos Asegúrese de que el sistema esté completamente actualizado antes de comenzar
¿Usando un sistema diferente? En este tutorial, explicaré cómo configurar un servidor Starbound en CentOS 7. Requisitos previos Necesitas tener este juego contigo
ZNC es un enlace IRC gratuito y de código abierto que permanece permanentemente conectado a una red para que los clientes puedan recibir mensajes enviados mientras están desconectados. Thi
Django es un marco de Python popular para escribir aplicaciones web. Con Django, puede crear aplicaciones más rápido, sin reinventar la rueda. Si tu quieres
ionCube Loader es una extensión PHP que permite que un servidor web ejecute archivos PHP que han sido codificados usando ionCube Encoder y es necesario para ejecutar
Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición
ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.
Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+
Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.
Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información
13 Herramientas comerciales de extracción de datos de Big Data
Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.
A medida que la ciencia evoluciona a un ritmo rápido, asumiendo muchos de nuestros esfuerzos, también aumentan los riesgos de someternos a una singularidad inexplicable. Lea, lo que la singularidad podría significar para nosotros.
Una mirada a 26 técnicas analíticas de Big Data: Parte 1
La IA en la salud ha dado grandes pasos desde las últimas décadas. Por tanto, el futuro de la IA en el sector sanitario sigue creciendo día a día.