如何在CentOS 7上安装Oxwall
Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,
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信息页面。
我的教程到此结束。谢谢阅读。
Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,
FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o
在本教程中,我们将介绍在CentOS 6x x64上安装和使用nethogs的过程。nethogs是一种网络监视工具,它允许Networ
使用其他系统?简介BoltWire是一个用PHP编写的免费,轻量级的内容管理系统。与大多数其他内容管理人员相比
欢迎来到另一个Vultr教程。在这里,您将学习如何安装和运行SAMP服务器。本指南是为CentOS 6编写的。先决条件
简介/ etc /目录在Linux系统运行中起着至关重要的作用。其原因是因为几乎每个系统配置
使用其他系统?Microweber是一个开放源代码的拖放式CMS和在线商店。Microweber源代码托管在GitHub上。本指南将向您展示
使用其他系统?SonarQube是用于质量系统开发的开源工具。它是用Java编写的,并且支持多个数据库。它提供
使用其他系统?Mosh是Mobile Shell的缩写,是一种新兴的远程终端应用程序,旨在提供更好的连接和使用
MoinMoin是一个使用Python编写的基于文件系统的开源Wiki引擎。如今,MoinMoin已广泛用于开源社区。许多供应商
在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫
使用其他系统?Countly是一个开源Web /移动分析和营销平台。它具有许多用于从Web收集数据的功能
MODX是一个用PHP编写的免费开放源内容管理系统。它使用MySQL或MariaDB来存储其数据库。MODX专为满足以下条件的企业而设计:
使用其他系统?Lychee 3.1相册是一种简单,灵活,免费和开源的照片管理工具,可在VPS服务器上运行。安装
使用其他系统?ERP或企业资源计划是用于管理核心业务流程的企业应用程序套件。ERPNext是免费的
使用其他系统?Paste 2.1是一个简单,灵活,免费和开源的pastebin应用程序,用于存储代码,文本等。最初是
使用其他系统?Seafile(社区版本)是一个免费和开源的文件同步和共享解决方案,类似于ownCloud。机智
使用其他系统?Kolab Groupware是一个免费的基于Web的开源组件软件。它的功能包括电子邮件通信,事件
使用其他系统?Omeka Classic 2.4 CMS是一个免费的开源数字发布平台和用于共享数字内容的内容管理系统(CMS)
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。
Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+
閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。
最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息
大數據的13個商業數據提取工具
我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true
隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。
洞察 26 種大數據分析技術:第 1 部分
過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。