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
, static
e dynamic
servidor configurações; bem como uma combinação dos quatro.
http://www.example.com
para 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.conf
para h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.conf
arquivo.
sudo nano h2o.conf
Copie e cole o texto abaixo no h2o.conf
arquivo.
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.html
usando o modelo na /var/www/html
opção de diretório file.dir
listada 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.com
ou www.example.com
) para sua instância. Você está recebendo um Unable to connect
ou uma This site can’t be reached
mensagem? 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.com
para 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.conf
para h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.conf
arquivo.
sudo nano h2o.conf
Copie e cole o seguinte texto no h2o.conf
arquivo.
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.html
arquivo padrão usando o modelo na /var/www/html
opção de diretório file.dir
listada 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.com
ou www.example.com
) para sua instância. Você está recebendo um Unable to connect
ou uma This site can’t be reached
mensagem? 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.com
para 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.conf
para h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.conf
arquivo.
sudo nano h2o.conf
Copie e cole o seguinte texto no h2o.conf
arquivo.
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.conf
para php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Crie um novo php-fpm.conf
arquivo.
sudo nano php-fpm.conf
Copie e cole o texto abaixo no php-fpm.conf
arquivo.
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.conf
arquivo padrão no php-fpm.d
diretório
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Crie um novo www.conf
arquivo.
sudo nano php-fpm.d/www.conf
Copie e cole o texto abaixo no www.conf
arquivo. Altere seu pm.max\_children
para 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.ini
arquivo padrão .
sudo mv php.ini php.ini.original
Crie um novo php.ini
arquivo.
sudo nano php.ini
Copie e cole o texto abaixo no novo php.ini file
. Alterar o memory\_limit
, post\_max\_size
, upload\_max\_filesize
e date.timezone
de 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 apache
grupo para o h2o
grupo.
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.php
residirá listado pela opção de diretório file.dir
acima em /var/www/example.com
.
sudo mkdir /var/www/example.com
Crie um padrão index.php
usando o phpinfo
comando para testar o PHP.
sudo nano /var/www/example.com/index.php
Copie e cole o texto abaixo no novo index.php
arquivo.
<?php
phpinfo();
?>
Agora, abra seu navegador e digite o nome de domínio do servidor ( example.com
ou www.example.com
) para sua instância. Você está recebendo um Unable to connect
ou uma This site can’t be reached
mensagem? 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
para 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.conf
para h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.conf
arquivo.
sudo nano h2o.conf
Copie e cole o texto abaixo no h2o.conf
arquivo.
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.conf
para php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Crie um novo php-fpm.conf
arquivo.
sudo nano php-fpm.conf
Copie e cole o texto abaixo no php-fpm.conf
arquivo.
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.conf
arquivo padrão no php-fpm.d
diretório
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Crie um novo www.conf
arquivo.
sudo nano php-fpm.d/www.conf
Copie e cole o seguinte texto no www.conf
arquivo. Altere seu pm.max\_children
para 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.ini
arquivo padrão .
sudo mv php.ini php.ini.original
Crie um novo php.ini
arquivo.
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\_filesize
e date.timezone
de 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 apache
grupo para o h2o
grupo.
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.php
residirá listado pela opção de diretório file.dir
acima em /var/www/www.example.com
.
sudo mkdir /var/www/www.example.com
Crie um padrão index.php
usando o phpinfo
comando para testar o PHP.
sudo nano /var/www/www.example.com/index.php
Copie e cole o texto abaixo no novo index.php
arquivo.
<?php
phpinfo();
?>
Agora, abra seu navegador e digite o nome de domínio do servidor ( example.com
ou www.example.com
) para sua instância. Você está recebendo um Unable to connect
ou uma This site can’t be reached
mensagem? 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.com
para 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.conf
para h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.conf
arquivo.
sudo nano h2o.conf
Copie e cole o texto abaixo no h2o.conf
arquivo.
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.conf
para php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Crie um novo php-fpm.conf
arquivo.
sudo nano php-fpm.conf
Copie e cole o seguinte texto no php-fpm.conf
arquivo.
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.conf
arquivo padrão no php-fpm.d
diretório
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Crie um novo www.conf
arquivo.
sudo nano php-fpm.d/www.conf
Copie e cole o texto abaixo no www.conf
arquivo. Altere seu pm.max\_children
para 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.ini
arquivo padrão .
sudo mv php.ini php.ini.original
Crie um novo php.ini
arquivo.
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.com
ou www.example.com
) para sua instância. Você está recebendo um Unable to connect
ou uma This site can’t be reached
mensagem? 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
para 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.conf
para h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.conf
arquivo.
sudo nano h2o.conf
Copie e cole o texto abaixo no h2o.conf
arquivo.
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.conf
para php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Crie um novo php-fpm.conf
arquivo.
sudo nano php-fpm.conf
Copie e cole o texto abaixo no php-fpm.conf
arquivo.
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.conf
arquivo padrão no php-fpm.d
diretório
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Crie um novo www.conf
arquivo.
sudo nano php-fpm.d/www.conf
Copie e cole o seguinte texto no www.conf
arquivo. Altere seu pm.max\_children
para 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.ini
arquivo padrão .
sudo mv php.ini php.ini.original
Crie um novo php.ini
arquivo.
sudo nano php.ini
Copie e cole o seguinte texto no novo php.ini file
. Alterar o memory\_limit
, post\_max\_size
, upload\_max\_filesize
e date.timezone
de 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 apache
grupo para o h2o
grupo.
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.php
residirá listado pela opção de diretório file.dir
acima em /var/www/example.com
.
sudo mkdir /var/www/www.example.com
Crie um padrão index.php
usando o phpinfo
comando para testar o PHP.
sudo nano /var/www/www.example.com/index.php
Copie e cole o texto abaixo no novo index.php
arquivo.
<?php
phpinfo();
?>
Agora, abra seu navegador e digite o nome de domínio do servidor ( example.com
ou www.example.com
) para sua instância. Você está recebendo um Unable to connect
ou uma This site can’t be reached
mensagem? 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.com
e https://www.example.com
para 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.conf
para h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.conf
arquivo.
sudo nano h2o.conf
Copie e cole o texto abaixo no h2o.conf
arquivo.
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.conf
arquivo.
sudo nano conf.d/ssl.conf
Copie e cole o seguinte texto no ssl.conf
arquivo.
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.pem
arquivo que será regenerado diariamente por meio de um cronjob.
sudo mkdir /etc/ssl/h2o/
Crie um novo regenerate_dhparam
arquivo.
sudo nano /etc/cron.daily/regenerate_dhparam
Copie e cole o seguinte texto no regenerate_dhparam
arquivo.
#!/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.html
usando o modelo na /var/www/html
opção de diretório file.dir
listada 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.com
ou www.example.com
) para sua instância. Você está recebendo um Unable to connect
ou uma This site can’t be reached
mensagem? 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.com
e https://example.com
para 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.conf
para h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.conf
arquivo.
sudo nano h2o.conf
Copie e cole o texto abaixo no h2o.conf
arquivo.
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.conf
arquivo.
sudo nano conf.d/ssl.conf
Copie e cole o seguinte texto no ssl.conf
arquivo.
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.pem
arquivo que será regenerado diariamente por meio de um cronjob.
sudo mkdir /etc/ssl/h2o/
Crie um novo regenerate_dhparam
arquivo.
sudo nano /etc/cron.daily/regenerate_dhparam
Copie e cole o seguinte texto dentro do regenerate_dhparam
arquivo.
#!/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.html
usando o modelo na /var/www/html
opção de diretório file.dir
listada 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.com
ou www.example.com
) para sua instância. Você está recebendo um Unable to connect
ou uma This site can’t be reached
mensagem? 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.com
e https://www.example.com
para 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.conf
para h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.conf
arquivo.
sudo nano h2o.conf
Copie e cole o texto abaixo no h2o.conf
arquivo.
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.conf
arquivo.
sudo nano conf.d/ssl.conf
Copie e cole o texto abaixo no ssl.conf
arquivo.
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.conf
para php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Crie um novo php-fpm.conf
arquivo.
sudo nano php-fpm.conf
Copie e cole o texto abaixo no php-fpm.conf
arquivo.
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.conf
arquivo padrão no php-fpm.d
diretório
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Crie um novo www.conf
arquivo.
sudo nano php-fpm.d/www.conf
Copie e cole o texto abaixo no www.conf
arquivo. Altere seu pm.max\_children
para 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.ini
arquivo padrão .
sudo mv php.ini php.ini.original
Crie um novo php.ini
arquivo.
sudo nano php.ini
Copie e cole o seguinte texto no novo php.ini file
. Alterar o memory\_limit
, post\_max\_size
, upload\_max\_filesize
e date.timezone
de 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 apache
grupo para o h2o
grupo.
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.php
residirá listado pela opção de diretório file.dir
acima em /var/www/www.example.com
.
sudo mkdir /var/www/www.example.com
Crie um padrão index.php
usando o phpinfo
comando para testar o PHP.
sudo nano /var/www/www.example.com/index.php
Copie e cole o texto abaixo no novo index.php
arquivo.
<?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 connect
ou uma This site can’t be reached
mensagem? 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.com
e https://www.example.com
para 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.conf
para h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.conf
arquivo.
sudo nano h2o.conf
Copie e cole o texto abaixo no h2o.conf
arquivo.
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.conf
arquivo.
sudo nano conf.d/ssl.conf
Copie e cole o texto abaixo no ssl.conf
arquivo.
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.pem
arquivo que será regenerado diariamente por meio de um cronjob.
sudo mkdir /etc/ssl/h2o/
Crie um novo regenerate_dhparam
arquivo.
sudo nano /etc/cron.daily/regenerate_dhparam
Copie e cole o seguinte texto dentro do regenerate_dhparam
arquivo.
#!/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.conf
para php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Crie um novo php-fpm.conf
arquivo.
sudo nano php-fpm.conf
Copie e cole o texto abaixo no php-fpm.conf
arquivo.
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.conf
arquivo padrão no php-fpm.d
diretório
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Crie um novo www.conf
arquivo.
sudo nano php-fpm.d/www.conf
Copie e cole o seguinte texto no www.conf
arquivo. Altere seu pm.max\_children
para 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.ini
arquivo padrão .
sudo mv php.ini php.ini.original
Crie um novo php.ini
arquivo.
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\_filesize
e date.timezone
de 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 apache
grupo para o h2o
grupo.
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.conf
para h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Crie um novo h2o.conf
arquivo.
sudo nano h2o.conf
Copie e cole o texto abaixo no h2o.conf
arquivo.
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.conf
arquivo.
sudo nano conf.d/ssl.conf
Copie e cole o texto abaixo no ssl.conf
arquivo.
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.pem
arquivo que será regenerado diariamente por meio de um cronjob.
sudo mkdir /etc/ssl/h2o/
Crie um novo regenerate_dhparam
arquivo.
sudo nano /etc/cron.daily/regenerate_dhparam
Copie e cole o seguinte texto dentro do regenerate_dhparam
arquivo.
#!/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\_filesize
e date.timezone
de 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 apache
grupo para o h2o
grupo.
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.php
residirá listado pela opção de diretório file.dir
acima em /var/www/example.com
.
sudo mkdir /var/www/www.example.com
Crie um padrão index.php
usando o phpinfo
comando para testar o PHP.
sudo nano /var/www/www.example.com/index.php
Copie e cole o texto abaixo no novo index.php
arquivo.
<?php
phpinfo();
?>
Agora, abra seu navegador e digite o nome de domínio do servidor ( example.com
ou www.example.com
) para sua instância. Você está recebendo um Unable to connect
ou uma This site can’t be reached
mensagem? 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.