Instalați serverul web H2O pe CentOS 7

H2O este un server HTTP de nouă generație care are o implementare excelentă, completă, a tuturor serverelor web actuale utilizate. Cu H2O ca server web, puteți profita de noile caracteristici ale specificației HTTP / 2, cum ar fi optimizarea latenței, server-push și prioritizarea pe server, care pot profita de funcțiile moderne ale browserului despre care se vorbește foarte rar.

În acest tutorial detaliat, vă voi arăta pas cu pas cum să executați H2O pe instanța dvs. CentOS 7 x64.

Cerințe preliminare

  • O instanță de server CentOS 7 x64.
  • Un utilizator sudo .
  • Un certificat SSL (opțional)

Pasul 1: Actualizați sistemul

Conectați-vă prin SSH cu datele de acreditare găsite în instanța dvs. și actualizați sistemul după cum urmează.

sudo yum install epel-release -y
sudo yum clean all && sudo yum update -y

Pasul 2: Instalați H2O

Pentru a instala H2O pe CentOS 7, trebuie să adăugați depozitul Bintray RPM pentru a instala binarele H2O pre-construite. Utilizați editorul Nano pentru a crea o repetare personalizată.

sudo nano /etc/yum.repos.d/bintray-h2o-rpm.repo

Copiați și lipiți textul de mai jos în fișierul 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

Apoi, instalați H2O.

sudo yum install h2o -y

Acum, că H2O este instalat, dar înainte de a activa și porni serviciul, este necesară o configurație adecvată și trebuie să creăm un utilizator și un grup specific pentru care H2O să fie difuzat. Creați un grup și un utilizator pentru H2O pentru a rula sub denumirea h2o.

sudo groupadd -g 101 h2o
sudo useradd -d /etc/h2o -g 101 -M -s /sbin/nologin -u 101 h2o

Pasul 3: Configurarea serverului web H2O

Următorii pași vor da exemple de setari de configurare pentru diverse unencrypted, encrypted, staticși dynamicserver de setari; precum și o combinație dintre toate cele patru.


Redirecționați http://www.example.comla http://example.com(pagini HTML statice, fără PHP)

Navigați la /etc/h2o/director.

cd /etc/h2o/

Redenumiți numele implicit h2o.confla h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Creați un nou h2o.conffișier.

sudo nano h2o.conf

Copiați și lipiți textul de mai jos în h2o.conffișier.

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

Activați și porniți serverul H2O.

sudo systemctl enable h2o
sudo systemctl start h2o

Creați o valoare implicită index.htmlfolosind șablonul din /var/www/htmlopțiunea de director file.direnumerată mai sus /var/www/example.com.

sudo cp -var /var/www/html /var/www/example.com

Acum, deschideți browserul și introduceți numele de domeniu al serverului ( example.comsau www.example.com) pentru instanța dvs. Primești un mesaj Unable to connectsau un This site can’t be reachedmesaj? Setarea implicită a firewall-ului CentOS nu permite conexiunile primite la portul http. Executați următoarele pentru a o deschide.

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload

Actualizați pagina din browserul dvs. ( F5) și veți primi acest mesaj.


Welcome to H2O - an optimized HTTP server

It works!

Redirecționați http://example.comla http://www.example.com(pagini HTML statice, fără PHP)

Navigați la /etc/h2o/director.

cd /etc/h2o/

Redenumiți numele implicit h2o.confla h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Creați un nou h2o.conffișier.

sudo nano h2o.conf

Copiați și lipiți următorul text în h2o.conffișier.

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

Activați și porniți serverul H2O.

sudo systemctl enable h2o
sudo systemctl start h2o

Creați un index.htmlfișier implicit folosind șablonul din /var/www/htmlopțiunea de director file.direnumerată mai sus /var/www/www.example.com.

sudo cp -var /var/www/html /var/www/www.example.com

Acum, deschideți browserul și introduceți numele de domeniu al serverului ( example.comsau www.example.com) pentru instanța dvs. Primești un mesaj Unable to connectsau un This site can’t be reachedmesaj? Setarea implicită a firewall-ului CentOS nu permite conexiunile primite la portul http. Faceți următoarele pentru a o deschide.

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload

Actualizați pagina din browserul dvs. ( F5) și veți primi acest mesaj.


Welcome to H2O - an optimized HTTP server

It works!

Redirecționați http://www.example.comla http://example.com(Pagina dinamică, PHP-FPM 5.6.x) Configurare

Navigați la /etc/h2o/director.

cd /etc/h2o/

Redenumiți numele implicit h2o.confla h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Creați un nou h2o.conffișier.

sudo nano h2o.conf

Copiați și lipiți următorul text în h2o.conffișier.

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

Pentru a procesa PHP, demonul PHP-FPM 5.6 trebuie instalat și configurat. Pentru a instala o versiune de PHP-FPM mai nouă decât cea implicită 5.4.x, trebuie instalat repo REMI, care conține versiunile PHP 5.6.x, 7.0.x și 7.1.x. Instalați PHP versiunea 5.6.x.

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php56-php-fpm -y

