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

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

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

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

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

而我系統(tǒng)緩存目錄的權限是777,現(xiàn)在我就無法使用laravelUploadedFile 實例來處理上傳文件,因為一旦使用
$request->photo->store('photos')就會彈出權限不夠錯誤。錯誤如下:

[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()

求救!

回答
編輯回答
撥弦

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

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

終于找到問題了。
首先,我是在做微信開發(fā),所以我的測試環(huán)境有兩個域名,一個是本地的域名wx.dev,一個是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)在上傳文件沒有問題了,有大神能仔細講講中間的細節(jié)嗎?
我現(xiàn)在是知其然不知其所以然

2018年2月7日 20:45