• ベストアンサー

xreaでファイル作成ができない。パーミッションが不足しているとのこと

xreaで以下のようなコードを書いたPHPファイルを実行しました。 if (($mixSource = fopen("../mail".$MailID.".htm","w")) === FALSE) { print("ファイルオープンでエラーが発生しました。");} fwrite($mixSource,$str); fclose($mixSource); そうしましたところ、権限が足りないというエラーが発生しました。 パーミッションを0777に設定しても、しばらくすると0705に戻っているため問い合わせると、0777は許可していないとのこと。 調査した結果、PHPをCGIとして動作させると良いらしいので、 AddHandler application/x-httpd-phpcgi .php と書いた「.htaccess」ファイルをアップロードしました。 そうするとファイル書き込みは正常に動作するようなのですが、 今度は session_start(); を実行すると Warning: session_start() [function.session-start]: open(/tmp/sess_igp2b7reu7aold9btdspuc2d57, O_RDWR) failed: Permission denied (13) というエラーとなります。 単純にxreaで、ファイル作成を行いたいだけなのですが、 方法をご存知ありませんでしょうか。 よろしくお願いいたします。

  • PHP
  • 回答数3
  • ありがとう数1

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

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.3

その他の回答 (2)

  • arexis
  • ベストアンサー率66% (66/99)
回答No.2

