2017-07-27 80 views
0

我想更改特定主機的文檔根目錄。如何爲WHM-CPanel主機定製vhost文件?

目前該主機的設置是:

<VirtualHost 123.164.132.142:80> 
    ServerName abc.com 
    ServerAlias mail.abc.com www.abc.com 
    DocumentRoot /home/abc/public_html 
    ServerAdmin [email protected] 
    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

要創建影響的cPanel &南國如何建立條目只有一個虛擬主機自定義模板,你必須執行以下步驟:

創建一個或多個以下文件的副本:

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 f使用這個文件名ILE)

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用戶/帳戶的特定虛擬主機,並不適用於服務器上的所有虛擬主機。

相關問題