
No.3ベストアンサー
- 回答日時:
apache から PHP を実行する場合は、実行ユーザが apache となります。
よって、chmod() 対象のファイルまたはディレクトリに apache ユーザーが操作できる権限がついていない場合に、エラーが表示されます。
エラーを回避するには、以下のような方法が考えられます。
1. 操作対象のファイルまたはディレクトリに、最初からapache ユーザが操作できる権限を付与しておく
2. 下の方が回答しているとおり、system() 関数経由で sudo chmod コマンドを使って、root 権限等で chmod コマンドが実行されるようにする
3. suEXEC を利用する。
PHP の chmod 関数については、以下を参考にしてください。
http://jp.php.net/manual/ja/function.chmod.php
PHP の system 関数については、以下を参考にしてください。
http://jp2.php.net/manual/ja/function.system.php
Linux の sudo コマンドの使い方については、以下を参考にしてください。
http://linux.kororo.jp/cont/intro/sudo.php
Linux の chmod コマンドについては、以下を参考にしてください。
http://itpro.nikkeibp.co.jp/article/COLUMN/20060 …
suEXEC については、以下を参考にしてください。
https://httpd.apache.org/docs/2.0/ja/suexec.html
大変詳細にご回答いただきましてありがとうございます!
リンク先を拝見しましたが、とてもわかりやすかったで。
解決の糸口がつかめました。助かります!
No.2
- 回答日時:
system()系の関数で、sudoとからめてosのchmodを実行してやるのが妥当です。
ただWEB技術でパーミッションをいじる仕様が本当に必要なのかは
疑問が残りますが
No.1
- 回答日時:
ファイルまたはディレクトリの所有者がchmodをかけたユーザーではないのでは?
その場合は所有者をchmodのユーザーにするか、chmodのユーザーでファイルまたはディレクトリを作成するかになると思います。
root権限であれば基本的にどのファイル及びディレクトリの権限も変えられますがあまりお勧めは出来ませんので、PHPを実行する適当なユーザー(仮にAとします)を作って、Aでファイルやディレクトリを作成するようにすればよいかと。
早速ご回答いただきましてありがとうございます!
おっしゃる通り、ファイル所有者(A)と実行者(apache)は違います。さくらインターネットの共用サーバーではきちんと動くのですが、これはアクセスされるURLによってapacheの実行ユーザーが変わっているということでしょうか?それに近いことができたらいいなと思っていますが、もしご存じでしたら教えて頂けたらありがたいです。厚かましいですが、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxサーバーのパーティション・ディレクトリの推奨見積もりについて 3 2023/01/17 00:46
- PHP phpでこの記述をもっと簡単に書く方法はないでしょうか…? 3 2022/11/16 19:57
- UNIX・Linux bash環境でのエラー対応をお願い致します。 1 2022/11/26 17:41
- サーバー Laravelをレンタルサーバーにインストールするにはどうすればいいですか? 2 2022/06/29 10:17
- PHP WordpressのPHPを安全に編集する方法 1 2022/08/04 01:43
- ドメイン・サーバー・クラウドサービス FileZillaを使用してwpXサーバーに接続できない 2 2022/03/29 21:02
- PHP eclipse pleiades phpのインストールについて 1 2023/02/03 17:15
- PHP バージョン情報の取得方法について 1 2023/03/15 11:56
- PHP 文字列を段落で分ける方法を教えて下さい。 2 2023/03/09 10:03
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FTPでファイルがダウンロードで...
-
lsでディレクトリのサイズが409...
-
10年前に振った元彼が、まだラ...
-
IPテレビのプレイリストだとお...
-
Winmerge ファイルの中身は同じ...
-
office365 ファイルを削除したい
-
嫌ってるのに真似してきたりマ...
-
教えてください!困ってます。
-
mrl→midファイルへ
-
onedriveの中身を削除したらパ...
-
Macで簡単に改行を解除したい
-
emlをtxtに変換するには?
-
~/.bash_profileがログイン時に...
-
.tmp.mp4と.mp4の違い
-
コマンドプロンプトによるフォ...
-
hosts に 記載がなければ追加...
-
VLC media playerを常にデフォ...
-
Windows10 フォルダ内の自動並...
-
管理者としてログインしている...
-
ファイル名で / (スラッシュ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPでファイルがダウンロードで...
-
ファイルが移動できません。
-
lsでディレクトリのサイズが409...
-
あり得ない!アーカイブを展開...
-
Ubuntu、ファイル移動によるエ...
-
シンボリックリンクでパミッシ...
-
RPM のソースパッケージが展開...
-
「E212:書込み用にファイルを開...
-
書き込み権限がありません
-
LinuxのapacheでCGIが動かない
-
Fedora4にてXOOPSを設定し、ブ...
-
SSHで現在のディレクトリから移...
-
すみません、二度目です。fedor...
-
winSCPでlinuxフォルダを作りたい
-
shellscript内のコマンドを、su...
-
rootでも権限が無いようです
-
/varの容量を変更の仕方
-
LinuxでApacheのドキュメントル...
-
ftpのhomeディレクトリ
-
Linuxのユーザーディレクトリの...
おすすめ情報