Navigați la /opt/remi/php56/root/etc/director.

cd /opt/remi/php56/root/etc/

Redenumiți numele implicit php-fpm.confla php-fpm.conf.original.

sudo mv php-fpm.conf php-fpm.conf.original

Creați un nou php-fpm.conffișier.

sudo nano php-fpm.conf

Copiați și lipiți textul de mai jos în php-fpm.conffișier.

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

Redenumiți www.conffișierul implicit din php-fpm.ddirector.

sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original

Creați un nou www.conffișier.

sudo nano php-fpm.d/www.conf

Copiați și lipiți textul de mai jos în www.conffișier. Schimbați-vă pm.max\_childrenpentru a se potrivi cu numărul de CPU în conformitate cu instanța dvs. 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

Redenumiți php.inifișierul implicit .

sudo mv php.ini php.ini.original

Creați un nou php.inifișier.

sudo nano php.ini

Copiați și lipiți textul de mai jos în nou php.ini file. Schimbarea memory\_limit, post\_max\_size, upload\_max\_filesizeși date.timezoneîn conformitate cu instanța dumneavoastră 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"

Schimbați proprietatea grupului pentru /opt/remi/php56/root/var/lib/php/session/directorul din apachegrup în h2ogrup.

sudo chown root.h2o /opt/remi/php56/root/var/lib/php/session/

Creați un director în care vor avea loc jurnalele serverului PHP-FPM.

sudo mkdir /var/log/php-fpm/

Activați și porniți serverul PHP-FPM.

sudo systemctl enable php56-php-fpm 
sudo systemctl start php56-php-fpm

Activați și porniți serverul H2O.

sudo systemctl enable h2o
sudo systemctl start h2o

Creați un director în care implicit index.phpva reveni listat în opțiunea de director de file.dirmai sus /var/www/example.com.

sudo mkdir /var/www/example.com

Creați o valoare implicită index.phpfolosind phpinfocomanda pentru a testa PHP.

sudo nano /var/www/example.com/index.php

Copiați și lipiți textul de mai jos în noul index.phpfișier.

<?php
phpinfo();
?>

Acum, deschideți browserul și introduceți numele de domeniu al serverului ( example.comsau www.example.com) pentru instanța dvs. Primești un mesaj Unable to connectsau un This site can’t be reachedmesaj? Setarea implicită a firewall-ului CentOS nu permite conexiunile primite la portul http. Faceți următoarele pentru a o deschide.

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload

Actualizați pagina din browserul dvs. ( F5) și veți obține pagina de informații PHP standard.


Redirecționați http://example.comla http://www.example.com(Pagina dinamică, PHP-FPM 5.6.x) Configurare

Navigați la /etc/h2o/director.

cd /etc/h2o/

Redenumiți numele implicit h2o.confla h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Creați un nou h2o.conffișier.

sudo nano h2o.conf

Copiați și lipiți textul de mai jos în h2o.conffișier.

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

Pentru a procesa PHP, demonul PHP-FPM 5.6 trebuie instalat și configurat. Pentru a instala o versiune de PHP-FPM mai nouă decât cea implicită 5.4.x, trebuie instalat repo REMI, care conține versiunile PHP 5.6.x, 7.0.x și 7.1.x. Introduceți următoarele comenzi pentru a instala PHP versiunea 5.6.x.

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php56-php-fpm -y

Navigați la /opt/remi/php56/root/etc/director.

cd /opt/remi/php56/root/etc/

Redenumiți numele implicit php-fpm.confla php-fpm.conf.original.

sudo mv php-fpm.conf php-fpm.conf.original

Creați un nou php-fpm.conffișier.

sudo nano php-fpm.conf

Copiați și lipiți textul de mai jos în php-fpm.conffișier.

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

Redenumiți www.conffișierul implicit din php-fpm.ddirector.

sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original

Creați un nou www.conffișier.

sudo nano php-fpm.d/www.conf

Copiați și lipiți următorul text în www.conffișier. Schimbați-vă pm.max\_childrenpentru a se potrivi cu numărul de CPU în conformitate cu instanța dvs. 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

Redenumiți php.inifișierul implicit .

sudo mv php.ini php.ini.original

Creați un nou php.inifișier.

sudo nano php.ini

Copiați și lipiți textul de mai jos în nou php.ini file. Schimbarea memory\_limit, post\_max\_size, upload\_max\_filesizeși date.timezoneîn conformitate cu instanța dumneavoastră 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"

Schimbați proprietatea grupului pentru /opt/remi/php56/root/var/lib/php/session/directorul din apachegrup în h2ogrup.

sudo chown root.h2o /opt/remi/php56/root/var/lib/php/session/

Creați un director în care vor avea loc jurnalele serverului PHP-FPM.

sudo mkdir /var/log/php-fpm/

Activați și porniți serverul PHP-FPM.

sudo systemctl enable php56-php-fpm 
sudo systemctl start php56-php-fpm

Activați și porniți serverul H2O.

sudo systemctl enable h2o
sudo systemctl start h2o

