Apache 如何为WHM CPanel主机自定义vhost文件?
我想更改特定主机的文档根目录 当前主机的设置为:Apache 如何为WHM CPanel主机自定义vhost文件?,apache,cpanel,virtualhost,whm,Apache,Cpanel,Virtualhost,Whm,我想更改特定主机的文档根目录 当前主机的设置为: <VirtualHost 123.164.132.142:80> ServerName abc.com ServerAlias mail.abc.com www.abc.com DocumentRoot /home/abc/public_html ServerAdmin webmaster@abc.com UseCanonicalName Off CustomLog /usr/local/apache/doml
<VirtualHost 123.164.132.142:80>
ServerName abc.com
ServerAlias mail.abc.com www.abc.com
DocumentRoot /home/abc/public_html
ServerAdmin webmaster@abc.com
UseCanonicalName Off
CustomLog /usr/local/apache/domlogs/abc.com combined
<IfModule log_config_module>
<IfModule logio_module>
CustomLog /usr/local/apache/domlogs/abc.com-bytes_log "%{%s}t %I .\n%{%s}t %O ."
</IfModule>
</IfModule>
## User abc # Needed for Cpanel::ApacheConf
<IfModule userdir_module>
<IfModule !mpm_itk.c>
<IfModule !ruid2_module>
UserDir enabled
</IfModule>
</IfModule>
</IfModule>
# Enable backwards compatible Server Side Include expression parser for Apache versions >= 2.4.
# To selectively use the newer Apache 2.4 expression parser, disable SSILegacyExprParser in
# the user's .htaccess file. For more information, please read:
# http://httpd.apache.org/docs/2.4/mod/mod_include.html#ssilegacyexprparser
<IfModule include_module>
<Directory "/home/abc/public_html">
SSILegacyExprParser On
</Directory>
</IfModule>
<IfModule suphp_module>
suPHP_UserGroup abc abc
</IfModule>
<IfModule !mod_disable_suexec.c>
<IfModule !mod_ruid2.c>
SuexecUserGroup abc abc
</IfModule>
</IfModule>
<IfModule ruid2_module>
RMode config
RUidGid abc abc
</IfModule>
<IfModule mpm_itk.c>
# For more information on MPM ITK, please read:
# http://mpm-itk.sesse.net/
AssignUserID abc abc
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ /home/abc/public_html/cgi-bin/
</IfModule>
Include "/usr/local/apache/conf/userdata/std/2_4/abc/abc.com/*.conf"
</VirtualHost>
服务器名abc.com
ServerAlias mail.abc.com www.abc.com
DocumentRoot/home/abc/public\u html
服务器管理员webmaster@abc.com
UseCononicalName关闭
CustomLog/usr/local/apache/domlogs/abc.com组合
CustomLog/usr/local/apache/domlogs/abc.com-bytes_log“%{%s}t%I。\n%{%s}t%O。”
##Cpanel::ApacheConf需要用户abc
已启用UserDir
#为Apache版本>=2.4启用向后兼容的服务器端Include表达式解析器。
#要有选择地使用较新的Apache 2.4表达式解析器,请在中禁用SSILegacyExprParser
#用户的.htaccess文件。有关更多信息,请阅读:
# http://httpd.apache.org/docs/2.4/mod/mod_include.html#ssilegacyexprparser
SSILegacyExprParser On
suPHP_用户组abc
SuexecUserGroup abc
RMode配置
鲁迪吉德abc
#有关MPM ITK的更多信息,请阅读:
# http://mpm-itk.sesse.net/
分配用户ID abc
ScriptAlias/cgi-bin//home/abc/public\u html/cgi-bin/
包括“/usr/local/apache/conf/userdata/std/2_4/abc/abc.com/*.conf”
我试图在/usr/local/apache/conf/userdata/std/2_4/abc/abc.com/
中创建一个conf文件,将文档根目录更改为../public\u html/public
,然后运行/scripts/sure\u vhost\u includes--all users
来重建httpd.conf并重新启动apache。然而,我认为它不会生效,因为public\uhtml
中的文件仍然可以被世界访问
为主机自定义设置的正确方法是什么?要创建影响cPanel&WHM仅为单个虚拟主机构建条目的自定义模板,您必须执行以下步骤: 创建以下一个或多个文件的副本:
Apache 2.2 with SSL — /var/cpanel/templates/apache2_2/ssl_vhost.default
Apache 2.4 with SSL — /var/cpanel/templates/apache2_4/ssl_vhost.default
Apache 2.2 without SSL — /var/cpanel/templates/apache2_2/vhost.default
Apache 2.4 without SSL — /var/cpanel/templates/apache2_4/vhost.default
将文件的新副本重命名为以下文件名之一:
vhost.local(如果复制vhost.default文件,请使用此文件名)
ssl_vhost.local(如果复制了ssl_vhost.default文件,请使用此文件名)
编辑新文件以更改虚拟主机配置。
将新文件移动到任何其他目录(在本例中,假设为/opt)。假设您将新模板设置为/opt/new vhost template
使用以下脚本向数据结构添加必要的信息:
perl -MYAML::Syck -e \
'my $hr = YAML::Syck::LoadFile($ARGV[0]);$hr->{$ARGV[1]} = $ARGV[2];YAML::Syck::DumpFile($ARGV[0],$hr);' \
/var/cpanel/userdata/$username/$domainname custom_vhost_template_ap2 /opt/new-vhost-template
那就应该成功了
请记住,上述示例适用于cpanel用户/帐户的特定vhost,而不适用于服务器上的所有vhost。要创建影响cpanel&WHM仅为单个虚拟主机构建条目的自定义模板,您必须执行以下步骤: 创建以下一个或多个文件的副本:
Apache 2.2 with SSL — /var/cpanel/templates/apache2_2/ssl_vhost.default
Apache 2.4 with SSL — /var/cpanel/templates/apache2_4/ssl_vhost.default
Apache 2.2 without SSL — /var/cpanel/templates/apache2_2/vhost.default
Apache 2.4 without SSL — /var/cpanel/templates/apache2_4/vhost.default
将文件的新副本重命名为以下文件名之一:
vhost.local(如果复制vhost.default文件,请使用此文件名)
ssl_vhost.local(如果复制了ssl_vhost.default文件,请使用此文件名)
编辑新文件以更改虚拟主机配置。
将新文件移动到任何其他目录(在本例中,假设为/opt)。假设您将新模板设置为/opt/new vhost template
使用以下脚本向数据结构添加必要的信息:
perl -MYAML::Syck -e \
'my $hr = YAML::Syck::LoadFile($ARGV[0]);$hr->{$ARGV[1]} = $ARGV[2];YAML::Syck::DumpFile($ARGV[0],$hr);' \
/var/cpanel/userdata/$username/$domainname custom_vhost_template_ap2 /opt/new-vhost-template
那就应该成功了
请记住,上面的示例适用于cpanel用户/帐户的特定vhost,而不适用于服务器上的所有vhost