こんにちは、Linux初級です。
PHPからlhaコマンドが使えなくて困っています。
実は他の掲示板でも質問しているのですが、私が初級ということもあってか(?)、途中で途切れてしまっています。
何とか、解決までおつきあいいただけないでしょうか?
以下、現状です。
・サーバーはCentOS5.2で、lhaは自力でインストール
・SSHからのlhaコマンド実行は問題無し
SSHで実行したコマンド "lha efiw=絶対パス 絶対パス/対象圧縮ファイル" //問題無く解凍できました。
・サーバーレンタル会社へ質問するもサポート外との返事
ただし、PHPの実行ユーザーで動くはずだと思う・・・との事
・PHP実行時のhttpd.confのエラーログは"sh: lha: command not found"
それで、PHPの処理の流れは、アップロードされたlzh圧縮ファイルを解凍するというものです。
if (!shell_exec("lha -e '絶対パス' '絶対パス/$up_file'")) { exit("解凍できません!"); }
とか、
if (!system('lha efiw=絶対パス 絶対パス/$up_file')) { exit("解凍できません!"); }
とか、-eをeやxに変えたりといろいろやってみましたが、結果は全て"解凍できません!"となります。
ちなみに、zipファイルは解凍できますので、セーフモードでは無いようです。
shell_exec("unzip -j '{絶対パス}$up_file' -d '{絶対パス}'"); //これはOK
また、絶対パスはzipの方で確認していますので、間違いありません。
PHPの記述の問題なのか、サーバー側の問題なのか、さすがに困り果てました。
何か情報が不足しておりましたら、ご指摘下さい。
どうぞ宜しくお願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
書き方がわるかったかもしれませんが
”lha”を絶対パスで指定してみては?・・・という意味です。
見る限りlhaはパス指定していませんよね?
たとえば・・・
if (!shell_exec("/usr/local/bin/lha -e ・・・・")){・・・}
みたいな感じ
No.1
- 回答日時:
sh: lha: command not found
ってでるとゆーことは、実行してるユーザーだとそのコマンド
が見つから無いって言われてるんで、
PHPからはシェルスクリプトを呼び出す処理を書いて
そのシェルスクリプトを使って
環境変数を設定して、そのあとlhaコマンドを実行すればいーんじゃ
ないですかね?
例えばLinuxってコマンドを実行する時、SSHでコマンドを実行する場合と、
cronとかでコマンドを実行する場合だと実行してるユーザーが変わるので、環境変数にコマンドを入れておかないと、
実行できるコマンドが違うので、
sh: lha: command not found
みたいに、コマンドが見つかりませんってゆーエラーが出ると思います。
※あまりサーバーに詳しくないので、表現が間違ってましたら、誰か訂正してください。
この回答への補足
宜しければ、以下のスクリプトの具体例とか教えていただけないでしょうか?
>PHPからはシェルスクリプトを呼び出す処理を書いて
>そのシェルスクリプトを使って
>環境変数を設定して、そのあとlhaコマンドを実行すればいーんじゃ
>ないですかね?
出来ることを一通り試してみたいのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- その他(プログラミング・Web制作) pythonでDepixを起動 5 2022/12/18 08:04
- その他(IT・Webサービス) 301リダイレクトの使い方について 7 2022/04/05 17:50
- その他(コンピューター・テクノロジー) <a href="file:///フォルダ名/ファイル名">リンクテキスト</a>について 1 2023/04/06 22:40
- Visual Basic(VBA) VBSで作成した相対パスのショートカットが他者と共有できません。 1 2022/09/05 11:20
- HTML・CSS Dreamweaver のテンプレートでの相対パスの設定について 2 2023/06/13 17:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- その他(プログラミング・Web制作) 図に示す階層構造で,現在のディレクトリ(カレントディレクトリという)が*印のディレクトリであるとき, 2 2022/11/16 10:55
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MySQLでのdeadlockをPHPで検出...
-
xserver のCronでphpを実行する...
-
【PHP】命令は記述順に処理...
-
Prompt入力値をphp変数として取...
-
PHP&Mysql&Cronを使って自動...
-
PHPで、C#のプログラムを実行す...
-
system関数で一部のプログラム...
-
ファイルの実行権限について
-
PHP(Windows)でコマンド実行
-
透過PNGが透過されない!!
-
CFileDialogの最初のディレクト...
-
【file_exists】ファイルが存在...
-
フォントの色を変えるには?
-
VB6にてメールを送信する方法
-
C# Excelファイルへの画像挿入。
-
フォームで戻った際に入力済み...
-
.htaccessにphp_valueが使用できな
-
別ファイルの変数を呼び出した...
-
3つ以上の論理積は利用可能なの...
-
onedrive にexcelファイルをア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysql複数レコードをまとめて削...
-
PHPからバッチファイルの実行
-
php実行中に実行中のphpファイ...
-
Prompt入力値をphp変数として取...
-
Switch文における、returnとbre...
-
phpからエクセルのマクロを実行...
-
ヒアドキュメントの中で演算子...
-
copy() で属性保存
-
httpdのプロセスが自動で消えな...
-
別サーバのプログラムを起動
-
シェルスクリプトをPHPで動かそ...
-
【PHP】命令は記述順に処理...
-
MySQLでのdeadlockをPHPで検出...
-
Linux:PHPでTELNETによるSMTP...
-
サーバーモジュールとCGIプロセ...
-
ブラウザからexecコマンドを実...
-
phpスクリプトのみで定期実行
-
phpのshell_exec関数の動作に関...
-
PHPからlhaコマンドを使いたい
-
htmlでsubmitで指定したAction...
おすすめ情報