之前买的阿里云服务器明天要到期了,今天买了个新服务器花了半天时间安装 LNMP 环境。之前是直接用的镜像市场里的现成环境,这次自己手动安装遇到了不少问题,在这里记录下。
MySQL said: Lost connection to MySQL server at ‘reading initial communication packet’, system error: 0
问题描述:
使用 Sequel Pro 无法通过 SSH 方式连接数据库。
解决方法:
官网 FAQ 给出的解决方法是编辑 /etc/my.cnf
注释掉 skip-networking
。但我的这个文件里根本没这句话。继续 Google,最终找到解决方法:编辑 /etc/ssh/sshd_config
,设置 AllowTcpForwarding
为 yes
。
在您保存修改前,您需要将此文件设置为可写。
问题描述:
WordPress 无法在后台在线编辑主题文件;WP Super Cache 罢工。
解决方法:
根据官方文档,运行了 chmod -R 755 wp-content
和 chown -R nginx:nginx wp-content
都不行。接着搜,终于在这里找到答案,需要把 php-fpm 的运行用户设置为和 nginx 的运行用户一致,也就是说要修改 /etc/php-fpm.d/www.conf
的 user
和 group
值从 apache
改为 nginx
。
HTTP/2 在 Chrome 上没起作用
问题描述:
NGINX 配置里启用了 HTTP/2,通过 Safari 访问显示为 HTTP/2,但是在 Chrome 浏览器上看还是使用 HTTP/1.1。
解决方法:
搜索了一通后得知,HTTP/2 有 NPN 和 ALPN 两种协商方式,但 Chrome 51 开始移除了对 NPN 的支持。而 ALPN 从 OpenSSL 1.0.2 开始才支持,而通过 yum 安装的 NGINX 编译时使用的是 OpenSSL 1.0.1e-fips。所以除非通过其它方式自己手动编译,不然现在只有 Safari 还支持 NPN 方式。
This service allows sftp connections only.
问题描述:
配置了 SFTP 后,无法通过 SSH 登录了。
解决方法:
根据这篇文章,问题是因为我之前给 /etc/ssh/sshd_config
设置了 ForceCommand internal-sftp
导致,注释掉这句即可。
send-mail: fatal: parameter inet_interfaces: no local interface found for ::1
问题描述:
邮件发不出去。
解决方法:
搜到这篇文章,编辑 /etc/postfix/main.cf
,修改 inet_protocols
值为 ipv4
。
postfix/smtp: Connection timed out
问题描述:
邮件发送超时。
解决方法:
阿里云默认不开放 25 端口,我使用的是网易邮箱,所以改用了 SSL 协议端口 994。
connect() to unix:/var/run/php-fpm.sock failed (13: Permission denied) while connecting to upstream
问题描述:
网页 502 错误,查看错误日志显示是权限问题。
解决方法:
在 Stackoerflow 上找到了解决方法:编辑 /etc/php-fpm.d/www.conf
,找到类似下面的几行,把nobody
改为 nginx 运行用户并取消注释。
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
或者直接更改 php-fpm.sock
的文件所有者也行(chown nginx:nginx /var/run/php-fpm.sock
)。