安装 LNMP 环境遇到的几个问题和解决方法

之前买的阿里云服务器明天要到期了,今天买了个新服务器花了半天时间安装 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,设置 AllowTcpForwardingyes

在您保存修改前,您需要将此文件设置为可写。

问题描述:

WordPress 无法在后台在线编辑主题文件;WP Super Cache 罢工。

解决方法:

根据官方文档,运行了 chmod -R 755 wp-contentchown -R nginx:nginx wp-content 都不行。接着搜,终于在这里找到答案,需要把 php-fpm 的运行用户设置为和 nginx 的运行用户一致,也就是说要修改 /etc/php-fpm.d/www.confusergroup 值从 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)。

发表评论