あれこれ調べて実験していませんので駄レスになるかもしれませんが、 ■ phpで動かす場合 public_htmlの777禁止は確かにありえます。 ところで直下じゃないと駄目なのですか?(^^; 無理を通す方法より回避する方法を取って、専用ディレクトリ作って707にすれば解決するんじゃないかと思いますが、無理な話なのでしょうか? ■ cgiで動かす場合 sesssionのエラーに関しては、ブラウザをずっと開いたままで、phpファイルからCGIに変更して実行しませんでしたか? もしそうならブラウザを一旦閉じて再チャレンジしてみてください。 cgiで実行すると権限がユーザー名になるので、それまでのphp(権限apache)で作られたセッションファイルにアクセスできないと思いますので。

  • ym035
  • ベストアンサー率50% (6/12)
回答No.1

XREAの204サーバを利用している者です. PHPをCGIとして動かさなくてもファイルの新規作成はできたはずです. 私の環境を確認したところ ・作成されるファイルを置くディレクトリのパーミッションは777 ・書き込む処理を行うPHPファイルのパーミッションは644 となっていましたのでお試しください.

dragstarsp
質問者

補足

さっそくのご回答ありがとうございました。 非常に助かります。 「作成されるファイルを置くディレクトリのパーミッションは777」 とのことですが、public_htmlの直下にファイルを作成したい場合、 public_htmlを777にする必要があると思います。 その場合、数分すると705に自動的に戻されるようなのです。 引き続きご回答いただければ幸いです。

関連するQ&A

  • centOSにcakePHPを入れた際のエラー

    現在、amazon web serviceにてec2(centOS)を立ち上げ、 cakePHP(バージョン2.3)を配置しました。 配置した場所は /var/www/html/cakePHP で、ブラウザからcakeの画面が表示されるのは確認しております。 サーバ上に置いた際に発生するいくつかのエラーを直してエラーを消したのですが、 先ほどまた新たにエラーが発生してしまいました。 そのエラーの内容ですが、ページ上部に session_start() [http://php.net/function.session-start]: open(/var/lib/php/session/sess_u0btov6g5v9ob0lc0n9rpuaea6, O_RDWR) failed: Permission denied (13) [CORE/cake/libs/cake_session.php, line 587] というかんじで表示されています。 内容はなんとなく理解できて、 /var/lib/php/session/sess_u0btov6g5v9ob0lc0n9rpuaea6, O_RDWR のパーミッションを変更すれば直るかと思うのですが、 本当にこの直し方で大丈夫でしょうか。 この方法で直しても、いつかまた同じエラーが発生しそうで不安なので ご質問させていただきました。 お分かりになられる方、いらっしゃいましたらご教授のほどお願いいたします。

    • ベストアンサー
    • PHP
  • お願いします。

    CakePHP1.2で開発しております。 ユーザ登録をする処理でローカルではうまくいっていたんですが、本サーバで動作の確認をすると、DBに登録する際に次のようなWarningが出てしまい、登録ができません。 $this->User->save()の箇所で弾かれてしまいます。 Warning (2): Unknown: open(/var/lib/php/session/sess_in2e3u6bfrvq8c8orrkf82n516, O_RDWR) failed: Permission denied (13) [Unknown, line ??] Warning (2): Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) [Unknown, line ??] これはファイルのパーミッションが問題なのでしょうか。 時間がなくてテンパってしまってます。 宜しくお願いします。

    • 締切済み
    • PHP
  • パーミッションの考え方。

    サーバー(リモート): XREAのレンタルサーバー(Linux系) テストサーバー(ローカル): Windows版XAMPP (Version: 1.8.1) FTPソフト: FFFTP DB: SQLite3 ----- 使用するディレクトリ、ファイルのパーミッションの設定のしかたがよく分からず、 困っています。 使用するファイル、ディレクトリは以下の通りです。 phpスクリプトファイル(3種類) (1)全ての人からウェブブラウザ経由でアクセスされて動く --- a1 (2)phpスクリプトから呼ばれた時にのみ使われる --- a2 (3)管理者のみがアクセス --- a3 DBファイル(.sqlite3) --- b1 画像ファイル --- c1 <位置関係(Document Root を基準に書かせてもらいます。)> Document Root --- a1.php Document Root --- sub --- a2.php Document Root --- admin --- a3.php Document Root --- db --- b1.sqlite3 Document Root --- img --- c1.jpg 上記のような場合、 (ディレクトリ) sub admin db img (ファイル) a1.php a2.php a3.php b1.sqlite3 c1.jpg これら、4つのディレクトリと、5つのファイルは、 それぞれ、具体的には、どのようにパーミッションの設定をしたらよろしいでしょうか。 (考え方も含め、ご教示頂けますと助かります。) それと、 パーミッションの話で出てきます、 「自分」、「グループ」、「他人」 とは、一般的に、 レンタルサーバー(特に知りたいのはXREAの場合。)においては、 それぞれ具体的には誰を指しますでしょうか? (「グループ」に属すユーザというのは誰のことなのでしょうか?  もし存在しないという場合には、「グループ」のユーザの権限は、  すべて「0」でも大丈夫でしょうか。) また、細かい話にはなりますが、 あるユーザに、DBファイルへの書き込み権限を与え、その一方で、 そのDBファイルへの書き込みを実際に実行するPHPスクリプトファイルの 実行権限を与えない、なんていう場合には事実上、 そのユーザは、「そのDBファイルへの書き込みはできない」 ということになりますでしょうか。 また、phpファイルを「読む」 と、「実行する」では、 動作上、どのような違いがあるのでしょうか。 phpファイルを「読むだけ」というのが、 どのような動作なのか、よく分からなかったもので。。。 どうぞ、よろしくお願い致します。 (レスポンスは確実に致します。)

    • ベストアンサー
    • PHP
  • フリーソフトの(Gランキンガ3)について教えてください

    2007年のフりー配布ソフトで”Gランキンガ3”をアップしましたが上段に、 Warning: session_start() [function.session-start]: open(/tmp/php/sess_860e3c575b33e1f92db9955c4f9f7be6, O_RDWR) failed: そのようなファイルやディレクトリはありません (2) in /home/0web_cjb_net/zw0013882/public_html/ranking/grank.php on line 132 下段に、 Warning: Unknown(): open(/tmp/php/sess_860e3c575b33e1f92db9955c4f9f7be6, O_RDWR) failed: そのようなファイルやディレクトリはありません (2) in Unknown on line 0 Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp/php) in Unknown on line 0 が表示されてしまいます。 デザインが大変気に入ったのですが、作成者の方も現在はサイトの更新をされておられないようで困っています。 どなたかお力になっていただけないでしょうか? ちなみに132行目は、session_start() :です。 作成中のサイトのURLは http://n1414.0web.cjb.net/ranking/grank.php になります。 どうかよろしくお願い致します。

    • 締切済み
    • PHP
  • PHPパーミッションについて

    さくらインターネットを利用してます。 マニュアルにはPHPパーミッションは ファイルパーミッション 755 または 705(どちらでも可) ディレクトリパーミッション 755 または 705(どちらでも可) とあります。ファイルパーミッションを604でも十分に問題なく、PHPが稼動します。705よりは604の方がいいと思いますが、問題がありますか?ちなみにいろいろと実行ファイルでも604でも動きます。 PERLと違ってPHPはラフなのでしょうか?

    • 締切済み
    • PHP
  • Permission denied in

    PHPを実行するとWarning: fopen failed to open stream Permission denied inと 表示されてしまいます。 インターネットを使い、調べてはいますが、 上記のように表示してしまいます。 ファイルです。パーミッションは606にしました。 このWarningを表示させないようにするには、どのようにすれば 良いのか教えて頂けると嬉しいです。

    • ベストアンサー
    • PHP
  • Passwdファイルのパーミッションが

    Red-Hat Linux7.3のサーバなんですが、 一般ユーザーで他のユーザーのパスワードを変えるなど、ユーザー情報を変更しようとしたら、 普通は「権限が無いので変更できませんでした」といった旨のエラーメッセージが返ってくるだけだと思うのですが、 /etc/passwdファイルのパーミッションが644から600に変わってしまいました。 chmodで644に再度設定しても、一般ユーザーで他のユーザー情報を変えようとすると、600に戻ってしまいます。 もちろん、一般ユーザーで他のユーザー情報を変える事が誤った動作で、 できない事だと言うのは分かっているのですが、たまたま誤ってやってしまったら、 このような現象が発生してしまいました。 passwdファイルは重要なファイルなので、パーミッションが自動的に変わってしまうのが気になります。 正常な動作なのでしょうか。 それとも何が原因なのでしょうか。

  • ローカルサーバーでパーミッションエラーが発生する

    ローカルで開発実験用にサーバーを立てています。外部には接続していません。このサーバー上で、phpのrmdir関数(引数に指定したディレクトリを削除する関数)を実行したところ「Permission denied.」というエラーが発生しました。パーミッションが許可されていないとのことですが、WWW上なら分かるのですがローカルにパーミッションがあるということを知りませんでした。現在、この関数を実行できないとプログラムの動作確認が出来ないので困っています。どのようにすれば解決できるのでしょうか? 環境は以下の通りです。 OS: WindowsXP Server: Apache2.2.4 PHP: v5.2.4 自分で検索してみたところ、OSはLinuxなどを想定していることが多く、「PHPのchmod関数(パーミッションを設定する関数。ただしWindowsでは無視される。)を使え」といったような、Windowsユーザーには解決策とならない情報ばかりでした。

    • 締切済み
    • PHP
  • xreaでMT4.21を設置したいが、アカウントの作成画面から進めません

    レンタルサーバーの xrea に MovableType 4.21 をインストールしようとしていますが、 うまくいきません。 「アカウントの作成」画面から「次へ」を クリックすると以下のようなエラーになってしまいます。 ****エラー内容*** Forbidden. 考えられる原因 ディレクトリ「/public_html」にインデックスファイル(index.html等)がない。 パーミッションが非許可になっている。 .htaccessの指定が間違っている。 アカウントが凍結されている。 ********* CGIのパーミッションは755、他は444 .htaccessは指定していません. アカウントは無料アカウントで有効の状態です。 原因が分からないのですが、 何か分かる方がいましたら教えてください。 http://www.xrea-mt.com/script/support/read.cgi?no=432 の書き込み「アカウントの作成画面から進めない…」 と同じ症例ですが、パーミッションを700にしても 状況は変わりませんでした。 よろしくお願いいたします。

  • ファイルの実行権限について

    はじめまして、今回phpに携わる事になりましたが 今回の質問がphpの問題なのか、環境の問題なのかは分かりませんが ご教授を受けたくて投稿する事にしました。 まず環境ですがFreeBSD上にphpファイルがあり TeraTerm上で、そのphpファイルの所有者をrootユーザに変更しまして root権限で実行したところPermission deniedとなり 実行出来ませんでした。 (phpファイル自体のパーミッションは755です) 環境の問題で発生するのかスクリプトの問題で発生するのかが 私には分かっていないのですが、Permission deniedが 発生する原因としてファイルのパーミッション以外に 何が考えられるのかご教授下さい。 よろしくお願い致します。

    • 締切済み
    • PHP

専門家に質問してみよう