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

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

新規登録して質問してみよう
ただいま回答率
85.48%
cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

5889閲覧

【ロリポップ】シェルスクリプトのcronからphpを実行したい

casanovaY

総合スコア154

cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2015/06/08 14:59

###前提・実現したいこと
ロリポップのレンタルサーバーのcron設定でシェルスクリプトからphpファイルを実行したいです。

###発生している問題・エラーメッセージ
cronを動かす設定はできたのですが、どうやらシェルスクリプトから呼び出したphpが動いてないようです。

エラーメッセジは以下が出ています。

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/imagick.so' - /usr/lib/php/modules/imagick.so: cannot open shared object file: No such file or directory in Unknown on line 0

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/radius.so' - /usr/lib/php/modules/radius.so: cannot open shared object file: No such file or directory in Unknown on line 0

PHP Parse error: syntax error, unexpected T_STRING, expecting T_CONSTANT_ENCAPSED_STRING or '(' in phpファイルでエラーが出た箇所)

###ソースコード

lang

1#!/bin/bash 2# 3 4cd /home/users/0/sub.jp-ドメイン/web/実行するphpのファイルがあるまでのパス 5touch cron.log 6 7YMDHMS=`date '+%y/%m/%d %H:%M:%S'` 8echo "$YMDHMS *** start ***" >> cron.log 9 10php -f execute.php >> cron.log 11 12YMDHMS=`date '+%y/%m/%d %H:%M:%S'` 13echo "$YMDHMS *** end ***" >> cron.log 14

###補足情報(言語/FW/ツール等のバージョンなど)
phpのバージョンは5.4を使用しています。

以上、よろしくお願いします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

イメージマジックのモジュールがインストールされていないようなエラーが出ていますね・・・
サーバにSSHログインが可能であれば、コマンドでインストールされているモジュールの確認を行う事が出来ますが、SSHログイン出来ない場合。

テスト用のファイルをサーバに作成してPHPのモジュール状況を確認してみては如何でしょうか?

<?php // すべての情報を表示します。デフォルトは INFO_ALL です。 phpinfo(); ?>

投稿2015/06/09 12:22

takayukiinaba

総合スコア1158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

投稿2015/06/08 18:19

gouf

総合スコア2321

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

PHPが呼び出す、共有ライブラリが読めていないようなエラーが出てます。

コマンドラインから、実行しても同じエラーが出ますでしょうか?

共有ライブラリが読めているかどうかは、以下で確認できます。
ldd $(which php)

モジュールが実際に存在するならば、環境変数(LD_LIBRARY_PATH)の問題ですが、
実際にモジュールが無いのかもしれません。

モジュールがあるか確認
ls -l /usr/lib/php/modules/imagick.so

あったら、
シェルに以下を追加
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/php/modules

無ければ、インストールするしかないですが、、、。

投稿2015/06/08 16:10

編集2015/06/08 16:28
frogman

総合スコア129

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

casanovaY

2015/06/12 15:14

ご指定の方法で確認してみましたが「usr/lib」配下にphpがありませんでした。 php自体がほかのフォルダにあるのでしょうか? また、以下のリンクからImage::Magick関係のものはすべてロリポップ!側でインストールしてあると思っているのですが。。。 http://lolipop.jp/support/faq/cgi/000132/ frogmanさん、ロリポップ!のご使用経験があれなご教授いただけないでしょうか? サーバーや環境周りの知識が乏しいので。。。 よろしくお願いいたします。
frogman

2015/06/12 15:43

ロリポップの使用経験はなく、PHPで、Image::Magickを使用したことはないのですが、 紹介していただいたURLをみると /usr/bin/convert ←これは、ライブラリではなくコマンド なので、PHPのなかで、上記のコマンドを実行せよ。 といっているように見えます。 で、execute.php の中で使用しているのは、「PHPからImageMagickを操作するためのPHP拡張モジュール」ではないでしょうか? 上記URLを見るとあくまで、コマンドで提供しています。といっているようにみえます。 なので、PHPから、上記のコマンドを実行するようにスクリプトを変更してみてはどうでしょうか?
frogman

2015/06/12 15:52

こんな感じで、実行してみては、どうでしょう? <?php $convert = ”/usr/bin/convert”; //convertへのpath $filename = ’a.png’; $newfilename = ’b.png’; $option = ’ -geometry 50x50’ exec(escapeshellcmd($convert.$option.’ ’.$filename.’ ’.$newfilename)); ?>
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問