Instale o servidor da Web H2O no CentOS 7

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.

Pré-requisitos

  • Uma instância do servidor CentOS 7 x64.
  • Um usuário sudo .
  • Um certificado SSL (opcional)

Etapa 1: atualizar o sistema

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

Etapa 2: Instale o H2O

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

Etapa 3: Configurando o servidor da Web 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.


Redirecionar 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!

Redirecionar 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!

Redirecionar 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.


Redirecionar 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.


Redirecionar 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.


Redirecionar 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.


Redirecionar 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!

Redirecionar 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!

Redirecionar 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.


Redirect http://example.com, http://www.example.com, and https://example.com to https://www.example.com (Dynamic Page, PHP-FPM 5.6.x) Configuration

Navigate 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.


Redirecionar 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.


Redirect http://example.com, http://www.example.com, and https://example.com to https://www.example.com (Dynamic Page, PHP-FPM 7.1.x) Configuration

Navigate 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.



Leave a Comment

Configure sua própria rede privada com o OpenVPN

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

Como instalar e configurar o CyberPanel no servidor CentOS 7

Como instalar e configurar o CyberPanel no servidor CentOS 7

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

Instale o eSpeak no CentOS 7

Instale o eSpeak no CentOS 7

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

Monitore seus dispositivos usando o LibreNMS no CentOS 7

Monitore seus dispositivos usando o LibreNMS no CentOS 7

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

Como usar o Sudo no Debian, CentOS e FreeBSD

Como usar o Sudo no Debian, CentOS e FreeBSD

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

Como instalar o RabbitMQ no CentOS 7

Como instalar o RabbitMQ no CentOS 7

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

Configurar o Nginx-RTMP no CentOS 7

Configurar o Nginx-RTMP no CentOS 7

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

Como instalar o Gradle no CentOS 7

Como instalar o Gradle no CentOS 7

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

Instale um servidor FTP com ProFTPd no CentOS 6 ou CentOS 7

Instale um servidor FTP com ProFTPd no CentOS 6 ou CentOS 7

Usando um sistema diferente? Neste guia, veremos como configurar um servidor FTP (ProFTPd) para transferir arquivos entre o seu PC e o seu servidor.

Instalando o Netdata no CentOS 7

Instalando o Netdata no CentOS 7

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:

Como instalar o Apache Cassandra 3.11.x no CentOS 7

Como instalar o Apache Cassandra 3.11.x no CentOS 7

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

Como instalar um servidor Just Cause 2 (JC2-MP) no CentOS 7

Como instalar um servidor Just Cause 2 (JC2-MP) no CentOS 7

Neste tutorial, aprenda como configurar um servidor multiplayer Just Cause 2. Pré-requisitos Verifique se o sistema está totalmente atualizado antes de começarmos

Como instalar o servidor Starbound no CentOS 7

Como instalar o servidor Starbound no CentOS 7

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

Instalando e configurando o ZNC no CentOS 7

Instalando e configurando o ZNC no CentOS 7

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

Como instalar o Django no CentOS 7

Como instalar o Django no CentOS 7

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ê

Como instalar o CMS de outubro no CentOS 7

Como instalar o CMS de outubro no CentOS 7

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

Como configurar a autenticação de dois fatores (2FA) para SSH no CentOS 6 usando o Google Authenticator

Como configurar a autenticação de dois fatores (2FA) para SSH no CentOS 6 usando o Google Authenticator

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

Como instalar o MyCLI no Linux (CentOS, Debian, Fedora e Ubuntu)

Como instalar o MyCLI no Linux (CentOS, Debian, Fedora e Ubuntu)

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

Como instalar o Directus 6.4 CMS em um CentOS 7 LAMP VPS

Como instalar o Directus 6.4 CMS em um CentOS 7 LAMP VPS

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

Como instalar o Reader Self 3.5 RSS Reader em um CentOS 7 LAMP VPS

Como instalar o Reader Self 3.5 RSS Reader em um CentOS 7 LAMP VPS

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

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

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: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

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.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

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+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

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.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

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

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

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

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À 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

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

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.