所以我有一个装有 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
重新启动 lighttpd,然后在 Web 浏览器(或 lynx)中打开
注意:Lighttpd url.rewrite 规则可能有所不同,具体取决于网站的类型(例如 wordpress、Laravel 框架等)。此重写行
"^/(phpMyAdmin)/?(.*)" => "$0",
很重要。
此 dev.example.net 域名供参考。将 dev.example.net 替换为您的域名。