相信很多配置php环境的都遇到过这个恼人的问题:
- 浏览器访问php文件,返回来 File not found
- 查看/var/log/nginx/error.log ,有 “Primary script unknown”,类似如下:
2019/01/03 10:24:02 [error] 11931#11931: *260 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 1.2.3.4, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: www.example.com
原因只有两个,一个是php-fpm找不到php文件,一个是php-fpm没有权限读取和执行文件。
1. 找不到文件问题
nginx 的站点配置文件php段要这样:
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 location ~ \.php$ { #root 路径配置必须要有,而且必须要写对(别笑,真的能写错) root /usr/share/nginx/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; #SCRIPT_FILENAME用$document_root,而不是具体路径 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
2. 权限问题
也是坑最多的。
1) 进程用户
nginx.conf 里的 user 配置要跟 php-fpm.d/www.conf 一致,比如都用 nginx,或者自定义用户 phpuser(再来句废话,这个用户需要提前建好)。
nginx.conf :
user phpuser; worker_processes auto;
php-fpm.d/www.conf :
; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used. user = phpuser group = phpuser
nginx 和 php-fpm 进程/监听信息:
root 19107 0.0 0.1 207644 5852 "htmlcode">chown -R phpuser:phpuser /var/log/nginx chown -R phpuser:phpuser /var/cache/nginx chown -R phpuser:phpuser /usr/share/nginx/html还有/etc/logrotate.d/nginx,create 640 nginx adm 这行要改:
create 640 phpuser adm2) 目录和文件权限
php文件不必非得设为 777,让人怪担心的,只要是nginx和php-fpm运行用户可读写执行即可,一般可以770 。
php文件目录和文件样例:
drwxrwx--- 6 phpuser phpuser 4.0K 2019-01-03 13:09 /usr/share/nginx/html -rwxrwx--- 1 phpuser phpuser 40 2019-01-03 13:09 /usr/share/nginx/html/phpinfo.php这里有个深坑,对于使用其他目录放置php文件的很可能中招,就是 /path/to/phpfiles 的每一层目录都要允许 phpuser 访问,缺一层就会 Permission denied。
本例,/usr/share/nginx/html 之上的每一层目录,所有者都是root,都有 o+rx ,即所有人都有读取和执行权限(读取和执行权限是目录访问的根本),因此 phpuser 可以访问到 html 目录。
drwxr-xr-x. 13 root root 155 2018-07-10 15:42 /usr drwxr-xr-x. 86 root root 4.0K 2018-12-17 07:33 /usr/share/ drwxr-xr-x 4 root root 40 2018-12-17 08:06 /usr/share/nginx/ drwxrwx--- 6 phpuser phpuser 4.0K 2019-01-03 13:11 /usr/share/nginx/html/测试方法:
sudo -u phpuser ls -l /usr/share/nginx/html/3) SELINUX
nginx/apache 网页文件的 selinux 上下文,如果更换目录需要配上。(在Cenots7+php7.3上测试,没有 selinux 上下文时,静态文件404,而php文件反倒没有遇到问题,没有深究)
# ll -dZ /usr/share/nginx/html drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /usr/share/nginx/html配置 selinux 上下文:
chcon -R -t httpd_sys_content_t /path/to/phpfiles或者干脆关闭selinux(需要重启服务器)
/etc/selinux/config :
SELINUX=disabled3. 最后
echo "<p align='center'>Good Luck :)</p><" > /usr/share/nginx/html/phpinfo.php以上就是PHP Primary script unknown 终极解决方法的全部知识点内容,感谢大家对的支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 罗大佑-无法盗版的青春套装版10CD【WAV】
- 张学友《意乱情迷》蜚声环球 2024 [WAV+CUE][1G]
- 柏菲《好歌30年特别版2CD》最好听的影视歌曲[低速原抓WAV+CUE][1G]
- 张学友《世纪10星·永恒篇》香港版[WAV+CUE][1G]
- 模拟之声慢刻CD《刘德海.琵琶独奏精逊【低速原抓WAV+CUE】
- Jamettone-18052023—improv(EDit)(2024)【FLAC】
- 【索尼精芽20首最棒的苏格兰歌曲集【FLAC】
- 池约翰C.J《少年白马醉春风2 动画原声带》[320K/MP3][26.67MB]
- 池约翰C.J《少年白马醉春风2 动画原声带》[FLAC/分轨][144.13MB]
- 陈致逸《幻想乐园 Fantasyland》[320K/MP3][120.54MB]
- 席卷全球最红舞曲《火辣辣DJ[英文版]》[DTS-WAV]
- 群星-席卷全球最红舞曲《火辣辣DJ中文版》【WAV】
- 模拟之声慢刻CD《声入人心[年度发烧人声严选]》[低速原抓WAV+CUE]
- 陈致逸《幻想乐园 Fantasyland》[FLAC/分轨][554.27MB]
- Rhymist / LusciousBB《年轮》[320K/MP3][76.52MB]