2012-02-13 120 views
0

我有一個老TYPO3訴4.2.9權限問題。另外,我有Plesk控制面板8.6。用戶是ftp用戶,組是psacln。使用CGI PHP(php_sapi_name();)。 PHP支持(安全模式),CGI支持和Perl支持被激活(顯示在webhosting設置下)。TYPO3之外,Plesk和權限

我不知道這是否是正確的,但目前似乎工作:

757上以下文件夾:

  • fileadmin
  • fileadmin/_temp_
  • fileadmin /模板(和所有子文件夾 - 文件)
  • fileadmin/customfolder
  • typo3(和所有子文件夾 - 文件)
  • typo3conf
  • typo3conf/EXT(和所有子文件夾-files)
  • typo3conf /本地化(和所有子文件夾-files)
  • typo3temp
  • 上傳
  • 上傳/媒體
  • 上傳/圖片
  • 上傳/ tf

所有其他摺疊ers有750和所有其他文件644.

如果我不使用這些權限,我會得到access deniedCannot find tslib/. Please set path by defining $configured_tslib_path in index.php.

Here它寫道,你應該使用用戶wwwrun而不是ftp用戶,並切換到646如果你需要用你的ftp用戶更改一些文件。但我認爲沒有這樣的用戶wwwrun。

我上傳一個文件,它具有名爲ftpuser作爲所有者和644的許可。

問題:

  • 我爲什麼要設置這麼高的權限?是,我需要有這樣高的權限apache用戶是另一個比FTP用戶的問題,否則它不能正常工作?難道沒有辦法讓ftp和apache擁有相同的用戶嗎?
  • 僅舊的TYPO3 v。4.2需要這麼高的權限嗎?是否有其他方法可以更改爲較低的權限?
  • 我做錯了什麼?

回答

1

爲什麼我必須設置如此高的權限?

具有良好的配置,你不知道。 typo3t3lib需要是隻讀的。 fileadmin,typo3conf,typo3temp,uploads需要可寫,但是只有給運行PHP的用戶。

是,我需要有這樣高的權限apache用戶是另一個比FTP用戶的問題,否則它不能正常工作?

恕我直言,因爲PHP運行爲CGI,它實際上運行在不同的用戶下,而不是Apache。由於文件是由PHP生成的並且具有其權限,因此它們可能無法被Apache讀取。因此,您應該在同一組中擁有Apache和PHP,並且在每個組的基礎上設置文件和權限。

難道沒有辦法讓ftp和apache具有相同的用戶嗎?

這是您的主機的問題。儘管如此,同組應該完成這項工作。

只有舊的TYPO3 v.4.2需要這麼高的權限?

我認爲這與v4.2和新版本沒有任何區別。

是否有其他方法可以更改爲較低的權限?

是的,檢查誰是誰。您可能有多達3個用戶:Apache,PHP,FTP用戶。要訪問彼此創建的文件,它們需要位於同一組中,並且這些文件需要爲該組設置權限。然後檢查創建新的文件夾和文件的TYPO3設置:

$TYPO3_CONF_VARS['BE']['createGroup'] = 'group_of_your_users'; 
$TYPO3_CONF_VARS['BE']['fileCreateMask'] = '0770'; 
$TYPO3_CONF_VARS['BE']['folderCreateMask'] = '0770'; 
+0

現在我試圖設置文件夾上的0755和文件上的0644,它的工作原理。 'createGroup'是空的,'fileCreateMask'是0644,'folderCreateMask'是0755.在我試圖在文件夾上使用0750和在文件上使用0640之前,但沒有奏效。似乎Apache/PHP不在該主機上的同一組中(因爲其他人需要讀取權限)。對於0755,只有所有者擁有寫權限,所以似乎PHP用戶是所有者(和FTP用戶是同一用戶?)。感謝您的回答!它使事情變得更清晰。 – testing 2012-02-14 09:09:52

+1

檢查'typo3temp'文件夾中新創建的文件以查看它們擁有的所有權。將它與FTP運行Apache用戶和用戶/組創建的文件進行比較。這應該讓你清楚地瞭解誰是誰,誰可以訪問什麼。然後您可以嘗試更改這三個TYPO3配置選項來調整由TYPO3創建的文件的權限和所有權。 – tmt 2012-02-14 09:33:09

+1

此外,您應該針對不允許「其他人」讀取文件的權限。只有所有者和組成員應該被允許訪問文件。 – tmt 2012-02-14 09:38:01