LOGIN ID Password Auto Login Register Now! Lost Password?
Xoops Q&A

my-Album Pのサムネイル画像のパーミッションが、600になってしまいます。

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています

投稿ツリー


前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 .5 | 投稿日時 2008/7/1 20:03
aki1222  1st Class 居住地: 2年超(汗)  投稿数: 37
いつもお世話になっています。akiです。

タイトルの件なのですが、myAlbum-pでアップロードした画像のうち「画像は投稿されました」と表示されるのですが、thumbs内のサムネイル画像のみ、パーミッションが600に設定され表示できない状況です。

Xoops本体は、xoops2.0.16a jpで、myAlbumのバージョンは、2.88です。
xoops本体と、myAlbumのみをインストールしています。

サーバー環境は、以下の通りです。
SERVER:Apache
PHP:4.4.8
MySQL: 4.0.27-log
(ハッスルサーバーです。)

*同様のサービスのPHPのバージョンが4.4.4になっている別サーバーでは、問題なく使用出来ております。
(4.4.8では、chmod使えないとか無いですよね。)

myAlubumの環境チェックにおいては、以下のように表示されています。

PHP設定 'safe_mode' (両方ok): off
PHP設定 'file_uploads' (要on): on
PHP設定 'register_globals' (両方ok): off
PHP設定 'upload_max_filesize': 2M byte
PHP設定 'post_max_size': 8M byte
PHP設定 'open_basedir': nothing
PHP設定 'upload_tmp_dir': ok

uploaods、photos、thumbsカテゴリのパーミッションは、777、755で試してみましたが、駄目でした。
imageMagick、GD、強制GD2モードそれぞれ試してみましたが、同様の結果でした・・・。
(それぞれ設定チェックでOKと表示されています。)

また、myAlubumインストール時に、以下のようなエラーが出ていました。
(Altsysをインストールしてないからでしょうか?)
Warning [Xoops]: Smarty error: unable to read resource: "db:myalbum_header.html" in file class/smarty/Smarty.class.php line 1095
Warning [Xoops]: Smarty error: unable to read resource: "db:myalbum_footer.html" in file class/smarty/Smarty.class.php line 1095

該当の行をとりあえずコメントアウトしてみると、Warningは表示されなくなりましたが、サムネイルのパーミッションは、やはり600に設定されてしまいます。

サーバー環境のだと思いますが、現在使っているサーバーと同程度の条件のサーバーも見つからず、出来れば、このサーバーで運営していきたいと考えています。

もし、何か解決に至るようなヒントがありましたら、アドバイスいただければ幸いです。
よろしくお願いいたします。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008/7/2 5:08
GIJOE  Admiral 居住地: 2003年4月くらい  投稿数: 3708
aki1222さん、こんにちは。

引用:

タイトルの件なのですが、myAlbum-pでアップロードした画像のうち「画像は投稿されました」と表示されるのですが、thumbs内のサムネイル画像のみ、パーミッションが600に設定され表示できない状況です。
不思議な症状ですね。
両方とも、というのなら納得もできますが…

とりあえず、umaskかなあ。