Creați un director în care implicit index.phpva reveni listat în opțiunea de director de file.dirmai sus /var/www/www.example.com.

sudo mkdir /var/www/www.example.com

Creați o valoare implicită index.phpfolosind phpinfocomanda pentru a testa PHP.

sudo nano /var/www/www.example.com/index.php

Copiați și lipiți textul de mai jos în noul index.phpfișier.

<?php
phpinfo();
?>

Now, open your browser and enter the server domain name (example.com or www.example.com) for your instance. Are you getting an Unable to connect or a This site can’t be reached message? CentOS's default firewall setting disallows incoming connections to the http port. Do the following to open it.

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload

Refresh the page in your browser (F5) and you will get the standard PHP info page.


Redirect http://www.example.com To http://example.com (Dynamic Page, PHP-FPM 7.1.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:
      "/":
        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

Pentru a procesa PHP, demonul PHP-FPM 7.1 trebuie instalat și configurat. Pentru a instala o versiune de PHP-FPM mai nouă decât cea implicită 5.4.x, trebuie instalat repo REMI, care conține versiunile PHP 5.6.x, 7.0.x și 7.1.x. Introduceți următoarele comenzi de mai jos pentru a instala PHP versiunea 7.1.x.

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php71-php-fpm -y

Navigați la /etc/opt/remi/php71/director.

cd /etc/opt/remi/php71/

Redenumiți numele implicit php-fpm.confla php-fpm.conf.original.

sudo mv php-fpm.conf php-fpm.conf.original

Creați un nou php-fpm.conffișier.

sudo nano php-fpm.conf

Copiați și lipiți următorul text în php-fpm.conffișier.

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

Redenumiți www.conffișierul implicit din php-fpm.ddirector.

sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original

Creați un nou www.conffișier.

sudo nano php-fpm.d/www.conf

Copiați și lipiți textul de mai jos în www.conffișier. Schimbați-vă pm.max\_childrenpentru a se potrivi cu numărul de CPU în conformitate cu instanța dvs. 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

Redenumiți php.inifișierul implicit .

sudo mv php.ini php.ini.original

Creați un nou php.inifișier.

sudo nano php.ini

Copiați și lipiți textul de mai jos în nou php.ini file. Schimbarea memory\_limit, post\_max\_size, upload\_max\_filesizeși date.timezoneîn conformitate cu instanța dumneavoastră 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"

Schimbați proprietatea grupului pentru /var/opt/remi/php71/lib/php/session/directorul din apachegrup în h2ogrup.

sudo chown root.h2o /var/opt/remi/php71/lib/php/session/

Creați un director în care vor avea loc jurnalele serverului PHP-FPM.

sudo mkdir /var/log/php-fpm/

Activați și porniți serverul PHP-FPM.

sudo systemctl enable php71-php-fpm 
sudo systemctl start php71-php-fpm

Activați și porniți serverul H2O.

sudo systemctl enable h2o
sudo systemctl start h2o

Creați un director în care implicit index.phpva reveni listat în opțiunea de director de file.dirmai sus /var/www/example.com.

sudo mkdir /var/www/example.com

Creați o valoare implicită index.phpfolosind phpinfocomanda pentru a testa PHP.

sudo nano /var/www/example.com/index.php

Copiați și lipiți textul de mai jos în noul index.phpfișier.

<?php
phpinfo();
?>

Acum, deschideți browserul și introduceți numele de domeniu al serverului ( example.comsau www.example.com) pentru instanța dvs. Primești un mesaj Unable to connectsau un This site can’t be reachedmesaj? Setarea implicită a firewall-ului CentOS nu permite conexiunile primite la portul http. Faceți următoarele pentru a o deschide.

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload

Actualizați pagina din browserul dvs. ( F5) și veți obține pagina de informații PHP standard.


Redirecționează http://example.comla http://www.example.com(Pagina dinamică, PHP-FPM 7.1.x) Configurare

Navigați la /etc/h2o/director.

cd /etc/h2o/

Redenumiți numele implicit h2o.confla h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Creați un nou h2o.conffișier.

sudo nano h2o.conf

Copiați și lipiți textul de mai jos în h2o.conffișier.

access-log: /var/log/h2o/access.log
compress: ON
error-log: /var/log/h2o/error.log
expires: 1 day
file.index: [ 'index.php' ]
hosts:
  "example.com:80":
    listen:
      port: 80
    paths:
      "/":
        redirect:
          status: 301
          url: "http://www.example.com/"
  "www.example.com:80":
    listen:
      port: 80
    paths:
      "/":
        file.dir: /var/www/www.example.com
        redirect:
          internal: YES
          status: 307
          url: /index.php
file.custom-handler:
  extension: .php
  fastcgi.connect:
    port: /run/php-fpm-7.1.sock
    type: unix
pid-file: /var/run/h2o/h2o.pid
send-server-name: OFF
setenv:
  HTTP_PROXY: ""
user: h2o

