フォトアルバム投稿時のパーミッションがおかしい(?)

投稿日時: 04/30 M.Nishimura

こんにちは。

NC3.2.2の新規インストール後、フォトアルバム設置時の初回画像投稿で「決定」押下後、「内部エラー」となり失敗します。

調べたところ、以下のようなことが分かりました。

  • /www/app/Uploads/files/upload_file/real_file_name/x/x 内に入った画像ファイルのパーミッションが600.
  • キャビネットで同一画像をアップロードすると、同ディレクトリ内の画像ファイルのパーミッションが644.

フォトアルバムの仕様(?)かよくわからないのですが、何か参考になる情報をお持ちの方がいれば、教えていただけないでしょうか。

以下は補足事項です。

  • さくらのレンタルサーバ
  • PHP 7.3.4(php.iniに「extension = imagick.so」を設定)
  • MySQL 5.7
  • もう一環境同じものがあるが、そちらはこの問題は起きていないのが解せない(違い:PHP7.2)

エラーログを添付しようとしたのですが、うまくいかなかったので貼り付けます(長くなってすみません)。

2019-04-30 05:58:58 Error: Model UploadFile, Field real_file_name: Unable to move the uploaded file to files/upload_file/real_file_name/7/12/xxxxxxxxxx.png
2019-04-30 05:58:58 Error: [UploadException] Unable to upload file
Request URL: /photo_albums/photo_albums/add/6?frame_id=10
Stack Trace:
#0 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Utility/ObjectCollection.php(129): UploadBehavior->afterSave(Object(UploadFile), true, Array)
#1 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Event/CakeEventManager.php(243): ObjectCollection->trigger('afterSave')
#2 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Model/Model.php(1970): CakeEventManager->dispatch(Object(CakeEvent))
#3 /home/xxxxxxxxxx/www/app/Plugin/NetCommons/Model/NetCommonsAppModel.php(427): Model->_doSave(Array, Array)
#4 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Model/Model.php(1760): NetCommonsAppModel->_doSave(Array, Array)
#5 /home/xxxxxxxxxx/www/app/Plugin/Files/Model/Behavior/AttachmentBehavior.php(209): Model->save(Array)
#6 /home/xxxxxxxxxx/www/app/Plugin/Files/Model/Behavior/AttachmentBehavior.php(175): AttachmentBehavior->afterSaveByAttachment(Object(PhotoAlbum), true, Array)
#7 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Utility/ObjectCollection.php(129): AttachmentBehavior->afterSave(Object(PhotoAlbum), true, Array)
#8 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Event/CakeEventManager.php(243): ObjectCollection->trigger('afterSave')
#9 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Model/Model.php(1970): CakeEventManager->dispatch(Object(CakeEvent))
#10 /home/xxxxxxxxxx/www/app/Plugin/NetCommons/Model/NetCommonsAppModel.php(427): Model->_doSave(NULL, Array)
#11 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Model/Model.php(1760): NetCommonsAppModel->_doSave(NULL, Array)
#12 /home/xxxxxxxxxx/www/app/Plugin/PhotoAlbums/Model/PhotoAlbum.php(233): Model->save(NULL, false)
#13 /home/xxxxxxxxxx/www/app/Plugin/PhotoAlbums/Controller/PhotoAlbumsController.php(221): PhotoAlbum->saveAlbumForAdd(Array)
#14 [internal function]: PhotoAlbumsController->add()
#15 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Controller/Controller.php(499): ReflectionMethod->invokeArgs(Object(PhotoAlbumsController), Array)
#16 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Routing/Dispatcher.php(193): Controller->invokeAction(Object(CakeRequest))
#17 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Routing/Dispatcher.php(167): Dispatcher->_invoke(Object(PhotoAlbumsController), Object(CakeRequest))
#18 /home/xxxxxxxxxx/www/app/webroot/index.php(120): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse))
#19 {main}

 

Re: フォトアルバム投稿時のパーミッションがおかしい(?)

投稿日時: 05/01 M.Nishimura

追加で分かったことを書きます。

1.システム管理でデバッグログを有効にした場合の表示は、以下のとおり(全文未加工)

