質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

1回答

2550閲覧

Cakeの見慣れないエラーの対処法がわからない

Tatsuo_Iriyama

総合スコア50

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2018/11/02 08:09

編集2022/01/12 10:55

##現状

現在CentOSでCakePHPの環境構築をしてまして、ipアドレスにアクセスしたらCakeの見慣れないエラーが発生して、その対処法がわからず、詰まっています。

エラー内容は、

Cache engine Cake\Cache\Engine\FileEngine is not properly configured. RuntimeException [toggle vendor stack frames] Warning (2): file_put_contents(/vagrant/sample.com/profile/logs/error.log) [function.file-put-contents]: failed to open stream: Permission denied [CORE/src/Log/Engine/FileLog.php, line 134] Warning: file_put_contents(/vagrant/sample.com/profile/logs/error.log) [function.file-put-contents]: failed to open stream: Permission denied in /vagrant/sample.com/profile/vendor/cakephp/cakephp/src/Log/Engine/FileLog.php on line 134

このようになっています。

言っている事はなんとなくですが、わかるのですが、結局のところどう対処すべきなのか、がわかりません。

##質問内容

  1. このエラー内容の対処法を教えて頂きたいです。

足りない点ありましたら、修正依頼等で、質問の方お願い致します。

ご回答よろしくお願い致します。

#追記

FileLog.phpに権限付与を行う為に$ chomod 777 ファイル名を実行しても権限が全く変わらないという問題が発生したのですが、何故なのかわかりません。
原因がわかる、または、想定出来る方いらっしゃったら教えて頂きたいです。

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

[function.file-put-contents]: failed to open stream: Permission deniedで検索検索ぅ!

すると以下のようなページが見つかります。
PHPでのファイル書き込みとパーミッションエラー解決法

早い話がパーミッションエラーなのでファイルのパーミッションを変更してあげてね、ってことですな。

追記
ファイル/ディレクトリの権限を変更するにはこちらをどうぞ。
PHPマニュアル:chmod

対象のディレクトリ及びファイルが固定なので態々いちいちPHPから変更かけなくてもコンソールから変更してしまえばいいような気はしますが。

投稿2018/11/02 08:18

編集2018/11/02 08:58
madoka9393

総合スコア992

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tatsuo_Iriyama

2018/11/02 08:22

ご回答ありがとうございます。 ここで指しているファイルは、logsディレクトリ配下にある、error.logファイルだと思うのですが、そもそもerror.logファイルが存在していないのですが、その場合は普通に作成してあげれば良いのでしょうか?
madoka9393

2018/11/02 08:35 編集

「file_put_contents()」は対象のファイルが存在しない場合には新規に作成してくれる仕様です。 ですのでこの場合気にしなければいけないパーミッションは、 ファイルを作成しようとするディレクトリまでのパーミッションになります。 という意味では提示したリンクだけでは最適ではなかったかもしれませんな…。
Tatsuo_Iriyama

2018/11/02 08:46

そういう事なのですね。 であれば、ファイルを作成しようとするディレクトリまでのパーミッションを変更しなくてはならないと思うのですが、どのように変更すれば良いか、がわからない状態です。 エラー内容から、対処のファイルは`/vagrant/sample.com/profile/vendor/cakephp/cakephp/src/Log/Engine/FileLog.php`の134行目を指しているのですが、あっているのでしょうか? あっているとしたら、そこのコードを見ると ``` $pathname = $this->_path . $filename; $mask = $this->_config['mask']; if (empty($mask)) { return file_put_contents($pathname, $output, FILE_APPEND); } ``` このようになっていました。 ここのコードを変更するという事でしょうか?
madoka9393

2018/11/02 09:00

追記しました。 そのコード(file_put_contents)の直前に権限を変更する文を書いてもいいのですが、追記にも書いた通りコンソールから変更をかけてしまった方がいいような気はします。
Tatsuo_Iriyama

2018/11/02 09:11

追記ありがとうございます。 確かにコンソールから変更を掛けた方が良いと考えたので、chmodで権限の変更を行おうと思ったのですが、実行は出来るものの、権限が一向に変わらないという状況が起きています。 `$ chmod 777 対象ファイル` このコマンド自体は問題なく実行されます。 しかし再度権限を確認すると、全く変わっていないのです。 これは何故なのでしょうか?
madoka9393

2018/11/02 09:40

当方も浅学の身であるため「CentOS」で「chmod」が効かない原因について、調べてみたのですが「これだ!」というものは未だ見つかりません…
Tatsuo_Iriyama

2018/11/02 09:59

私も引き続き調べます。 何かわかりましたら教えて頂けると幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問