In order to process PHP, the PHP-FPM 7.1 daemon must be installed and configured. In order to install a version of PHP-FPM newer than the default 5.4.x, the REMI repo must be installed which contains PHP versions 5.6.x, 7.0.x and 7.1.x. Type the following commands below to install PHP version 7.1.x.

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php71-php-fpm -y

Navigate to the /etc/opt/remi/php71/ directory.

cd /etc/opt/remi/php71/

Rename the default php-fpm.conf to php-fpm.conf.original.

sudo mv php-fpm.conf php-fpm.conf.original

Create a new php-fpm.conf file.

sudo nano php-fpm.conf

Copy and paste the text below into the php-fpm.conf file.

include=/etc/opt/remi/php71/php-fpm.d/*.conf
[global]
daemonize = yes
emergency_restart_threshold = 2
emergency_restart_interval = 1m
error_log = /var/log/php-fpm/php-fpm-7.1-error.log
pid = /var/run/php-fpm-7.1.pid
process_control_timeout = 10s

Rename the default www.conf file in the php-fpm.d directory.

sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original

Create a new www.conf file.

sudo nano php-fpm.d/www.conf

Copy and paste the following text into the www.conf file. Change your pm.max\_children to match the number of CPUs in accordance with your VPS instance.

[www]
group = h2o
listen = /var/run/php-fpm-7.1.sock
listen.backlog = 65536
listen.owner = h2o
listen.group = h2o
pm = static
pm.max_children = 2
pm.max_requests = 10240
user = h2o

Rename the default php.ini file.

sudo mv php.ini php.ini.original

Create a new php.ini file.

sudo nano php.ini

Copy and paste the following text into the new php.ini file. Change the memory\_limit, post\_max\_size, upload\_max\_filesize and date.timezone in accordance with your VPS instance.

[PHP]
allow_url_fopen = On
always_populate_raw_post_data = -1
display_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
expose_php = Off
log_errors = On
memory_limit = 256M
output_buffering = 4096
post_max_size = 64M
register_argc_argv = Off
request_order = "GP"
upload_max_filesize = 64M
variables_order = "GPCS"
[Date]
date.timezone = America/New_York
[Session]
session.cache_limiter =
session.gc_divisor = 1000
session.hash_bits_per_character = 5
session.save_handler = files
session.save_path = "/var/opt/remi/php71/lib/php/session"
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

Change the group ownership for the /var/opt/remi/php71/lib/php/session/ directory from the apache group to the h2o group.

sudo chown root.h2o /var/opt/remi/php71/lib/php/session/

Create a directory where the PHP-FPM server logs will reside.

sudo mkdir /var/log/php-fpm/

Enable and start the PHP-FPM server.

sudo systemctl enable php71-php-fpm 
sudo systemctl start php71-php-fpm

Enable and start the H2O server.

sudo systemctl enable h2o
sudo systemctl start h2o

Create a directory where the default index.php will reside listed by the directory option file.dir above in /var/www/example.com.

sudo mkdir /var/www/www.example.com

Create a default index.php using the phpinfo command to test PHP.

sudo nano /var/www/www.example.com/index.php

Copy and paste the text below in the new index.php file.

<?php
phpinfo();
?>

Acum, deschideți browserul și introduceți numele de domeniu al serverului ( example.comsau www.example.com) pentru instanța dvs. Primești un mesaj Unable to connectsau un This site can’t be reachedmesaj? Setarea implicită a firewall-ului CentOS nu permite conexiunile primite la portul http. Faceți următoarele pentru a o deschide.

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload

Actualizați pagina din browserul dvs. ( F5) și veți obține pagina de informații PHP standard.


Redirecționarea http://example.com, http://www.example.comși https://www.example.compentru a https://example.com(Static pagini HTML, PHP nr) Configurare

Navigați la /etc/h2o/director.

cd /etc/h2o/

Redenumiți numele implicit h2o.confla h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Creați un nou h2o.conffișier.

sudo nano h2o.conf

Copiați și lipiți textul de mai jos în h2o.conffișier.

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

Creați un director personalizat pentru a stoca opțiunile SSL implicite pentru toate site-urile web care utilizează SSL.

sudo mkdir conf.d

Creați un nou ssl.conffișier.

sudo nano conf.d/ssl.conf

Copiați și lipiți următorul text în ssl.conffișier.

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

Realizați un director pentru a stoca dhparam_2048.pemfișierul care va fi regenerat zilnic prin intermediul unui cronjob.

sudo mkdir /etc/ssl/h2o/

Creați un nou regenerate_dhparamfișier.

sudo nano /etc/cron.daily/regenerate_dhparam

Copiați și lipiți următorul text în regenerate_dhparamfișier.

#!/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

Faceți fișierul bash tocmai creat executabil.

sudo chmod +x /etc/cron.daily/regenerate_dhparam

Executați scriptul bash pentru o primă execuție, deoarece H2O nu va începe corect dacă nu este generat. Acest lucru va dura aproximativ un minut sau două pentru a genera la prima rulare.

sudo /etc/cron.daily/regenerate_dhparam

Activați și porniți serverul H2O.

sudo systemctl enable h2o
sudo systemctl start h2o

Creați o valoare implicită index.htmlfolosind șablonul din /var/www/htmlopțiunea de director file.direnumerată mai sus /var/www/example.com.

sudo cp -var /var/www/html /var/www/example.com

Acum, deschideți browserul și introduceți numele de domeniu al serverului ( example.comsau www.example.com) pentru instanța dvs. Primești un mesaj Unable to connectsau un This site can’t be reachedmesaj? Setarea implicită a firewall-ului CentOS nu permite conexiunile primite la portul http. Faceți următoarele pentru a o deschide.

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

Actualizați pagina din browserul dvs. ( F5) și veți primi acest mesaj.


Welcome to H2O - an optimized HTTP server

It works!

Redirecționarea http://example.com, http://www.example.comși https://example.compentru a https://www.example.com(Static pagini HTML, PHP nr) Configurare

Navigați la /etc/h2o/director.

cd /etc/h2o/

Redenumiți numele implicit h2o.confla h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Creați un nou h2o.conffișier.

sudo nano h2o.conf

Copiați și lipiți textul de mai jos în h2o.conffișier.

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

Creați un director personalizat pentru a stoca opțiunile SSL implicite pentru toate site-urile web care utilizează SSL.

sudo mkdir conf.d

Creați un nou ssl.conffișier.

sudo nano conf.d/ssl.conf

Copy and paste the following text 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

Enable and start the H2O server.

sudo systemctl enable h2o
sudo systemctl start h2o

Create a default index.html using the template in /var/www/html to the directory option file.dir listed above in /var/www/www.example.com.

sudo cp -var /var/www/html /var/www/www.example.com

Acum, deschideți browserul și introduceți numele de domeniu al serverului ( example.comsau www.example.com) pentru instanța dvs. Primești un mesaj Unable to connectsau un This site can’t be reachedmesaj? Setarea implicită a firewall-ului CentOS nu permite conexiunile primite la portul http. Faceți următoarele pentru a o deschide.

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

Actualizați pagina din browserul dvs. ( F5) și veți primi acest mesaj.


Welcome to H2O - an optimized HTTP server

It works!

Redirecționarea http://example.com, http://www.example.comși https://www.example.coma https://example.com(Dynamic pagina, PHP-5.6.x FPM) Configurare

Navigați la /etc/h2o/director.

cd /etc/h2o/

Redenumiți numele implicit h2o.confla h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Creați un nou h2o.conffișier.

sudo nano h2o.conf

Copiați și lipiți textul de mai jos în h2o.conffișier.

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

Creați un director personalizat pentru a stoca opțiunile SSL implicite pentru toate site-urile web care utilizează SSL.

sudo mkdir conf.d

Creați un nou ssl.conffișier.

sudo nano conf.d/ssl.conf

Copiați și lipiți textul de mai jos în ssl.conffișier.

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

Realizați un director pentru a stoca dhparam_2048.pemfișierul care va fi regenerat zilnic prin intermediul unui cronjob.

sudo mkdir /etc/ssl/h2o/

Creați un nou regenerate_dhparamfișier.

sudo nano /etc/cron.daily/regenerate_dhparam

Copiați și lipiți următorul text în interiorul regenerate_dhparamfișierului.

#!/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

Faceți fișierul bash tocmai creat executabil.

sudo chmod +x /etc/cron.daily/regenerate_dhparam

Executați scriptul bash pentru o primă execuție, deoarece H2O nu va începe corect dacă nu este generat. Acest lucru va dura aproximativ un minut sau două pentru a genera la prima rulare.

sudo /etc/cron.daily/regenerate_dhparam

Pentru a procesa PHP, demonul PHP-FPM 5.6 trebuie instalat și configurat. Pentru a instala o versiune de PHP-FPM mai nouă decât cea implicită 5.4.x, trebuie instalat repo REMI, care conține versiunile PHP 5.6.x, 7.0.x și 7.1.x. Introduceți următoarele comenzi pentru a instala PHP versiunea 5.6.x.

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php56-php-fpm -y

Navigați la /opt/remi/php56/root/etc/director.

cd /opt/remi/php56/root/etc/

Redenumiți numele implicit php-fpm.confla php-fpm.conf.original.

sudo mv php-fpm.conf php-fpm.conf.original

Creați un nou php-fpm.conffișier.

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/

Redenumiți numele implicit h2o.confla h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Creați un nou h2o.conffișier.

sudo nano h2o.conf

Copiați și lipiți textul de mai jos în h2o.conffișier.

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

Creați un director personalizat pentru a stoca opțiunile SSL implicite pentru toate site-urile web care utilizează SSL.

sudo mkdir conf.d

Creați un nou ssl.conffișier.

sudo nano conf.d/ssl.conf

Copiați și lipiți textul de mai jos în ssl.conffișier.

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

Realizați un director pentru a stoca dhparam_2048.pemfișierul care va fi regenerat zilnic prin intermediul unui cronjob.

sudo mkdir /etc/ssl/h2o/

Creați un nou regenerate_dhparamfișier.

sudo nano /etc/cron.daily/regenerate_dhparam

Copiați și lipiți următorul text în interiorul regenerate_dhparamfișierului.

#!/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

Faceți fișierul bash tocmai creat executabil.

sudo chmod +x /etc/cron.daily/regenerate_dhparam

Executați scriptul bash pentru o primă execuție, deoarece H2O nu va începe corect dacă nu este generat. Acest lucru va dura aproximativ un minut sau două pentru a genera la prima rulare.

sudo /etc/cron.daily/regenerate_dhparam

In order to process PHP, the PHP-FPM 5.6 daemon must be installed and configured. In order to install a version of PHP-FPM newer than the default 5.4.x, the REMI repo must be installed which contains PHP versions 5.6.x, 7.0.x and 7.1.x. Type the following commands to install PHP version 5.6.x.

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php56-php-fpm -y

Navigate to the /opt/remi/php56/root/etc/ directory.

cd /opt/remi/php56/root/etc/

Rename the default php-fpm.conf to php-fpm.conf.original.

sudo mv php-fpm.conf php-fpm.conf.original

Create a new php-fpm.conf file.

sudo nano php-fpm.conf

Copy and paste the text below into the php-fpm.conf file.

include=/opt/remi/php56/root/etc/php-fpm.d/*.conf
[global]
daemonize = yes
emergency_restart_threshold = 2
emergency_restart_interval = 1m
error_log = /var/log/php-fpm/php-fpm-5.6-error.log
pid = /var/run/php-fpm-5.6.pid
process_control_timeout = 10s

Rename the default www.conf file in the php-fpm.d directory.

sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original

Create a new www.conf file.

sudo nano php-fpm.d/www.conf

Copy and paste the text below into the www.conf file. Change your pm.max\_children to match the number of CPUs in accordance with your VPS instance.

[www]
group = h2o
listen = /var/run/php-fpm-5.6.sock
listen.backlog = 65536
listen.owner = h2o
listen.group = h2o
pm = static
pm.max_children = 2
pm.max_requests = 10240
user = h2o

Rename the default php.ini file.

sudo mv php.ini php.ini.original

Create a new php.ini file.

sudo nano php.ini

Copy and paste the following text into the new php.ini file. Change the memory\_limit, post\_max\_size, upload\_max\_filesize and date.timezone in accordance with your VPS instance.

[PHP]
allow_url_fopen = On
always_populate_raw_post_data = -1
display_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
expose_php = Off
log_errors = On
memory_limit = 256M
output_buffering = 4096
post_max_size = 64M
register_argc_argv = Off
request_order = "GP"
upload_max_filesize = 64M
variables_order = "GPCS"
[Date]
date.timezone = America/New_York
[Session]
session.cache_limiter =
session.gc_divisor = 1000
session.hash_bits_per_character = 5
session.save_handler = files
session.save_path = "/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/www.example.com.

sudo mkdir /var/www/www.example.com

Create a default index.php using the phpinfo command to test PHP.

sudo nano /var/www/www.example.com/index.php

Copy and paste the text below in the new index.php file.

<?php
phpinfo();
?>

Acum, deschideți browserul și introduceți numele de domeniu al serverului ( example.com or www.example.com) pentru instanța dvs. Primești un mesaj Unable to connectsau un This site can’t be reachedmesaj? Setarea implicită a firewall-ului CentOS nu permite conexiunile primite la portul http. Faceți următoarele pentru a o deschide.

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

Actualizați pagina din browserul dvs. ( F5) și veți obține pagina de informații PHP standard.


Redirecționarea http://example.com, http://www.example.comși https://www.example.coma https://example.com(Dynamic pagina, PHP-7.1.x FPM) Configurare

Navigați la /etc/h2o/director.

cd /etc/h2o/

Redenumiți numele implicit h2o.confla h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Creați un nou h2o.conffișier.

sudo nano h2o.conf

Copiați și lipiți textul de mai jos în h2o.conffișier.

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

Creați un director personalizat pentru a stoca opțiunile SSL implicite pentru toate site-urile web care utilizează SSL.

sudo mkdir conf.d

Creați un nou ssl.conffișier.

sudo nano conf.d/ssl.conf

Copiați și lipiți textul de mai jos în ssl.conffișier.

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

Realizați un director pentru a stoca dhparam_2048.pemfișierul care va fi regenerat zilnic prin intermediul unui cronjob.

sudo mkdir /etc/ssl/h2o/

Creați un nou regenerate_dhparamfișier.

sudo nano /etc/cron.daily/regenerate_dhparam

Copiați și lipiți următorul text în interiorul regenerate_dhparamfișierului.

#!/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

Faceți fișierul bash tocmai creat executabil.

sudo chmod +x /etc/cron.daily/regenerate_dhparam

Executați scriptul bash pentru o primă execuție, deoarece H2O nu va începe corect dacă nu este generat. Acest lucru va dura aproximativ un minut sau două pentru a genera la prima rulare.

sudo /etc/cron.daily/regenerate_dhparam

Pentru a procesa PHP, demonul PHP-FPM 7.1 trebuie instalat și configurat. Pentru a instala o versiune de PHP-FPM mai nouă decât cea implicită 5.4.x, trebuie instalat repo REMI, care conține versiunile PHP 5.6.x, 7.0.x și 7.1.x. Introduceți următoarele comenzi de mai jos pentru a instala PHP versiunea 7.1.x.

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php71-php-fpm -y

Navigați la /etc/opt/remi/php71/director.

cd /etc/opt/remi/php71/

Redenumiți numele implicit php-fpm.confla php-fpm.conf.original.

sudo mv php-fpm.conf php-fpm.conf.original

Creați un nou php-fpm.conffișier.

sudo nano php-fpm.conf

Copiați și lipiți textul de mai jos în php-fpm.conffișier.

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

Redenumiți www.conffișierul implicit din php-fpm.ddirector.

sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original

Creați un nou www.conffișier.

sudo nano php-fpm.d/www.conf

Copiați și lipiți următorul text în www.conffișier. Schimbați-vă pm.max\_childrenpentru a se potrivi cu numărul de CPU în conformitate cu instanța dvs. 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

Redenumiți php.inifișierul implicit .

sudo mv php.ini php.ini.original

Creați un nou php.inifișier.

sudo nano php.ini

Copiați și lipiți textul de mai jos în nou php.ini file. Schimbarea memory\_limit, post\_max\_size, upload\_max\_filesizeși date.timezoneîn conformitate cu instanța dumneavoastră 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"

Schimbați proprietatea grupului pentru /var/opt/remi/php71/lib/php/session/directorul din apachegrup în h2ogrup.

sudo chown root.h2o /var/opt/remi/php71/lib/php/session/

Creați un director în care vor avea loc jurnalele serverului PHP-FPM.

sudo mkdir /var/log/php-fpm/

Activați și porniți serverul PHP-FPM.

sudo systemctl enable php71-php-fpm 
sudo systemctl start php71-php-fpm

Activați și porniți serverul H2O.

sudo systemctl enable h2o
sudo systemctl start h2o

Creați un director în care implicit index.phpva reveni listat în opțiunea de director de file.dirmai sus /var/www/example.com.

sudo mkdir /var/www/example.com

Creați o valoare implicită index.phpfolosind phpinfocomanda pentru a testa PHP.

sudo nano /var/www/example.com/index.php

Copiați și lipiți textul de mai jos în noul index.phpfișier.

<?php
phpinfo();
?>

Acum, deschideți browserul și introduceți numele de domeniu al serverului ( example.comsau www.example.com) pentru instanța dvs. Primești un mesaj Unable to connectsau un This site can’t be reachedmesaj? Setarea implicită a firewall-ului CentOS nu permite conexiunile primite la portul http. Faceți următoarele pentru a o deschide.

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

Actualizați pagina din browserul dvs. ( F5) și veți obține pagina de informații PHP standard.


Redirecționarea http://example.com, http://www.example.comși https://example.coma https://www.example.com(Dynamic pagina, PHP-7.1.x FPM) Configurare

Navigați la /etc/h2o/director.

cd /etc/h2o/

Redenumiți numele implicit h2o.confla h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Creați un nou h2o.conffișier.

sudo nano h2o.conf

Copiați și lipiți textul de mai jos în h2o.conffișier.

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

Creați un director personalizat pentru a stoca opțiunile SSL implicite pentru toate site-urile web care utilizează SSL.

sudo mkdir conf.d

Creați un nou ssl.conffișier.

sudo nano conf.d/ssl.conf

Copiați și lipiți textul de mai jos în ssl.conffișier.

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

Realizați un director pentru a stoca dhparam_2048.pemfișierul care va fi regenerat zilnic prin intermediul unui cronjob.

sudo mkdir /etc/ssl/h2o/

Creați un nou regenerate_dhparamfișier.

sudo nano /etc/cron.daily/regenerate_dhparam

Copiați și lipiți următorul text în interiorul regenerate_dhparamfișierului.

#!/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

Faceți fișierul bash tocmai creat executabil.

sudo chmod +x /etc/cron.daily/regenerate_dhparam

Executați scriptul bash pentru o primă execuție, deoarece H2O nu va începe corect dacă nu este generat. Acest lucru va dura aproximativ un minut sau două pentru a genera la prima rulare.

sudo /etc/cron.daily/regenerate_dhparam

Pentru a procesa PHP, demonul PHP-FPM 7.1 trebuie instalat și configurat. Pentru a instala o versiune de PHP-FPM mai nouă decât cea implicită 5.4.x, trebuie instalat repo REMI, care conține versiunile PHP 5.6.x, 7.0.x și 7.1.x. Introduceți următoarele comenzi pentru instalarea PHP versiunea 7.1.x.

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php71-php-fpm -y

Navigați la /etc/opt/remi/php71/director.

cd /etc/opt/remi/php71/

Redenumiți numele implicit php-fpm.confla php-fpm.conf.original.

sudo mv php-fpm.conf php-fpm.conf.original

Creați un nou php-fpm.conffișier.

sudo nano php-fpm.conf

Copiați și lipiți următorul text în php-fpm.conffișier.

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

Redenumiți www.conffișierul implicit din php-fpm.ddirector.

sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original

Creați un nou www.conffișier.

sudo nano php-fpm.d/www.conf

Copiați și lipiți textul de mai jos în www.conffișier. Schimbați-vă pm.max\_childrenpentru a se potrivi cu numărul de CPU în conformitate cu instanța dvs. 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

Redenumiți php.inifișierul implicit .

sudo mv php.ini php.ini.original

Creați un nou php.inifișier.

sudo nano php.ini

Copiați și lipiți textul de mai jos în nou php.ini file. Schimbarea memory\_limit, post\_max\_size, upload\_max\_filesizeși date.timezoneîn conformitate cu instanța dumneavoastră 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"

Schimbați proprietatea grupului pentru /var/opt/remi/php71/lib/php/session/directorul din apachegrup în h2ogrup.

sudo chown root.h2o /var/opt/remi/php71/lib/php/session/

Creați un director în care vor avea loc jurnalele serverului PHP-FPM.

sudo mkdir /var/log/php-fpm/

Activați și porniți serverul PHP-FPM.

sudo systemctl enable php71-php-fpm 
sudo systemctl start php71-php-fpm

Activați și porniți serverul H2O.

sudo systemctl enable h2o
sudo systemctl start h2o

Creați un director în care implicit index.phpva reveni listat în opțiunea de director de file.dirmai sus /var/www/example.com.

sudo mkdir /var/www/www.example.com

Creați o valoare implicită index.phpfolosind phpinfocomanda pentru a testa PHP.

sudo nano /var/www/www.example.com/index.php

Copiați și lipiți textul de mai jos în noul index.phpfișier.

<?php
phpinfo();
?>

Acum, deschideți browserul și introduceți numele de domeniu al serverului ( example.comsau www.example.com) pentru instanța dvs. Primești un mesaj Unable to connectsau un This site can’t be reachedmesaj? Setarea implicită a firewall-ului CentOS nu permite conexiunile primite la portul http. Faceți următoarele pentru a o deschide.

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

Actualizați pagina din browserul dvs. ( F5) și veți obține pagina de informații PHP standard.


Acest lucru încheie tutorialul meu. Mulțumesc pentru citit.

Lasă un comentariu

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

O perspectivă asupra a 26 de tehnici de analiză a datelor mari: partea 1

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Funcționalitățile straturilor arhitecturii de referință pentru Big Data

Citiți blogul pentru a cunoaște diferitele straturi din Arhitectura Big Data și funcționalitățile acestora în cel mai simplu mod.

6 lucruri extrem de nebunești despre Nintendo Switch

6 lucruri extrem de nebunești despre Nintendo Switch

Mulți dintre voi cunoașteți Switch care va fi lansat în martie 2017 și noile sale funcții. Pentru cei care nu știu, am pregătit o listă de funcții care fac din „Switch” un „gadget obligatoriu”.

Promisiuni tehnologice care sunt încă nelivrate

Promisiuni tehnologice care sunt încă nelivrate

Aștepți ca giganții tehnologiei să-și îndeplinească promisiunile? vezi ce a ramas nelivrat.

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Cum poate AI să ducă automatizarea proceselor la următorul nivel?

Citiți asta pentru a afla cum devine populară inteligența artificială în rândul companiilor la scară mică și cum crește probabilitățile de a le face să crească și de a le oferi concurenților avantaje.

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Singularitatea tehnologică: un viitor îndepărtat al civilizației umane?

Pe măsură ce Știința Evoluează într-un ritm rapid, preluând multe dintre eforturile noastre, crește și riscurile de a ne supune unei Singularități inexplicabile. Citiți, ce ar putea însemna singularitatea pentru noi.

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA: Cât timp poate rămâne o tehnică viabilă pentru distincția uman-AI?

CAPTCHA a devenit destul de dificil de rezolvat pentru utilizatori în ultimii ani. Va fi capabil să rămână eficient în detectarea spam-ului și a botului în viitor?

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Telemedicină și îngrijire medicală la distanță: viitorul este aici

Ce este telemedicina, îngrijirea medicală la distanță și impactul acesteia asupra generației viitoare? Este un loc bun sau nu în situația de pandemie? Citiți blogul pentru a găsi o vedere!

Te-ai întrebat vreodată cum câștigă hackerii bani?

Te-ai întrebat vreodată cum câștigă hackerii bani?

Poate ați auzit că hackerii câștigă mulți bani, dar v-ați întrebat vreodată cum câștigă acești bani? sa discutam.

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Actualizarea suplimentului macOS Catalina 10.15.4 cauzează mai multe probleme decât rezolvă

Recent, Apple a lansat macOS Catalina 10.15.4 o actualizare suplimentară pentru a remedia problemele, dar se pare că actualizarea provoacă mai multe probleme care duc la blocarea mașinilor Mac. Citiți acest articol pentru a afla mai multe