今日のブログファイルを管理しているときに、WebサイトのパスにあるフォルダやファイルをFTPで削除できないことがわかりましたFTPプロンプトアクセス許可拒否(許可なし) FTPプロンプトが足りないので、サーバのファイルパーミッション設定に問題がある可能性があるので、ファイルマネージャを表示するためにサーバ管理のバックグラウンドに移動したところ、ファイルマネージャに次のように表示されました。図:
図からわかるように、 PHP
プログラムによって生成されたファイル所有者は私のftpアカウントではなくApacheアカウントなので、Apacheアカウントにはこれらのファイルを制御するためのすべての権限があります。しかし、FTPユーザーはそうではないので、私は自分のユーザーを使用してFTPでこれらのファイルを削除します。それらを削除するように求められます。
問題を特定するために、サーバープロバイダーに相談しました。私が得た答えは私の推論を完全に証明するものです。Apacheとftpは一般に国内のLinux仮想ホストのユーザーグループには属していないので、apacheが確立されています。 FTPディレクトリやファイルを削除することはできませんし、PHPのプログラムではApacheによって削除されなければなりません。
どうやってそれを解決できますか?非常に簡単に、この作業を完了するためのPHPプログラムを書いてください。
?php /* Linux Space File Removerバージョン1.0著作権:フリーソフトウェア、ランダムスプレッド# ###报告####このソフトウェアはスペースのメンテナンスのためのツールです使用後すぐにこのファイルを削除してください。* /?!ドキュメントタイプHTML PUBLIC" - //W3C //DTD HTML 4.01< /EN> http: //www.w3.org/TR/html4/loose.dtd"htmlheadmeta http-equiv ="コンテンツタイプ" content ="テキスト/html; charset = utf-8"タイトルスペースフォルダ/ファイル削除ツール/Titlestylebody {font-family: "宋体"; font-size:12px;}入力{border:1px#ccc solid;} b {色:#FF0000;} /style /headbodyform action ="?action = dirdel" Method =" post"フォルダを削除します。b削除した後は必ず正しい操作を入力してください。/bbrフォルダパスを入力してください。";"別の入力タイプ="テキスト" nameを使用してください= "all_folder" size = "50"入力タイプ= "送信"値= "削除" /formbrform action = "?action = filedel " method =" post"ファイルを削除します。b削除する前に必ず正しい操作を入力してください。/bbrファイルのフルパスを入力してください。";"個別の入力タイプ="テキスト"を使用してください。 Name = "all_files" size = "50"入力タイプ= "送信" value = "削除" /formbr?php $ action = $ _GET ['action']; //ディレクトリ操作を削除する場合($ action == 'dirdel'){$ all_folder = $ _POST ['all_folder']; if(!empty($ all_folder)){//セミコロンで複数のフォルダを認識する$ folders = explode( ';'、$ all_folder); if(is_array($ folders)){foreach($ folders as $ folder){deldir($ folder); echo $ folder。 '削除成功Br';}}}}} if($ action == 'filedel'){ $ all_files = $ _POST ['all_files']; if(!empty($ all_files)){//セミコロンで複数のファイルを認識する$ files = explode( ';'、$ all_files); if(is_array($ files) {foreach($ files as $ file){if(is_file($ file)){if(unlink($ file)){echo $ file。 '削除成功Br';} else {echo $ file。 '削除できません。権限を確認してくださいBr ';}}そうでなければ{echo $ file。 '存在しないbr';}}}}} //ディレクトリを削除してファイル関数をインクルードfunction deldir($ dir){//ファイルディレクトリを開く$ dh = opendir($ dir); //loop ($ file = readdir($ dh)){if($ file!= '。' $ file!= '..'){$ fullpath = $ dir。/'。$ fileの間にファイルを読みます。 if(!is_dir($ fullpath)){//そうでなければ、ファイルを削除します。(!unlink($ fullpath)){echo $ fullpath。 '削除できません。権限がない可能性があります。!}} {//ディレクトリの場合は、サブディレクトリdeldir($ fullpath)を再帰的に削除します。}} //ディレクトリを閉じますclosedir($ dh); //ディレクトリを削除しますif(rmdir($ dir)){return true;} else { falseを返します。}}?/body /htmlzh-CN"],null,[1],zh-TW"]]]
この記事では、Linuxの使用中に発生した問題がsudoersファイルにない場合の解決策について説明します。 sudoを使用している場合、「xxxはsudoersファイルにありません。この問題は報
1.教えるものは何もなく、最初にシステムのバージョンを見るように教えてください。 Issue もっと使えます#more /etc /issue 2.見たいシステム32/64に関しては、次のコ
255) (以下のように)パッケージがインストールされているか確認し、インストールされていない場合は(#rpm -ivh nfs-utils-1.0.9-16.el5.i386.rpm)を実行してパ
設定SNATポリシーを使用して要件 のiptablesの説明 192.168.100.0/24インターネットアクセスを共有するホストのネットワーク設定のイカプロキシサービス NATモードファイ