【PHP】下らねぇ質問はID出して書き込みやがれ 119
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2012/05/16(水) 21:44:16.40ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 118
http://kohada.2ch.net/test/read.cgi/php/1335198562/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0951nobodyさん
2012/06/20(水) 13:42:47.14ID:???そもそも違いが出るのがおかしい
0952921
2012/06/20(水) 14:14:52.35ID:UA1ZvG7a私が使っているレン鯖が64ビットなんです・・。
整数に違いが出るのはマニュアルにも書いてるとおりでして、
どうやって32ビットのコードを64ビットにするか、またはその逆かは
マニュアルに書いてないので尋ねた次第です。。
0953nobodyさん
2012/06/20(水) 14:34:59.07ID:???INT_MAXとか使ってるならそれを32bitの方にあわせりゃ済む話だろ?
0954nobodyさん
2012/06/20(水) 14:38:44.73ID:???OSのバグをアプリケーションレベルで対応してもOSがアップデートしたらグチャっとなりそうです
0955nobodyさん
2012/06/20(水) 14:40:52.07ID:???0956921
2012/06/20(水) 15:21:13.54ID:UA1ZvG7aどうやって合わせるのでしょうか?
PHP_INT_MAXを出力すると、
32ビットの方は「2147483647」、64ビットは「9223372036854775807」
となっています。
>>954-955
以下のマニュアルページを見ています。
http://php.net/manual/ja/language.types.integer.php
「整数のオーバーフロー」を示す例が載っていますが、
どうやって結果を統一するかは書いていません。
0957nobodyさん
2012/06/20(水) 20:14:25.90ID:l2ggqhMSフォルダ名を変数に入れる時、最後の「/」を付けるかどうかで悩んでいます。
"./data/archive";
最後に/が無いこの方式だと
「/data」が1フォルダ、「/archive」が1フォルダ と区切りが分かりやすい
それに__DIR__等も最後に/が無い書き方で返すから統一出来る
$dir="./data/archive/";
この方/が有る式だと、このフォルダにファイルを置きたい時
$dir.="saveFile.txt";とファイル名をそのまま書くだけでフルパスを作ることが出来る
とそれぞれ一長一短なのですが、皆様はどちらの書き方を使っているでしょうか。
例の./data も./data/archiveもどちらもフォルダ名です。
0958nobodyさん
2012/06/20(水) 20:41:11.37ID:???が意味不明
ディレクトリの末尾、ファイルの先頭に/を付けず、連結時に/を挟むことにすればいい
末尾に/があったらディレクトリ、なかったらファイル、という方式もある
0960nobodyさん
2012/06/21(木) 00:48:49.40ID:???0961nobodyさん
2012/06/21(木) 09:12:49.66ID:TKMOd/fiところが、メールを送信した後は必ず(送信元に)エラーメールが返ってきます。
phpでの作業自体は最後まで正常に行われているようで、キチンとサーバーには画像は登録されています。
メールのエラー内容は、
expanded from <*******@*****.com>): Command died with signal 11: "/usr/bin/php /home/httpd/hogehoge.php"
といったものです。
恐らくphpスクリプトから何らかの異常が発生したと出ているようですが、その異常がわかりません。
画像の処理はimagickを使っています。
phpスクリプトのほうで色々調べてみましたが、imagick::resizeImageのところで異常が出ているようでした。(この行をコメントにするとエラーメールは返ってきません)
phpとimagickとでバージョンによっての不適合とかあるのでしょうか?
php 5.3.14
imagick(PECL) 3.0.1 stable
よろしくお願いします。
0962961
2012/06/21(木) 09:19:41.36ID:TKMOd/fi件のphpスクリプトをcliで動かしても、何のエラーも表示されません。
同じ処理をしている、webから動かす方のスクリプトもあるのですが、こちらのほうも何のエラーもなく正常に処理が終了します。
phpのエラー出力をE_ALLにしても同様です。
0963nobodyさん
2012/06/21(木) 10:10:48.63ID:2NYHmDqp既にあるFWでおすすめのない?
1. 軽い、処理速度が早い
2. バリバリ機能完備よりは、ある程度効率的に使えるのがいい
また、一から作る際は皆はどんな構成にしてる?
0964nobodyさん
2012/06/21(木) 10:18:47.92ID:???0965nobodyさん
2012/06/21(木) 10:34:03.71ID:2NYHmDqpそれはわかってるんだけど、どちらにせよ使いやすくするにはクラス化するよね
それと、php.netのサイトでmysql_connectは推奨されないっぽいけどなんでだろ
0966nobodyさん
2012/06/21(木) 11:10:12.35ID:???0967nobodyさん
2012/06/21(木) 12:10:34.75ID:???PHPって
0968nobodyさん
2012/06/21(木) 12:16:17.20ID:???0969nobodyさん
2012/06/21(木) 13:03:21.96ID:???> 件のphpスクリプトをcliで動かしても、何のエラーも表示されません。
メールサーバーの実行ユーザーで試してみた?
>>965
MySQL側のAPIの変化に対応できる設計じゃなかったから
0970961
2012/06/21(木) 14:22:23.81ID:TKMOd/fiメールサーバーはpostfixを使っているのですが、ユーザーpostfixはnologinになっているので試していません。
今回、サーバーを切り替えるにあたって、システムをそのまま新しいサーバーに持って来たのですが、旧サーバーでは同じスクリプトで何も問題は起きていませんでした。
新しいサーバーは、php・postfix・php、それぞれのバージョンこそ違えど、全く同じように設定しています。
もちろんバージョンの違いで、設定ファイルが若干違っている部分があるので、厳密に全く同じかと言われればそうではないのですが・・・。
0972nobodyさん
2012/06/21(木) 16:06:54.96ID:???0973961
2012/06/21(木) 16:15:03.45ID:TKMOd/fi?? su -s の事でしょうか?
具体的にどう確認したらいいのでしょうか?無知で申し訳ありません。
0974961
2012/06/21(木) 16:17:08.01ID:TKMOd/fi# su postfix -c "php /home/httpd/hoge.php"
は
This account is currently not available.
となってしまいます。
0975nobodyさん
2012/06/21(木) 16:29:53.05ID:???メールのあて先のユーザーでやるんだよ、それとも、aliasesでやってんの?
0976961
2012/06/21(木) 16:40:00.61ID:TKMOd/fiすいません。
メールの宛先のユーザーでやっても
This account is currently not available.
となります。
0977nobodyさん
2012/06/21(木) 16:46:39.67ID:???メールの内容関係無しにimagemagickで/tmpにファイル作るだけのスクリプト作って
それを呼んでみるとか
0978961
2012/06/21(木) 17:39:14.93ID:TKMOd/fi単純にメールからファイルを受け取って、それをサーバーに保存するだけなら問題ないんですよね。
imagick::resizeImageを使って、画像をリサイズするとエラーが出るんです・・・。
リサイズ処理せずにそのまま登録すればいいんですけどね・・・最近は10M超ピクセルの画像を平気でメールで送ってくるので・・・、そうもいかず・・・。
処理自体はちゃんと行われるので、エラーメールが返信されなければそれに越した事はないのですが(気持ち悪いですが)。
0979nobodyさん
2012/06/21(木) 17:45:39.95ID:???メモリ足りないようだけど、設定変えられる?
0980961
2012/06/21(木) 17:51:32.44ID:TKMOd/fi特定の画像という事では無く、どんな画像でも起こるようです。
700KB〜3MBぐらいの数十枚の画像で試しましたが、全て同じ結果でした。
phpのメモリの設定は変えられます。現在のmemory_limitは128Mですので、足りないという事は無いと思います・・・。
0981971
2012/06/21(木) 17:58:48.28ID:???postfixユーザーで試してくれって事だよ
nologinってのはシェルに /sbin/nologin が指定されてるので
$ su -s 普段使っているシェル postfix
と指定してやれば切り替えられるはず
その状態で
$ php --ini
$ php -i | grep memory_limit
の結果を確認するといいかも
0982961
2012/06/21(木) 18:09:27.83ID:TKMOd/fiユーザーpostfixがnologinになってるので、usermodでbashに変更しました。
その上でpostfixに切り替え、phpのメモリを確認したところ、
bash-4.1$ php -i|grep memory_limit
memory_limit => 128M => 128M
と表示されたので128Mのままのようです。
0983nobodyさん
2012/06/21(木) 18:15:06.62ID:???えろすぎ
0984nobodyさん
2012/06/21(木) 18:15:27.80ID:???0985961
2012/06/21(木) 18:20:17.42ID:TKMOd/fi失礼しました。
>984
アカウントを宛先ユーザーに切り替えて、試してもやはり128Mで同様でした。
0986長文なので分けてレス
2012/06/21(木) 18:37:40.04ID:???<?php
$hostname = "××";
$uname = "××";
$upass = "××";
$dbname = "××";
$tblname = "××";
//接続する
if( !$res_dbcon = mysql_connect( $hostname, $uname, $upass) ){
print "MYSQL への接続に失敗しました。";
exit;
}
//DB
mysql_select_db( $dbname, $res_dbcon ) or die('error ' . mysql_error());
bool mysql_set_charset ( string $charset [, resource $link_identifier = NULL ] )
//SQL文を実行し、結果のリソースを取得。
$res_result = mysql_query( "SELECT * from `{$tblname}`", $res_dbcon ) or die('error ' . mysql_error());
//結果を表示
while( $row = mysql_fetch_array( $res_result, MYSQL_ASSOC ) ){
var_dump( $row );
}
//MySQLへの接続を切断する
mysql_close( $res_dbcon );
?>
0987長文なので分けてレス
2012/06/21(木) 18:39:09.42ID:???bool mysql_set_charset ( string $charset [, resource $link_identifier = NULL ] )
を入れると良いってあったんだけど、入れると真っ白です。
エラーログを見ても、
bool mysql_set_charset ( string $charset [, resource $link_identifier = NULL ] )
を入れた行だけ指摘します。
この文で合っているのでしょうか?
外すと、
array(3) { ["code"]=> string(3) "???" ["title"]=> string(3) "111" [3]=> string(3) "aaa" }
array(3) { ["code"]=> string(3) "???" ["title"]=> string(3) "222" [3]=> string(3) "iii" }
array(3) { ["code"]=> string(3) "???" ["title"]=> string(3) "333" [3]=> string(3) "uuu" }
???は日本語があったところですが、
なぜ
bool mysql_set_charset ( string $charset [, resource $link_identifier = NULL ] )
をいれても解消できないのでしょうか?
どのような使い方をすれば文字化けは解消できるのでしょうか?
自サーバ centos6 mysql 5.1.61 php 5.3.3
0988nobodyさん
2012/06/21(木) 18:42:18.86ID:???書き換える事ができないのですか?別スクリプトから編集しようと
すると待たされてしまいます。
[1.php]
$wait = 15;
$mtime = filemtime($path);
while (filemtime($path) == $mtime && $wait-- > 0) {
clearstatcache();
sleep(1);
}
0989971
2012/06/21(木) 18:48:46.03ID:???へぇ知らなかった
>>985
postfixの設定 default_privs で指定されたユーザーでも確認してみてくれ
0990nobodyさん
2012/06/21(木) 18:50:39.63ID:???ためしにSET NAMES utf8を投げてみて
昔、mysql_set_charsetが使えなかった覚えがある
それでだめならmy.cnfに追加するしかないかも
default-character-set=utf8
0991961
2012/06/21(木) 19:27:15.34ID:TKMOd/fidefault_privsはコメントアウトしていますが、デフォルトのnobodyで確認したところ 128M でした。
0992988
2012/06/21(木) 19:39:01.53ID:???0993nobodyさん
2012/06/21(木) 19:40:56.44ID:???http://kohada.2ch.net/test/read.cgi/php/1340275027/
0994nobodyさん
2012/06/22(金) 00:59:44.09ID:???http://kohada.2ch.net/test/read.cgi/job/1337174486/
0995nobodyさん
2012/06/22(金) 03:26:28.78ID:???0996nobodyさん
2012/06/22(金) 03:34:32.19ID:???0997nobodyさん
2012/06/22(金) 05:35:29.53ID:???【PHP】下らねぇ質問はID出して書き込みやがれ 120
http://kohada.2ch.net/test/read.cgi/php/1340275027/
0998nobodyさん
2012/06/22(金) 05:36:34.85ID:???【PHP】下らねぇ質問はID出して書き込みやがれ 120
http://kohada.2ch.net/test/read.cgi/php/1340275027/
0999nobodyさん
2012/06/22(金) 05:37:10.08ID:???1000nobodyさん
2012/06/22(金) 05:38:33.43ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。