• ベストアンサー

ファイルが移動できません。

ファイルを移動しようとすると下記のように表示されます。 $ mv hello.php /opt/lampp/htdocs mv: `hello.php' を `/opt/lampp/htdocs/hello.php' に移動できません: 許可がありません 解決方法を教えてください。 お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

権限的にhello.phpが読めて/opt/lampp/htdocsに書けるユーザでmvすれば移動できるかと。 多くの場合、hello.phpの読み出し許可は問題ないでしょうが、/opt/lampp/htdocs/hello.phpの書き込み許可はないでしょう。 lamppならログインできないユーザ(www,apache,webなど)作ってる場合もあるでしょうから。 cat hello.phpで内容が確認できればhello.phpの読み出し権限は持っています。 ※ ls -l hello.phpでも確認可能。 ls -l /opt/lampp | grep htdocs でhtdocsの所有者・属しているグループ・許可属性を確認して書き込み権限がある状態で移動すれば書き込めます。 htdocsの所有者でloginできる場合には $ pwd /my/home/work $ su - lampp (apacheやwwwなどかな) $ cp /my/home/work/hello.php /opt/lampp/htdocs $ exit $ rm hello.php 上記の様な手順で行なえばmvと同じ様な処理ができそうに感じました。 ※ /opt/lampp/htdocsに書き込めるユーザではhello.phpが消せないかも。 ※ hello.phpがlamppのユーザで読めない場合には事前に許可しておけば(chmod o+r hello.php)できそう。 ※ ディレクトリの許可が問題になって上記でもダメな場合は、hello.phpを一旦/tmpなどに移して行なえばできそう。 /opt/lampp/htdocsを含むファイルシステムが読み出し専用でマウントされている場合だと書き込み可能な状態でマウントしなおす必要がありそうなど他にも考えられる事はあるのだけど。 まずは、状況の調査から行なえば、方法見つかると思います。

to_ci
質問者

お礼

ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • entree
  • ベストアンサー率55% (405/735)
回答No.2

mvするためには、hello.phpが置かれているディレクトリに書き込み権限が必要です。 hello.php自体に書き込み権限があってもNGです。 次に、ディレクトリ/opt/lampp/htdocs/にも書き込み権限が必要です。

to_ci
質問者

お礼

ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • localica
  • ベストアンサー率52% (202/385)
回答No.1

許可がないのだから、パーミッションなり所有権なりを適切にする。

to_ci
質問者

