Назад | Перейти на главную страницу

Подпапка Apache Alias ​​и начинается с точки

У меня есть многоцелевой сервер под управлением ArchLinux, который в настоящее время обслуживает несколько виртуальных хостов из /var/www/domains/EXAMPLE.COM/html /var/www/domains/EXAMPLE2.COM/html

Я развертываю эти веб-сайты (в основном с использованием фреймворка Kohana), используя задание Jenkins, проверяя проект, удаляя папку .git, копируя ssh tar.gz в / var / www / domains / на сервере и распаковывая его.

Поскольку я не хочу переустанавливать phpMyAdmin после каждого развертывания, я решил использовать псевдоним.

Я бы хотел, чтобы псевдоним был чем-то вроде /.tools/phpMyAdmin/, чтобы у меня было больше «инструментов» позже, если бы я захотел.

Я попытался просто изменить httpd-phpmyadmin.conf по умолчанию, который был установлен, следуя официальному WIKI: https://wiki.archlinux.org/index.php/Phpmyadmin

Alias /.tools/phpMyAdmin/ "/usr/share/webapps/phpMyAdmin"
<Directory "/usr/share/webapps/phpMyAdmin">
        AllowOverride All
        Options FollowSymlinks
        Order allow,deny
        Allow from all
        php_admin_value open_basedir "/var/www/:/tmp/:/usr/share/webapps/:/etc/webapps:/usr/share/pear/"
</Directory>

Изменение только этого, похоже, не работает с моей текущей настройкой на сервере, и apache перенаправляет запрос в фреймворк, который 404s (поскольку нет маршрута для обработки /.tools/phpAdmin).

У меня включен массовый виртуальный хостинг и настроен следующим образом:

#
# Use name-based virtual hosting.
#
NameVirtualHost *:8000

# get the server name from the Host: header
UseCanonicalName On

# splittable logs
LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon
CustomLog logs/access_log vcommon

<Directory /var/www/domains>
# ExecCGI is needed here because we can't force
# CGI execution in the way that ScriptAlias does
    Options FollowSymLinks ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

RewriteEngine On

# a ServerName derived from a Host: header may be any case at all
RewriteMap lowercase int:tolower

## deal with normal documents first:
# allow Alias /icons/ to work - repeat for other aliases
RewriteCond %{REQUEST_URI} !^/icons/
# allow CGIs to work
RewriteCond %{REQUEST_URI} !^/cgi-bin/
# do the magic
RewriteCond %{SERVER_NAME}  ^(www\.|)(.*)
RewriteRule ^/(.*)$ /var/www/domains/${lowercase:%2}/html/$1
## and now deal with CGIs - we have to force a MIME type
RewriteCond %{REQUEST_URI} ^/cgi-bin/
RewriteRule ^/(.*)$ /var/www/domains/${lowercase:%{SERVER_NAME}}/cgi-bin/$1 [T=application/x-httpd-cgi]

На этом сервере также работает nginx на 80-м порту в качестве обратного прокси для Apache:

    location ~ \.php$ {
        proxy_pass   http://127.0.0.1:8000;
    }

Все остальное было настроено в соответствии с официальным WIKI, поэтому я не думаю, что это вызовет проблемы. Нужно ли мне иметь псевдоним для настройки phpMyAdmin на массовом виртуальном хостинге или он может быть в отдельном включаемом файле, чтобы этот псевдоним работал?

+ Изменить

Alias /.tools/phpMyAdmin/ "/usr/share/webapps/phpMyAdmin"

к

Alias /.tools/phpMyAdmin/ "/usr/share/webapps/phpMyAdmin/"

перезапустите apache и попробуйте еще раз

Изменить: что-то интересное на kb.ucla.edu/articles/ ... Итак, я предполагаю, что речь идет о mod_alias vs mod_rewrite, и вы можете попробовать добавить это

RewriteCond %{REQUEST_URI} !^/.tools/phpMyAdmin/

до этого

RewriteCond %{REQUEST_URI} !^/icons/