ホームページ  >  記事  >  バックエンド開発  >  PHP実行エラーの問題を解決する方法

PHP実行エラーの問題を解決する方法

藏色散人
藏色散人オリジナル
2020-08-20 10:08:142997ブラウズ

php exec エラーの解決策: まず、ファイルのユーザーを php ユーザーに変更し、次に「exec()」の内容を「exec('7za x /home/www/test/filename.csv」に変更します。 .7z -r -o./report/sogou/');」これだけです。

PHP実行エラーの問題を解決する方法

推奨: 「PHP ビデオ チュートリアル

PHP で exec を実行するときに発生する問題ピット (linux 許可 ピット

ピット 1

今天在使用php中的exec()命令,下载搜狗推广数据报表压缩包,解压的时候遇到一个坑,搜狗给了一个链接,在浏览器访问的时候直接下载的是.zip的压缩包,于是使用
//下载压缩包
exec("wget -O /home/www/test/filename.zip 'sougou_url'");//注意url要用单引号包含住
//解压
exec('unzip -o /home/www/test/filename.zip);

結果はエラーです: 解凍に失敗したため、シェル ターミナルに移動してコマンドを使用して解凍しましたが、それでもエラーが発生しました

運用保守に問い合わせたところ、ファイル形式がzip形式ではないとのことで、色々な解凍コマンドを試してみたところ、圧縮されていることが判明しました。 .7z 形式のパッケージです。これは、Sogou が少し混乱していると言わざるを得ません。

Windows での解凍ツールは 7z 形式と統合されているため、Windows で解凍してもエラーは報告されません:

問題が見つかったので、解決できます (注: デフォルトでは centos には p7zip がないため、インストールする必要があります (yum install -y p7zip);

その後、上記の exec() を次のように変更します:

exec("wget -O /home/www/test/filename.7z 'sogou_url'");
chmod("./report/sogou/tmp/filename.7z",0777);//此处要给权限否则下一个命令无法执行
exec('7za x /home/www/test/filename.csv.7z -r -o./report/sogou/');

ファイルのユーザー権限を覚えておいてください。ターミナルでは root ユーザーが使用されているためです。ファイルの権限を変更した後、プログラムはレポートを表示します。 exec を実行してファイルを権限なしで操作するとエラーが発生します。これは、php が属するユーザーが root ではないためです。ファイルのユーザーを php ユーザーに変更するだけで済みます。

以上がPHP実行エラーの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。