お礼

ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Subversionでエラー

    Subversionで 「svn: リポジトリは恒久的に 'http://localhost/svn/4514/' へ移動しました。relocate (参照 URL の変更) を実行してください」 というエラーが発生します。 OSはUbuntu 11.10です。LAMPP(XAMPP)を使っています。 Subversion自体は正常にインストールできたようです。 Subversion自体は/home/username/svnの下ではちゃんとaddとcommitが動きました。 設定には↓のサイトを参考にしました。 http://blog.riywo.com/2008/04/01/054421 ただ、それをhttp://localhost/svn/4514/の下でブラウザから動かしたいんです。 /opt/lampp/etc/httpd.confには DocumentRoot "/opt/lampp/htdocs" としてあります。ですから、/opt/lampp/htdocsがlocalhostです。 /opt/lampp/htdocs/svn/ というディレクトリを作成し、その下で sudo svnadmin create 4514 sudo chown -R www-data.www-data 4514/ sudo chmod 777 4514/ を実行しました。 http://localhost/svn/4514/にはブラウザから問題なくアクセスでき、ファイルの内容を見ることができます。 sudo vim /etc/apache2/mods-enabled/dav_svn.conf で以下のように編集しました: <location /svn> DAV svn # SVNParentPath "/home/username/svn" ←これがadd/commitが動いたディレクトリです SVNParentPath "/opt/lampp/htdocs/svn" # SVNParentPath "/opt/lampp/htdocs/svnrepository" </location> /home/username/sagyou/source の下には"Hello World!"と書かれたfirst.txtというファイルが作ってあります。 これで svn import ~/sagyou/source http://localhost/svn/4514/ -m "first import" と実行すれば、/4514の下に~/sagyou/source/first.txtがコピーされるはずなんですが、 「svn: リポジトリは恒久的に 'http://localhost/svn/4514/' へ移動しました。relocate (参照 URL の変更) を実行してください」 というエラーが発生します。 このエラーに関するサイトを10個は読んだのですが、まったく意味が分かりません(具体的な例が分かりません)。特に↓ここです: http://www.hinet.mydns.jp/tdiary/?date=20050317#p02 SVNParentPath "/opt/lampp/htdocs/svnrepository"に変えてみても同じです。 ちなみに、DocumentRootは変えたくありません、既にその下にPHPのファイルなどを入れているからです。 もう昨日からずっとやっているのに解決できません。でも、あと一歩のような気がします。必要であれば補足します。試してほしい操作があればやります。どんな小さなヒントでもいいので、どうかお助けください。お願いします。

  • Linux + phpで2バイト文字のパス指定

    RedHatLinux4 update6 + Apache2.2.8 + php5.2.5でプログラムを作成しております。 //server/share/hogehoge を /opt/lampp/htdocs/share にcifsマウントして、サーバの"hogehoge"ディレクトリにある"補毛補毛"というディレクトリにアクセスできるようphpに記述したいのですが、うまくいかずに困っています。 /opt/htdocs/test.php ------------------------------------------------------------------- $glob="./hogehoge/補毛補毛"; chdir($glob);           //カレントディレクトリ移動 foreach (glob("*.xls") as $filepath) { echo "$filepath size " . filesize($filepath) . "\n"; } ------------------------------------------------------------------- 具体的には上記のようなソースを書いたのですがうまく動きませんでした。./hogehoge/までなら動くのですが、そこに2バイト文字を含めるとうまく動きません。 どうにかしてうまく動かす方法はありませんでしょうか。サーバ側のディレクトリ名を変更することはできません。 ご回答、宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • ディレクトリの所有者をXAMPPのapacheに

    Linux初心者です。 現在、CentOS5.4でLinuxサーバ構築の勉強をしています。 ディレクトリの所有者をXAMPP for Linux1.7.4のApacheに変更したいのですがイマイチやり方がわかりません。 変更したいディレクトリは book_picture というフォルダで /opt/lampp/htdocs/book_picture にあります。 ディレクトリの所有者を変更するにはchownコマンドというのを使うのは調べていてわかりましたが book_picture のファイル名が /opt/lampp/htdocs/book_picture だと上手くいきませんし、 XAMPP for Linux1.7.4のApacheのユーザー名もわかりません。 よろしくお願いします。 ちなみにディレクトリの所有者を変えてクライアント側からファイルのアップロードがしたいのです。 パーミッションを777にする方法ではできました。

  • Linuxで画像がアップロードできない

    いつもお世話になっております。 PHP初心者です。 現在、Linuxでサーバー構築をしているのですがWindowsでは問題の無かった画像のアップロードができません。 WindowsではXAMPP1.7.3を使用していました。 LinuxはCentOS5.4でXAMPP for Linux1.7.4を使用しています。 Windowsでは出ない以下のエラーが出ます。 ●Warning: move_uploaded_file(./book_picture/digi.jpg) [function.move-uploaded-file]: failed to open stream: 許可がありません in /opt/lampp/htdocs/sample23.php on line 24 ●Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpGDHAL8' to './book_picture/digi.jpg' in /opt/lampp/htdocs/sample23.php on line 24 php.iniのfile_uploadsはOnになっています。 php.iniのupload_max_filesize とpost_max_sizeは2Mと8Mになっています。 php.iniのupload_tmp_dirは設定されていないのでデフォルトの場所になっていると思います。 apacheを実行しているユーザで書き込みできなくなっているのでしょうか?一般ユーザではなく rootで入っていっるのですが。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • XAMPP on LINUX (MDB2の利用について)

    こんにちは。LINUX上で動かすXAMPPについて質問があります。 これまで、あるアプリの開発をWindows上のXAMPPで行ってきました。ある程度形になったので、実環境を踏まえ。LINUX上で開発することになりました。OSはCentOS5です。 LINUX版のXAMPPをインストールしたのですが、PHPのPearにMDB2が入っていなかったので、Pear installでMDB2をインストールしました。 Windowsで作ったページをLINUX上に移動し、requireパスを変更してから 動作確認を行ったところ、以下のようなエラーがずらずらと出てきました。Windows版では、正常に稼動していました。 なにか問題があるのでしょうか?どなたか解法をご存知の方、ご教授お願いします。 ---------------------- Deprecated: Assigning the return value of new by reference is deprecated in /opt/lampp/lib/php/MDB2.php on line 390 Strict Standards: Redefining already defined constructor for class MDB2_Driver_Common in /opt/lampp/lib/php/MDB2.php on line 1310 Deprecated: Assigning the return value of new by reference is deprecated in /opt/lampp/lib/php/MDB2.php on line 1885 Deprecated: Assigning the return value of new by reference is deprecated in /opt/lampp/lib/php/MDB2.php on line 2572 Deprecated: Assigning the return value of new by reference is deprecated in /opt/lampp/lib/php/MDB2.php on line 2595 Deprecated: Assigning the return value of new by reference is deprecated in /opt/lampp/lib/php/MDB2.php on line 2940 Strict Standards: Declaration of MDB2_Driver_Common::raiseError() should be compatible with that of PEAR::raiseError() in /opt/lampp/lib/php/MDB2.php on line 3317 Strict Standards: Redefining already defined constructor for class MDB2_Result_Common in /opt/lampp/lib/php/MDB2.php on line 3377 Strict Standards: Redefining already defined constructor for class MDB2_Row in /opt/lampp/lib/php/MDB2.php on line 3850 以下略

    • ベストアンサー
    • PHP
  • ファイルの移動コマンド

    linux初心者です。 以下のようなコマンドを打ちました。 mv -f *.jpg /images /test/img やりたいことはimagesフォルダ内の.jpgファイルを全てimgフォルダに移動させたいのです。 この場合、imagesフォルダごとimgフォルダに移動されました。 しかもエラーメッセージ mv: cannot stat `*.jpg': そのようなファイルやディレクトリはありません が表示されます。 色々と調べてみたのですが初心者なので、どうすればよいか困っています。

  • phpファイルを開けない(ブラウザにエラー表示)

    こんにちは! PHPを勉強中なのですが、あるphpファイルをブラウザで開こうとすると 以下のように表示が出てしまい、ファイルが開けません。 ------------エラー文------------------------------------------- Parse error: syntax error, unexpected '<' in C:\xampp\htdocs\hello.php on line 128 --------------------------------------------------------------- これは何が原因のエラーなのでしょうか? 有識者の方いらっしゃいましたらご指導宜しくお願い致します。

    • ベストアンサー
    • PHP
  • linux(redhat)ファイルシステムの復旧について

    お疲れ様です。 Linux(redhat)環境で、あるフォルダ配下をフォルダごとルート直下に移動しようとして以下のmvコマンドを投入しました。 >mv /opt/xxx/test /* コマンドの指定方法に誤りがあったのか、この後lsなどのコマンドが効かなくなってしまいました。 >/bin/ls:そのようなファイルやディレクトリはありません cdコマンドで/opt配下には移動はできるのですが、/binなどは壊れてしまったのか、移動もできません。 /bin配下のコマンドが効かず何もできない状態なのですが、何とか復旧させる手段はないでしょうか。OSを再インストールするしかないでしょうか。 ご存じの方おりましたらよろしくお願いいたします。

  • Windows8 ファイルの移動や削除ができません

    Windows8にて、自分で作成したファイルやフォルダを削除しようとすると、 「このファイルを変更するには、コンピューターの管理者からアクセス許可を得る必要があります」 「このフォルダーを削除するには管理者の権限が必要です」 などと表示され、削除や移動ができません…。 PCのアカウントは1つだけで、管理者権限もあります。 ファイルの「プロパティ」→「セキュリティタブ」を見てもフルコントロールにチェックが入っています。 どんどんファイルが溜まっていって困っています。 何か解決方法はあるでしょうか?

  • Linuxで*をつかってファイル移動をしたいのですが、引数リストが長すぎますとエラーが出ます。解決方法を教えてください!

    Linuxで*をつかってファイル移動をしたいのですが、 引数リストが長すぎますとエラーが出ます。 解決方法を教えてください! 例えば、何千個もあるpng画像ファイルをABCフォルダに入れたいとき、 mv *.png ABC/ とすると -bash: /bin/mv/: 引数リストが長すぎます とエラーが出ます。 Linux初心者なもので、具体的にどのように入力したらいいのか、 お教えください。 よろしくお願いします。

    • 締切済み
    • Mac