Warning (2): rename(/var/tmp/phpR0q8qD_CopyForJacket,files/upload_file/real_file_name/7/9/4675c3d47300e544087237e8ffbbccb6.jpeg): Operation not permitted [APP/Plugin/Upload/Model/Behavior/UploadBehavior.php, line 360]
Code Context
rename - [internal], line ??
UploadBehavior::handleUploadedFile() - APP/Plugin/Upload/Model/Behavior/UploadBehavior.php, line 360
UploadBehavior::afterSave() - APP/Plugin/Upload/Model/Behavior/UploadBehavior.php, line 319
ObjectCollection::trigger() - CORE/Cake/Utility/ObjectCollection.php, line 129
CakeEventManager::dispatch() - CORE/Cake/Event/CakeEventManager.php, line 243
Model::_doSave() - CORE/Cake/Model/Model.php, line 1970
NetCommonsAppModel::_doSave() - APP/Plugin/NetCommons/Model/NetCommonsAppModel.php, line 427
Model::save() - CORE/Cake/Model/Model.php, line 1760
AttachmentBehavior::afterSaveByAttachment() - APP/Plugin/Files/Model/Behavior/AttachmentBehavior.php, line 209
AttachmentBehavior::afterSave() - APP/Plugin/Files/Model/Behavior/AttachmentBehavior.php, line 175
ObjectCollection::trigger() - CORE/Cake/Utility/ObjectCollection.php, line 129
CakeEventManager::dispatch() - CORE/Cake/Event/CakeEventManager.php, line 243
Model::_doSave() - CORE/Cake/Model/Model.php, line 1970
NetCommonsAppModel::_doSave() - APP/Plugin/NetCommons/Model/NetCommonsAppModel.php, line 427
Model::save() - CORE/Cake/Model/Model.php, line 1760
PhotoAlbum::saveAlbumForAdd() - APP/Plugin/PhotoAlbums/Model/PhotoAlbum.php, line 233
PhotoAlbumsController::add() - APP/Plugin/PhotoAlbums/Controller/PhotoAlbumsController.php, line 221
ReflectionMethod::invokeArgs() - [internal], line ??

2.なぜか、デバッグログを有効にして「フォトアルバム作成」->「画像1つ選択」->「決定」すると、上記警告が出るが、フォトアルバムは作成できている(画像の登録とサムネイルもある)。

3.一度作成したフォトアルバムは、これ以降デバッグログを無効にすると正しく動作しているように見える(2枚目以降の画像追加ができる)。

4.試しに同一環境でNC3.19、PHP7.2でやっても同じだった。

 

よくわからなくなってきました。

Re: フォトアルバム投稿時のパーミッションがおかしい(?)

投稿日時: 05/01 dreamer

私の場合は、
/www/app/Uploads/files/upload_file/real_file_name/x/x 内に入った画像ファイルは全てパーミッションが644.
になっています。

私の環境

さくらのレンタルサーバ
PHP 5.6.40(NC2が同サーバーにあるため)
MySQL 5.7

 以前の記事は関係ないのでしょうね、、

「PHP7.2でのインストールについて以下の修正が必要のようです。

https://qiita.com/RyujiAMANO/items/352fbea9eb31cea0e9a3  」

PHP 5.6.40にして再度試すことで何か切り分けれないでしょうか。

 

こんにちは。

NC3.2.2の新規インストール後、フォトアルバム設置時の初回画像投稿で「決定」押下後、「内部エラー」となり失敗します。

調べたところ、以下のようなことが分かりました。

  • /www/app/Uploads/files/upload_file/real_file_name/x/x 内に入った画像ファイルのパーミッションが600.
  • キャビネットで同一画像をアップロードすると、同ディレクトリ内の画像ファイルのパーミッションが644.

フォトアルバムの仕様(?)かよくわからないのですが、何か参考になる情報をお持ちの方がいれば、教えていただけないでしょうか。

以下は補足事項です。

  • さくらのレンタルサーバ
  • PHP 7.3.4(php.iniに「extension = imagick.so」を設定)
  • MySQL 5.7
  • もう一環境同じものがあるが、そちらはこの問題は起きていないのが解せない(違い:PHP7.2)

エラーログを添付しようとしたのですが、うまくいかなかったので貼り付けます(長くなってすみません)。

