Installeer de H2O-webserver op CentOS 7

H2O is een nieuwe generatie HTTP-server met geweldige, volledig uitgeruste HTTP / 2-implementaties van alle huidige gebruikte webservers. Met H2O als uw webserver kunt u profiteren van de nieuwe functies van de HTTP / 2-specificatie, zoals latentie-optimalisatie, server-push en server-side prioritering die kunnen profiteren van moderne browserfuncties waarover zelden wordt gesproken.

In deze gedetailleerde tutorial laat ik je stap voor stap zien hoe je H2O kunt laten draaien op je CentOS 7 x64-instantie.

Vereisten

  • Een CentOS 7 x64 serverinstantie.
  • Een sudo- gebruiker.
  • Een SSL-certificaat (optioneel)

Stap 1: werk het systeem bij

Log in via SSH met de inloggegevens onder uw instantie en werk het systeem als volgt bij.

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

Stap 2: Installeer H2O

Om H2O op CentOS 7 te installeren, moet u de Bintray RPM-repository toevoegen om de vooraf gebouwde H2O-binaries te installeren. Gebruik de Nano-editor om een ​​aangepaste opslagplaats te maken.

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

Kopieer en plak de onderstaande tekst in het repobestand.

[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

Installeer vervolgens H2O.

sudo yum install h2o -y

Nu H2O is geïnstalleerd, maar voordat u de service inschakelt en start, is een juiste configuratie vereist en we moeten een specifieke gebruiker en groep maken om H2O onder te laten draaien. Maak een groep en gebruiker zodat H2O onder de naam kan worden uitgevoerd h2o.

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

Stap 3: De H2O-webserver configureren

De volgende stappen zullen voorbeelden van configuratie-instellingen voor verschillende geven unencrypted, encrypted, staticen dynamicserversetups; evenals een combinatie van alle vier.


Redirect http://www.example.comTo http://example.com(Static HTML Pages, No PHP) Configuratie

Navigeer naar de /etc/h2o/directory.

cd /etc/h2o/

Hernoem de standaard h2o.confnaar h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Maak een nieuw h2o.confbestand.

sudo nano h2o.conf

Kopieer en plak de onderstaande tekst in het h2o.confbestand.

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

Schakel de H2O-server in en start deze.

sudo systemctl enable h2o
sudo systemctl start h2o

Maak een standaard index.htmlmet behulp van de sjabloon in /var/www/htmlde directoryoptie file.dirhierboven vermeld in /var/www/example.com.

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

Open nu uw browser en voer de serverdomeinnaam ( example.comof www.example.com) in voor uw instantie. Krijg je een Unable to connectof een This site can’t be reachedbericht? De standaard firewall-instelling van CentOS verbiedt inkomende verbindingen met de http-poort. Voer het volgende uit om het te openen.

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

Vernieuw de pagina in uw browser ( F5) en u krijgt dit bericht.


Welcome to H2O - an optimized HTTP server

It works!

Redirect http://example.comTo http://www.example.com(Static HTML Pages, No PHP) Configuratie

Navigeer naar de /etc/h2o/directory.

cd /etc/h2o/

Hernoem de standaard h2o.confnaar h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Maak een nieuw h2o.confbestand.

sudo nano h2o.conf

Kopieer en plak de volgende tekst in het h2o.confbestand.

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

Schakel de H2O-server in en start deze.

sudo systemctl enable h2o
sudo systemctl start h2o

Maak een standaardbestand index.htmlmet behulp van de sjabloon in /var/www/htmlde directoryoptie file.dirhierboven vermeld in /var/www/www.example.com.

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

Open nu uw browser en voer de serverdomeinnaam ( example.comof www.example.com) in voor uw instantie. Krijg je een Unable to connectof een This site can’t be reachedbericht? De standaard firewall-instelling van CentOS verbiedt inkomende verbindingen met de http-poort. Doe het volgende om het te openen.

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

Vernieuw de pagina in uw browser ( F5) en u krijgt dit bericht.


Welcome to H2O - an optimized HTTP server

It works!

Redirect http://www.example.comTo http://example.com(Dynamic Page, PHP-FPM 5.6.x) Configuratie

Navigeer naar de /etc/h2o/directory.

cd /etc/h2o/

Hernoem de standaard h2o.confnaar h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Maak een nieuw h2o.confbestand.

sudo nano h2o.conf

Kopieer en plak de volgende tekst in het h2o.confbestand.

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

Om PHP te kunnen verwerken, moet de PHP-FPM 5.6-daemon zijn geïnstalleerd en geconfigureerd. Om een ​​nieuwere versie van PHP-FPM dan de standaard 5.4.x te installeren, moet de REMI-repo worden geïnstalleerd die PHP-versies 5.6.x, 7.0.x en 7.1.x bevat. Installeer PHP versie 5.6.x.

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

Navigeer naar de /opt/remi/php56/root/etc/directory.

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

Hernoem de standaard php-fpm.confnaar php-fpm.conf.original.

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

Maak een nieuw php-fpm.confbestand.

sudo nano php-fpm.conf

Kopieer en plak de onderstaande tekst in het php-fpm.confbestand.

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

Hernoem het standaardbestand www.confin de php-fpm.ddirectory.

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

Maak een nieuw www.confbestand.

sudo nano php-fpm.d/www.conf

Kopieer en plak de onderstaande tekst in het www.confbestand. Wijzig uw pm.max\_childrenzodat deze overeenkomt met het aantal CPU's in overeenstemming met uw VPS-exemplaar.

[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

Hernoem het standaardbestand php.ini.

sudo mv php.ini php.ini.original

Maak een nieuw php.inibestand.

sudo nano php.ini

Kopieer en plak de onderstaande tekst in de nieuwe php.ini file. Verander de memory\_limit, post\_max\_size, upload\_max\_filesizeen date.timezonein overeenstemming met uw VPS instantie.

[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"

Wijzig het groepseigendom voor de /opt/remi/php56/root/var/lib/php/session/directory van de apachegroep in de h2ogroep.

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

Maak een directory waar de PHP-FPM-serverlogboeken zich bevinden.

sudo mkdir /var/log/php-fpm/

Schakel de PHP-FPM-server in en start deze.

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

Schakel de H2O-server in en start deze.

sudo systemctl enable h2o
sudo systemctl start h2o

Maak een directory waar de standaard index.phpstaat vermeld bij de directoryoptie file.dirhierboven /var/www/example.com.

sudo mkdir /var/www/example.com

Maak een standaard index.phpmet de phpinfoopdracht om PHP te testen.

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

Kopieer en plak de onderstaande tekst in het nieuwe index.phpbestand.

<?php
phpinfo();
?>

Open nu uw browser en voer de serverdomeinnaam ( example.comof www.example.com) in voor uw instantie. Krijg je een Unable to connectof een This site can’t be reachedbericht? De standaard firewall-instelling van CentOS verbiedt inkomende verbindingen met de http-poort. Doe het volgende om het te openen.

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

Vernieuw de pagina in uw browser ( F5) en u krijgt de standaard PHP-infopagina.


Redirect http://example.comTo http://www.example.com(Dynamic Page, PHP-FPM 5.6.x) Configuratie

Navigeer naar de /etc/h2o/directory.

cd /etc/h2o/

Hernoem de standaard h2o.confnaar h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Maak een nieuw h2o.confbestand.

sudo nano h2o.conf

Kopieer en plak de onderstaande tekst in het h2o.confbestand.

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

Om PHP te kunnen verwerken, moet de PHP-FPM 5.6-daemon zijn geïnstalleerd en geconfigureerd. Om een ​​nieuwere versie van PHP-FPM dan de standaard 5.4.x te installeren, moet de REMI-repo worden geïnstalleerd die PHP-versies 5.6.x, 7.0.x en 7.1.x bevat. Typ de volgende opdrachten om PHP-versie 5.6.x te installeren.

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

Navigeer naar de /opt/remi/php56/root/etc/directory.

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

Hernoem de standaard php-fpm.confnaar php-fpm.conf.original.

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

Maak een nieuw php-fpm.confbestand.

sudo nano php-fpm.conf

Kopieer en plak de onderstaande tekst in het php-fpm.confbestand.

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

Hernoem het standaardbestand www.confin de php-fpm.ddirectory.

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

Maak een nieuw www.confbestand.

sudo nano php-fpm.d/www.conf

Kopieer en plak de volgende tekst in het www.confbestand. Wijzig uw pm.max\_childrenzodat deze overeenkomt met het aantal CPU's in overeenstemming met uw VPS-exemplaar.

[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

Hernoem het standaardbestand php.ini.

sudo mv php.ini php.ini.original

Maak een nieuw php.inibestand.

sudo nano php.ini

Kopieer en plak de volgende tekst hieronder in de nieuwe php.ini file. Verander de memory\_limit, post\_max\_size, upload\_max\_filesizeen date.timezonein overeenstemming met uw VPS instantie.

[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"

Wijzig het groepseigendom voor de /opt/remi/php56/root/var/lib/php/session/directory van de apachegroep in de h2ogroep.

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

Maak een directory waar de PHP-FPM-serverlogboeken zich bevinden.

sudo mkdir /var/log/php-fpm/

Schakel de PHP-FPM-server in en start deze.

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

Schakel de H2O-server in en start deze.

sudo systemctl enable h2o
sudo systemctl start h2o

Maak een directory waar de standaard index.phpstaat vermeld bij de directoryoptie file.dirhierboven /var/www/www.example.com.

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

Maak een standaard index.phpmet de phpinfoopdracht om PHP te testen.

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

Kopieer en plak de onderstaande tekst in het nieuwe index.phpbestand.

<?php
phpinfo();
?>

Open nu uw browser en voer de serverdomeinnaam ( example.comof www.example.com) in voor uw instantie. Krijg je een Unable to connectof een This site can’t be reachedbericht? De standaard firewall-instelling van CentOS verbiedt inkomende verbindingen met de http-poort. Doe het volgende om het te openen.

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

Vernieuw de pagina in uw browser ( F5) en u krijgt de standaard PHP-infopagina.


Redirect http://www.example.comTo http://example.com(Dynamic Page, PHP-FPM 7.1.x) Configuratie

Navigeer naar de /etc/h2o/directory.

cd /etc/h2o/

Hernoem de standaard h2o.confnaar h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Maak een nieuw h2o.confbestand.

sudo nano h2o.conf

Kopieer en plak de onderstaande tekst in het h2o.confbestand.

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

Om PHP te kunnen verwerken, moet de PHP-FPM 7.1-daemon zijn geïnstalleerd en geconfigureerd. Om een ​​nieuwere versie van PHP-FPM dan de standaard 5.4.x te installeren, moet de REMI-repo worden geïnstalleerd die PHP-versies 5.6.x, 7.0.x en 7.1.x bevat. Typ de volgende opdrachten hieronder om PHP-versie 7.1.x te installeren.

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

Navigeer naar de /etc/opt/remi/php71/directory.

cd /etc/opt/remi/php71/

Hernoem de standaard php-fpm.confnaar php-fpm.conf.original.

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

Maak een nieuw php-fpm.confbestand.

sudo nano php-fpm.conf

Kopieer en plak de volgende tekst in het php-fpm.confbestand.

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

Hernoem het standaardbestand www.confin de php-fpm.ddirectory.

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

Maak een nieuw www.confbestand.

sudo nano php-fpm.d/www.conf

Kopieer en plak de onderstaande tekst in het www.confbestand. Wijzig uw pm.max\_childrenzodat deze overeenkomt met het aantal CPU's in overeenstemming met uw VPS-exemplaar.

[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

Hernoem het standaardbestand php.ini.

sudo mv php.ini php.ini.original

Maak een nieuw php.inibestand.

sudo nano php.ini

Kopieer en plak de onderstaande tekst in de nieuwe php.ini file. Verander de memory\_limit, post\_max\_size, upload\_max\_filesizeen date.timezonein overeenstemming met uw VPS instantie.

[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"

Wijzig het groepseigendom voor de /var/opt/remi/php71/lib/php/session/directory van de apachegroep in de h2ogroep.

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

Maak een directory waar de PHP-FPM-serverlogboeken zich bevinden.

sudo mkdir /var/log/php-fpm/

Schakel de PHP-FPM-server in en start deze.

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

Schakel de H2O-server in en start deze.

sudo systemctl enable h2o
sudo systemctl start h2o

Maak een directory waar de standaard index.phpstaat vermeld bij de directoryoptie file.dirhierboven /var/www/example.com.

sudo mkdir /var/www/example.com

Maak een standaard index.phpmet de phpinfoopdracht om PHP te testen.

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

Kopieer en plak de onderstaande tekst in het nieuwe index.phpbestand.

<?php
phpinfo();
?>

Open nu uw browser en voer de serverdomeinnaam ( example.comof www.example.com) in voor uw instantie. Krijg je een Unable to connectof een This site can’t be reachedbericht? De standaard firewall-instelling van CentOS verbiedt inkomende verbindingen met de http-poort. Doe het volgende om het te openen.

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

Vernieuw de pagina in uw browser ( F5) en u krijgt de standaard PHP-infopagina.


Redirect http://example.comTo http://www.example.com(Dynamic Page, PHP-FPM 7.1.x) Configuratie

Navigeer naar de /etc/h2o/directory.

cd /etc/h2o/

Hernoem de standaard h2o.confnaar h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Maak een nieuw h2o.confbestand.

sudo nano h2o.conf

Kopieer en plak de onderstaande tekst in het h2o.confbestand.

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

Om PHP te kunnen verwerken, moet de PHP-FPM 7.1-daemon zijn geïnstalleerd en geconfigureerd. Om een ​​nieuwere versie van PHP-FPM dan de standaard 5.4.x te installeren, moet de REMI-repo worden geïnstalleerd die PHP-versies 5.6.x, 7.0.x en 7.1.x bevat. Typ de volgende opdrachten hieronder om PHP-versie 7.1.x te installeren.

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

Navigeer naar de /etc/opt/remi/php71/directory.

cd /etc/opt/remi/php71/

Hernoem de standaard php-fpm.confnaar php-fpm.conf.original.

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

Maak een nieuw php-fpm.confbestand.

sudo nano php-fpm.conf

Kopieer en plak de onderstaande tekst in het php-fpm.confbestand.

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

Hernoem het standaardbestand www.confin de php-fpm.ddirectory.

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

Maak een nieuw www.confbestand.

sudo nano php-fpm.d/www.conf

Kopieer en plak de volgende tekst in het www.confbestand. Wijzig uw pm.max\_childrenzodat deze overeenkomt met het aantal CPU's in overeenstemming met uw VPS-exemplaar.

[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

Hernoem het standaardbestand php.ini.

sudo mv php.ini php.ini.original

Maak een nieuw php.inibestand.

sudo nano php.ini

Kopieer en plak de volgende tekst in de nieuwe php.ini file. Verander de memory\_limit, post\_max\_size, upload\_max\_filesizeen date.timezonein overeenstemming met uw VPS instantie.

[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"

Wijzig het groepseigendom voor de /var/opt/remi/php71/lib/php/session/directory van de apachegroep in de h2ogroep.

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

Maak een directory waar de PHP-FPM-serverlogboeken zich bevinden.

sudo mkdir /var/log/php-fpm/

Schakel de PHP-FPM-server in en start deze.

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

Schakel de H2O-server in en start deze.

sudo systemctl enable h2o
sudo systemctl start h2o

Maak een directory waar de standaard index.phpstaat vermeld bij de directoryoptie file.dirhierboven /var/www/example.com.

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

Maak een standaard index.phpmet de phpinfoopdracht om PHP te testen.

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

Kopieer en plak de onderstaande tekst in het nieuwe index.phpbestand.

<?php
phpinfo();
?>

Open nu uw browser en voer de serverdomeinnaam ( example.comof www.example.com) in voor uw instantie. Krijg je een Unable to connectof een This site can’t be reachedbericht? De standaard firewall-instelling van CentOS verbiedt inkomende verbindingen met de http-poort. Doe het volgende om het te openen.

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

Vernieuw de pagina in uw browser ( F5) en u krijgt de standaard PHP-infopagina.


Redirect http://example.com, http://www.example.comen https://www.example.comom https://example.com(statische HTML-pagina's, geen PHP) Configuratie

Navigeer naar de /etc/h2o/directory.

cd /etc/h2o/

Hernoem de standaard h2o.confnaar h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Maak een nieuw h2o.confbestand.

sudo nano h2o.conf

Kopieer en plak de onderstaande tekst in het h2o.confbestand.

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

Maak een aangepaste map om de standaard SSL-opties op te slaan voor alle websites die SSL gebruiken.

sudo mkdir conf.d

Maak een nieuw ssl.confbestand.

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 into 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/example.com.

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

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 this message.


Welcome to H2O - an optimized HTTP server

It works!

Redirect http://example.com, http://www.example.com, and https://example.com to https://www.example.com (Static HTML Pages, No PHP) 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.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

Create a custom directory to store the default SSL options for all websites that use SSL.

sudo mkdir conf.d

Create a new ssl.conf file.

sudo nano conf.d/ssl.conf

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

Open nu uw browser en voer de serverdomeinnaam ( example.comof www.example.com) in voor uw instantie. Krijg je een Unable to connectof een This site can’t be reachedbericht? De standaard firewall-instelling van CentOS verbiedt inkomende verbindingen met de http-poort. Doe het volgende om het te openen.

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

Vernieuw de pagina in uw browser ( F5) en u krijgt dit bericht.


Welcome to H2O - an optimized HTTP server

It works!

Redirect http://example.com, http://www.example.comen https://www.example.comnaar https://example.com(Dynamic Page, PHP-FPM 5.6.x) Configuratie

Navigeer naar de /etc/h2o/directory.

cd /etc/h2o/

Hernoem de standaard h2o.confnaar h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Maak een nieuw h2o.confbestand.

sudo nano h2o.conf

Kopieer en plak de onderstaande tekst in het h2o.confbestand.

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

Maak een aangepaste map om de standaard SSL-opties op te slaan voor alle websites die SSL gebruiken.

sudo mkdir conf.d

Maak een nieuw ssl.confbestand.

sudo nano conf.d/ssl.conf

Kopieer en plak de onderstaande tekst in het ssl.confbestand.

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

Maak een map om het dhparam_2048.pembestand op te slaan dat dagelijks via een cronjob wordt geregenereerd.

sudo mkdir /etc/ssl/h2o/

Maak een nieuw regenerate_dhparambestand.

sudo nano /etc/cron.daily/regenerate_dhparam

Kopieer en plak de volgende tekst in het regenerate_dhparambestand.

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

Maak het bash-bestand dat zojuist is gemaakt uitvoerbaar.

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

Voer het bash-script uit voor een eerste run, aangezien H2O niet correct start als het niet wordt gegenereerd. Het duurt ongeveer een minuut of twee om bij de eerste run te genereren.

sudo /etc/cron.daily/regenerate_dhparam

Om PHP te kunnen verwerken, moet de PHP-FPM 5.6-daemon zijn geïnstalleerd en geconfigureerd. Om een ​​nieuwere versie van PHP-FPM dan de standaard 5.4.x te installeren, moet de REMI-repo worden geïnstalleerd die PHP-versies 5.6.x, 7.0.x en 7.1.x bevat. Typ de volgende opdrachten om PHP-versie 5.6.x te installeren.

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

Navigeer naar de /opt/remi/php56/root/etc/directory.

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

Hernoem de standaard php-fpm.confnaar php-fpm.conf.original.

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

Maak een nieuw php-fpm.confbestand.

sudo nano php-fpm.conf

Kopieer en plak de volgende tekst in het php-fpm.confbestand.

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

Hernoem het standaardbestand www.confin de php-fpm.ddirectory.

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

Maak een nieuw www.confbestand.

sudo nano php-fpm.d/www.conf

Kopieer en plak de onderstaande tekst in het www.confbestand. Wijzig uw pm.max\_childrenzodat deze overeenkomt met het aantal CPU's in overeenstemming met uw VPS-exemplaar.

[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

Hernoem het standaardbestand php.ini.

sudo mv php.ini php.ini.original

Maak een nieuw php.inibestand.

sudo nano php.ini

Kopieer en plak de onderstaande tekst in de nieuwe php.ini file. Verander de memory\_limit, post\_max\_size, upload\_max\_filesizeen date.timezonein overeenstemming met uw VPS instantie.

[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"

Wijzig het groepseigendom voor de /opt/remi/php56/root/var/lib/php/session/directory van de apachegroep in de h2ogroep.

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

Maak een directory waar de PHP-FPM-serverlogboeken zich bevinden.

sudo mkdir /var/log/php-fpm/

Schakel de PHP-FPM-server in en start deze.

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

Schakel de H2O-server in en start deze.

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/

Hernoem de standaard h2o.confnaar h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Maak een nieuw h2o.confbestand.

sudo nano h2o.conf

Kopieer en plak de onderstaande tekst in het h2o.confbestand.

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

Maak een aangepaste map om de standaard SSL-opties op te slaan voor alle websites die SSL gebruiken.

sudo mkdir conf.d

Maak een nieuw ssl.confbestand.

sudo nano conf.d/ssl.conf

Kopieer en plak de onderstaande tekst in het ssl.confbestand.

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

Maak een map om het dhparam_2048.pembestand op te slaan dat dagelijks via een cronjob wordt geregenereerd.

sudo mkdir /etc/ssl/h2o/

Maak een nieuw regenerate_dhparambestand.

sudo nano /etc/cron.daily/regenerate_dhparam

Kopieer en plak de volgende tekst in het regenerate_dhparambestand.

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

Maak het bash-bestand dat zojuist is gemaakt uitvoerbaar.

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

Voer het bash-script uit voor een eerste run, aangezien H2O niet correct start als het niet wordt gegenereerd. Het duurt ongeveer een minuut of twee om bij de eerste run te genereren.

sudo /etc/cron.daily/regenerate_dhparam

Om PHP te kunnen verwerken, moet de PHP-FPM 5.6-daemon zijn geïnstalleerd en geconfigureerd. Om een ​​nieuwere versie van PHP-FPM dan de standaard 5.4.x te installeren, moet de REMI-repo worden geïnstalleerd die PHP-versies 5.6.x, 7.0.x en 7.1.x bevat. Typ de volgende opdrachten om PHP-versie 5.6.x te installeren.

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

Navigeer naar de /opt/remi/php56/root/etc/directory.

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

Hernoem de standaard php-fpm.confnaar php-fpm.conf.original.

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

Maak een nieuw php-fpm.confbestand.

sudo nano php-fpm.conf

Kopieer en plak de onderstaande tekst in het php-fpm.confbestand.

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

Hernoem het standaardbestand www.confin de php-fpm.ddirectory.

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

Maak een nieuw www.confbestand.

sudo nano php-fpm.d/www.conf

Kopieer en plak de onderstaande tekst in het www.confbestand. Wijzig uw pm.max\_childrenzodat deze overeenkomt met het aantal CPU's in overeenstemming met uw VPS-exemplaar.

[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

Hernoem het standaardbestand php.ini.

sudo mv php.ini php.ini.original

Maak een nieuw php.inibestand.

sudo nano php.ini

Kopieer en plak de volgende tekst in de nieuwe php.ini file. Verander de memory\_limit, post\_max\_size, upload\_max\_filesizeen date.timezonein overeenstemming met uw VPS instantie.

[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"

Wijzig het groepseigendom voor de /opt/remi/php56/root/var/lib/php/session/directory van de apachegroep in de h2ogroep.

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

Maak een directory waar de PHP-FPM-serverlogboeken zich bevinden.

sudo mkdir /var/log/php-fpm/

Schakel de PHP-FPM-server in en start deze.

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

Schakel de H2O-server in en start deze.

sudo systemctl enable h2o
sudo systemctl start h2o

Maak een directory waar de standaard index.phpstaat vermeld bij de directoryoptie file.dirhierboven /var/www/www.example.com.

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

Maak een standaard index.phpmet de phpinfoopdracht om PHP te testen.

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

Kopieer en plak de onderstaande tekst in het nieuwe index.phpbestand.

<?php
phpinfo();
?>

Open nu uw browser en voer de serverdomeinnaam ( example.com or www.example.com) in voor uw instantie. Krijg je een Unable to connectof een This site can’t be reachedbericht? De standaard firewall-instelling van CentOS verbiedt inkomende verbindingen met de http-poort. Doe het volgende om het te openen.

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

Vernieuw de pagina in uw browser ( F5) en u krijgt de standaard PHP-infopagina.


Redirect http://example.com, http://www.example.comen https://www.example.comom https://example.com(dynamische pagina, PHP-FPM 7.1.x) Configuratie

Navigeer naar de /etc/h2o/directory.

cd /etc/h2o/

Hernoem de standaard h2o.confnaar h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Maak een nieuw h2o.confbestand.

sudo nano h2o.conf

Kopieer en plak de onderstaande tekst in het h2o.confbestand.

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

Maak een aangepaste map om de standaard SSL-opties op te slaan voor alle websites die SSL gebruiken.

sudo mkdir conf.d

Maak een nieuw ssl.confbestand.

sudo nano conf.d/ssl.conf

Kopieer en plak de onderstaande tekst in het ssl.confbestand.

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

Maak een map om het dhparam_2048.pembestand op te slaan dat dagelijks via een cronjob wordt geregenereerd.

sudo mkdir /etc/ssl/h2o/

Maak een nieuw regenerate_dhparambestand.

sudo nano /etc/cron.daily/regenerate_dhparam

Kopieer en plak de volgende tekst in het regenerate_dhparambestand.

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

Maak het bash-bestand dat zojuist is gemaakt uitvoerbaar.

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

Voer het bash-script uit voor een eerste run, aangezien H2O niet correct start als het niet wordt gegenereerd. Het duurt ongeveer een minuut of twee om bij de eerste run te genereren.

sudo /etc/cron.daily/regenerate_dhparam

Om PHP te kunnen verwerken, moet de PHP-FPM 7.1-daemon zijn geïnstalleerd en geconfigureerd. Om een ​​nieuwere versie van PHP-FPM dan de standaard 5.4.x te installeren, moet de REMI-repo worden geïnstalleerd die PHP-versies 5.6.x, 7.0.x en 7.1.x bevat. Typ de volgende opdrachten hieronder om PHP-versie 7.1.x te installeren.

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

Navigeer naar de /etc/opt/remi/php71/directory.

cd /etc/opt/remi/php71/

Hernoem de standaard php-fpm.confnaar php-fpm.conf.original.

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

Maak een nieuw php-fpm.confbestand.

sudo nano php-fpm.conf

Kopieer en plak de onderstaande tekst in het php-fpm.confbestand.

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

Hernoem het standaardbestand www.confin de php-fpm.ddirectory.

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

Maak een nieuw www.confbestand.

sudo nano php-fpm.d/www.conf

Kopieer en plak de volgende tekst in het www.confbestand. Wijzig uw pm.max\_childrenzodat deze overeenkomt met het aantal CPU's in overeenstemming met uw VPS-exemplaar.

[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

Hernoem het standaardbestand php.ini.

sudo mv php.ini php.ini.original

Maak een nieuw php.inibestand.

sudo nano php.ini

Kopieer en plak de volgende tekst hieronder in de nieuwe php.ini file. Verander de memory\_limit, post\_max\_size, upload\_max\_filesizeen date.timezonein overeenstemming met uw VPS instantie.

[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"

Wijzig het groepseigendom voor de /var/opt/remi/php71/lib/php/session/directory van de apachegroep in de h2ogroep.

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

Maak een directory waar de PHP-FPM-serverlogboeken zich bevinden.

sudo mkdir /var/log/php-fpm/

Schakel de PHP-FPM-server in en start deze.

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

Schakel de H2O-server in en start deze.

sudo systemctl enable h2o
sudo systemctl start h2o

Maak een directory waar de standaard index.phpstaat vermeld bij de directoryoptie file.dirhierboven /var/www/example.com.

sudo mkdir /var/www/example.com

Maak een standaard index.phpmet de phpinfoopdracht om PHP te testen.

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

Kopieer en plak de onderstaande tekst in het nieuwe index.phpbestand.

<?php
phpinfo();
?>

Open nu uw browser en voer de serverdomeinnaam ( example.comof www.example.com) in voor uw instantie. Krijg je een Unable to connectof een This site can’t be reachedbericht? De standaard firewall-instelling van CentOS verbiedt inkomende verbindingen met de http-poort. Doe het volgende om het te openen.

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

Vernieuw de pagina in uw browser ( F5) en u krijgt de standaard PHP-infopagina.


Redirect http://example.com, http://www.example.comen https://example.comom https://www.example.com(dynamische pagina, PHP-FPM 7.1.x) Configuratie

Navigeer naar de /etc/h2o/directory.

cd /etc/h2o/

Hernoem de standaard h2o.confnaar h2o.conf.original.

sudo mv h2o.conf h2o.conf.original

Maak een nieuw h2o.confbestand.

sudo nano h2o.conf

Kopieer en plak de onderstaande tekst in het h2o.confbestand.

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

Maak een aangepaste map om de standaard SSL-opties op te slaan voor alle websites die SSL gebruiken.

sudo mkdir conf.d

Maak een nieuw ssl.confbestand.

sudo nano conf.d/ssl.conf

Kopieer en plak de onderstaande tekst in het ssl.confbestand.

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

Maak een map om het dhparam_2048.pembestand op te slaan dat dagelijks via een cronjob wordt geregenereerd.

sudo mkdir /etc/ssl/h2o/

Maak een nieuw regenerate_dhparambestand.

sudo nano /etc/cron.daily/regenerate_dhparam

Kopieer en plak de volgende tekst in het regenerate_dhparambestand.

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

Maak het bash-bestand dat zojuist is gemaakt uitvoerbaar.

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

Voer het bash-script uit voor een eerste run, aangezien H2O niet correct start als het niet wordt gegenereerd. Het duurt ongeveer een minuut of twee om bij de eerste run te genereren.

sudo /etc/cron.daily/regenerate_dhparam

Om PHP te kunnen verwerken, moet de PHP-FPM 7.1-daemon zijn geïnstalleerd en geconfigureerd. Om een ​​nieuwere versie van PHP-FPM dan de standaard 5.4.x te installeren, moet de REMI-repo worden geïnstalleerd die PHP-versies 5.6.x, 7.0.x en 7.1.x bevat. Typ de volgende opdrachten om PHP-versie 7.1.x te installeren.

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

Navigeer naar de /etc/opt/remi/php71/directory.

cd /etc/opt/remi/php71/

Hernoem de standaard php-fpm.confnaar php-fpm.conf.original.

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

Maak een nieuw php-fpm.confbestand.

sudo nano php-fpm.conf

Kopieer en plak de volgende tekst in het php-fpm.confbestand.

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

Hernoem het standaardbestand www.confin de php-fpm.ddirectory.

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

Maak een nieuw www.confbestand.

sudo nano php-fpm.d/www.conf

Kopieer en plak de onderstaande tekst in het www.confbestand. Wijzig uw pm.max\_childrenzodat deze overeenkomt met het aantal CPU's in overeenstemming met uw VPS-exemplaar.

[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

Hernoem het standaardbestand php.ini.

sudo mv php.ini php.ini.original

Maak een nieuw php.inibestand.

sudo nano php.ini

Kopieer en plak de volgende tekst hieronder in de nieuwe php.ini file. Verander de memory\_limit, post\_max\_size, upload\_max\_filesizeen date.timezonein overeenstemming met uw VPS instantie.

[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"

Wijzig het groepseigendom voor de /var/opt/remi/php71/lib/php/session/directory van de apachegroep in de h2ogroep.

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

Maak een directory waar de PHP-FPM-serverlogboeken zich bevinden.

sudo mkdir /var/log/php-fpm/

Schakel de PHP-FPM-server in en start deze.

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

Schakel de H2O-server in en start deze.

sudo systemctl enable h2o
sudo systemctl start h2o

Maak een directory waar de standaard index.phpstaat vermeld bij de directoryoptie file.dirhierboven /var/www/example.com.

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

Maak een standaard index.phpmet de phpinfoopdracht om PHP te testen.

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

Kopieer en plak de onderstaande tekst in het nieuwe index.phpbestand.

<?php
phpinfo();
?>

Open nu uw browser en voer de serverdomeinnaam ( example.comof www.example.com) in voor uw instantie. Krijg je een Unable to connectof een This site can’t be reachedbericht? De standaard firewall-instelling van CentOS verbiedt inkomende verbindingen met de http-poort. Doe het volgende om het te openen.

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

Vernieuw de pagina in uw browser ( F5) en u krijgt de standaard PHP-infopagina.


Dit beëindigt mijn tutorial. Bedankt voor het lezen.



Leave a Comment

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.