Configure sua própria rede privada com o OpenVPN
O Vultr oferece uma incrível conectividade de rede privada para servidores executando no mesmo local. Mas às vezes você quer dois servidores em países diferentes
O H2O é um servidor HTTP de nova geração que possui excelentes implementações HTTP / 2 com todos os recursos de todos os servidores da Web atuais em uso. Com o H2O como servidor da Web, você pode tirar proveito dos novos recursos da especificação HTTP / 2, como otimização da latência, push do servidor e priorização do lado do servidor, que podem tirar proveito dos recursos modernos do navegador que raramente são mencionados.
Neste tutorial detalhado, mostrarei passo a passo como executar o H2O em sua instância do CentOS 7 x64.
Efetue login via SSH com as credenciais encontradas na sua instância e atualize o sistema da seguinte maneira.
sudo yum install epel-release -y
sudo yum clean all && sudo yum update -y
Para instalar o H2O no CentOS 7, você deve adicionar o repositório do Bintray RPM para instalar os binários de H2O pré-construídos. Use o editor Nano para criar um repositório personalizado.
sudo nano /etc/yum.repos.d/bintray-h2o-rpm.repo
Copie e cole o texto abaixo no arquivo repo.
[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
Em seguida, instale o H2O.
sudo yum install h2o -y
Agora que o H2O está instalado, mas antes que você ative e inicie o serviço, é necessária uma configuração adequada e precisamos criar um usuário e grupo específico para o H2O executar. Crie um grupo e um usuário para o H2O executar sob o nome h2o.
sudo groupadd -g 101 h2o
sudo useradd -d /etc/h2o -g 101 -M -s /sbin/nologin -u 101 h2o
Os passos a seguir dão exemplos de configurações de configuração para vários unencrypted, encrypted, statice dynamicservidor configurações; bem como uma combinação dos quatro.
http://www.example.compara http://example.com(páginas HTML estáticas, sem PHP)Navegue para o /etc/h2o/diretório
cd /etc/h2o/
Renomeie o padrão h2o.confpara h2o.conf.original.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.confarquivo.
sudo nano h2o.conf
Copie e cole o texto abaixo no h2o.confarquivo.
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 o servidor H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Crie um padrão index.htmlusando o modelo na /var/www/htmlopção de diretório file.dirlistada acima em /var/www/example.com.
sudo cp -var /var/www/html /var/www/example.com
Agora, abra seu navegador e digite o nome de domínio do servidor ( example.comou www.example.com) para sua instância. Você está recebendo um Unable to connectou uma This site can’t be reachedmensagem? A configuração de firewall padrão do CentOS não permite conexões de entrada com a porta http. Execute o seguinte para abri-lo.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload
Atualize a página no seu navegador ( F5) e você receberá esta mensagem.
Welcome to H2O - an optimized HTTP server
It works!
http://example.compara http://www.example.com(páginas HTML estáticas, sem PHP)Navegue para o /etc/h2o/diretório
cd /etc/h2o/
Renomeie o padrão h2o.confpara h2o.conf.original.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.confarquivo.
sudo nano h2o.conf
Copie e cole o seguinte texto no h2o.confarquivo.
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 o servidor H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Crie um index.htmlarquivo padrão usando o modelo na /var/www/htmlopção de diretório file.dirlistada acima em /var/www/www.example.com.
sudo cp -var /var/www/html /var/www/www.example.com
Agora, abra seu navegador e digite o nome de domínio do servidor ( example.comou www.example.com) para sua instância. Você está recebendo um Unable to connectou uma This site can’t be reachedmensagem? A configuração de firewall padrão do CentOS não permite conexões de entrada com a porta http. Faça o seguinte para abri-lo.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload
Atualize a página no seu navegador ( F5) e você receberá esta mensagem.
Welcome to H2O - an optimized HTTP server
It works!
http://www.example.compara http://example.com(página dinâmica, PHP-FPM 5.6.x)Navegue para o /etc/h2o/diretório
cd /etc/h2o/
Renomeie o padrão h2o.confpara h2o.conf.original.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.confarquivo.
sudo nano h2o.conf
Copie e cole o seguinte texto no h2o.confarquivo.
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 processar o PHP, o daemon PHP-FPM 5.6 deve ser instalado e configurado. Para instalar uma versão do PHP-FPM mais recente que a versão 5.4.x padrão, é necessário instalar o repositório REMI que contenha as versões 5.6.x, 7.0.xe 7.1.x. Instale o PHP versão 5.6.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php56-php-fpm -y
Navegue para o /opt/remi/php56/root/etc/diretório
cd /opt/remi/php56/root/etc/
Renomeie o padrão php-fpm.confpara php-fpm.conf.original.
sudo mv php-fpm.conf php-fpm.conf.original
Crie um novo php-fpm.confarquivo.
sudo nano php-fpm.conf
Copie e cole o texto abaixo no php-fpm.confarquivo.
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
Renomeie o www.confarquivo padrão no php-fpm.ddiretório
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Crie um novo www.confarquivo.
sudo nano php-fpm.d/www.conf
Copie e cole o texto abaixo no www.confarquivo. Altere seu pm.max\_childrenpara corresponder ao número de CPUs de acordo com sua instância do 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
Renomeie o php.iniarquivo padrão .
sudo mv php.ini php.ini.original
Crie um novo php.iniarquivo.
sudo nano php.ini
Copie e cole o texto abaixo no novo php.ini file. Alterar o memory\_limit, post\_max\_size, upload\_max\_filesizee date.timezonede acordo com sua instância 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"
Altere a propriedade do grupo para o /opt/remi/php56/root/var/lib/php/session/diretório do apachegrupo para o h2ogrupo.
sudo chown root.h2o /opt/remi/php56/root/var/lib/php/session/
Crie um diretório em que os logs do servidor PHP-FPM residam.
sudo mkdir /var/log/php-fpm/
Ative e inicie o servidor PHP-FPM.
sudo systemctl enable php56-php-fpm
sudo systemctl start php56-php-fpm
Habilite e inicie o servidor H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Crie um diretório em que o padrão index.phpresidirá listado pela opção de diretório file.diracima em /var/www/example.com.
sudo mkdir /var/www/example.com
Crie um padrão index.phpusando o phpinfocomando para testar o PHP.
sudo nano /var/www/example.com/index.php
Copie e cole o texto abaixo no novo index.phparquivo.
<?php
phpinfo();
?>
Agora, abra seu navegador e digite o nome de domínio do servidor ( example.comou www.example.com) para sua instância. Você está recebendo um Unable to connectou uma This site can’t be reachedmensagem? A configuração de firewall padrão do CentOS não permite conexões de entrada com a porta http. Faça o seguinte para abri-lo.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload
Atualize a página no seu navegador ( F5) e você obterá a página de informações padrão do PHP.
http://example.compara http://www.example.com(página dinâmica, PHP-FPM 5.6.x)Navegue para o /etc/h2o/diretório
cd /etc/h2o/
Renomeie o padrão h2o.confpara h2o.conf.original.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.confarquivo.
sudo nano h2o.conf
Copie e cole o texto abaixo no h2o.confarquivo.
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
Para processar o PHP, o daemon PHP-FPM 5.6 deve ser instalado e configurado. Para instalar uma versão do PHP-FPM mais recente que a versão 5.4.x padrão, é necessário instalar o repositório REMI que contenha as versões 5.6.x, 7.0.xe 7.1.x. Digite os seguintes comandos para instalar o PHP versão 5.6.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php56-php-fpm -y
Navegue para o /opt/remi/php56/root/etc/diretório
cd /opt/remi/php56/root/etc/
Renomeie o padrão php-fpm.confpara php-fpm.conf.original.
sudo mv php-fpm.conf php-fpm.conf.original
Crie um novo php-fpm.confarquivo.
sudo nano php-fpm.conf
Copie e cole o texto abaixo no php-fpm.confarquivo.
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
Renomeie o www.confarquivo padrão no php-fpm.ddiretório
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Crie um novo www.confarquivo.
sudo nano php-fpm.d/www.conf
Copie e cole o seguinte texto no www.confarquivo. Altere seu pm.max\_childrenpara corresponder ao número de CPUs de acordo com sua instância do 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
Renomeie o php.iniarquivo padrão .
sudo mv php.ini php.ini.original
Crie um novo php.iniarquivo.
sudo nano php.ini
Copie e cole o seguinte texto abaixo no novo php.ini file. Alterar o memory\_limit, post\_max\_size, upload\_max\_filesizee date.timezonede acordo com sua instância 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"
Altere a propriedade do grupo para o /opt/remi/php56/root/var/lib/php/session/diretório do apachegrupo para o h2ogrupo.
sudo chown root.h2o /opt/remi/php56/root/var/lib/php/session/
Crie um diretório em que os logs do servidor PHP-FPM residam.
sudo mkdir /var/log/php-fpm/
Ative e inicie o servidor PHP-FPM.
sudo systemctl enable php56-php-fpm
sudo systemctl start php56-php-fpm
Habilite e inicie o servidor H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Crie um diretório em que o padrão index.phpresidirá listado pela opção de diretório file.diracima em /var/www/www.example.com.
sudo mkdir /var/www/www.example.com
Crie um padrão index.phpusando o phpinfocomando para testar o PHP.
sudo nano /var/www/www.example.com/index.php
Copie e cole o texto abaixo no novo index.phparquivo.
<?php
phpinfo();
?>
Agora, abra seu navegador e digite o nome de domínio do servidor ( example.comou www.example.com) para sua instância. Você está recebendo um Unable to connectou uma This site can’t be reachedmensagem? A configuração de firewall padrão do CentOS não permite conexões de entrada com a porta http. Faça o seguinte para abri-lo.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload
Atualize a página no seu navegador ( F5) e você obterá a página de informações padrão do PHP.
http://www.example.compara http://example.com(página dinâmica, PHP-FPM 7.1.x)Navegue para o /etc/h2o/diretório
cd /etc/h2o/
Renomeie o padrão h2o.confpara h2o.conf.original.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.confarquivo.
sudo nano h2o.conf
Copie e cole o texto abaixo no h2o.confarquivo.
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 processar o PHP, o daemon PHP-FPM 7.1 deve estar instalado e configurado. Para instalar uma versão do PHP-FPM mais recente que a versão 5.4.x padrão, é necessário instalar o repositório REMI que contenha as versões 5.6.x, 7.0.xe 7.1.x. Digite os seguintes comandos abaixo para instalar o PHP versão 7.1.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php71-php-fpm -y
Navegue para o /etc/opt/remi/php71/diretório
cd /etc/opt/remi/php71/
Renomeie o padrão php-fpm.confpara php-fpm.conf.original.
sudo mv php-fpm.conf php-fpm.conf.original
Crie um novo php-fpm.confarquivo.
sudo nano php-fpm.conf
Copie e cole o seguinte texto no php-fpm.confarquivo.
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
Renomeie o www.confarquivo padrão no php-fpm.ddiretório
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Crie um novo www.confarquivo.
sudo nano php-fpm.d/www.conf
Copie e cole o texto abaixo no www.confarquivo. Altere seu pm.max\_childrenpara corresponder ao número de CPUs de acordo com sua instância do 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
Renomeie o php.iniarquivo padrão .
sudo mv php.ini php.ini.original
Crie um novo php.iniarquivo.
sudo nano php.ini
Copy and paste the text below 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/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();
?>
Agora, abra seu navegador e digite o nome de domínio do servidor ( example.comou www.example.com) para sua instância. Você está recebendo um Unable to connectou uma This site can’t be reachedmensagem? A configuração de firewall padrão do CentOS não permite conexões de entrada com a porta http. Faça o seguinte para abri-lo.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload
Atualize a página no seu navegador ( F5) e você obterá a página de informações padrão do PHP.
http://example.compara http://www.example.com(página dinâmica, PHP-FPM 7.1.x)Navegue para o /etc/h2o/diretório
cd /etc/h2o/
Renomeie o padrão h2o.confpara h2o.conf.original.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.confarquivo.
sudo nano h2o.conf
Copie e cole o texto abaixo no h2o.confarquivo.
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
Para processar o PHP, o daemon PHP-FPM 7.1 deve estar instalado e configurado. Para instalar uma versão do PHP-FPM mais recente que a versão 5.4.x padrão, é necessário instalar o repositório REMI que contenha as versões 5.6.x, 7.0.xe 7.1.x. Digite os seguintes comandos abaixo para instalar o PHP versão 7.1.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php71-php-fpm -y
Navegue para o /etc/opt/remi/php71/diretório
cd /etc/opt/remi/php71/
Renomeie o padrão php-fpm.confpara php-fpm.conf.original.
sudo mv php-fpm.conf php-fpm.conf.original
Crie um novo php-fpm.confarquivo.
sudo nano php-fpm.conf
Copie e cole o texto abaixo no php-fpm.confarquivo.
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
Renomeie o www.confarquivo padrão no php-fpm.ddiretório
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Crie um novo www.confarquivo.
sudo nano php-fpm.d/www.conf
Copie e cole o seguinte texto no www.confarquivo. Altere seu pm.max\_childrenpara corresponder ao número de CPUs de acordo com sua instância do 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
Renomeie o php.iniarquivo padrão .
sudo mv php.ini php.ini.original
Crie um novo php.iniarquivo.
sudo nano php.ini
Copie e cole o seguinte texto no novo php.ini file. Alterar o memory\_limit, post\_max\_size, upload\_max\_filesizee date.timezonede acordo com sua instância 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"
Altere a propriedade do grupo para o /var/opt/remi/php71/lib/php/session/diretório do apachegrupo para o h2ogrupo.
sudo chown root.h2o /var/opt/remi/php71/lib/php/session/
Crie um diretório em que os logs do servidor PHP-FPM residam.
sudo mkdir /var/log/php-fpm/
Ative e inicie o servidor PHP-FPM.
sudo systemctl enable php71-php-fpm
sudo systemctl start php71-php-fpm
Habilite e inicie o servidor H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Crie um diretório em que o padrão index.phpresidirá listado pela opção de diretório file.diracima em /var/www/example.com.
sudo mkdir /var/www/www.example.com
Crie um padrão index.phpusando o phpinfocomando para testar o PHP.
sudo nano /var/www/www.example.com/index.php
Copie e cole o texto abaixo no novo index.phparquivo.
<?php
phpinfo();
?>
Agora, abra seu navegador e digite o nome de domínio do servidor ( example.comou www.example.com) para sua instância. Você está recebendo um Unable to connectou uma This site can’t be reachedmensagem? A configuração de firewall padrão do CentOS não permite conexões de entrada com a porta http. Faça o seguinte para abri-lo.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload
Atualize a página no seu navegador ( F5) e você obterá a página de informações padrão do PHP.
http://example.com, http://www.example.come https://www.example.compara https://example.com(Páginas HTML estáticas, sem PHP)Navegue para o /etc/h2o/diretório
cd /etc/h2o/
Renomeie o padrão h2o.confpara h2o.conf.original.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.confarquivo.
sudo nano h2o.conf
Copie e cole o texto abaixo no h2o.confarquivo.
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
Crie um diretório personalizado para armazenar as opções SSL padrão para todos os sites que usam SSL.
sudo mkdir conf.d
Crie um novo ssl.confarquivo.
sudo nano conf.d/ssl.conf
Copie e cole o seguinte texto no ssl.confarquivo.
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
Crie um diretório para armazenar o dhparam_2048.pemarquivo que será regenerado diariamente por meio de um cronjob.
sudo mkdir /etc/ssl/h2o/
Crie um novo regenerate_dhparamarquivo.
sudo nano /etc/cron.daily/regenerate_dhparam
Copie e cole o seguinte texto no regenerate_dhparamarquivo.
#!/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
Torne o arquivo bash que acabou de ser criado executável.
sudo chmod +x /etc/cron.daily/regenerate_dhparam
Execute o script bash para uma primeira execução, pois o H2O não será iniciado corretamente se não for gerado. Isso levará cerca de um minuto ou dois para gerar na primeira execução.
sudo /etc/cron.daily/regenerate_dhparam
Habilite e inicie o servidor H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Crie um padrão index.htmlusando o modelo na /var/www/htmlopção de diretório file.dirlistada acima em /var/www/example.com.
sudo cp -var /var/www/html /var/www/example.com
Agora, abra seu navegador e digite o nome de domínio do servidor ( example.comou www.example.com) para sua instância. Você está recebendo um Unable to connectou uma This site can’t be reachedmensagem? A configuração de firewall padrão do CentOS não permite conexões de entrada com a porta http. Faça o seguinte para abri-lo.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Atualize a página no seu navegador ( F5) e você receberá esta mensagem.
Welcome to H2O - an optimized HTTP server
It works!
http://example.com, http://www.example.come https://example.compara https://www.example.com(Páginas HTML estáticas, sem PHP)Navegue para o /etc/h2o/diretório
cd /etc/h2o/
Renomeie o padrão h2o.confpara h2o.conf.original.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.confarquivo.
sudo nano h2o.conf
Copie e cole o texto abaixo no h2o.confarquivo.
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
Crie um diretório personalizado para armazenar as opções SSL padrão para todos os sites que usam SSL.
sudo mkdir conf.d
Crie um novo ssl.confarquivo.
sudo nano conf.d/ssl.conf
Copie e cole o seguinte texto no ssl.confarquivo.
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
Crie um diretório para armazenar o dhparam_2048.pemarquivo que será regenerado diariamente por meio de um cronjob.
sudo mkdir /etc/ssl/h2o/
Crie um novo regenerate_dhparamarquivo.
sudo nano /etc/cron.daily/regenerate_dhparam
Copie e cole o seguinte texto dentro do regenerate_dhparamarquivo.
#!/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
Torne o arquivo bash que acabou de ser criado executável.
sudo chmod +x /etc/cron.daily/regenerate_dhparam
Execute o script bash para uma primeira execução, pois o H2O não será iniciado corretamente se não for gerado. Isso levará cerca de um minuto ou dois para gerar na primeira execução.
sudo /etc/cron.daily/regenerate_dhparam
Habilite e inicie o servidor H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Crie um padrão index.htmlusando o modelo na /var/www/htmlopção de diretório file.dirlistada acima em /var/www/www.example.com.
sudo cp -var /var/www/html /var/www/www.example.com
Agora, abra seu navegador e digite o nome de domínio do servidor ( example.comou www.example.com) para sua instância. Você está recebendo um Unable to connectou uma This site can’t be reachedmensagem? A configuração de firewall padrão do CentOS não permite conexões de entrada com a porta http. Faça o seguinte para abri-lo.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Atualize a página no seu navegador ( F5) e você receberá esta mensagem.
Welcome to H2O - an optimized HTTP server
It works!
http://example.com, http://www.example.come https://www.example.compara https://example.com(página dinâmica, PHP-FPM 5.6.x)Navegue para o /etc/h2o/diretório
cd /etc/h2o/
Renomeie o padrão h2o.confpara h2o.conf.original.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.confarquivo.
sudo nano h2o.conf
Copie e cole o texto abaixo no h2o.confarquivo.
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
Crie um diretório personalizado para armazenar as opções SSL padrão para todos os sites que usam SSL.
sudo mkdir conf.d
Crie um novo ssl.confarquivo.
sudo nano conf.d/ssl.conf
Copie e cole o texto abaixo no ssl.confarquivo.
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 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 following text 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
Copy and paste the text below 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 = "/opt/remi/php56/root/var/lib/php/session/"
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
Change the group ownership for the /opt/remi/php56/root/var/lib/php/session/ directory from the apache group to the h2o group.
sudo chown root.h2o /opt/remi/php56/root/var/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 php56-php-fpm
sudo systemctl start php56-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/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/
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-5.6.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 processar o PHP, o daemon PHP-FPM 5.6 deve ser instalado e configurado. Para instalar uma versão do PHP-FPM mais recente que a versão 5.4.x padrão, é necessário instalar o repositório REMI que contenha as versões 5.6.x, 7.0.xe 7.1.x. Digite os seguintes comandos para instalar o PHP versão 5.6.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php56-php-fpm -y
Navegue para o /opt/remi/php56/root/etc/diretório
cd /opt/remi/php56/root/etc/
Renomeie o padrão php-fpm.confpara php-fpm.conf.original.
sudo mv php-fpm.conf php-fpm.conf.original
Crie um novo php-fpm.confarquivo.
sudo nano php-fpm.conf
Copie e cole o texto abaixo no php-fpm.confarquivo.
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
Renomeie o www.confarquivo padrão no php-fpm.ddiretório
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Crie um novo www.confarquivo.
sudo nano php-fpm.d/www.conf
Copie e cole o texto abaixo no www.confarquivo. Altere seu pm.max\_childrenpara corresponder ao número de CPUs de acordo com sua instância do 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
Renomeie o php.iniarquivo padrão .
sudo mv php.ini php.ini.original
Crie um novo php.iniarquivo.
sudo nano php.ini
Copie e cole o seguinte texto no novo php.ini file. Alterar o memory\_limit, post\_max\_size, upload\_max\_filesizee date.timezonede acordo com sua instância 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"
Altere a propriedade do grupo para o /opt/remi/php56/root/var/lib/php/session/diretório do apachegrupo para o h2ogrupo.
sudo chown root.h2o /opt/remi/php56/root/var/lib/php/session/
Crie um diretório em que os logs do servidor PHP-FPM residam.
sudo mkdir /var/log/php-fpm/
Ative e inicie o servidor PHP-FPM.
sudo systemctl enable php56-php-fpm
sudo systemctl start php56-php-fpm
Habilite e inicie o servidor H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Crie um diretório em que o padrão index.phpresidirá listado pela opção de diretório file.diracima em /var/www/www.example.com.
sudo mkdir /var/www/www.example.com
Crie um padrão index.phpusando o phpinfocomando para testar o PHP.
sudo nano /var/www/www.example.com/index.php
Copie e cole o texto abaixo no novo index.phparquivo.
<?php
phpinfo();
?>
Agora, abra seu navegador e digite o nome de domínio do servidor ( example.com or www.example.com) para sua instância. Você está recebendo um Unable to connectou uma This site can’t be reachedmensagem? A configuração de firewall padrão do CentOS não permite conexões de entrada com a porta http. Faça o seguinte para abri-lo.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Atualize a página no seu navegador ( F5) e você obterá a página de informações padrão do PHP.
http://example.com, http://www.example.come https://www.example.compara https://example.com(página dinâmica, PHP-FPM 7.1.x)Navegue para o /etc/h2o/diretório
cd /etc/h2o/
Renomeie o padrão h2o.confpara h2o.conf.original.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.confarquivo.
sudo nano h2o.conf
Copie e cole o texto abaixo no h2o.confarquivo.
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
Crie um diretório personalizado para armazenar as opções SSL padrão para todos os sites que usam SSL.
sudo mkdir conf.d
Crie um novo ssl.confarquivo.
sudo nano conf.d/ssl.conf
Copie e cole o texto abaixo no ssl.confarquivo.
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
Crie um diretório para armazenar o dhparam_2048.pemarquivo que será regenerado diariamente por meio de um cronjob.
sudo mkdir /etc/ssl/h2o/
Crie um novo regenerate_dhparamarquivo.
sudo nano /etc/cron.daily/regenerate_dhparam
Copie e cole o seguinte texto dentro do regenerate_dhparamarquivo.
#!/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
Torne o arquivo bash que acabou de ser criado executável.
sudo chmod +x /etc/cron.daily/regenerate_dhparam
Execute o script bash para uma primeira execução, pois o H2O não será iniciado corretamente se não for gerado. Isso levará cerca de um minuto ou dois para gerar na primeira execução.
sudo /etc/cron.daily/regenerate_dhparam
Para processar o PHP, o daemon PHP-FPM 7.1 deve estar instalado e configurado. Para instalar uma versão do PHP-FPM mais recente que a versão 5.4.x padrão, é necessário instalar o repositório REMI que contenha as versões 5.6.x, 7.0.xe 7.1.x. Digite os seguintes comandos abaixo para instalar o PHP versão 7.1.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php71-php-fpm -y
Navegue para o /etc/opt/remi/php71/diretório
cd /etc/opt/remi/php71/
Renomeie o padrão php-fpm.confpara php-fpm.conf.original.
sudo mv php-fpm.conf php-fpm.conf.original
Crie um novo php-fpm.confarquivo.
sudo nano php-fpm.conf
Copie e cole o texto abaixo no php-fpm.confarquivo.
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
Renomeie o www.confarquivo padrão no php-fpm.ddiretório
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Crie um novo www.confarquivo.
sudo nano php-fpm.d/www.conf
Copie e cole o seguinte texto no www.confarquivo. Altere seu pm.max\_childrenpara corresponder ao número de CPUs de acordo com sua instância do 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
Renomeie o php.iniarquivo padrão .
sudo mv php.ini php.ini.original
Crie um novo php.iniarquivo.
sudo nano php.ini
Copie e cole o seguinte texto abaixo no novo php.ini file. Alterar o memory\_limit, post\_max\_size, upload\_max\_filesizee date.timezonede acordo com sua instância 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"
Altere a propriedade do grupo para o /var/opt/remi/php71/lib/php/session/diretório do apachegrupo para o h2ogrupo.
sudo chown root.h2o /var/opt/remi/php71/lib/php/session/
Crie um diretório em que os logs do servidor PHP-FPM residam.
sudo mkdir /var/log/php-fpm/
Ative e inicie o servidor PHP-FPM.
sudo systemctl enable php71-php-fpm
sudo systemctl start php71-php-fpm
Habilite e inicie o 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/
Renomeie o padrão h2o.confpara h2o.conf.original.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.confarquivo.
sudo nano h2o.conf
Copie e cole o texto abaixo no h2o.confarquivo.
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
Crie um diretório personalizado para armazenar as opções SSL padrão para todos os sites que usam SSL.
sudo mkdir conf.d
Crie um novo ssl.confarquivo.
sudo nano conf.d/ssl.conf
Copie e cole o texto abaixo no ssl.confarquivo.
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
Crie um diretório para armazenar o dhparam_2048.pemarquivo que será regenerado diariamente por meio de um cronjob.
sudo mkdir /etc/ssl/h2o/
Crie um novo regenerate_dhparamarquivo.
sudo nano /etc/cron.daily/regenerate_dhparam
Copie e cole o seguinte texto dentro do regenerate_dhparamarquivo.
#!/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
Torne o arquivo bash que acabou de ser criado executável.
sudo chmod +x /etc/cron.daily/regenerate_dhparam
Execute o script bash para uma primeira execução, pois o H2O não será iniciado corretamente se não for gerado. Isso levará cerca de um minuto ou dois para gerar na primeira execução.
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 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 following text 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 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-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
Copie e cole o seguinte texto abaixo no novo php.ini file. Alterar o memory\_limit, post\_max\_size, upload\_max\_filesizee date.timezonede acordo com sua instância 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"
Altere a propriedade do grupo para o /var/opt/remi/php71/lib/php/session/diretório do apachegrupo para o h2ogrupo.
sudo chown root.h2o /var/opt/remi/php71/lib/php/session/
Crie um diretório em que os logs do servidor PHP-FPM residam.
sudo mkdir /var/log/php-fpm/
Ative e inicie o servidor PHP-FPM.
sudo systemctl enable php71-php-fpm
sudo systemctl start php71-php-fpm
Habilite e inicie o servidor H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Crie um diretório em que o padrão index.phpresidirá listado pela opção de diretório file.diracima em /var/www/example.com.
sudo mkdir /var/www/www.example.com
Crie um padrão index.phpusando o phpinfocomando para testar o PHP.
sudo nano /var/www/www.example.com/index.php
Copie e cole o texto abaixo no novo index.phparquivo.
<?php
phpinfo();
?>
Agora, abra seu navegador e digite o nome de domínio do servidor ( example.comou www.example.com) para sua instância. Você está recebendo um Unable to connectou uma This site can’t be reachedmensagem? A configuração de firewall padrão do CentOS não permite conexões de entrada com a porta http. Faça o seguinte para abri-lo.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Atualize a página no seu navegador ( F5) e você obterá a página de informações padrão do PHP.
Isso conclui meu tutorial. Obrigado pela leitura.
O Vultr oferece uma incrível conectividade de rede privada para servidores executando no mesmo local. Mas às vezes você quer dois servidores em países diferentes
Usando um sistema diferente? Introdução O CyberPanel é um dos primeiros painéis de controle do mercado, tanto de código aberto quanto de OpenLiteSpeed. What thi
Usando um sistema diferente? O ESpeak pode gerar arquivos de áudio de conversão de texto em fala (TTS). Isso pode ser útil por vários motivos, como criar seu próprio Turim
Usando um sistema diferente? O LibreNMS é um sistema de monitoramento de rede de código aberto completo. Ele usa o SNMP para obter os dados de diferentes dispositivos. Uma variedade
Usar um usuário sudo para acessar um servidor e executar comandos no nível raiz é uma prática muito comum entre o Linux e o Unix Systems Administrator. O uso de um sud
Usando um sistema diferente? O RabbitMQ é um intermediário de mensagens de código aberto amplamente usado, escrito na linguagem de programação Erlang. Como um middleware orientado a mensagens
Usando um sistema diferente? O RTMP é ótimo para veicular conteúdo ao vivo. Quando o RTMP é emparelhado com o FFmpeg, os fluxos podem ser convertidos em várias qualidades. Vultr i
Usando um sistema diferente? Gradle é um conjunto de ferramentas de automação de compilação de código aberto e gratuito baseado nos conceitos do Apache Ant e Apache Maven. Gradle fornece
Usando um sistema diferente? Neste guia, veremos como configurar um servidor FTP (ProFTPd) para transferir arquivos entre o seu PC e o seu servidor.
Usando um sistema diferente? O Netdata é uma estrela em ascensão no campo do monitoramento de métricas do sistema em tempo real. Comparado com outras ferramentas do mesmo tipo, o Netdata:
Usando um sistema diferente? O Apache Cassandra é um sistema de gerenciamento de banco de dados NoSQL gratuito e de código aberto, projetado para fornecer escalabilidade, alta
Neste tutorial, aprenda como configurar um servidor multiplayer Just Cause 2. Pré-requisitos Verifique se o sistema está totalmente atualizado antes de começarmos
Usando um sistema diferente? Neste tutorial, explicarei como configurar um servidor Starbound no CentOS 7. Pré-requisitos Você precisa ser o proprietário deste jogo
O ZNC é um segurança IRC gratuito e de código aberto que permanece permanentemente conectado a uma rede para que os clientes possam receber mensagens enviadas enquanto estiverem offline. Thi
O Django é uma estrutura Python popular para escrever aplicativos da web. Com o Django, você pode criar aplicativos mais rapidamente, sem reinventar a roda. Se você quiser você
Outubro é um sistema de gerenciamento de conteúdo de código aberto baseado no Laravel PHP Framework. Com uma interface elegante e uma arquitetura modular concisa
Após alterar a porta SSH, configurar a batida na porta e fazer outros ajustes para a segurança SSH, talvez haja mais uma maneira de protegê-lo
Introdução O MyCLI é um cliente de linha de comando para MySQL e MariaDB que permite concluir automaticamente e ajuda na sintaxe de seus comandos SQL. MyCL
Usando um sistema diferente? O Directus 6.4 CMS é um sistema de gerenciamento de conteúdo sem cabeça (CMS) poderoso e flexível, gratuito e de código aberto que fornece
Usando um sistema diferente? O Reader Self 3.5 é um leitor de RSS auto-hospedado, simples e flexível, gratuito e de código aberto, e uma alternativa ao Google Reader. Leitor Sel
Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane
ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.
O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+
Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.
Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais
13 Ferramentas de Extração de Dados Comerciais de Big Data
Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true
À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.
Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1
A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA na área da saúde ainda está crescendo dia a dia.