coreserverでファイル作成時の権限寄与

このQ&Aのポイント
  • レンタルサーバーのcoreserverを使用しており、PHPにてindex.phpファイルを自動生成する際に、生成されたファイルのパーミッションが644となってしまう問題が発生しています。生成時に指定したいパーミッションは606であり、自動で権限を変更したいと考えています。
  • chmodコマンドを使用してindex.phpファイルのパーミッションを変更しようとしましたが、パーミッションエラーが発生して書き換えることができませんでした。
  • Apacheの設定ファイル(.htaccess)を変更することで、index.phpファイルのパーミッションを自動で変更する方法があるか調査しましたが、具体的な回答は見つかりませんでした。詳しい方のアドバイスを求めています。
回答を見る
  • ベストアンサー

coreserverでファイル作成時の権限寄与

お世話になります。 レンタルサーバーのcoreserverを使用しております。 PHPにてindex.phpファイルを自動生成しているのですが、 生成されたファイルのパーミッションが644となってしまいますが、 生成時に606を与える事は可能でしょうか? ftpソフトによる権限寄与は可能なのですが、自動で行いたいと考えております。 chmod("index.php",606);としても、 当然ですがパーミッションエラーで書き換えすらできない状態です。 .htaceesでapacheの設定を変えるのか?とは思いついたのですがいまいち どのように記述したらいいかもわかりませんでした。 自分なりに検索したり書籍を見ましたが、これといった回答が見つからず困っています。 無理ならあきらめますが、どなたか詳しい方がいたら是非ご教授願いたいです。 よろしくお願い致します。 【サーバ環境】 CPU Intel Xeon CPU E5-2670 0 @ 2.60GHz MemTotal 12367MB Apache 1.3 PHP 5.5.3 RUBY 1.8.5 MySQL 5.1.22-rc

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

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>chmod("index.php",606);としても、 chmod("index.php",0606);

barakamon
質問者

補足

記載ミスで申し訳ありません。 ご指摘の通りですが、そのようにしておりました。 また、 $mask = umask(); umask(000); file_put_contents($fullfilename, $contents); chmod($fullfilename,0606); umask($mask); とすることで、パーミッション問題は解決しましたが、 今度は所有者が変わってしまいSAFEMODEになってしまいましたが、 試行錯誤中です。

