- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想在特定时间后在 word press 网站上发布相同的数据,但我有一个问题:
cronjob 无法运行 php 文件
命令:
* * * * * /usr/bin/php /var/www/html/news/cronpost.php
我的代码:
require 'config/config.php';
require 'config/autoload.php';
require 'IXR_Library.php';
$post = post::getInstance();
$user_websites = user_websites::getInstance();
$user_websites_posts = user_websites_posts::getInstance();
$spintext = spintext::getInstance();
$result = $user_websites->getuserWebsites();
foreach ($result as $row) {
$minutes = floor((time() - strtotime($row['last_exe_time'])) / 60);
//echo $minutes . "<br>";
if ($minutes >= $row['schedule_time']) {
$result2 = $user_websites_posts->getPost($row['id']);
$id = array();
foreach ($result2 as $row2) {
$id[] = $row2['post_id'];
}
$ids = implode(",", $id);
//echo $ids . "<br>";
$row3 = $post->getRandPostId($row['local_cat_id'], $ids);
//echo $row3['id'] . "<br><br>";
$user_websites->updateuserwebsites($row['id']);
$user_websites_posts->addUserWebsitesPosts($row['id'], $row3['id']);
if ($row['spin_id'] == '1') {
$title = $spintext->api(stripslashes($row3['title']), 'Regular', 'azhar@techpointmedia.com', 'autoblogging', 'true');
$description = $spintext->api(stripslashes($row3['description']), 'Regular', 'azhar@techpointmedia.com', 'autoblogging', 'true');
} elseif ($row['spin_id'] == '2') {
$title = "test title";
$description = "test description";
} elseif ($row['spin_id'] == '3') {
$title = "test title";
$description = "test description";
} elseif ($row['spin_id'] == '4') {
$title = "test title";
$description = "test description";
} elseif ($row['spin_id'] == '0') {
$title = $row3['title'];
$description = $row3['description'];
}
if (isset($row3['image']) && $row3['image'] != "") {
$xmlrpc = $row['url'] . 'xmlrpc.php';
$client = new IXR_Client($xmlrpc);
//$client->debug = true;
$content = array(
'post_status' => $row['draft_post'],
'post_type' => 'post',
'post_title' => $title,
'post_content' => $description,
'terms' => array('category' => array($row['wordpress_cat_id'])),
);
$params = array(0, $row['username'], $row['password'], $content);
$client->query('wp.newPost', $params);
$post_id = $client->getResponse();
$content = array(
'name' => basename($row3['image']),
'type' => $spintext->mime_content_type($row3['image']),
'bits' => new IXR_Base64(file_get_contents($row3['image'])),
true,
);
$client->query('metaWeblog.newMediaObject', 1, $row['username'], $row['password'], $content);
$media = $client->getResponse();
$content = array(
'post_status' => $row['draft_post'],
'mt_keywords' => 'tag1, tag2, tag3',
'wp_post_thumbnail' => $media['id'],
);
$client->query('metaWeblog.editPost', $post_id, $row['username'], $row['password'], $content, true);
} else {
$xmlrpc = $row['url'] . 'xmlrpc.php';
$client = new IXR_Client($xmlrpc);
//$client->debug = true; //optional but useful
$params = array(
'post_type' => 'post',
'post_status' => $row['draft_post'],
'post_title' => $title,
'post_content' => $description,
//'post_excerpt' => 'This is my test excerpt',
'post_author' => $row['author_id'],
'terms' => array('category' => array($row['wordpress_cat_id'])),
);
$res = $client->query('wp.newPost', 1, $row['username'], $row['password'], $params);
}
}
}
如果我用这段代码替换上面的代码,cronjob 会运行它:
class DBConnect {
function Connect() {
$root = "root";
$pass = "12345";
return $db = new PDO('mysql:host=localhost;dbname=testing', $root, $pass);
}
}
class operations {
// for single instance
protected static $instance = null;
protected $pdo = null;
// Constructor : database connection
public function __construct() {
try {
$con = new DBConnect();
$this->pdo = $con->Connect();
//echo "connected";
} catch (PDOException $e) {
echo $e->getMessage();
}
}
// Getting single instance
public static function getInstance() {
if (!isset(static::$instance)) {
static::$instance = new static;
}
return static::$instance;
}
public function insertRecord($tableName, $cols, $values) {
try {
$number_of_rows = 0;
$sql = "INSERT INTO `$tableName`($cols) VALUES($values)";
//echo $sql;
//exit();
$count = $this->pdo->exec($sql);
} catch (PDOException $e) {
echo $e->getMessage();
}
if ($count > 0) {
return true;
} else {
return false;
}
}
public function selectRecords($tableName, $select = '*', $where = '1') {
try {
$sql = "SELECT $select FROM $tableName WHERE $where";
$stmt = $this->pdo->query($sql);
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
echo $e->getMessage();
}
return $row;
}
public function updateRecord($tableName, $fields, $where) {
try {
$number_of_rows = 0;
$sql = "UPDATE `$tableName` SET $fields WHERE $where";
//echo $sql;
//exit();
$count = $this->pdo->exec($sql);
} catch (PDOException $e) {
echo $e->getMessage();
}
if ($count > 0) {
return true;
} else {
return false;
}
}
}
$show = operations::getInstance();
$result = $show->selectRecords("test2");
//$post->insertRecord("test", "message", "'new message'");
//echo "abc";
foreach ($result as $row) {
echo $row['message'] . "<br>";
$minutes = round(abs(time() - strtotime($row['last_exe_time'])) / 60, 0);
echo $minutes . " min<br><br>";
if ($minutes >= $row['tm'] && $minutes > 0) {
$show->insertRecord("test", "message", "'$row[message]'");
$show->updateRecord("test2", "last_exe_time=CURTIME()", "id=$row[id]");
}
}
请告诉我为什么 cronjob 无法运行我的第一个代码。
最佳答案
首先,你尝试运行/usr/bin/php/var/www/html/news/cronpost.php
在控制台中,如果它运行成功,你可以尝试使用 shell 脚本。创建一个 shell 脚本文件。示例 /root/cron.sh
内容为 /usr/bin/php/var/www/html/news/cronpost.php
然后对您的脚本使用 chmod +x。最后你创建了一个这样的 cronjob
* * * * */root/cron.sh
关于php - cronjob 无法运行 php 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29767522/
我通过 spring ioc 编写了一些 Rest 应用程序。但我无法解决这个问题。这是我的异常(exception): org.springframework.beans.factory.BeanC
我对 TestNG、Spring 框架等完全陌生,我正在尝试使用注释 @Value通过 @Configuration 访问配置文件注释。 我在这里想要实现的目标是让控制台从配置文件中写出“hi”,通过
为此工作了几个小时。我完全被难住了。 这是 CS113 的实验室。 如果用户在程序(二进制计算器)结束时选择继续,我们需要使用 goto 语句来到达程序的顶部。 但是,我们还需要释放所有分配的内存。
我正在尝试使用 ffmpeg 库构建一个小的 C 程序。但是我什至无法使用 avformat_open_input() 打开音频文件设置检查错误代码的函数后,我得到以下输出: Error code:
使用 Spring Initializer 创建一个简单的 Spring boot。我只在可用选项下选择 DevTools。 创建项目后,无需对其进行任何更改,即可正常运行程序。 现在,当我尝试在项目
所以我只是在 Mac OS X 中通过 brew 安装了 qt。但是它无法链接它。当我尝试运行 brew link qt 或 brew link --overwrite qt 我得到以下信息: ton
我在提交和 pull 时遇到了问题:在提交的 IDE 中,我看到: warning not all local changes may be shown due to an error: unable
我跑 man gcc | grep "-L" 我明白了 Usage: grep [OPTION]... PATTERN [FILE]... Try `grep --help' for more inf
我有一段代码,旨在接收任何 URL 并将其从网络上撕下来。到目前为止,它运行良好,直到有人给了它这个 URL: http://www.aspensurgical.com/static/images/a
在过去的 5 个小时里,我一直在尝试在我的服务器上设置 WireGuard,但在完成所有设置后,我无法 ping IP 或解析域。 下面是服务器配置 [Interface] Address = 10.
我正在尝试在 GitLab 中 fork 我的一个私有(private)项目,但是当我按下 fork 按钮时,我会收到以下信息: No available namespaces to fork the
我这里遇到了一些问题。我是 node.js 和 Rest API 的新手,但我正在尝试自学。我制作了 REST API,使用 MongoDB 与我的数据库进行通信,我使用 Postman 来测试我的路
下面的代码在控制台中给出以下消息: Uncaught DOMException: Failed to execute 'appendChild' on 'Node': The new child el
我正在尝试调用一个新端点来显示数据,我意识到在上一组有效的数据中,它在数据周围用一对额外的“[]”括号进行控制台,我认为这就是问题是,而新端点不会以我使用数据的方式产生它! 这是 NgFor 失败的原
我正在尝试将我的 Symfony2 应用程序部署到我的 Azure Web 应用程序,但遇到了一些麻烦。 推送到远程时,我在终端中收到以下消息 remote: Updating branch 'mas
Minikube已启动并正在运行,没有任何错误,但是我无法 curl IP。我在这里遵循:https://docs.traefik.io/user-guide/kubernetes/,似乎没有提到关闭
每当我尝试docker组成任何项目时,都会出现以下错误。 我尝试过有和没有sudo 我在这台机器上只有这个问题。我可以在Mac和Amazon WorkSpace上运行相同的容器。 (myslabs)
我正在尝试 pip install stanza 并收到此消息: ERROR: No matching distribution found for torch>=1.3.0 (from stanza
DNS 解析看起来不错,但我无法 ping 我的服务。可能是什么原因? 来自集群中的另一个 Pod: $ ping backend PING backend.default.svc.cluster.l
我正在使用Hibernate 4 + Spring MVC 4当我开始 Apache Tomcat Server 8我收到此错误: Error creating bean with name 'wel
我是一名优秀的程序员,十分优秀!