試しに、include/functions.php の56行目
function myalbum_create_thumb( $src_path , $node , $ext )
{

	umask( 0022 ) ;


1行挿入してどうなるか確認してください。
投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008/7/2 9:21
aki1222  1st Class 居住地: 2年超(汗)  投稿数: 37
GIJOEさん、おはようございます。

お世話になっております、akiです。
ご教授いただきました方法を試させて頂くと、サムネイル画像のパーミッションが644に設定されました!
(GDでサムネイルを作成すると、白黒画像のようになってしまいましたが、ImageMagickならOKでした。)

umaskで、ファイル権限の設定を出来るんですね、勉強になりました。

気になって、以下のようなファイルを作ってxoopsをインストールしている最上位のディレクトリにアップすると、63と返されました。

<?php
echo umask();
?>

同じファイルをphots内、thumbs内にアップしアクセスすると、500エラーでした。

これは、今回の件と関係あるのでしょうか。

何はともあれ、解決に至るアドバイスを頂き、本当にありがとうございました!
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008/7/4 5:08
GIJOE  Admiral 居住地: 2003年4月くらい  投稿数: 3708
aki1222さん、こんにちは。

引用:

ご教授いただきました方法を試させて頂くと、サムネイル画像のパーミッションが644に設定されました!
良かったですね。
おそらくそのサーバだと、move_uploaded_file() では644になって、それ以外の方法でファイルを作ると600になるのでしょう。
suPHPの機能かもしれません。

引用:
umaskで、ファイル権限の設定を出来るんですね、勉強になりました。
問題はumask(0022)の挿入ポイントですが、とりあえず今の場所で良いと思います。
最初はmainfile.phpに入れるべきだとも考えたのですが、templates_c や cache 内のファイルが600になるのはある意味便利ですし。

もし他のモジュール等で、サーバにファイルを作り、そのファイルをApacheに読ませる、という場合は、同様の問題が発生するので、mainfile.php に挿入しても良いかもしれません。

引用:
気になって、以下のようなファイルを作ってxoopsをインストールしている最上位のディレクトリにアップすると、63と返されました。
そうでしょう。8進数なら 0077 ですね。だから600になるんです。

引用:
同じファイルをphots内、thumbs内にアップしアクセスすると、500エラーでした。
これは、今回の件と関係あるのでしょうか。
関係ありません。
ごくごく普通のsuExecルール違反です。

- 第三者が書込可能なフォルダ内ではCGIは実行しない

というのがsuExecルールの一つです。他にもいろいろなルールがあるので勉強しておくと良いでしょう。(suPHPサーバを使っているのであれば)
投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008/7/4 18:35 | 最終変更
aki1222  1st Class 居住地: 2年超(汗)  投稿数: 37
GIJOEさん、ご返信頂きありがとうございます。

サーバー環境って、難しいですね^^;
suPHP・・・、初めて聞きました。
suExec自体がセキュリティの向上を目的として開発されたようなので、好ましい事のような気がするんですけど、急に仕様が変わると焦ります。

しばらくは、同じサーバーを使うと思うので、suExecのルールも、少しずつ勉強してみます。

>8進数
63/8のあまりで0077ということになるんですか。
何で、63なのか不思議だったので、疑問が解消されました。

色々教えていただいて本当にありがとうございます!
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008/10/21 16:16
maca  2nd Class   投稿数: 17
こんにちは、最近ヘテムルにサーバー移転したのですが、こちらの症状と似た状態で困っています。
ヘテムルに問い合わせたところ
>恐れ入りますが、ヘテムルではPHPをsuEXECにて動作しております。
>ご連絡いただいた現象は、こちらのサーバー仕様により
>発生している現象でございますので、恐れ入りますが
>ファイルのアップロードが完了いたしましたら、chmod() >関数にてパーミッションの変更を行ってくださいますよう、お願い申し上げます。

と返事が来ました。が、ちょっと私のレベルでは乗り切れそうにありません。
my-Albumだけでなくfckedterなどでもアップロードファイルがみんな600になってしまうので
umaskをmainfile.phpに書き加えることで解決するならそのように変更したいのですがどの場所にどんな書き方で加えればよいのでしょうか?

よろしくお願いします。

*******************
XCL hd1.0.2
mySql4.0.25
winxp
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008/10/22 13:19
GIJOE  Admiral 居住地: 2003年4月くらい  投稿数: 3708
macaさん、こんにちは。

引用:

my-Albumだけでなくfckedterなどでもアップロードファイルがみんな600になってしまうので
umaskをmainfile.phpに書き加えることで解決するならそのように変更したいのですがどの場所にどんな書き方で加えればよいのでしょうか?
このトピックをざっと読み直すだけで十分だとは思いますが

umask( 0022 ) ;

という行を、mainfile.php の最初の方に入れておけば良いでしょう。
(もちろん、<?php よりは下)
投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008/10/24 11:58
maca  2nd Class   投稿数: 17
GIJOEさん
ご回答ありがとうございます。
残念ながらうまくいきませんでした。

他のエディタでの現象を調べたところ
Xoopsdhtmlの時は644
Xanhteの時は666でアップロードされ、いづれも読み込みができます。
fckeditorの時600になるのでこれだけでも何とかしたいと思うのですが
fckeditor内のfunctions.phpに書き加えたらいいのでしょうか?加えるとしたら何行目でしょうか?

お手数ですが、よろしくお願いいたします。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008/10/24 12:47
GIJOE  Admiral 居住地: 2003年4月くらい  投稿数: 3708
macaさん、こんにちは。

引用:

残念ながらうまくいきませんでした。
それ、本当ですか?
ヘテムルでumask()は効いたはずですが。
直後にvar_dump(umask()); とかやったらどうなりますか?

引用:
fckeditorの時600になるのでこれだけでも何とかしたいと思うのですが
fckeditor内のfunctions.phpに書き加えたらいいのでしょうか?加えるとしたら何行目でしょうか?
正直そんな暇はないので、必要そうならFCKEditorのバージョンアップと一緒に片付けます。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2008/10/24 23:20
maca  2nd Class   投稿数: 17
以下のエラーが出てログインできませんでした。
お忙しいところありがとうございました。

:::::::::
画面上部に
int18
下部にphpデバックで
Warning [PHP]: Cannot modify header information - headers already sent by (output started at /***/html/mainfile.php:47) in file /***/xoops_trust_path/modules/wizmobile/class/WizMobile.class.php line 158
Warning [PHP]: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /***/html/mainfile.php:47) in file core/XCube_Session.class.php line 78
Warning [PHP]: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /***/html/mainfile.php:47) in file core/XCube_Session.class.php line 78
Warning [PHP]: Cannot modify header information - headers already sent by (output started at /***/html/mainfile.php:47) in file modules/legacyRender/kernel/Legacy_RenderTarget.class.php line 25
Warning [PHP]: Cannot modify header information - headers already sent by (output started at /***/html/mainfile.php:47) in file modules/legacyRender/kernel/Legacy_RenderTarget.class.php line 26
Warning [PHP]: Cannot modify header information - headers already sent by (output started at /***/html/mainfile.php:47) in file modules/legacyRender/kernel/Legacy_RenderTarget.class.php line 27
Warning [PHP]: Cannot modify header information - headers already sent by (output started at /***/html/mainfile.php:47) in file modules/legacyRender/kernel/Legacy_RenderTarget.class.php line 28
Warning [PHP]: Cannot modify header information - headers already sent by (output started at /***/html/mainfile.php:47) in file modules/legacyRender/kernel/Legacy_RenderTarget.class.php line 29
Warning [PHP]: Cannot modify header information - headers already sent by (output started at /***/html/mainfile.php:47) in file modules/legacyRender/kernel/Legacy_RenderTarget.class.php line 30
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008/10/25 5:50
GIJOE  Admiral 居住地: 2003年4月くらい  投稿数: 3708
引用:

macaさんは書きました:
以下のエラーが出てログインできませんでした。
画面上部に
int18
ログインなんてできなくっていいんですよ。確認のためのコードなんですから。

ちゃんと出てるじゃないですか。
18なら022。

う~ん。umask()は効いてますね。
じゃあヘテムルならではの、何かがあるのかもしれませんね。
個人的にはヘテムル以外をお勧めしておきます。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2008/10/25 9:21
maca  2nd Class   投稿数: 17
xoops以外で活用するようにしたいと思います。
ありがとうございました。
投票数:0 平均点:0.00
  条件検索へ

Back to Page Top
MainMenu
Manuals
Search
XOOPS Official & Dev.
XOOPS Communities