2019-04-30 05:58:58 Error: Model UploadFile, Field real_file_name: Unable to move the uploaded file to files/upload_file/real_file_name/7/12/xxxxxxxxxx.png
2019-04-30 05:58:58 Error: [UploadException] Unable to upload file
Request URL: /photo_albums/photo_albums/add/6?frame_id=10
Stack Trace:
#0 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Utility/ObjectCollection.php(129): UploadBehavior->afterSave(Object(UploadFile), true, Array)
#1 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Event/CakeEventManager.php(243): ObjectCollection->trigger('afterSave')
#2 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Model/Model.php(1970): CakeEventManager->dispatch(Object(CakeEvent))
#3 /home/xxxxxxxxxx/www/app/Plugin/NetCommons/Model/NetCommonsAppModel.php(427): Model->_doSave(Array, Array)
#4 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Model/Model.php(1760): NetCommonsAppModel->_doSave(Array, Array)
#5 /home/xxxxxxxxxx/www/app/Plugin/Files/Model/Behavior/AttachmentBehavior.php(209): Model->save(Array)
#6 /home/xxxxxxxxxx/www/app/Plugin/Files/Model/Behavior/AttachmentBehavior.php(175): AttachmentBehavior->afterSaveByAttachment(Object(PhotoAlbum), true, Array)
#7 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Utility/ObjectCollection.php(129): AttachmentBehavior->afterSave(Object(PhotoAlbum), true, Array)
#8 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Event/CakeEventManager.php(243): ObjectCollection->trigger('afterSave')
#9 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Model/Model.php(1970): CakeEventManager->dispatch(Object(CakeEvent))
#10 /home/xxxxxxxxxx/www/app/Plugin/NetCommons/Model/NetCommonsAppModel.php(427): Model->_doSave(NULL, Array)
#11 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Model/Model.php(1760): NetCommonsAppModel->_doSave(NULL, Array)
#12 /home/xxxxxxxxxx/www/app/Plugin/PhotoAlbums/Model/PhotoAlbum.php(233): Model->save(NULL, false)
#13 /home/xxxxxxxxxx/www/app/Plugin/PhotoAlbums/Controller/PhotoAlbumsController.php(221): PhotoAlbum->saveAlbumForAdd(Array)
#14 [internal function]: PhotoAlbumsController->add()
#15 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Controller/Controller.php(499): ReflectionMethod->invokeArgs(Object(PhotoAlbumsController), Array)
#16 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Routing/Dispatcher.php(193): Controller->invokeAction(Object(CakeRequest))
#17 /home/xxxxxxxxxx/www/vendors/cakephp/cakephp/lib/Cake/Routing/Dispatcher.php(167): Dispatcher->_invoke(Object(PhotoAlbumsController), Object(CakeRequest))
#18 /home/xxxxxxxxxx/www/app/webroot/index.php(120): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse))
#19 {main}

 

Re2: フォトアルバム投稿時のパーミッションがおかしい(?)

投稿日時: 05/09 M.Nishimura

dreamerさん、ありがとうございます。

PHP 5.6に切り替えると、うまくいきますね。そうするとNC3.2.2のフォトライブラリプラグインがPHP7だと挙動が変ということになるんでしょうか。

切り分けできたようなできなかったような状況ですが、このあたりほかにも情報お持ちの方いらっしゃいませんか?

補足(整理)
PHP7.2でインストール段階で進まないのは、
https://qiita.com/RyujiAMANO/items/352fbea9eb31cea0e9a3
が必要です。これを行って先に進んだ後、フォトライブラリプラグインで問題が発生します。

PHP5.6について
今のところ5.6系はサポート終了にも関わらず脆弱性対応されているのでいいかと思いますが、案件の仕様によっては5.6系は新規採用できないこともあり得ると思うんです。

一体原因がどこにあるのか・・?

PHP7.3.4ではフォトアルバム投稿ができないように思います。

投稿日時: 05/23 dreamer

こんにちは、
私も、下記環境で、フォトアルバムに画像をアップすると、内部エラーが出ます。
PHP5.6に変更して実行すると、正常にアップでき、その後、PHP 7.3.4に戻すと、そのままそのフォトアルバムが使えます。
急遽、対応としては、上記、PHP5.6で開始➡画像をアップ➡PHP 7.3.4にする。しかないないのかな、と思っています。

開発チームの方々は、GitHubのissueだけでなく、この公式サイトのトラブル情報もみていただいていると思うのですが、
一応、この問題は、GitHubにあげておきます。
https://github.com/NetCommons3/NetCommons3/issues/1505


(私の環境)

さくらのレンタルサーバ
PHP 7.3.4(php.iniに「extension = imagick.so」を設定)
MySQL 5.7

dreamerさん、ありがとうございます。

PHP 5.6に切り替えると、うまくいきますね。そうするとNC3.2.2のフォトライブラリプラグインがPHP7だと挙動が変ということになるんでしょうか。

切り分けできたようなできなかったような状況ですが、このあたりほかにも情報お持ちの方いらっしゃいませんか?

補足(整理)
PHP7.2でインストール段階で進まないのは、
https://qiita.com/RyujiAMANO/items/352fbea9eb31cea0e9a3
が必要です。これを行って先に進んだ後、フォトライブラリプラグインで問題が発生します。

PHP5.6について
今のところ5.6系はサポート終了にも関わらず脆弱性対応されているのでいいかと思いますが、案件の仕様によっては5.6系は新規採用できないこともあり得ると思うんです。

一体原因がどこにあるのか・・?