2013-02-14 59 views
3

我的網站託管服務提供商表示,他們正在改變,從5.2.17的是PHP 5.4,我嘗試在本地使用PHP 5.4運行我的網站,我得到了充分的issuses哪個Joomla版本低於2並且接近1.5。支持PHP 5.4?

這樣

Strict Standards: Non-static method JError::isError() should not be called statically, assuming $this from incompatible context in D:\xampp\htdocs\indoor\libraries\joomla\application\application.php on line 721

所以我需要升級我的joomla版本接近1.5,目前我正在使用1.5.24

+0

好你的web主機終於起牀到日期。 PHP 5.2已經完全不支持兩年,並且已知未被修補的安全漏洞;令我驚訝的是,有多少託管公司願意將其保留在他們的服務器上。 – SDC 2013-02-14 10:00:48

+0

我有這個相同的問題,然後我發現這,這打破了我的心http://docs.joomla.org/Joomla_1.5_won%27t_work_on_PHP_5.4 – Mazi 2013-06-17 07:49:29

回答

0

這是您的內部joomla錯誤,因爲您靜態調用全局函數。使用調試器並在調試模式下運行您的頁面。

+0

嗨Bilal Khalid,php 5.4.7支持joomla 1.5.24 – user1948688 2013-02-14 08:44:54

2

嚴格標準模式是一種PHP設置,它告訴它在代碼執行某些技術上不正確的事情時會拋出警告消息。

但是,PHP可以處理這些問題 - 根據問題中的信息,PHP能夠對這種情況下的代碼進行假設並繼續進行。

這些嚴格模式警告一直存在; 5.4中而不是5.2中獲得它們的原因是因爲在5.4中它們默認啓用,而在5.2中它們默認爲關閉。

基本上,對於每個新版本,PHP對於過時或不良編程實踐的要求越來越嚴格。這通常是一件好事,但在升級時會使舊代碼出現問題。

但嚴格模式不是強制性的;它可以被禁用。所以如果你所得到的只是關於嚴格模式的警告,處理這個問題的最快方法就是關閉它。

您可以在PHP.ini.htaccess文件中或使用ini_set()在PHP本身中執行此操作。

  • 的php.ini:error_reporting=30719
  • 的.htaccess:php_value error_reporting 30719
  • 在PHP代碼:error_reporting(E_ALL & ~E_STRICT);

(30719是eqivalent到E_ALL(32767)減去E_STRICT(2048),但名稱E_ALL和E_STRICT在ini文件中無效,因此您必須使用數字值)

一般來說,它和我最好將系統升級到不會導致嚴格模式警告的軟件;也許更新版本的Joomla會對此有所幫助。但從短期來看,這將防止嚴格模式警告出現,並希望可以幫助您過渡到新的PHP版本。

希望有所幫助。

+1

常量像'E_ALL'和'E_STRICT'在php處理的'.ini'文件中是有效的(所以'php.ini'可以正常使用它們),但不能在apache處理的文件中處理(如'.htaccess'或'VirtualHost'配置你必須使用數字值,而且,數值可能會從一個php版本改變到另一個版本,所以最好查看['predefined constants']的列表(http://php.net/manual/) EN/errorfunc.constants.php) – 2013-02-19 08:20:08

0

是的,現在升級你的joomla版本更好,因爲沒有joomla 1.5的安全更新。另外請記住,開發的所有新擴展都與joomla 2.5兼容,並且您不能在1.5版本中使用它。