LIGHTTPD PHPMYADMIN 如何配置 PhpMyAdmin 使其仅在特定子域上工作

LIGHTTPD PHPMYADMIN 如何配置 PhpMyAdmin 使其仅在特定子域上工作

所以我有一个装有 Lighttpd 的小型服务器,并且在上面安装了 PhpMyAdmin。

这是默认配置。计算机可通过端口 80 从 Internet 访问。

如何让 phpMyAdmin 监听 80 以外的其他端口?

或者我怎样才能使其仅在特定的子域上监听?

# Alias for phpMyAdmin directory
alias.url += (
        "/phpmyadmin" => "/usr/share/phpmyadmin",
)

# Disallow access to libraries
$HTTP["url"] =~ "^/phpmyadmin/templates" {
    url.access-deny = ( "" )
}
$HTTP["url"] =~ "^/phpmyadmin/libraries" {
    url.access-deny = ( "" )
}
$HTTP["url"] =~ "^/phpmyadmin/setup/lib" {
    url.access-deny = ( "" )
}

# Limit access to setup script
$HTTP["url"] =~ "^/phpmyadmin/setup" {
        auth.backend = "htpasswd"
        auth.backend.htpasswd.userfile = "/etc/phpmyadmin/htpasswd.setup"
        auth.require = (
                "/" => (
                        "method" => "basic",
                        "realm" => "phpMyAdmin Setup",
                        "require" => "valid-user"
                )
        )
}

答案1

在您的 Linux 服务器(基于 Linux 服务器版本,例如 CentOS、Debian 等)上安装 phpmyadmin 后,使用在线编辑器打开您的 lighttpd.conf 文件并添加 url.rewrite 规则,如下所示:

$HTTP["host"] =~ "dev\.example\.net$" {
   server.document-root = "/home/webroot"

   url.rewrite = (
       "^/(.*)\.(.+)$" => "$0",
       "^/(phpMyAdmin)/?(.*)" => "$0",
       "^/(.+)/?$" => "/index.php/$1"
   )

   url.access-deny = ( "~", "xmlrpc.php")
   server.error-handler-404 = "/index.php"
   dir-listing.activate       = "disable"
}

然后 cd 到 /home/webroot 目录(或任何 Web 目录,其中 Web 根级目录将用于 DOM(文档目标模型)来提供 Web 文件,如 html、php 等。然后向 phpmyadmin 添加符号链接:

ln -s /usr/share/phpmyadmin phpMyAdmin

然后,输入以下命令验证符号链接:

ls -lat

将显示

lrwxrwxrwx 1 root root 21 Jan 20 14:27 phpMyAdmin -> /usr/share/phpmyadmin

http://dev.example.net/phpMyAdmin重新启动 lig​​httpd,然后在 Web 浏览器(或 lynx)中打开

注意:Lighttpd url.rewrite 规则可能有所不同,具体取决于网站的类型(例如 wordpress、Laravel 框架等)。此重写行

"^/(phpMyAdmin)/?(.*)" => "$0", 

很重要。

此 dev.example.net 域名供参考。将 dev.example.net 替换为您的域名。

相关内容