
我在 Windows 2008 Server 機器上安裝了 Ghostscript、ImageMagick 和 IIS 5.0。
我還有一個 PHP 腳本,它會執行一個轉換腳本來為上傳到目錄的 PDF 產生縮圖:
<?php
$output = array();
$ret = 0;
echo exec('convert D:\content\myfile.pdf[0] D:\content\myfile_thumb_1.jpg', $output, $ret);
var_dump($ret);
?>
我已確定問題在於,從 Web 瀏覽器呼叫該腳本時,該腳本以使用者 IUSR_[COMPUTERNAME] 身分執行。
作為我的管理員帳戶,該命令從 CMD 行成功執行(廢話)。
我必須更改哪些權限才能允許腳本/IUSR 使用者產生縮圖?
我嘗試更改以下權限:
- GhostScript Program Files 目錄(允許執行、寫入、讀取)
- ImageMagick 目錄(允許執行、寫入、讀取)
- 縮圖所在的上傳目錄(允許讀取、寫入)
全部透過 Windows 資源管理器,右鍵點選目錄、屬性,然後按一下「安全性」標籤。我將權限新增至[COMPUTERNAME]/Guests,因為IUSR_[COMPUTERNAME]位於Guests群組下。
我對 IIS 或 Windows 不太熟悉,無法了解這一點,但是您是否必須重新啟動盒子才能更新權限,還是應該在我應用更改後才起作用?我有重新啟動 IIS 服務。
注意:我在上面的帖子中刪除了完整的電腦名稱並將其替換為 [COMPUTERNAME]