質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.52%

cron、PHPでのHTML自動更新

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 664

OAZU

score 7

前提・実現したいこと

cronで、日付切り替わるごとにHTMLを自動更新したい。

今までcronでHTMLを自動更新していました。
他にも自動更新したい箇所がでてきたため、
サーバーのcronディレクトリ内(cronで動かしていたと思われる、PHPスクリプトファイルを置いていたディレクトリ)にあったPHPファイルを書き換えたところ、動作しなくなってしまいました。

発生している問題・エラーメッセージ

$copy_list = array の部分に
更新したい箇所を追加、サーバーへアップロードしたところ
今までできていた自動更新もできなくなってしまいました。

#!/usr/bin/php
<?php
# copy file base name list for ABC
$copy_list = array(
"/index.html",
"/about.html",
"/contact/index.html",
);

$BASE = dirname(__DIR__).'/public_html';
$DATE = date("Ymd");
$log = "START:$DATE\n";
foreach($copy_list as $org_name){
    $org_file = $BASE.$org_name;
    $path_parts = pathinfo($org_file);
    $dir = $path_parts['dirname'];
    $ext = $path_parts['extension'];
    $base = $path_parts['filename'];
    $new_file = $dir.'/'.$base.'_'.$DATE.'.'.$ext;
    if(file_exists($new_file)){
        copy($new_file, $org_file);
        $log .= $org_file."\n\t".$new_file."\n";
        echo $new_file."\n\t=>".$org_file."\n";
    }
}
$log .= "END:$DATE\n";
file_put_contents(dirname(__DIR__).'/logs/ABC_copy', $log, FILE_APPEND);
?>

試したこと

cronによる自動更新方法の調査、PHPの記述について調査

バックアップしていた、cronディレクトリ内(cronで動かしていたと思われる、PHPスクリプトファイルを置いていたディレクトリ)にあった書き換え前のPHPファイル(問題なく自動更新できていた時の物)をサーバーへアップしなおしてみましたが、改善されずです。
また、PHPファイルを元の問題なく自動更新できていた時のように書き換え、サーバーへアップしても改善されませんでした。

補足情報(FW/ツールのバージョンなど)

サーバーのコンパネに入ることはできない状況のため、cronの設定がどのようになっているかはわからない状況です。

助言よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • otn

    2019/04/02 11:59

    > cronディレクトリ
    とは何ですか?「cronで動かしていたPHPスクリプトファイルを置いていたディレクトリ」という意味のようですが、合ってますか?

    キャンセル

  • OAZU

    2019/04/02 12:09 編集

    otn様
    仰る通り、「cronで動かしていたPHPスクリプトファイルを置いていたディレクトリ」です。うまく説明できず申し訳ございません。

    サーバー内の「cron」というディレクトリ内にcronで動かしていると思われるPHPファイルがありました。質問文m修正いたします。

    キャンセル

  • otn

    2019/04/02 12:12

    ユーザーが直接操作しない(=ファイルを置かない)、/var/spool/cron/ というディレクトリがあり、単にcronディレクトリというとこれを指します。

    キャンセル

回答 1

checkベストアンサー

+1

PHPのファイルを元に戻しても、動作が元に戻らないのであれば、スクリプト内の問題ではなくて、手順の問題ですね。

例えばですが、crontabにどう登録してあるかによりますが、PHPファイルの実行可能ビットが立っているべきなのに立っていないとか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/04/02 12:51

    ご丁寧に回答いただきありがとうございます。
    PHPについてほとんど知識のない中、調査するも分からずの状況でした。
    お陰さまで解決のヒントに近づけました。ありがとうございます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる