1

いくつかのファイルをアプリにアップロードしようとしていて、localhost では正常に動作していましたが、ホストでアプリを実行すると、ログに次のように記録されてコードが失敗しました。

Severity: Warning  --> exec() has been disabled for security reasons /home/public_html/system/libraries/Upload.php 1075

掘り下げた後、無効になっているにもかかわらずexec()(これは良い習慣です)、機能がまだ存在することがわかりました。したがって、CodeIgniter が行うチェックは、function_exists('exec')有効かどうかに関係なく関数が常に存在するため、役に立ちません。

他の人はstackoverflowで同じ問題を抱えていましたが、彼らの解決策は私にはうまくいきませんでした. 私が思いついた解決策をここで提供したいので、これを書いています。

4

1 に答える 1

1

Upload.phpライブラリを自分のapplication/librariesパスに複製し、 1064行目を編集しました

if (DIRECTORY_SEPARATOR !== '\\')

if (false && DIRECTORY_SEPARATOR !== '\\')

exec()この行は通常、ホストが Windows システムであるかどうかをテストします。これは、 、shell_exec()、およびの使用をスキップしpopen()、代わりmime_content_type()にアプリケーションに十分な機能を使用します。false を追加することで、コードが常にその関数にフォールバックするようにします。

于 2013-10-16T06:54:06.427 に答える