2014-10-17 35 views
0

現在我正在使用安裝了Ubuntu 14和apache2的VPS。Linux Apache2在不存在php文件時給出錯誤

我把我的網站從舊主機轉移到新主機,我開始收到一些非常奇怪的問題。

在這裏你可以看到和PHP版本,我有模塊的詳細信息: http://www.crankpost.com/phpinfo.php

這是我在.htaccess文件:

Options +FollowSymlinks 
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^crankpost.com [NC] 
RewriteRule ^(.*)$ http://www.crankpost.com/$1 [L,R=301] 
RewriteRule ^home mhome.php 
RewriteRule ^checklogin clogin.php 
RewriteRule ^login login.php 
RewriteRule ^logout log-out.php 
RewriteRule ^registration createacc.php 
RewriteRule ^create-account register.php 
RewriteRule ^confirm-email=([^/.]+)?$ activateacc.php?id=$1 [L] 
RewriteRule ^profile=([^/.]+)?$ member.php?id=$1 [L] 

有很奇怪的問題是。 當我嘗試打開此URL:http://www.crankpost.com/post.php服務器給我錯誤,當該文件實際存在時該文件未打開。

他是在像index.php相同的目錄中,不知何故,它給了我一個錯誤,即該文件在實際存在時不存在。

哪裏可以解決問題,你能幫助我嗎?

提前致謝!

回答

0

這可能是文件權限 - 在文件夾和文件上。您必須確保您的Apache用戶(默認情況下爲www-data)有權訪問。你可以使用755的PHP文件和644幾乎所有的東西。

如果你不familar與文件的權限,但使用的是類似的FileZilla或WinSCP賦予,然後找到該文件,並從您的文檔根目錄開始的父文件夾(S),並確保:

  • 所屬用戶具有讀取,寫入和執行權限。
  • 用戶組和「其他人」具有讀取權限。

根據您的PHP設置,文件夾不需要可執行位。

但基本上,每當Apache報告一個文件實際上不存在時,它很可能是一個與文件相關的問題。 PHP只需要Read和soemtimes對文件執行權限,但始終對它必須遍歷的文件夾執行權限。

希望它有幫助。

+0

AFAIK一個目錄需要可執行的事實是一個Linux/Unix的事情,並沒有任何關於PHP安裝程序? – fvu 2014-10-17 22:27:38

+0

@fvu它很好,必須做。各種標誌定義了應用程序可以訪問文件的行爲 - 比如PHP。如果PHP無法讀取文件,因爲它運行的用戶沒有,那麼它也會失敗。 – 2014-10-17 22:47:16

+0

@fvu:有一個名爲[xbithack](http://php.net/manual/en/apache.configuration.php)的配置選項,用於配置php分析器以僅處理可執行位設置爲php源文件的文件。優點是,可執行的_any_文件被視爲php源文件,無論擴展名如何。 – 2014-10-17 23:00:00

相關問題