docker安装php的踩坑

通过docker安装php-fpm指定版本后,进入容器修改php-fpm的用户组www-data为我自己的erik(因为主机也是,方便调试)。
安装后本地配置nginx后总是报错

6239#6239: *1 FastCGI sent in stderr: “Primary script unknown” while reading response header from upstream

反复查找没有问题。
最后发现docker内的php-fpm指定项目目录/var/www,而我本地的是/home/work 。这时候本地的nginx映射docker的php通信会解析指定地址,两者地址不一样。php-fpm无法识别地址,除非安装的时候指定的地址和本地一样。

这一部解决了,然后的单独访问php文件没问题,但是访问项目框架却无法解析。

报错12909#12909: *3 FastCGI sent in stderr: “Primary script unknown” while reading response header from upstream

通过跟踪nginx,然后上docker查看项目目录,发现本地软连接项目到和docker共享的项目目录,在docker中是不能识别本地的软连接的。只能把项目cp过来才行。
到这里,项目可正常访问了。

其实,本次配置浪费了好多时间,还是有点慌,以前的思路乱了。

一般来说php问价no found基本都是无法访问目录涉及权限、项目是否存在。
其次,cgi无法解析涉及php-fpm跟nginx的权限组和项目目录是否一致。