ホームページ >バックエンド開発 >PHPチュートリアル >サーバーが chmod() を無効にしています。解決するにはどうすればよいですか?
chmod() 関数がサーバー上で無効になっています
アップロードされたファイルを読み取る権限すらありません
サーバーの設定が変更されていないと仮定して、プログラムに解決策はありますか
サーバー管理者に連絡し、Web サイトのプログラム ディレクトリに関連する権限を個別に設定してください
上の階の文章を読みすぎたに違いありません
私が聞きたいのは、プログラムに解決策はありますかということです
アップロードのデフォルトの権限ファイルは Apache、通常は www-data 所有者です。
phpinfo(); をチェックして disable_functions に chmod があるかどうかを確認します。ある場合はブロックされます。
chmod が disable_functions にない場合、シールドがないことを意味し、使用できるはずです。
www-data にファイルをアップロードするとき、あなたは所有者であり、許可がないことは不可能です。
少なくともphpには読み取りと書き込みの権限があります。
www-data にファイルをアップロードするとき、あなたは所有者であり、許可がないことは不可能です。
少なくともphpには読み取りと書き込みの権限があります。
できませんオーナーは?
誰が所有しているか見てみましょう?
ブラウザがアクセスしたときに正常に閲覧できるようにするための最低限の権限設定は何ですか?
テスト中にウィンドウの下にアップロードされた画像は、Linux に配置された後、-rw-r--r-- 権限を持ちます
これには通常どおりアクセスできます
画像ディレクトリの権限を表示および変更するには、ftp ソフトウェアを使用します
FTP ソフトウェアを使用します 画像ディレクトリの権限を表示および変更します
666 に変更します
666 に変更します
オーナーは誰ですか?
所有者に会うために Linux システムに入らなければなりませんか?
通常の状況では、アップロードされたファイルの所有者は誰ですか?/** 获取文件或文件夹的拥有者,组用户,及权限 * @param String $filename * @return Array */ function file_attribute($filename){ if(!file_exists($filename)){ return false; } $owner = posix_getpwuid(fileowner($filename)); $group = posix_getpwuid(filegroup($filename)); $perms = substr(sprintf('%o',fileperms($filename)),-4); $ret = array( 'owner' => $owner['name'], 'group' => $group['name'], 'perms' => $perms ); return $ret; }
/** 获取文件或文件夹的拥有者,组用户,及权限 * @param String $filename * @return Array */ function file_attribute($filename){ if(!file_exists($filename)){ return false; } $owner = posix_getpwuid(fileowner($filename)); $group = posix_getpwuid(filegroup($filename)); $perms = substr(sprintf('%o',fileperms($filename)),-4); $ret = array( 'owner' => $owner['name'], 'group' => $group['name'], 'perms' => $perms ); return $ret; }
さすが Wanwang です
警告: posix_getpwuid() はセキュリティ上の理由から ...... で無効になっています。 ... .制限は 600 です。ファイルをダウンロードします。おかしいですね。
まだ完了していません。警告が表示されます: /data/home/qyu1297580001/htdocs/product/admin/func/upload.inc.php の 66 行目で、セキュリティ上の理由から chmod() が無効になっています
この解決策は OK です