phpMyAdmin 提示"配置文件现在需要一个短语密码"警告的*真正的*解决办法

这也算是一个常见问题了.可惜的是,我用百度或者 Google 搜到的中文资料,几乎全都是复制粘贴的内容,而且给出的解决方法居然是修改 config.default.php 文件卧槽,这么大个 DO NOT EDIT 各位都是没看到吗?所以本文就来说说怎么安全地,优雅地解决此问题.

如果你是通过 Fedora 包管理器安装的 phpMyAdmin, 那么它会默认使用 /etc/phpMyAdmin 作为配置文件目录(其它的 Linux 发行版,如 ArchLinux 邪教所使用的的目录可能不是这个).在 phpMyAdmin 安装目录下找到 config.sample.inc.php, 复制到 /etc/phpMyAdmin 中,并重命名为 config.inc.php. 这个文件中有大量配置项需要你修改,不过我们只关注

$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

这一行.正如注释所言,你需要在引号内输入大量随机字符,脸滚键盘,越乱越好,越长越好.然后保存文件.此时,由于权限原因,这份配置文件很有可能无法被 phpMyAdmin 正常读到内容.解决办法也很简单.假如你的 PHP-FPM 用户为 www-data ,那么执行

chown -R root:www-data /etc/phpMyAdmin/

即可.

对了, config.sample.inc.php 这个文件可以在 phpMyAdmin 安装目录下找到.如果没有,可以试试 /usr/share/doc/phpMyAdmin/examples/config.sample.inc.php .

以上.

Caddy + PHP-FPM 服务器报 getsockopt: connection refused 错误的解决方法

环境: Fedora 25, Caddy 0.9.4, PHP 7.0.14.

Caddy 处理 PHP 页面的方式类似于 Nginx, 也是交给 PHP-FPM 处理.在 Caddyfile 中只需这样写:

fastcgi / 127.0.0.1:9000 php

然而无法访问 PHP 页面.检查日志后发现这样一条报错信息:

[ERROR 502 /index.php] dial tcp 127.0.0.1:9000: getsockopt: connection refused

其原因是 PHP-FPM 默认监听 /run/php-fpm/www.sock , 而非9000 端口.在 /etc/php-fpm.d/www.conf 配置文件中如此修改:

;listen = /run/php-fpm/www.sock
listen = 9000

然后重启 PHP-FPM 服务即可.

以上.