[英]Joomla add article via php script Application Instantiation Error
我創建了一個腳本,以便通過php腳本插入一些文章。 此腳本在我的本地計算機(xampp)上運行,但是當我將整個joomla項目部署到Web服務器時,出現以下錯誤消息:
顯示錯誤頁面時出錯:應用程序實例化錯誤:應用程序實例化錯誤
通過添加一些回顯調用,我能夠找到導致錯誤的行:
$app = JFactory::getApplication('site');
現在,我想知道如何解決此問題並使我的功能也可以在Web服務器上運行。
在下面,我將提供系統信息以及php函數的開始,直到出現該行為止,這會導致錯誤消息:
<?php
echo "STARTING; ";
// get db connection
include('../includes/mysql.inc.php');
// get all sql querys
include('./autoNewsQuerys.inc.php');
/**
* Prepare joomla framework to insert article correctly
*/
if (!defined('_JEXEC')) {
define('_JEXEC', 1);
define('JPATH_BASE','/is/htdocs/wp1088688_4E1H7PYJFK/www');
require_once(JPATH_BASE . '/includes/defines.php');
require_once(JPATH_BASE . '/includes/framework.php');
defined('DS') or define('DS', DIRECTORY_SEPARATOR);
}
echo "searching app;";
$app = JFactory::getApplication('site');
echo "Found app;";
開始; 正在搜索應用程序;顯示錯誤頁面時出錯:應用程序實例化錯誤:由於第3行上的“ /is/htdocs/wp1088688_4E1H7PYJFK/www/1500AutoNews/autoNews.php”已經發送了標頭,因此無法啟動會話。
因此,您可以看到錯誤是由JFactory調用引起的。 永遠不會打印出“找到的應用”。
只需將Joomla index.php
文件復制到另一個文件,然后將$app->execute
代碼替換為您的代碼。
注意:您不需要包含任何MySQL
庫-因為正在加載Joomla環境,那么您可以訪問JDatabase類,該類是數據庫抽象層。
另一個注意事項:該文件autoNewsQuerys.inc.php
可能包含一些問題(也許您正在嘗試在此處實例化應用程序,但Joomla環境尚未加載)。 您應該將其移至末尾。
如果它在localhost上運行,而在Web服務器上不運行,那么最大的問題就是定義基本路徑。 給出joomla安裝的硬編碼基本路徑。 我建議您使用php腳本檢查基本路徑。 創建一個php文件,並將其命名為path.php。 將其放在Joomla主文件夾中。 文件內容
<?php
echo "The Base path is ".getcwd();
?>
獲得路徑后,只需更改Base_Path。 例如:
define('JPATH_BASE', '\var\www\joomla');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.