Как установить Anchor CMS на CentOS 7 LAMP VPS
Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.
H2O - это HTTP-сервер нового поколения, который имеет отличные, полнофункциональные реализации HTTP / 2 всех используемых в настоящее время веб-серверов. Используя H2O в качестве веб-сервера, вы можете воспользоваться новыми функциями спецификации HTTP / 2, такими как оптимизация задержек, принудительное размещение на сервере и приоритеты на стороне сервера, которые могут использовать преимущества современных функций браузера, о которых редко говорят.
В этом подробном руководстве я покажу вам шаг за шагом, как запустить H2O на вашем экземпляре CentOS 7 x64.
Войдите через SSH с учетными данными, найденными в вашем экземпляре, и обновите систему следующим образом.
sudo yum install epel-release -y
sudo yum clean all && sudo yum update -y
Чтобы установить H2O в CentOS 7, необходимо добавить репозиторий Bintray RPM для установки предварительно собранных двоичных файлов H2O. Используйте редактор Nano для создания собственного репо.
sudo nano /etc/yum.repos.d/bintray-h2o-rpm.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
Далее установите H2O.
sudo yum install h2o -y
Теперь, когда H2O установлен, но перед тем, как вы включите и запустите службу, требуется правильная конфигурация, и нам нужно создать определенного пользователя и группу для запуска H2O. Создайте группу и пользователя для H2O для запуска под именем h2o
.
sudo groupadd -g 101 h2o
sudo useradd -d /etc/h2o -g 101 -M -s /sbin/nologin -u 101 h2o
Следующие шаги будут приводить примеры конфигурации установок для различных unencrypted
, encrypted
, static
и dynamic
серверных установок; а также сочетание всех четырех.
http://www.example.com
на http://example.com
(статические HTML-страницы, без PHP)Перейдите в /etc/h2o/
каталог.
cd /etc/h2o/
Переименуйте значение h2o.conf
по умолчанию в h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Создать новый h2o.conf
файл.
sudo nano h2o.conf
Скопируйте и вставьте текст ниже в h2o.conf
файл.
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
Включите и запустите сервер H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Создайте значение по умолчанию, index.html
используя шаблон в /var/www/html
каталоге, file.dir
указанном выше в /var/www/example.com
.
sudo cp -var /var/www/html /var/www/example.com
Теперь откройте браузер и введите доменное имя сервера ( example.com
или www.example.com
) для вашего экземпляра. Вы получаете Unable to connect
или This site can’t be reached
сообщение? Настройка брандмауэра CentOS по умолчанию запрещает входящие подключения к порту http. Выполните следующее, чтобы открыть его.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload
Обновите страницу в вашем браузере ( F5
), и вы получите это сообщение.
Welcome to H2O - an optimized HTTP server
It works!
http://example.com
на http://www.example.com
(статические HTML-страницы, без PHP)Перейдите в /etc/h2o/
каталог.
cd /etc/h2o/
Переименуйте значение h2o.conf
по умолчанию в h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Создать новый h2o.conf
файл.
sudo nano h2o.conf
Скопируйте и вставьте следующий текст в h2o.conf
файл.
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
Включите и запустите сервер H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Создайте index.html
файл по умолчанию, используя шаблон в /var/www/html
каталоге, file.dir
указанном выше в /var/www/www.example.com
.
sudo cp -var /var/www/html /var/www/www.example.com
Теперь откройте браузер и введите доменное имя сервера ( example.com
или www.example.com
) для вашего экземпляра. Вы получаете Unable to connect
или This site can’t be reached
сообщение? Настройка брандмауэра CentOS по умолчанию запрещает входящие подключения к порту http. Сделайте следующее, чтобы открыть его.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload
Обновите страницу в вашем браузере ( F5
), и вы получите это сообщение.
Welcome to H2O - an optimized HTTP server
It works!
http://www.example.com
на http://example.com
(динамическая страница, PHP-FPM 5.6.x) конфигурацияПерейдите в /etc/h2o/
каталог.
cd /etc/h2o/
Переименуйте значение h2o.conf
по умолчанию в h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Создать новый h2o.conf
файл.
sudo nano h2o.conf
Скопируйте и вставьте следующий текст в h2o.conf
файл.
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
Для обработки PHP должен быть установлен и нас��роен демон PHP-FPM 5.6. Чтобы установить версию PHP-FPM, более новую, чем версия 5.4.x по умолчанию, необходимо установить репозиторий REMI, содержащий версии PHP 5.6.x, 7.0.x и 7.1.x. Установите версию PHP 5.6.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php56-php-fpm -y
Перейдите в /opt/remi/php56/root/etc/
каталог.
cd /opt/remi/php56/root/etc/
Переименуйте значение php-fpm.conf
по умолчанию в php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Создать новый php-fpm.conf
файл.
sudo nano php-fpm.conf
Скопируйте и вставьте текст ниже в php-fpm.conf
файл.
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
Переименуйте www.conf
файл по умолчанию в php-fpm.d
каталоге.
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Создать новый www.conf
файл.
sudo nano php-fpm.d/www.conf
Скопируйте и вставьте текст ниже в www.conf
файл. Измените ваш, pm.max\_children
чтобы соответствовать количеству процессоров в соответствии с вашим экземпляром 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
Переименуйте php.ini
файл по умолчанию .
sudo mv php.ini php.ini.original
Создать новый php.ini
файл.
sudo nano php.ini
Скопируйте и вставьте текст ниже в новый php.ini file
. Изменение memory\_limit
, post\_max\_size
, upload\_max\_filesize
и date.timezone
в соответствии с экземпляром 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"
Измените принадлежность группы для /opt/remi/php56/root/var/lib/php/session/
каталога с apache
группы на h2o
группу.
sudo chown root.h2o /opt/remi/php56/root/var/lib/php/session/
Создайте каталог, в котором будут находиться журналы сервера PHP-FPM.
sudo mkdir /var/log/php-fpm/
Включите и запустите сервер PHP-FPM.
sudo systemctl enable php56-php-fpm
sudo systemctl start php56-php-fpm
Включите и запустите сервер H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Создайте каталог, в котором index.php
будет находиться каталог по умолчанию , указанный в параметре каталога file.dir
выше в /var/www/example.com
.
sudo mkdir /var/www/example.com
Создайте значение по умолчанию, index.php
используя phpinfo
команду для проверки PHP.
sudo nano /var/www/example.com/index.php
Скопируйте и вставьте текст ниже в новый index.php
файл.
<?php
phpinfo();
?>
Теперь откройте браузер и введите доменное имя сервера ( example.com
или www.example.com
) для вашего экземпляра. Вы получаете Unable to connect
или This site can’t be reached
сообщение? Настройка брандмауэра CentOS по умолчанию запрещает входящие подключения к порту http. Сделайте следующее, чтобы открыть его.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload
Обновите страницу в вашем браузере ( F5
), и вы получите стандартную страницу информации PHP.
http://example.com
на http://www.example.com
(динамическая страница, PHP-FPM 5.6.x) конфигурацияПерейдите в /etc/h2o/
каталог.
cd /etc/h2o/
Переименуйте значение h2o.conf
по умолчанию в h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Создать новый h2o.conf
файл.
sudo nano h2o.conf
Скопируйте и вставьте текст ниже в h2o.conf
файл.
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
Для обработки PHP должен быть установлен и настроен демон PHP-FPM 5.6. Чтобы установить версию PHP-FPM, более новую, чем версия 5.4.x по умолчанию, необходимо установить репозиторий REMI, содержащий версии PHP 5.6.x, 7.0.x и 7.1.x. Введите следующие команды для установки PHP версии 5.6.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php56-php-fpm -y
Перейдите в /opt/remi/php56/root/etc/
каталог.
cd /opt/remi/php56/root/etc/
Переименуйте значение php-fpm.conf
по умолчанию в php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Создать новый php-fpm.conf
файл.
sudo nano php-fpm.conf
Скопируйте и вставьте текст ниже в php-fpm.conf
файл.
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
Переименуйте www.conf
файл по умолчанию в php-fpm.d
каталоге.
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Создать новый www.conf
файл.
sudo nano php-fpm.d/www.conf
Скопируйте и вставьте следующий текст в www.conf
файл. Измените ваш, pm.max\_children
чтобы соответствовать количеству процессоров в соответствии с вашим экземпляром 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
Переименуйте php.ini
файл по умолчанию .
sudo mv php.ini php.ini.original
Создать новый php.ini
файл.
sudo nano php.ini
Скопируйте и вставьте следующий текст ниже в новый php.ini file
. Изменение memory\_limit
, post\_max\_size
, upload\_max\_filesize
и date.timezone
в соответствии с экземпляром 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"
Измените принадлежность группы для /opt/remi/php56/root/var/lib/php/session/
каталога с apache
группы на h2o
группу.
sudo chown root.h2o /opt/remi/php56/root/var/lib/php/session/
Создайте каталог, в котором будут находиться журналы сервера PHP-FPM.
sudo mkdir /var/log/php-fpm/
Включите и запустите сервер PHP-FPM.
sudo systemctl enable php56-php-fpm
sudo systemctl start php56-php-fpm
Включите и запустите сервер H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Создайте каталог, в котором index.php
будет находиться каталог по умолчанию , указанный в параметре каталога file.dir
выше в /var/www/www.example.com
.
sudo mkdir /var/www/www.example.com
Создайте значение по умолчанию, index.php
используя phpinfo
команду для проверки PHP.
sudo nano /var/www/www.example.com/index.php
Скопируйте и вставьте текст ниже в новый index.php
файл.
<?php
phpinfo();
?>
Теперь откройте браузер и введите доменное имя сервера ( example.com
или www.example.com
) для вашего экземпляра. Вы получаете Unable to connect
или This site can’t be reached
сообщение? Настройка брандмауэра CentOS по умолчанию запрещает входящие подключения к порту http. Сделайте следующее, чтобы открыть его.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload
Обновите страницу в вашем браузере ( F5
), и вы получите стандартную страницу информации PHP.
http://www.example.com
на http://example.com
(динамическая страница, PHP-FPM 7.1.x) конфигурацияПерейдите в /etc/h2o/
каталог.
cd /etc/h2o/
Переименуйте значение h2o.conf
по умолчанию в h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Создать новый h2o.conf
файл.
sudo nano h2o.conf
Скопируйте и вставьте текст ниже в h2o.conf
файл.
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
Для обработки PHP необходимо установить и настроить демон PHP-FPM 7.1. Чтобы установить версию PHP-FPM, более новую, чем версия 5.4.x по умолчанию, необходимо установить репозиторий REMI, содержащий версии PHP 5.6.x, 7.0.x и 7.1.x. Введите следующие команды ниже, чтобы установить PHP версии 7.1.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php71-php-fpm -y
Перейдите в /etc/opt/remi/php71/
каталог.
cd /etc/opt/remi/php71/
Переименуйте значение php-fpm.conf
по умолчанию в php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Создать новый php-fpm.conf
файл.
sudo nano php-fpm.conf
Скопируйте и вставьте следующий текст в php-fpm.conf
файл.
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
Переименуйте www.conf
файл по умолчанию в php-fpm.d
каталоге.
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Создать новый www.conf
файл.
sudo nano php-fpm.d/www.conf
Скопируйте и вставьте текст ниже в www.conf
файл. Измените ваш, pm.max\_children
чтобы соответствовать количеству процессоров в соответствии с вашим экземпляром 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
Переименуйте php.ini
файл по умолчанию .
sudo mv php.ini php.ini.original
Создать новый php.ini
файл.
sudo nano php.ini
Скопируйте и вставьте текст ниже в новый php.ini file
. Изменение memory\_limit
, post\_max\_size
, upload\_max\_filesize
и date.timezone
в соответствии с экземпляром 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"
Измените принадлежность группы для /var/opt/remi/php71/lib/php/session/
каталога с apache
группы на h2o
группу.
sudo chown root.h2o /var/opt/remi/php71/lib/php/session/
Создайте каталог, в котором будут находиться журналы сервера PHP-FPM.
sudo mkdir /var/log/php-fpm/
Включите и запустите сервер PHP-FPM.
sudo systemctl enable php71-php-fpm
sudo systemctl start php71-php-fpm
Включите и запустите сервер H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Создайте каталог, в котором index.php
будет находиться каталог по умолчанию , указанный в параметре каталога file.dir
выше в /var/www/example.com
.
sudo mkdir /var/www/example.com
Создайте значение по умолчанию, index.php
используя phpinfo
команду для проверки PHP.
sudo nano /var/www/example.com/index.php
Скопируйте и вставьте текст ниже в новый index.php
файл.
<?php
phpinfo();
?>
Теперь откройте браузер и введите доменное имя сервера ( example.com
или www.example.com
) для вашего экземпляра. Вы получаете Unable to connect
или This site can’t be reached
сообщение? Настройка брандмауэра CentOS по умолчанию запрещает входящие подключения к порту http. Сделайте следующее, чтобы открыть его.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --reload
Обновите страницу в вашем браузере ( F5
), и вы получите стандартную страницу информации PHP.
http://example.com
на http://www.example.com
(динамическая страница, PHP-FPM 7.1.x) конфигурацияПерейдите в /etc/h2o/
каталог.
cd /etc/h2o/
Переименуйте значение h2o.conf
по умолчанию в h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Создать новый h2o.conf
файл.
sudo nano h2o.conf
Скопируйте и вставьте текст ниже в h2o.conf
файл.
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();
?>
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.
http://example.com
, http://www.example.com
, and https://www.example.com
to https://example.com
(Static HTML Pages, No PHP) ConfigurationNavigate to the /etc/h2o/
directory.
cd /etc/h2o/
Rename the default h2o.conf
to h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Create a new h2o.conf
file.
sudo nano h2o.conf
Copy and paste the text below into the h2o.conf
file.
access-log: /var/log/h2o/access.log
compress: ON
error-log: /var/log/h2o/error.log
expires: 1 day
file.index: [ 'index.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
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 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
Теперь откройте браузер и введите доменное имя сервера ( example.com
или www.example.com
) для вашего экземпляра. Вы получаете Unable to connect
или This site can’t be reached
сообщение? Настройка брандмауэра CentOS по умолчанию запрещает входящие подключения к порту http. Сделайте следующее, чтобы открыть его.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Обновите страницу в вашем браузере ( F5
), и вы получите это сообщение.
Welcome to H2O - an optimized HTTP server
It works!
http://example.com
, http://www.example.com
и https://example.com
к https://www.example.com
( В статических HTML - страниц, нет PHP) конфигурацииПерейдите в /etc/h2o/
каталог.
cd /etc/h2o/
Переименуйте значение h2o.conf
по умолчанию в h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Создать новый h2o.conf
файл.
sudo nano h2o.conf
Скопируйте и вставьте текст ниже в h2o.conf
файл.
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
Создайте пользовательский каталог для хранения параметров SSL по умолчанию для всех сайтов, которые используют SSL.
sudo mkdir conf.d
Создать новый ssl.conf
файл.
sudo nano conf.d/ssl.conf
Скопируйте и вставьте следующий текст в ssl.conf
файл.
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
Создайте каталог для хранения dhparam_2048.pem
файла, который будет обновляться ежедневно с помощью cronjob.
sudo mkdir /etc/ssl/h2o/
Со��дать новый regenerate_dhparam
файл.
sudo nano /etc/cron.daily/regenerate_dhparam
Скопируйте и вставьте следующий текст в regenerate_dhparam
файл.
#!/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
Сделайте bash файл только что созданным исполняемым.
sudo chmod +x /etc/cron.daily/regenerate_dhparam
Выполните bash-скрипт для первого запуска, так как H2O не запустится должным образом, если он не сгенерирован. Это займет около минуты или двух для генерации при первом запуске.
sudo /etc/cron.daily/regenerate_dhparam
Включите и запустите сервер H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Создайте значение по умолчанию, index.html
используя шаблон в /var/www/html
каталоге, file.dir
указанном выше в /var/www/www.example.com
.
sudo cp -var /var/www/html /var/www/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!
http://example.com
, http://www.example.com
, and https://www.example.com
to https://example.com
(Dynamic Page, PHP-FPM 5.6.x) ConfigurationNavigate to the /etc/h2o/
directory.
cd /etc/h2o/
Rename the default h2o.conf
to h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Create a new h2o.conf
file.
sudo nano h2o.conf
Copy and paste the text below into the h2o.conf
file.
access-log: /var/log/h2o/access.log
compress: ON
error-log: /var/log/h2o/error.log
expires: 1 day
file.index: [ 'index.php' ]
hosts:
"example.com:80":
listen:
port: 80
paths:
"/":
redirect:
status: 301
url: "https://example.com/"
"www.example.com:80":
listen:
port: 80
paths:
"/":
redirect:
status: 301
url: "https://www.example.com/"
"example.com:443":
listen:
port: 443
ssl:
<<: !file /etc/h2o/conf.d/ssl.conf
certificate-file: /location/of/certificate/file/fullchain.ext
key-file: /location/of/private/key/file/privkey.ext
paths:
"/":
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
Create a custom directory to store the default SSL options for all websites that use SSL.
sudo mkdir conf.d
Create a new ssl.conf
file.
sudo nano conf.d/ssl.conf
Copy and paste the text below into the ssl.conf
file.
cipher-preference: server
cipher-suite: ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
dh-file: /etc/ssl/h2o/dhparam_2048.pem
Создайте каталог для хранения dhparam_2048.pem
файла, который будет обновляться ежедневно с помощью cronjob.
sudo mkdir /etc/ssl/h2o/
Создать новый regenerate_dhparam
файл.
sudo nano /etc/cron.daily/regenerate_dhparam
Скопируйте и вставьте следующий текст в regenerate_dhparam
файл.
#!/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
Сделайте bash файл только что созданным исполняемым.
sudo chmod +x /etc/cron.daily/regenerate_dhparam
Выполните bash-скрипт для первого запуска, так как H2O не запустится должным образом, если он не сгенерирован. Это займет около минуты или двух для генерации при первом запуске.
sudo /etc/cron.daily/regenerate_dhparam
Для обработки PHP должен быть установлен и настроен демон PHP-FPM 5.6. Чтобы установить версию PHP-FPM, более новую, чем версия 5.4.x по умолчанию, необходимо установить репозиторий REMI, содержащий версии PHP 5.6.x, 7.0.x и 7.1.x. Введите следующие команды для установки PHP версии 5.6.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php56-php-fpm -y
Перейдите в /opt/remi/php56/root/etc/
каталог.
cd /opt/remi/php56/root/etc/
Переименуйте значение php-fpm.conf
по умолчанию в php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Создать новый php-fpm.conf
файл.
sudo nano php-fpm.conf
Скопируйте и вставьте следующий текст в php-fpm.conf
файл.
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
Переименуйте www.conf
файл по умолчанию в php-fpm.d
каталоге.
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Создать новый www.conf
файл.
sudo nano php-fpm.d/www.conf
Скопируйте и вставьте текст ниже в www.conf
файл. Измените ваш, pm.max\_children
чтобы соответствовать количеству процессоров в соответствии с вашим экземпляром 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
Переименуйте php.ini
файл по умолчанию .
sudo mv php.ini php.ini.original
Создать новый php.ini
файл.
sudo nano php.ini
Скопируйте и вставьте текст ниже в новый php.ini file
. Изменение memory\_limit
, post\_max\_size
, upload\_max\_filesize
и date.timezone
в соответствии с экземпляром 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"
Измените принадлежность группы для /opt/remi/php56/root/var/lib/php/session/
каталога с apache
группы на h2o
группу.
sudo chown root.h2o /opt/remi/php56/root/var/lib/php/session/
Создайте каталог, в котором будут находиться журналы сервера PHP-FPM.
sudo mkdir /var/log/php-fpm/
Включите и запустите сервер PHP-FPM.
sudo systemctl enable php56-php-fpm
sudo systemctl start php56-php-fpm
Включите и запустите сервер H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Create a directory where the default index.php
will reside listed by the directory option file.dir
above in /var/www/example.com
.
sudo mkdir /var/www/example.com
Create a default index.php
using the phpinfo
command to test PHP.
sudo nano /var/www/example.com/index.php
Copy and paste the text below in the new index.php
file.
<?php
phpinfo();
?>
Now, open your browser and enter the server domain name (example.com
or www.example.com
) for your instance. Are you getting an Unable to connect
or a This site can’t be reached
message? CentOS's default firewall setting disallows incoming connections to the http port. Do the following to open it.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Refresh the page in your browser (F5
) and you will get the standard PHP info page.
http://example.com
, http://www.example.com
, and https://example.com
to https://www.example.com
(Dynamic Page, PHP-FPM 5.6.x) ConfigurationNavigate to the /etc/h2o/
directory.
cd /etc/h2o/
Переименуйте значение h2o.conf
по умолчанию в h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Создать новый h2o.conf
файл.
sudo nano h2o.conf
Скопируйте и вставьте текст ниже в h2o.conf
файл.
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
Создайте пользовательский каталог для хранения параметров SSL по умолчанию для всех сайтов, которые используют SSL.
sudo mkdir conf.d
Создать новый ssl.conf
файл.
sudo nano conf.d/ssl.conf
Скопируйте и вставьте текст ниже в ssl.conf
файл.
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
Создайте каталог для хранения dhparam_2048.pem
файла, который будет обновляться ежедневно с помощью cronjob.
sudo mkdir /etc/ssl/h2o/
Создать новый regenerate_dhparam
файл.
sudo nano /etc/cron.daily/regenerate_dhparam
Скопируйте и вставьте следующий текст в regenerate_dhparam
файл.
#!/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
Сделайте bash файл только что созданным исполняемым.
sudo chmod +x /etc/cron.daily/regenerate_dhparam
Выполните bash-скрипт для первого запуска, так как H2O не запустится должным образом, если он не сгенерирован. Это займет около минуты или двух для генерации при первом запуске.
sudo /etc/cron.daily/regenerate_dhparam
Для обработки PHP должен быть установлен и настроен демон PHP-FPM 5.6. Чтобы установить версию PHP-FPM, более новую, чем версия 5.4.x по умолчанию, необходимо установить репозиторий REMI, содержащий версии PHP 5.6.x, 7.0.x и 7.1.x. Введите следующие команды для установки PHP версии 5.6.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php56-php-fpm -y
Перейдите в /opt/remi/php56/root/etc/
каталог.
cd /opt/remi/php56/root/etc/
Переименуйте значение php-fpm.conf
по умолчанию в php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Создать новый php-fpm.conf
файл.
sudo nano php-fpm.conf
Скопируйте и вставьте текст ниже в php-fpm.conf
файл.
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
Переименуйте www.conf
файл по умолчанию в php-fpm.d
каталоге.
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Создать новый www.conf
файл.
sudo nano php-fpm.d/www.conf
Скопируйте и вставьте текст ниже в www.conf
файл. Измените ваш, pm.max\_children
чтобы соответствовать количеству процессоров в соответствии с вашим экземпляром 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
Переименуйте php.ini
файл по умолчанию .
sudo mv php.ini php.ini.original
Создать новый php.ini
файл.
sudo nano php.ini
Скопируйте и вставьте следующий текст в новый php.ini file
. Изменение memory\_limit
, post\_max\_size
, upload\_max\_filesize
и date.timezone
в соответствии с экземпляром 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"
Измените принадлежность группы для /opt/remi/php56/root/var/lib/php/session/
каталога с apache
группы на h2o
группу.
sudo chown root.h2o /opt/remi/php56/root/var/lib/php/session/
Создайте каталог, в котором будут находиться журналы сервера PHP-FPM.
sudo mkdir /var/log/php-fpm/
Включите и запустите сервер PHP-FPM.
sudo systemctl enable php56-php-fpm
sudo systemctl start php56-php-fpm
Включите и запустите сервер H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Создайте каталог, в котором index.php
будет находиться каталог по умолчанию , указанный в параметре каталога file.dir
выше в /var/www/www.example.com
.
sudo mkdir /var/www/www.example.com
Создайте значение по умолчанию, index.php
используя phpinfo
команду для проверки PHP.
sudo nano /var/www/www.example.com/index.php
Скопируйте и вставьте текст ниже в новый index.php
файл.
<?php
phpinfo();
?>
Теперь откройте браузер и введите доменное имя сервера ( example.com or www.example.com
) для вашего экземпляра. Вы получаете Unable to connect
или This site can’t be reached
сообщение? Настройка брандмауэра CentOS по умолчанию запрещает входящие подключения к порту http. Сделайте следующее, чтобы открыть его.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Обновите страницу в вашем браузере ( F5
), и вы получите стандартную страницу информации PHP.
http://example.com
, http://www.example.com
и https://www.example.com
к https://example.com
(Dynamic Page, PHP-FPM 7.1.x) КонфигурацияПерейдите в /etc/h2o/
каталог.
cd /etc/h2o/
Переименуйте значение h2o.conf
по умолчанию в h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Создать новый h2o.conf
файл.
sudo nano h2o.conf
Скопируйте и вставьте текст ниже в h2o.conf
файл.
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
Создайте пользовательский каталог для хранения параметров SSL по умолчанию для всех сайтов, которые используют SSL.
sudo mkdir conf.d
Создать новый ssl.conf
файл.
sudo nano conf.d/ssl.conf
Скопируйте и вставьте текст ниже в ssl.conf
файл.
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
Создайте каталог для хранения dhparam_2048.pem
файла, который будет обновляться ежедневно с помощью cronjob.
sudo mkdir /etc/ssl/h2o/
Создать новый regenerate_dhparam
файл.
sudo nano /etc/cron.daily/regenerate_dhparam
Скопируйте и вставьте следующий текст в regenerate_dhparam
файл.
#!/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
Сделайте bash файл только что созданным исполняемым.
sudo chmod +x /etc/cron.daily/regenerate_dhparam
Выполните bash-скрипт для первого запуска, так как H2O не запустится должным образом, если он не сгенерирован. Это займет около минуты или двух для генерации при первом запуске.
sudo /etc/cron.daily/regenerate_dhparam
Для обработки PHP необходимо установить и настроить демон PHP-FPM 7.1. Чтобы установить версию PHP-FPM, более новую, чем версия 5.4.x по умолчанию, необходимо установить репозиторий REMI, содержащий версии PHP 5.6.x, 7.0.x и 7.1.x. Введите следующие команды ниже, чтобы установить PHP версии 7.1.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php71-php-fpm -y
Перейдите в /etc/opt/remi/php71/
каталог.
cd /etc/opt/remi/php71/
Переименуйте значение php-fpm.conf
по умолчанию в php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Создать новый php-fpm.conf
файл.
sudo nano php-fpm.conf
Скопируйте и вставьте текст ниже в php-fpm.conf
файл.
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
Переименуйте www.conf
файл по умолчанию в php-fpm.d
каталоге.
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Создать новый www.conf
файл.
sudo nano php-fpm.d/www.conf
Скопируйте и вставьте следующий текст в www.conf
файл. Измените ваш, pm.max\_children
чтобы соответствовать количеству процессоров в соответствии с вашим экземпляром 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
Переименуйте php.ini
файл по умолчанию .
sudo mv php.ini php.ini.original
Создать новый php.ini
файл.
sudo nano php.ini
Скопируйте и вставьте следующий текст ниже в новый php.ini file
. Изменение memory\_limit
, post\_max\_size
, upload\_max\_filesize
и date.timezone
в соответствии с экземпляром 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"
Измените принадлежность группы для /var/opt/remi/php71/lib/php/session/
каталога с apache
группы на h2o
группу.
sudo chown root.h2o /var/opt/remi/php71/lib/php/session/
Создайте каталог, в котором будут находиться журналы сервера PHP-FPM.
sudo mkdir /var/log/php-fpm/
Включите и запустите сервер PHP-FPM.
sudo systemctl enable php71-php-fpm
sudo systemctl start php71-php-fpm
Включите и запустите сервер H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Create a directory where the default index.php
will reside listed by the directory option file.dir
above in /var/www/example.com
.
sudo mkdir /var/www/example.com
Create a default index.php
using the phpinfo
command to test PHP.
sudo nano /var/www/example.com/index.php
Copy and paste the text below in the new index.php
file.
<?php
phpinfo();
?>
Now, open your browser and enter the server domain name (example.com
or www.example.com
) for your instance. Are you getting an Unable to connect
or a This site can’t be reached
message? CentOS's default firewall setting disallows incoming connections to the http port. Do the following to open it.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Refresh the page in your browser (F5
) and you will get the standard PHP info page.
http://example.com
, http://www.example.com
, and https://example.com
to https://www.example.com
(Dynamic Page, PHP-FPM 7.1.x) ConfigurationNavigate to the /etc/h2o/
directory.
cd /etc/h2o/
Переименуйте значение h2o.conf
по умолчанию в h2o.conf.original
.
sudo mv h2o.conf h2o.conf.original
Создать новый h2o.conf
файл.
sudo nano h2o.conf
Скопируйте и вставьте текст ниже в h2o.conf
файл.
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
Создайте пользовательский каталог для хранения параметров SSL по умолчанию для всех сайтов, которые используют SSL.
sudo mkdir conf.d
Создать новый ssl.conf
файл.
sudo nano conf.d/ssl.conf
Скопируйте и вставьте текст ниже в ssl.conf
файл.
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
С��здайте каталог для хранения dhparam_2048.pem
файла, который будет обновляться ежедневно с помощью cronjob.
sudo mkdir /etc/ssl/h2o/
Создать новый regenerate_dhparam
файл.
sudo nano /etc/cron.daily/regenerate_dhparam
Скопируйте и вставьте следующий текст в regenerate_dhparam
файл.
#!/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
Сделайте bash файл только что созданным исполняемым.
sudo chmod +x /etc/cron.daily/regenerate_dhparam
Выполните bash-скрипт для первого запуска, так как H2O не запустится должным образом, если он не сгенерирован. Это займет около минуты или двух для генерации при первом запуске.
sudo /etc/cron.daily/regenerate_dhparam
In order to process PHP, the PHP-FPM 7.1 daemon must be installed and configured. In order to install a version of PHP-FPM newer than the default 5.4.x, the REMI repo must be installed which contains PHP versions 5.6.x, 7.0.x and 7.1.x. Type the following commands to install PHP version 7.1.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php71-php-fpm -y
Navigate to the /etc/opt/remi/php71/
directory.
cd /etc/opt/remi/php71/
Rename the default php-fpm.conf
to php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Create a new php-fpm.conf
file.
sudo nano php-fpm.conf
Copy and paste the following text into the php-fpm.conf
file.
include=/etc/opt/remi/php71/php-fpm.d/*.conf
[global]
daemonize = yes
emergency_restart_threshold = 2
emergency_restart_interval = 1m
error_log = /var/log/php-fpm/php-fpm-7.1-error.log
pid = /var/run/php-fpm-7.1.pid
process_control_timeout = 10s
Rename the default www.conf
file in the php-fpm.d
directory.
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Create a new www.conf
file.
sudo nano php-fpm.d/www.conf
Copy and paste the text below into the www.conf
file. Change your pm.max\_children
to match the number of CPUs in accordance with your VPS instance.
[www]
group = h2o
listen = /var/run/php-fpm-7.1.sock
listen.backlog = 65536
listen.owner = h2o
listen.group = h2o
pm = static
pm.max_children = 2
pm.max_requests = 10240
user = h2o
Rename the default php.ini
file.
sudo mv php.ini php.ini.original
Create a new php.ini
file.
sudo nano php.ini
Скопируйте и вставьте следующий текст ниже в новый php.ini file
. Изменение memory\_limit
, post\_max\_size
, upload\_max\_filesize
и date.timezone
в соответствии с экземпляром 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"
Измените принадлежность группы для /var/opt/remi/php71/lib/php/session/
каталога с apache
группы на h2o
группу.
sudo chown root.h2o /var/opt/remi/php71/lib/php/session/
Создайте каталог, в котором будут находиться журналы сервера PHP-FPM.
sudo mkdir /var/log/php-fpm/
Включите и запустите сервер PHP-FPM.
sudo systemctl enable php71-php-fpm
sudo systemctl start php71-php-fpm
Включите и запустите сервер H2O.
sudo systemctl enable h2o
sudo systemctl start h2o
Создайте каталог, в котором index.php
будет находиться каталог по умолчанию , указанный в параметре каталога file.dir
выше в /var/www/example.com
.
sudo mkdir /var/www/www.example.com
Создайте значение по умолчанию, index.php
используя phpinfo
команду для проверки PHP.
sudo nano /var/www/www.example.com/index.php
Скопируйте и вставьте текст ниже в новый index.php
файл.
<?php
phpinfo();
?>
Теперь откройте браузер и введите доменное имя сервера ( example.com
или www.example.com
) для вашего экземпляра. Вы получаете Unable to connect
или This site can’t be reached
сообщение? Настройка брандмауэра CentOS по умолчанию запрещает входящие подключения к порту http. Сделайте следующее, чтобы открыть его.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Обновите страницу в вашем браузере ( F5
), и вы получите стандартную страницу информации PHP.
На этом мой учебник завершен. Спасибо за чтение.
Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.
При настройке нового сервера Linux рекомендуется обновить ядро системы и другие пакеты до последней стабильной версии. В этой статье
Используете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам
Если вы хотите разместить свой инвентарь в Интернете или просто магазин технических аксессуаров, Magento - отличное решение для электронной коммерции в Интернете. Это статья
Используете другую систему? AirSonic - это бесплатный и потоковый сервер с открытым исходным кодом. В этом уроке я проведу вас через процесс развертывания
OrangeScrum - это бесплатный инструмент управления проектами с открытым исходным кодом, который широко используется в малом и среднем бизнесе. В этой статье я проведу вас через
OrientDB - это мультимодельная СУБД NoSQL с открытым исходным кодом нового поколения. Благодаря поддержке нескольких моделей данных OrientDB может обеспечить большую функциональность и гибкость в
Vtiger CRM - это популярное приложение для управления взаимоотношениями с клиентами, которое может помочь предприятиям увеличить продажи, обеспечить обслуживание клиентов и увеличить прибыль. я
MaraDNS - это легкая, но надежная программа с открытым исходным кодом для DNS-сервера. По сравнению с другими приложениями того же типа, такими как ISC BIND, PowerDNS и djbdns
Используете другую систему? Netdata - восходящая звезда в области мониторинга показателей системы в режиме реального времени. По сравнению с другими инструментами того же рода, Netdata:
Используете другую систему? В этом уроке я расскажу, как настроить сервер Starbound в CentOS 7. Предварительные условия Вы должны иметь эту игру на себе
RabbitMQ - это брокер сообщений с открытым исходным кодом, который поддерживает AMQP, STOMP и другие коммуникационные технологии. Широко используется в корпоративных приложениях
Добро пожаловать в другой учебник Vultr. Здесь вы узнаете, как установить и запустить сервер SAMP. Это руководство было написано для CentOS 6. Предварительные условия
Используете другую систему? Elgg - это движок социальных сетей с открытым исходным кодом, который позволяет создавать социальные среды, такие как социальные сети кампуса и
Bolt - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Bolts размещен на GitHub. Это руководство покажет вам, как установить Bolt CMS на новую CentOS 7 Vult.
Традиционные подходы к анализу данных невозможно использовать, когда наборы данных достигают определенного размера. Современная альтернатива анализу огромных массивов данных, которые я
Elasticsearch - популярный движок полнотекстового поиска и аналитики с открытым исходным кодом. Благодаря своей универсальности, масштабируемости и простоте использования, Elasticsearch широко используется
Обзор Эта статья призвана помочь вам в кратчайшие сроки запустить и запустить кластер Kubernetes с помощью kubeadm. Это руководство будет развертывать два сервера, на
Используете другую систему? Введение Sails.js - это инфраструктура MVC для Node.js, аналогичная Ruby on Rails. Это делает для разработки современных приложений вер
Введение В этом руководстве мы будем устанавливать PufferPanel на нашем Vultr VPS. PufferPanel - это бесплатная панель управления с открытым исходным кодом для управления вами.
Изучение 26 методов анализа больших данных: часть 1
Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.
Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.
Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.
Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.
CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?
По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.
Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!
Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.
Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше