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

投稿日時: 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系は新規採用できないこともあり得ると思うんです。

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

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

投稿日時: 06/27 osws 牟田口 満

こんにちは。
さくらのVPS環境でPHP 7.3.6を試したところ、フォトアルバムに投稿できました。
PHPバージョンの問題じゃなさそうな感じです。

###

私の方でも、さくらのレンタルサーバーのphp7.3で動かしたら、フォトアルバムの投稿で内部エラーになりました。

利用しているPHPモジュールに違いがあるのかなぁ。
とりあえずご報告まで。

 

こんにちは、
私も、下記環境で、フォトアルバムに画像をアップすると、内部エラーが出ます。
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系は新規採用できないこともあり得ると思うんです。

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

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

投稿日時: 07/01 a_o

私もフォトアルバム(スライドショー)に画像アップすると、内部エラーとなります。
PHPバージョン、7.3.4でも7.2.13でも同様でした。

【環境】
NetCommons 3.2.2
さくらインターネット スタンダード
・Apacheバージョン:Apache/2.4.37
・PHPバージョン:PHP 7.2.13 (モジュール版)

操作端末OS:Windows7 Professional
操作端末ブラウザ:Chrome

さくらのレンタルサーバですが5.6が選択肢に無く、お示し下さったPHP5.6でアップロードしてから7.3.4に戻すという事ができません。
何か手はないでしょうか。。。

アップロードには失敗しますが、アップロード先のreal_file_nameには新しいフォルダと、画像が1つだけアップロードされています。

フォルダと画像ファイルのパーミッションは

real_file_nameフォルダ:755
|_ 数字フォルダ:755
  |_数字フォルダ:777
    |_ 画像ファイル:600 ※644のはず

でした。Shiftキーを押しながら5ファイルアップロードしたのですが、アップロード先フォルダには1ファイルしか存在していませんでした。

こんにちは、
私も、下記環境で、フォトアルバムに画像をアップすると、内部エラーが出ます。
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系は新規採用できないこともあり得ると思うんです。

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

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

投稿日時: 07/02 dreamer

私もさくらレンタルサーバースタンダードを使ってます

PHP の選択欄で

古いバージョンに固定する

の項目を押すと PHP 5.6などの古いバージョンが表示されるのでそれを選択すればいいかと思います

 

私もフォトアルバム(スライドショー)に画像アップすると、内部エラーとなります。
PHPバージョン、7.3.4でも7.2.13でも同様でした。

【環境】
NetCommons 3.2.2
さくらインターネット スタンダード
・Apacheバージョン:Apache/2.4.37
・PHPバージョン:PHP 7.2.13 (モジュール版)

操作端末OS:Windows7 Professional
操作端末ブラウザ:Chrome

さくらのレンタルサーバですが5.6が選択肢に無く、お示し下さったPHP5.6でアップロードしてから7.3.4に戻すという事ができません。
何か手はないでしょうか。。。

アップロードには失敗しますが、アップロード先のreal_file_nameには新しいフォルダと、画像が1つだけアップロードされています。

フォルダと画像ファイルのパーミッションは

real_file_nameフォルダ:755
|_ 数字フォルダ:755
  |_数字フォルダ:777
    |_ 画像ファイル:600 ※644のはず

でした。Shiftキーを押しながら5ファイルアップロードしたのですが、アップロード先フォルダには1ファイルしか存在していませんでした。

こんにちは、
私も、下記環境で、フォトアルバムに画像をアップすると、内部エラーが出ます。
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系は新規採用できないこともあり得ると思うんです。

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

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

投稿日時: 07/05 a_o

dreamer 様

ありがとうございます! PHP5.6にして画像を表示させることができました!

なお、フォルダと画像ファイルのパーミッションは

real_file_nameフォルダ:755 ← PHP7.xの時と同じ
|_ 数字フォルダ:755 ← PHP7.xの時と同じ
  |_数字フォルダ:777 ← PHP7.xの時と同じ
    |_ 画像ファイル:644 ← PHP7.xの時の600ではなく、正常!

でした。

私もさくらレンタルサーバースタンダードを使ってます

PHP の選択欄で

古いバージョンに固定する

の項目を押すと PHP 5.6などの古いバージョンが表示されるのでそれを選択すればいいかと思います

 

私もフォトアルバム(スライドショー)に画像アップすると、内部エラーとなります。
PHPバージョン、7.3.4でも7.2.13でも同様でした。

【環境】
NetCommons 3.2.2
さくらインターネット スタンダード
・Apacheバージョン:Apache/2.4.37
・PHPバージョン:PHP 7.2.13 (モジュール版)

操作端末OS:Windows7 Professional
操作端末ブラウザ:Chrome

さくらのレンタルサーバですが5.6が選択肢に無く、お示し下さったPHP5.6でアップロードしてから7.3.4に戻すという事ができません。
何か手はないでしょうか。。。

アップロードには失敗しますが、アップロード先のreal_file_nameには新しいフォルダと、画像が1つだけアップロードされています。

