3日前からVine Linuxを初めてインストールしまして、
自宅サーバをやろうとしている、初心者です。
これまではxrea.comのレンタルスペースを借りてphpでコンテンツを作っていました。
phpをCronを使って、定期的実行する際に
[シェルファイル]
#!/bin/sh
#PHP
/usr/bin/php /var/www/html/filename.php
exit
のようにしてファイル操作をするphpを実行させたのですが
[filename.php]
<?php
$fp=fopen("../data/dat.txt","w");
fputs($fp,$data);
fclose($fp);
?>
で実行したところURLからは問題なく
dat.txt
の内容を編集することができるのですが
cronからだと
PHP Warning: fopen(../data/data.txt): failed to open stream: No such file or directory
となります。
そこでカレントディレクトリを調べると
/root/PHPs/
となっていたので、そのようなエラーになっていました
(1)カレントディレクトリを変更するコードを毎回phpに組み込む
(2)フルパスでファイルを指定する
ことでこのトラブルは回避されるのですが、
xrea.comでは、相対パス、カレントディレクトリを毎回指定しなくても、実行できていました。
cronでphpを実行する際に、phpが存在するディレクトリへ
自動でカレントディレクトリを移動するようにしたいです。
そのような方法があれば、教えてくください。
No.1ベストアンサー
- 回答日時:
たとえばこんな感じ?
<?php
$path=realpath(dirname( __FILE__));
$filename="../data/dat.txt";
$filename=$path."/".$filename;
$fp=fopen($filename,"w");
fputs($fp,$data);
fclose($fp);
?>
はじめての質問の書き込みでしたので、返事がくるか不安でした。
お返事を頂きありがとうございます。
上のソースでうまくいきました。
ありがとうございます。^^
また、このようなコードを打たないで
なんというか、自動的にphpを実行する際にカレントディレクトリを帰られるものがないのかなぁとおもっています。
えと、つまり、phpに記述しなくても、
PCのほうでphpを実行する際に、カレントディレクトリを自動で
プログラムの存在する位置に移動させる設定(cron側での設定?)みたいなものがあるんじゃないだろうかと思っています。
ご存知でしたら、ご教示いただきたいです。
よろしくお願いいたします。
No.3
- 回答日時:
>プログラムを実行する際に
だからシェル側でやったら?
有るんだし
/usr/bin/php /var/www/html/filename.php
↓ (飽くまでも参考ね)
cd /var/www/html
/usr/bin/php ./filename.php
ありがとうございます。
よく、わからなかったのですが、調べたところ
PHPのCLI版だとカレントディレクトリが自動で移動しないようなので、自分が求めていることをやろうとするとCGI版を導入する必要があるのかな?と勝手に想像してます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- PHP WordpressのPHPを安全に編集する方法 1 2022/08/04 01:43
- その他(プログラミング・Web制作) 図に示す階層構造で,現在のディレクトリ(カレントディレクトリという)が*印のディレクトリであるとき, 2 2022/11/16 10:55
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- PHP eclipse pleiades phpのインストールについて 1 2023/02/03 17:15
- PHP PHPで訪問回数を表示するカウンタを作成したい 3 2023/05/27 07:09
- PHP 掲示板を作成しておりアップロードファイルとメッセージを並べたいので、アドバイスお願い致します 2 2023/07/17 21:01
- UNIX・Linux cronでシェルスクリプト実行時のkubactlコマンドが機能しない対処法。 2 2022/08/03 18:58
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スクリプトのエラー「unexpecte...
-
bashでシングルクォート内の変...
-
Linux 月を英語表示したい
-
自動パスワード入力でscpするス...
-
crontabでsql/plusの起動
-
シェルスクリプト実行で”そのよ...
-
cronの@rebootでのdateコマンド...
-
cronが動かない
-
cron設定で正常に動作しない
-
Linuxで自作バッチファイルの置...
-
Cシェルのかっこいいプロンプト...
-
私の作ったCGIスクリプトを見て...
-
CygwinでX Windiws Systemが起...
-
sudoでNOPASSWDとしてもパスワ...
-
Cronジョブの終了時刻を簡単に...
-
apachectl start command not f...
-
TOPコマンドで表示するCPU使用...
-
Dirコマンドでフォルダ内ファイ...
-
エクセルの表にヘンな枠が・・・
-
batである文字列内に特定の文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スクリプトのエラー「unexpecte...
-
bashでシングルクォート内の変...
-
Linux 月を英語表示したい
-
シェルスクリプト実行で”そのよ...
-
自動パスワード入力でscpするス...
-
crontabでsql/plusの起動
-
cronの@rebootでのdateコマンド...
-
Linuxで自作バッチファイルの置...
-
bad interpreterで、シェルが使...
-
ロケールをutf8からsjisにする...
-
sudoでシェルスクリプトを実行...
-
hp-uxで時間(時計)を合...
-
Homebrewをインストールしたの...
-
Cronジョブの終了時刻を簡単に...
-
シェルスクリプトで標準エラー...
-
Linuxでシェルスクリプトがフル...
-
apachectl start command not f...
-
Bシェルで文字列が日付として正...
-
WIN10(MAC-bootcamp)で 起動時...
-
JAVAの環境変数が初期化されて...
おすすめ情報