如何在CentOS 7上安装Mailtrain新闻通讯应用程序
使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。
H2O是新一代HTTP服务器,它对所有当前使用的Web服务器都具有出色的,功能齐全的HTTP / 2实现。将H2O用作Web服务器,您可以利用HTTP / 2规范的新功能,例如延迟优化,服务器推送和服务器端优先级划分,这些功能可以利用鲜为人知的现代浏览器功能。
在这个详细的教程中,我将逐步向您展示如何在CentOS 7 x64实例上运行H2O。
使用在您的实例下找到的凭据通过SSH登录并按如下所示更新系统。
sudo yum install epel-release -y
sudo yum clean all && sudo yum update -y
为了在CentOS 7上安装H2O,必须添加Bintray RPM存储库以安装预构建的H2O二进制文件。使用Nano编辑器创建自定义存储库。
sudo nano /etc/yum.repos.d/bintray-h2o-rpm.repo
复制下面的文本并将其粘贴到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创建一个组和用户以在named下运行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守护程序。为了安装比默认5.4.x更高的PHP-FPM版本,必须安装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实例更改以匹配CPU的数量。
[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守护程序。为了安装比默认5.4.x更高的PHP-FPM版本,必须安装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实例更改以匹配CPU的数量。
[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守护程序。为了安装比默认5.4.x更高的PHP-FPM版本,必须安装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实例更改以匹配CPU的数量。
[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();
?>
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
To http://www.example.com
(Dynamic Page, PHP-FPM 7.1.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: "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
为了处理PHP,必须安装和配置PHP-FPM 7.1守护程序。为了安装比默认5.4.x更高的PHP-FPM版本,必须安装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实例更改以匹配CPU的数量。
[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/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://example.com
,http://www.example.com
和重定向https://www.example.com
到https://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:
"/":
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
创建一个自定义目录来存储所有使用SSL的网站的默认SSL选项。
sudo mkdir conf.d
创建一个新ssl.conf
文件。
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
现在,打开浏览器并为您的实例输入服务器域名(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://www.example.com
到https://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: "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
创建一个自定义目录来存储所有使用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守护程序。为了安装比默认5.4.x更高的PHP-FPM版本,必须安装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实例更改以匹配CPU的数量。
[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 --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
在浏览器(F5
)中刷新页面,您将获得标准的PHP信息页面。
http://example.com
,http://www.example.com
和重定向https://example.com
到https://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: "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
In order to process PHP, the PHP-FPM 5.6 daemon must be installed and configured. In order to install a version of PHP-FPM newer than the default 5.4.x, the REMI repo must be installed which contains PHP versions 5.6.x, 7.0.x and 7.1.x. Type the following commands to install PHP version 5.6.x.
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum install php56-php-fpm -y
Navigate to the /opt/remi/php56/root/etc/
directory.
cd /opt/remi/php56/root/etc/
Rename the default php-fpm.conf
to php-fpm.conf.original
.
sudo mv php-fpm.conf php-fpm.conf.original
Create a new php-fpm.conf
file.
sudo nano php-fpm.conf
Copy and paste the text below into the php-fpm.conf
file.
include=/opt/remi/php56/root/etc/php-fpm.d/*.conf
[global]
daemonize = yes
emergency_restart_threshold = 2
emergency_restart_interval = 1m
error_log = /var/log/php-fpm/php-fpm-5.6-error.log
pid = /var/run/php-fpm-5.6.pid
process_control_timeout = 10s
Rename the default www.conf
file in the php-fpm.d
directory.
sudo mv php-fpm.d/www.conf php-fpm.d/www.conf.original
Create a new www.conf
file.
sudo nano php-fpm.d/www.conf
Copy and paste the text below into the www.conf
file. Change your pm.max\_children
to match the number of CPUs in accordance with your VPS instance.
[www]
group = h2o
listen = /var/run/php-fpm-5.6.sock
listen.backlog = 65536
listen.owner = h2o
listen.group = h2o
pm = static
pm.max_children = 2
pm.max_requests = 10240
user = h2o
Rename the default php.ini
file.
sudo mv php.ini php.ini.original
Create a new php.ini
file.
sudo nano php.ini
将以下文本复制并粘贴到新的中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
(动态页面,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守护程序。为了安装比默认5.4.x更高的PHP-FPM版本,必须安装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实例更改以匹配CPU的数量。
[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 --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
在浏览器(F5
)中刷新页面,您将获得标准的PHP信息页面。
http://example.com
,http://www.example.com
和重定向https://example.com
到https://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: "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
为了处理PHP,必须安装和配置PHP-FPM 7.1守护程序。为了安装比默认5.4.x更高的PHP-FPM版本,必须安装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实例更改以匹配CPU的数量。
[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/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信息页面。
我的教程到此结束。谢谢阅读。
在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。
快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。
学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。
使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。
了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。
Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+
閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。
最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息