【问题标题】:crontab centos wordpress wp-loadcrontab centos wordpress wp-load
【发布时间】:2014-11-26 20:43:27
【问题描述】:

我在centos服务器上使用crontab

* * * * * php -q /var/www/domain.com/public_html/script.php

script.php 内容:

<?php 
require_once( '/var/www/domain.com/public_html/wp-load.php' );
global $wpdb;
$results = $wpdb->get_var("SELECT post_date FROM wp_posts WHERE id = 70");
$fn = "/var/www/domain.com/public_html/file.txt";
$file = fopen($fn, "a+");
fwrite($file, $results."\n");
fclose($file);
?>

当我直接转到:http://www.domain.com/script.php 时,它执行良好并写入文件,当要执行 crontab 时,我没有从 db 到 file.txt 得到写入结果...有什么问题?它似乎不会加载 wp-load.php?有什么想法吗?

Crontab 正在工作,当我评论 wp-load.php 时它会写入文件...

【问题讨论】:

    标签: wordpress crontab


    【解决方案1】:

    如果不深入了解您的系统,这可能与权限有关。哪个用户通过网页界面运行这个,哪个用户通过cron运行这个?

    在任何情况下,您都应该在 PHP 脚本中进行错误检查:

    $file = fopen($fn, "a+");
    if (! $file)
        print("Oops, cannot open $file\n");
    

    参见例如w3schools 获取此类错误报告的示例。

    【讨论】:

    • 是的,但这是 wp-load.php 中的问题,正如我在评论此行时所说的那样,它会写入 txt 文件。
    • 好的,不同的方法,尝试使用curl从crontab中调用它,就像* * * * * curl http://localhost/where/ever/wp-load.php一样,这样你就绕过了网络用户或非网络用户的问题?顺便说一句,我不明白您所说的“当我评论这一行时”是什么意思。哪条线?另外:检查 crontab 用户的邮件,crontab 会愉快地将所有输出转储到那里。
    • 我的意思是需要 wp-load.php 文件的注释行。我试过卷曲,它就像一个魅力!谢谢你!我需要在 curl 之后删除吗?因为很多文件将在服务器中?还是不?
    • 连接方式是附加文件/var/www/domain.com/public_html/file.txt。所以你不会有很多文件,但文件会增长,因为它是在附加模式a+ 中打开的。您可能希望定期删除它或缩短它。另外,哎呀,我上面的评论说curl ...wp-load.php。当然应该是script.php
    • 也许会重新验证您是否拥有正确的curl 文件。请注意,命令行curl 的配置可能与 PHP 模块不同..
    猜你喜欢
    • 1970-01-01
    • 2017-03-20
    • 2015-07-25
    • 2013-01-26
    • 1970-01-01
    • 2020-06-19
    • 2012-12-01
    • 2020-12-22
    • 2014-03-15
    相关资源
    最近更新 更多