[英]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.