slim php dd model,PHP全局使用Laravel辅助函数dump和dd
参考了PHP 全局使用 Laravel 辅助函数 dd中的内容,只是针对我自己配置过程中出现的问题进行一次总结。
Composer的COMPOSER_HOME环境变量不同
根据composer官方说明,如果系统没有COMPOSER_HOME环境变量,它在各个系统上的默认值分别为:*nix /home//.composer。
OSX /Users//.composer。
Windows C:\Users\\AppData\Roaming\Composer。
但是我的却不是。我的本级默认地址为~/.cache/composer,所以最简单的方法是直接使用了export进行导入export COMPOSER_HOME=$HOME/.composer #将这行加入到.bashrc或.bash_profile或.zshrc
开发环境不同
原文中使用的是vagrant+homestead开发环境,而我本地使用的是vagrant+lnmp的一键安装包,区别就在于homestead环境的登录用户及nginx用户都是vagrant。而我本机的登录用户为vagrant,而nginx用户为www。
全局composer安装后我将auto_prepend_file = /home/vagrant/.composer/vendor/autoload.php加入到php.ini中发现报如下错误:Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0
Fatal error: Unknown: Failed opening required '/home/vagrant/.composer/vendor/autoload.php' (include_path='.:/usr/local/php/lib/php') in Unknown on line 0
但是我在CLI下执行一个test.php程序发现是可以正常调用的。所以第一反应也是www用户没有权限导致。于是我将www用户加入到了vagrant用户组:usermod -a G vagrant www
到这里以为大功告成,没想到问题依旧如上。
参考了网上的大多数教程,也包括把autoload.php修改为777权限依然不行。最后的最后我执行下面的命令:[root@localhost home]# ll
total 0
drwx------. 6 vagrant vagrant 167 Oct 11 17:12 vagrant
看到这里我也是醉了,因为/home/vagrant的g和o都没有权限,所以导致nginx的www用户都进入不了/home/vagrant目录所以才会报出Permission denied。于是我直接chmod 750 vagrant
其是最根本的原因依然是登录用户与nginx执行用户不一样导致权限问题。不解的是不知道为什么useradd添加的用户家目录是700。猜测可能是和umask有关
---update---
查了资料发现之所以用户的家目录权限为700是因为在/etc/login.defs中有有一个配置UMASK 077 #用户家目录建立的 umask ,因此权限会是 700
所以最终的权限为777-077=700
总结
以上是生活随笔为你收集整理的slim php dd model,PHP全局使用Laravel辅助函数dump和dd的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: php调用其它控制器,TP框架控制器里面
- 下一篇: php worker类,Workerma