php - 在 Codeigniter 下无法使用共享主机 cPanel cronjob
问题描述
尽管有很多类似主题的帖子,但我找不到任何符合我在此简要描述的案例的人。这是测试脚本
<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');
require 'DashboardBase.php';
class Hello extends CI_Controller {
public function message($to = 'World')
{
echo "Hello {$to}!".PHP_EOL;
print "Hello {$to}!".PHP_EOL;
log_message('error',"Hello {$to}!".PHP_EOL);
}
}
?>
网络服务器在共享主机下;它用于cPanel;使用 Codeigniter。
正常工作的外部 URL 是:https ://pharmacomparison.com/adminPanel/hello/message/federico
我已经在我的个人电子邮件中激活了 cronjob 输出通知,可以注意到我还将输出保存在错误日志中。
在这里我的 cronjob 定义尝试
(由 CodeIgniter 手册建议): /usr/local/bin/php public_html/adminPanel hello message "federico" --> 没有电子邮件通知;“错误”日志中没有输出
小修改,添加了“/”:/usr/local/bin/php public_html/adminPanel/ hello message "federico" --> 没有邮件通知;“错误”日志中没有输出
(假设提前错误,但让我们尝试) /usr/local/bin/php public_html/adminPanel/hello message "federico" --> 电子邮件通知报告“无法打开输入文件:public_html/adminPanel/hello”;“错误”日志中没有任何内容
(假设提前错误,但让我们试试)/usr/local/bin/php public_html/adminPanel/hello.php message "federico" --> no email notification, in 'error' log "ERROR - 2020-01-10 16 :09:25 --> 404 页面未找到:Hellophp/message"
完整的真实磁盘路径:通知电子邮件报告“不允许直接脚本访问”
基本上,假设正确的前两次尝试不会产生任何错误,甚至不会产生错误。有任何想法吗?
解决方案
您没有正确运行它,这里是如何通过 CLI 在 codeigniter 中运行一个函数。
请试试这个
php /usr/local/bin/php public_html/adminPanel/index.php Hello message "federico"
所有函数调用都必须经过 index.php
php /path_to_project_root/index.php ControllerName function "argument"
推荐阅读
- python-sphinx - 如何使用 sphinx 创建一个链接以在 rst 中下载目录?
- accessibility - Jaspersoft Studio 不支持工件标记。有解决方法吗?
- react-native - 在标题中显示自定义组件
- java - 调用 GL30.glGenVertexArrays() 时出错;
- c - 这个字符串比较程序如何处理相同大小的字符串?
- cuda - 使用 cudaEventRecord() 记录多 GPU 程序的 CUDA 内核的运行时间
- c# - System.Text.Json 序列化多个对象/数组
- select - h2数据库选择查询慢
- visual-studio - 从电子邮件中检索纯文本正文
- c# - 使用 BindingSource 和 Validate 数据内联添加行