2010-05-16 67 views
4

我剛剛安裝了LAMP開發服務器,但仍然遇到了一些麻煩。服務器安裝在一臺計算機上,我使用Windows筆記本電腦編寫代碼並通過網絡瀏覽器測試網站。PHP/Apache:上傳的JPEG圖像文件的權限設置不正確

我的文件上傳腳本的工作原理是,JPEG圖像文件已成功上傳到服務器,但是當我嘗試在Web瀏覽器中查看圖像時,權限被拒絕。

我通過服務器檢查文件的權限,它們是600。我可以通過chmod 777 theimage.jpg解決這個問題,但這看起來並不是一個好的解決方案。

該解決方案與Apache配置有關嗎?或者還有什麼我應該做的。

感謝信, 邁克

更新

爲了澄清,我能爲JPEG文件上傳到/var/www/test/images,但我無法在Web瀏覽器中查看圖像就已經經過上傳。我的腳本在生產服務器上工作(我正在使用Dreamhost)。這使我相信這個問題與我剛剛設置的開發服務器有關。任何反饋都是非常感謝,即使它只是我應該閱讀的資源,以更好地瞭解服務器設置。

回答

1

您需要更改包含該文件夾的權限文件,而不僅僅是文件本身。在包含要訪問的文件的目錄上使用sudo chmodsudo chown,然後檢查以確保使用ls -rl命令更改的權限。與chmod一起使用的權限應爲rw,如果權限已正確更改,則使用ls -rl命令時目錄應爲-rw-r--r--。此外,如果您仍然不清楚chmod和chown工作如何檢查this linkthis link

編輯:

鍵入:

sudo chmod -R 666 /var/www/test/images

或者這樣:

sudo chmod a=rw /var/www/test/images

...做你想做的事情。有關更多解釋,請參閱下面的最新評論條目。

+0

@typoknig我使用了'sudo chmod -R -rw -r -r--/var/www/test/images'和'sudo chown -R myusername/var/www/test/images',但是上傳的文件的權限這樣做後是'-rw -------'。我將嘗試@Artefacto的建議,然後返回給您的建議。謝謝。 – 2010-05-16 23:08:41

+0

我想你可能誤解了我。當你使用'ls -rl'查看權限時,它應該讀取'-rw -r -r-',當你使用chmod命令時,它應該看起來像這樣'sudo chmod -R 666/var/www/test /圖像'這將導致權限'-rw-rw-r - '。您也可以使用其他選項。如果你希望每個人都有權限讀寫文件,你可以使用我剛纔提到的666命令,或者你可以使用這個命令:'sudo chmod a = rw/var/www/test/images'。有很多選項:)這裏是另一個可能有所幫助的鏈接: http://www.zzee.com/solutions/chmod-syntax.shtml – ubiquibacon 2010-05-17 01:00:06

+0

@typoknig謝謝澄清。我已經嘗試了您的建議,但仍無法查看已上傳到目錄的圖像文件。 – 2010-05-17 02:46:54

1

我想說你可能正在Apache下運行一個不同於uid的PHP。 您可以:

  • 配置Apache/PHP,讓他們在相同的UID
  • 運行在文件上傳,使用PHP tochange的權限與chmod功能或改變與PHP進程相關聯的的umask從而使文件獲取正確的權限在首位
  • 訪問通過PHP圖像(readfile) - 不建議性能問題
+0

感謝您的回覆。我正在閱讀關於您的建議,即Apache和PHP在相同的uid下運行。 – 2010-05-17 03:11:51