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.