鍍金池/ 問答/PHP  Linux/ mac環(huán)境下,mamp中表單上傳文件,為什么上傳的緩存文件是不可讀的。

mac環(huán)境下,mamp中表單上傳文件,為什么上傳的緩存文件是不可讀的。

系統(tǒng):mac
php環(huán)境:MAMP
php框架:laravel

當(dāng)我使用表單上傳時(shí),發(fā)現(xiàn)上傳上來的緩存文件是不可讀的。

echo substr(sprintf("%o", fileperms($this->photo->path())), -4); // 結(jié)果為0600

而我系統(tǒng)緩存目錄的權(quán)限是777,現(xiàn)在我就無法使用laravelUploadedFile 實(shí)例來處理上傳文件,因?yàn)橐坏┦褂?br>$request->photo->store('photos')就會(huì)彈出權(quán)限不夠錯(cuò)誤。錯(cuò)誤如下:

[2018-01-09 17:22:57] local.ERROR: Symfony\Component\HttpFoundation\File\Exception\AccessDeniedException: The file /Applications/MAMP/tmp/php/phpUulx0L could not be accessed in /Users/pan/code/wechat/vendor/symfony/http-foundation/File/MimeType/MimeTypeGuesser.php:125
Stack trace:
#0 /Users/pan/code/wechat/vendor/symfony/http-foundation/File/File.php(79): Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser->guess('/Applications/M...')
#1 /Users/pan/code/wechat/vendor/symfony/http-foundation/File/File.php(58): Symfony\Component\HttpFoundation\File\File->getMimeType()

求救!

回答
編輯回答
撥弦

服務(wù)器(nginx)通過http請求request headershost(wx.piian.cn)行,匹配你配置的server_name,當(dāng)匹配成功時(shí),就會(huì)把數(shù)據(jù)按cgi接口定義的格式,發(fā)送給php處理。
至于域名(wx.piian.cn)如何找到對應(yīng)的服務(wù)器,是因?yàn)闀?huì)把域名的A記錄或者CNAME解析到對應(yīng)的公網(wǎng)IP上。而域名的DNS解析會(huì)優(yōu)先在系統(tǒng)hosts記錄里面尋找。

2017年11月27日 22:50
編輯回答
久不遇

終于找到問題了。
首先,我是在做微信開發(fā),所以我的測試環(huán)境有兩個(gè)域名,一個(gè)是本地的域名wx.dev,一個(gè)是wx.piian.cn,
然后我發(fā)現(xiàn)wx.dev是可以上傳文件的,wx.piian.cn是不能上傳文件的。然后我查看nginx的配置,發(fā)現(xiàn)我的程序目錄的server_name只有wx.dev,wx.piian.cn是指向我的電腦,我的localhost是指向wx.dev程序目錄的,于是我在server_name里加上了wx.piian.cn,現(xiàn)在上傳文件沒有問題了,有大神能仔細(xì)講講中間的細(xì)節(jié)嗎?
我現(xiàn)在是知其然不知其所以然

2018年2月7日 20:45