在Apache VirtualHost

时间:2015-04-25 21:58:15

标签: php apache virtualhost

我有一个现有的子域名subdomain.mysite.com,我使用SSL。我尝试在此子域上安装PHPasswordPusher,但我不确定如何正确地使用Apache。

我已按照提供的说明操作。例如,subdomain.mysite.com的DocumentRoot为/var/www/subdomain,两个pwpusher目录位于/var/www/ppush。我已经将安装说明中给出的代码完全添加到相应的VirtualHost中,并且我已经按照指定编辑了代码以指向所有内容的正确目录。但是,当我尝试转到子域上的Alias目录时,我得到了404。 (是的,我重新启动了Apache。)

如何让给定的Apache配置在现有的VirtualHost中运行? VirtualHost的完整代码如下所示,针对我上面给出的位置进行了编辑。

<VirtualHost *:80 *:443>
        ServerName subdomain.mysite.com

        ServerAdmin emailaddress@host.com
        DocumentRoot /var/www/subdomain

        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

        SSLEngine on
        SSLProtocol all -SSLv3
        SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM

        SSLCertificateFile /path/to/cert.crt
        SSLCertificateKeyFile /path/to/key.key
        SSLCertificateChainFile /path/to/cert2.pem

    ##### PHPasswordPusher #####

        Alias /pwpusher/ /var/www/ppush/pwpusher_public/

        <Directory /var/www/ppush/pwpusher_public/>
            AllowOverride None
            Order allow,deny
            Allow from all
            DirectoryIndex pw.php
        </Directory>

        <Directory /var/www/ppush/pwpusher_private/>
            AllowOverride None
            Order deny,allow
            Deny from all
        </Directory>
</VirtualHost>

1 个答案:

答案 0 :(得分:1)

使用配置的所有内容看起来都不错,*:80的{​​{1}}除外,它会生成&#34;错误请求&#34;使用VirtualHost打开URL时出错(我建议您将SSL指令移至http://),但不是404错误的原因。

有点粗糙,但您可以尝试通过运行

来了解Apache真正访问的目录
<VirtualHost *:443>

然后打开页面。在最后一行中你应该看到类似的东西:

strace -p $(pgrep apache2 | xargs | sed 's/ / -p /g')