起因
我在home
目录下打算安装thinkphp
进行学习, 采用nginx作为web服务器, 遇到了错误, 记录如下.
具体的错误提示
在nginx 的错误日志 error.log 中提示如下:
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream
翻译过来, 大致的意思是 从upsream中读取回应头时, 遇到主脚本未知错误.
即, 找不到主脚本, 在浏览器上也提示 File not fond.
原因
有两个可能:
- 文件确实不存在
- 文件(包括文件路径)权限不够, 读取不到文件.
我遇到的问题是因为 /home/yinchao 这个目录的权限是750, 而读取php 脚本的进程php-fpm 的运行者是 www-data
(默认值). 所以, 没有读取权限, 所以文件找不到.
解决
- 可以修改
home
目录的权限. - 也可以将安装thinkphp的安装目录换个地方.
我在 /var/www/html 下创建 test 的文件夹mkdir test
, 然后修改用户所有者chown -R yinchao:yinchao test
, 然后继续安装thinkphp, 之后问题解决.