関連するQ&A

  • PHPでの自動作成されるファイルが

    ファイルの読み込み自体や、 既存ファイルへの書き込み等は問題がないようですが、 「新規」でファイルの追加が出来ない状況です。 つまりPHPで自動生成されるスクリプトが動作しません。 サーバー移転で、新しいサーバーのみ動かない状況です。 前回以下の回答がありましたが ----------------------------------------------------- PHPを実行しているスクリプトがファイルを作成する場合 ファイルの所有者はsystem(Apache)になると思われます。 要するに作成しようとするファイルの親ディレクトリの 所有者がsystem(Apache)であり、所有者書き込みが可能 のパーミッション(700)になっている場合か、親ディレクトリの 所有者がsystem(Apache)以外であるなら、所有者以外の 書き込みが許可(707もしくは777)になってなければ 新規ファイルの作成は失敗します。 ----------------------------------------------------- ユーザー用ディレクトリ(仮にuserとします) 所有者はアカウント、パーミッションは777です 登録があれば、userディレクトリにIDの名前で新しくディレクトリが作成され そのID名のディレクトリの中に必要なファイルも自動的に作成されます この登録が動作しません・・・ ファイルが新しく作成されない状態です。 試しに手動でUPすると、動作は正常でした。 ファイルの自動作成のみが動作しません。 パーミッションもこれで合っているように思えるのですが・・・ 原因が分かりません・・

    • ベストアンサー
    • PHP
  • phpでファイル生成時のファイル属性指定について

    現在、phpでとあるシステムを構築していますが、ファイル属性の件で躓いています。 phpでファイル(●●●.dat)を生成する場合、パーミッションが「644」になりますが、自動的に「666」もしくは「766」で生成出来る方法を探していますが、分かりませんでしたのでここに質問致しました。 現在、レンタルサーバーで運用しており php Ver.4.4.1のセーフモードで動いています。「chown」コマンドは使えませんでした。

    • ベストアンサー
    • PHP
  • CORESERVERでサーバーをかりたいけど、よくわからない。。

    CORESERVERでサーバーをかりたいけど、よくわからない。。 以下、サーバーのプランのCORE-MINIプランを利用したいのですが、 ttp://www.coreserver.jp/ 手順方法をみても、 今後もしようしたい、にいくと、VALUEDOMAINのご入金方法がポップアップされて、 ドメイン料金支払いの説明がでます。。ドメインは特に指定なければここの手順はとばしてもいいのでしょうか? 今までドメインを特にとったことがありませんので、、借りたサーバーが元々もってるURL?でそのままいってましたので。。CORESERVERに元々もってるURL?がありましたらそれそのまま使おうと思うのですが。。 その後の手順で、CORESERVERに戻り、サーバーを購入するとありますが、 「初期初期費用+選択プラン分の料金が残高から差し引かれます。」のところの意味がよくわかりません。。 残高ってどうして増やすのでしょう; これっていつ支払った料金の残金になってるのか意味不明で・・。 私がしたい、聞きたいことをまとめると。。 1、CORESERVERのCORE-MINIプランを借りたい、 2、今までドメインを取得したことがないけれど、特に指定したいドメインはない。ドメインは取得しなければいけないのか? 3、サーバーのプラン料金の払い方はどこで見れば・・?   もしドメイン取得必須でしたら、   ドメイン料金+サーバープラン料金、という風に、ドメイン料金と一括ではらうのでしょうか? 4、ttps://www.value-domain.com/index.php のサイトで、   ローマ字.com/net/org 990円(転送無:980円) ←この転送無とはどういう意味でしょうか・・。 借りる前によくわからなくって、、助言いただけると助かります。。お願い致します。

  • CORESERVERでCRONジョブが実行されない

    この手の情報はネット上に沢山あるので自分なりに調べたのですが解決に至りませんでしたので質問させてください。 やりたいことは、CORESERVERのCRONジョブで設定した時間にcron.shを動かしてtest.phpを実行したいです。 ■現状 ・CRONジョブは毎日午前11時に動作するように設定 0 11 * * * ・CORESERVERからCRONジョブのエラーや成功メールが1通も届かない ・Tera Term で直接CRONを実行したが500エラーが返ってくる ・シェルスクリプトで動かしたいPHPファイルに問題はなかった(直接実行して成功) ■やったこと cron.shをCORESERVERのトップディレクトリに設置 /virtual/ユーザー名/cron.sh cron.shに記述した内容は #!/bin/sh #PHP /usr/local/bin/php /virtual/ユーザー名/public_html/サイトディレクトリ/php/test.php exit です。cron.shのパーミッションは705にしました。改行コードはLFです。 test.phpまでのディレクトリのパーミッションも705になっています。test.phpのパーミッションは644です。 Tera Term に入力したコマンド? sh /virtual/ユーザー名/cron.sh 上記を決定すると以下のスターテスが返ってきました。 Status: 500 Internal Server Error Content-type: text/html 何か根本的な間違いをしているのでしょうか? アドバイスをお願いいたします。

  • linux(fedora)root権限の設定

    お世話になります。 fedoraを使用している際、 rootで読み取れないフォルダができているのに気付きました。 システムファイル等ではなく、一般のファイルです。 どこでできたかわかりませんが、ソフトが自動生成したもののようです。 パーミッションは -wxr----tで、 rootで、コンソールから chmod -t <ディレクトリ名>や chmod -R 755 <ディレクトリ名> しても、許可されていない操作です。 権限がありません、等でどうにもなりません。 -wxですと、読み取り不可かと思いますが、 rootでも、強制的にディレクトリのパーミッションを 変更することはできないのでしょうか。 windowsでは所有権をリセットして・・・という手がありますが linuxではそのようなものはないでしょうか。 よろしくお願いします。

  • Movable Typeで再構築時に生成されるファイルのパーミッションの変更方法について

    Movable Typeのインデックスアーカイブにtest1.cgiとindex.htmlとtest2.phpを作成して再構築した所、index.htmlとtest2.phpは問題なく動作したのですが、test1.cgiはInternal Server Errorが発生しました。 FTPを用い、test1.cgiのパーミッションを755にすると動作したのですが、再構築時に自動的にパーミッションを755にする方法をご存知の方がいらっしゃいましたら、ご教示いただければと思います。 なお、拡張子htmlや拡張子phpなどは今までどおりパーミッション666で生成したいと思います。 【使用バージョン】 Movable Type 3.37 以上、よろしくお願いします。

  • FFFTPソフトのパーミション変更方法

    どこのカテゴリにはいるのかわからなかったのでこちらで書き込みをさせて頂きました FFFTPのソフトでパーミッションを一括で変更したいのですが、やり方がわかりません。 具体的な内容は フォルダーの中に一つずつファイルが入っています。 /フォルダ/インデックスファイル/ このインデックスファイルのパーミッションを一括で変更できないでしょうか? phpのchmod関数などを使い一括変更しようとおもったのですが、サーバーの仕様上使えませんでした。

    • ベストアンサー
    • HTML
  • 別ユーザ所有のディレクトリ内にファイル作成できない

    こんばんは。 タイトルのとおりですが、まずPHPでディレクトリを作成し、 その中にindex.htmlを作成しようとしているのですが上手くいきません。 PHPで作成したディレクトリの所有者はapacheになっているためかと思い、 実際にFTPを通して自分で作成したディレクトリの中にindex.htmlを作成したところ上手くいきました。 ディレクトリのパーミッションはいずれもスクリプトにより0777を指定しています。 このように、PHPのみでディレクトリを作成し、その中にファイルを作成する といったことが出来ずにいます。解決策等ございましたらお教えください。 参考までに、ソースを掲載しておきます。 これを設置するディレクトリのパーミッションは0777にしてみましたが、出力は「fopen error」になります。 <?php $path = "./dir/"; if(mkdir($path, 0, true)){ chmod($path, 0777); if($fp = fopen($path."index.html", "w")){ fputs($fp, $put); fclose($fp); print "Created!"; }else{ print "fopen error"; } }else{ print "mkdir error"; } ?>

    • ベストアンサー
    • PHP
  • ファイル作成に失敗する

    @pagesとE-Townという2つのサーバーで同じPHPプログラムを動作させるのですが、 @pagesのほうは、phpファイルがあるパス上にしかファイルやディレクトリを作成できません。 パーミッションを手動で777に設定してもダメでした。 何が原因で、どのように対処したらいいのでしょうか? <コード> file_put_contents("file1", "piyo"); mkdir("./testdir"); chmod("./testdir", 0777);             <- ここまでは両者とも成功する file_put_contents("./testdir/file2", "piyo"); <- @pagesではこれが失敗する よろしくお願いします。

    • 締切済み
    • PHP
  • chmodでパーミッションを変更する権限がないエラー・・・?

    レンタルサーバ「ロリポップ」を使用しています。 chmod命令で、ディレクトリやファイルのパーミッションを変更するプログラムを書きました。 chmodr($filename,0700); そうすると以下のようなエラーが表示されます。 Warning: chmod() [function.chmod]: Operation not permitted パーミッションを変更する権限がないために発生していると思うのですが、どうすればプログラムからパーミッションを変更することができるのでしょうか? ちなみにperlでは可能でした。 よろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう