我最近配置了 Debian 8 和 Apache 2.4。由于我有一个较新的 Apache 版本,因此我使用了 ProxyPassMatch 而不是 FastCgiExternalServer。
但在为 PhpMyAdmin 配置别名时,我怀疑这是否安全。这是我的配置:
<VirtualHost *:80>
ServerName www.my-website.com
DocumentRoot /var/www/html/
Alias /phpmyadmin/ "/usr/share/phpmyadmin/"
<Directory "/usr/share/phpmyadmin/">
Options FollowSymLinks
DirectoryIndex index.php
</Directory>
# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/libraries>
Order Deny,Allow
Deny from All
Require all granted
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
Order Deny,Allow
Deny from All
Require all granted
</Directory>
ProxyPassMatch "^/(.*\.php(/.*)?)$" "unix:/var/run/php5-fpm-pma.sock|fcgi://localhost/usr/share"
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
</VirtualHost>
让我困扰的是 ProxyPassMatch 允许加载/usr/share/
以 结尾的目录中的任何文件.php*
。我只想执行中的文件,/usr/share/phpmyadmin/
但由于它是一个别名,因此该/phpmyadmin/
部分已附加 =>
ProxyPassMatch "^/(.*\.php(/.*)?)$" "unix:/var/run/php5-fpm-pma.sock|fcgi://localhost/usr/share/phpmyadmin/"
不起作用,出现/usr/share/phpmyadmin/phpmyadmin/index.php
未找到错误。
那么,关于访问,我的实际配置是否足够安全/usr/share/
?
感谢您的帮助!
答案1
我遇到了同样的问题,首先可以让:
ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php/php7.0-fpm.sock|fcgi://localhost/var/www/html/
在里面/etc/apache2/sites-available/000-default.conf
但诀窍是简单地创建一个这样的符号链接:
ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
之后,您必须执行“ systemctl reload apache2
”,它才能再次起作用。