- ベストアンサー
PHPで移動させるのが失敗してます。どうしてですか?
- PHPでの移動の失敗についての原因と対処方法を解説します。
- PHPでのファイルの移動に関する問題について考察します。
- PHPの移動機能のエラーに関するトラブルシューティング方法を紹介します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
PHPで実行する時は、今ログインしているユーザーではなく、 何の権限もないユーザーですよ! 逆に/usr/bin/sudo chown root:root こんな危ない命令実行出来たら、 他人が簡単にPHPファイル作りだして root権限奪われちゃいますよ。 なので、「出来ない方が正しく、やるべきじゃない」 しかし、ローカル環境で他の人が触らない事が確定してるなら、 PHPを実行するときのユーザーに"sudo"の権限を 与えればいいが。。 それは、root権限を与えるのと同じなので、 半端なく危険ですがね。 そもそもですが、システムクーロンではなく、 ユーザークーロンを勉強したほうがいいのではないかと 思いますよ(以前も指摘した通りですが) という事で、考え方を変えることを強くお勧めするという件と 解決方法を一応書いておきましたが。 恐らくこれをやっても、SELINUXにつかまるだけかもしれませんが。
その他の回答 (2)
- superside0
- ベストアンサー率64% (461/711)
コマンドラインから、rootになってPHPを実行しているのではなく Webサーバーを使ったPHPの実行ですよね? であれば、それはPHPの問題ではなく、Webサーバーの権限の問題です。 sudoを使って、rootの権限で任意のコマンドを実行するという権限が httpdプロセスのオーナーにないのでしょう。 というか、そんな権限を与えてしまうサーバー管理人がいるとは思えません。 特にchown root:root なんてことまで出来てしまえる権限を Webサーバーに与えてしまうなんてことをやってしまうと、 PHPの記述ミスで、サーバーをまるご壊してしまうので。 どうしてもroot権限でないと書き込めないファイルを 上書きする必要があるのであれば、この処理をシェルファイルにして (可変要素があるなら、シェルの引数で渡すけど、 その引数が正常なのか、限定したパスのみかなどを 厳重にチェックしたうえで実行するという仕組みを入れる) httpdプロセスのオーナ(多分apache)が root権限になってこのシェルファイルを実行することだけを許可するというsudo設定(visudo)をサーバー管理者に行ってもらうということになるでしょう。 それを行ってもらったあとなら、 exec("/usr/bin/sudo シェルファイル [シェルに引数が引数が必要ならそれ] ", ~); のみで 目的のことは可能になるでしょう。
- t_ohta
- ベストアンサー率38% (5238/13705)
PHPの実行ユーザーはパスワード無しでsudoする権限が設定されていますか?
お礼
ありがとうございます^_^