フォルダと画像ファイルのパーミッションは

real_file_nameフォルダ:755
|_ 数字フォルダ:755
  |_数字フォルダ:777
    |_ 画像ファイル:600 ※644のはず

でした。Shiftキーを押しながら5ファイルアップロードしたのですが、アップロード先フォルダには1ファイルしか存在していませんでした。

こんにちは、
私も、下記環境で、フォトアルバムに画像をアップすると、内部エラーが出ます。
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系は新規採用できないこともあり得ると思うんです。

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

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

投稿日時: 07/06 dreamer

よかったですね、

私もうれしいです、

次回のバージョンでこの問題が解消されることを期待したいです。

※ 私は、開発などできる技量がないので、普段、使っていて気が付いた不具合をユーザーとして開発メンバーにお伝えすることで、netcommonsにいくらかでもお役に立てれば幸いとおもって、内容の如何にかかわらず、恥ずかしながら投稿している次第です。
得た情報は、次回の公式マニュアルに役に立てばと、下記に記入するように努めてます・https://github.com/NetCommons3/NetCommons3/wiki/NetCommons3開発ドキュメント#tips

 

 

dreamer 様

ありがとうございます! PHP5.6にして画像を表示させることができました!

なお、フォルダと画像ファイルのパーミッションは

real_file_nameフォルダ:755 ← PHP7.xの時と同じ
|_ 数字フォルダ:755 ← PHP7.xの時と同じ
  |_数字フォルダ:777 ← PHP7.xの時と同じ
    |_ 画像ファイル:644 ← PHP7.xの時の600ではなく、正常!

でした。

私もさくらレンタルサーバースタンダードを使ってます

PHP の選択欄で

古いバージョンに固定する

の項目を押すと PHP 5.6などの古いバージョンが表示されるのでそれを選択すればいいかと思います

 

私もフォトアルバム(スライドショー)に画像アップすると、内部エラーとなります。
PHPバージョン、7.3.4でも7.2.13でも同様でした。

【環境】
NetCommons 3.2.2
さくらインターネット スタンダード
・Apacheバージョン:Apache/2.4.37
・PHPバージョン:PHP 7.2.13 (モジュール版)

操作端末OS:Windows7 Professional
操作端末ブラウザ:Chrome

さくらのレンタルサーバですが5.6が選択肢に無く、お示し下さったPHP5.6でアップロードしてから7.3.4に戻すという事ができません。
何か手はないでしょうか。。。

アップロードには失敗しますが、アップロード先のreal_file_nameには新しいフォルダと、画像が1つだけアップロードされています。

フォルダと画像ファイルのパーミッションは

real_file_nameフォルダ:755
|_ 数字フォルダ:755
  |_数字フォルダ:777
    |_ 画像ファイル:600 ※644のはず

でした。Shiftキーを押しながら5ファイルアップロードしたのですが、アップロード先フォルダには1ファイルしか存在していませんでした。

こんにちは、
私も、下記環境で、フォトアルバムに画像をアップすると、内部エラーが出ます。
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系は新規採用できないこともあり得ると思うんです。

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

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

投稿日時: 08/25 hiratomo

こんばんは。

私もさくらのレンタルサーバーでフォトアルバム設置が出来ず悩んでいましたが、eddy.Kさんのサイトで、解決策を見つけましたので、M.Nishimuraさんの投稿からは時間が経ってしまいましたが、今後の参考になればと思い、報告させていただきます。

https://demo-nc3.eddy-k.jp/check/photoalbum

NC3の公式サイトのトラブルにて掲載されていた「フォトアルバム投稿時のパーミッションがおかしい(?)」でこちらのデモサイトにて確認したら確かに内部エラーとなりました。

っで、ちょっと調べてみたらrenameのところで落ちているようです。

そこでググってみたらいろいろとあり見てみたらこれかなあといった解決策があったので試してみました。

良い方法とは思えないのですがこの方法で以下のフォトアルバムが設置できました。

【解決策】

/app/Plugin/Upload/Model/Behavior/UploadBehavior.php

の360行目

return rename($filename, $destination); のrenameの前に@をつけるのでした。

return @rename($filename, $destination);

とすれば、エラーを返さなくするようで現在の問題は回避できます。

もうひとつcopyし正常に複写できれば移動元を削除(unlink)するといった方法もあるようですが、コードを書く必要もあり@をつける方法を試しました。

 

この方法が本当に良いかは開発者さまの確認・検討が必要ですが・・・

たしかに、@をつけてみると、内部エラーが起こらずに、フォトアルバムを設置できます。設置後は、写真を追加するのは、@なしでもいけます。

検索をしてみると、次のような情報も見つかりました。ご参考までに。

http://pentan.info/php/rename_across_volumes.html

私の環境は以下の通りです

さくらのレンタルサーバー
PHP 7.2.20 (モジュール版)
MySQL 5.7

ただ、他のところで問題が出るかどうかは、Eddy.kさんがおっしゃるとおり開発者様の検討が必要ですよね。

 

こんにちは。

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}