我想更改特定主机的文档根目录。
目前主机的设置为:
<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>
我尝试在/usr/local/apache/conf/userdata/std/2_4/abc/abc.com/
中创建一个conf文件,将文档根目录更改为.../public_html/public
,然后运行/scripts/ensure_vhost_includes --all-users
以重建httpd.conf并重新启动Apache。但是,我不认为它会生效,因为public_html
中的文件仍可由全世界访问。
自定义主机设置的正确方法是什么?
答案 0 :(得分:0)
创建一个影响cPanel&amp; 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,不适用于服务器上的所有虚拟主机。