Apache Alias 子文件夹以点开头

Apache Alias 子文件夹以点开头

我有一个运行 ArchLinux 的多用途服务器,目前为来自 /var/www/domains/EXAMPLE.COM/html /var/www/domains/EXAMPLE2.COM/html 的多个虚拟主机提供服务

我使用 Jenkins 作业部署这些网站(主要使用 Kohana 框架),通过检出项目,删除 .git 文件夹并将 tar.gz 通过 ssh 复制到服务器上的 /var/www/domains/ 并解压它。

由于我不想在每次部署后重新安装 phpMyAdmin,因此我决定使用别名。

我希望别名类似于 /.tools/phpMyAdmin/,以便我以后可以拥有更多“工具”。

我已尝试更改按照官方 WIKI 安装的默认 httpd-phpmyadmin.conf: 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将请求转发到404框架(因为没有处理/.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]

该服务器上的 80 端口还运行有 nginx,作为 Apache 的反向代理:

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

其余一切都是按照官方 WIKI 设置的,所以我认为这些不会造成麻烦。我是否需要在批量虚拟主机中设置 phpMyAdmin 的别名,或者是否可以将其放在单独的包含文件中以使该别名正常工作?

答案1

改变

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

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

重新启动 apache 并重试

编辑:kb.ucla.edu/articles/上有一些有趣的东西,所以我想这是关于 mod_alias 与 mod_rewrite 的,你可以尝试添加这个

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

在这之前

RewriteCond %{REQUEST_URI} !^/icons/

相关内容