2015-04-25 6 views
3

У меня есть существующий субдомен, subdomain.mysite.com, который я использую с SSL. Я пытаюсь установить PHPasswordPusher на этот поддомен, но я не уверен, как это сделать с Apache.Настройка псевдонима и каталога внутри Apache VirtualHost

Я следил за инструкциями, как предусмотрено. Например, DocumentRoot для subdomain.mysite.com - /var/www/subdomain, а два каталога pwpusher - в /var/www/ppush. Я добавил код, как указано в инструкциях по установке, к соответствующему VirtualHost, и я отредактировал код, как указано, чтобы указать на правильные каталоги для всего. Однако я получаю 404, когда пытаюсь перейти в каталог Alias ​​на субдомене. (Да, я перезапустил Apache.)

Как получить заданную конфигурацию Apache для работы в существующем VirtualHost? Ниже приведен полный код для VirtualHost, отредактированный для мест, указанных выше.

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

     ServerAdmin [email protected] 
     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

Все с конфигурацией выглядит нормально, за исключением '*: 80' для' VirtualHost', который будет генерировать «плохой запрос» ошибки, но не было бы причина ошибки 404. Немного грубо, но вы можете попытаться понять, к какому каталогу Apache действительно обращаются, запустив 'strace -p $ (pgrep apache2 | xargs | sed's// -p/g ')' и откройте страницу. На одной из последних строк вы должны увидеть что-то вроде 'stat ("/var/www/dsd ", 0x7fff470d2400) = -1 ENOENT (Нет такого файла или каталога)' – VolenD

+2

@ user3584460 Это потрясающая команда, спасибо! Похоже, что он полностью игнорирует 'Alias', хотя команда сообщает об этом:' [pid 1228] lstat ("/ var/www/subdomain/pwpusher", 0x7ffcc44c90f0) = -1 ENOENT (Нет такого файла или каталога) ' , Используя эту информацию, я нашел [этот вопрос] (https://stackoverflow.com/questions/13189261/apache2-alias-not-working-in-ubuntu); удалив конечную '/' исправленную мою проблему. Если вы хотите опубликовать это как ответ, я более чем счастлив дать вам кредит/щедрость. Спасибо! – vaindil

ответ

1

Все с конфигурацией выглядит нормально, за исключением того, *:80 для VirtualHost, который будет генерировать ошибку «Bad Request», когда URL открывается с http:// (я советую вам, чтобы переместить SSL директивы <VirtualHost *:443>), но не будет причина 404 ошибки.

Немного грубо, но вы можете попытаться понять, что каталог Apache действительно получает доступ, запустив

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

и откройте страницу. На одной из последних строк, вы должны увидеть что-то вроде:

stat("/var/www/dsd", 0x7fff470d2400) = -1 ENOENT (No such file or directory) 
+1

Для тех, кто читает этот комментарий, а не оригинальные комментарии, вот что я написал выше: Это потрясающая команда, спасибо! Похоже, что он полностью игнорирует 'Alias', хотя команда сообщает об этом:' [pid 1228] lstat ("/ var/www/subdomain/pwpusher", 0x7ffcc44c90f0) = -1 ENOENT (Нет такого файла или каталога) ' , Используя эту информацию, я нашел этот вопрос; удалив конечную '/' исправленную мою проблему. Спасибо! – vaindil