簡単BLOG
MENU
練習 : 投稿練習用
PHP proc_open で、はまる
2015-04-20 12:53:32 (月)
マニュアルにある、サンプルでは $process = proc_open('xxx', $descriptorspec, $pipes, $cwd, $env); if (is_resource($process)) { fwrite($pipes[0], $input_data); fclose($pipes[0]); $output_data = stream_get_contents($pipes[1]); fclose($pipes[1]); $return_value = proc_close($process); echo "command returned $return_value\n"; } の様な感じに、なっている。 子プロセスによっては、これと同等では、動作しないことがある。 サンプルでは、子プロセスは、すべてのデータを受け入れたあと 出力する、プログラム(子プロセス)を対象にしているようだ。 プログラム(子プロセス)は、データ受け入れながら、データを出力する場合 パイプがいっぱいになり動作が止まることがある。 そのため、$input_dataを分割して、$output_dataを順次取り出す必要がある。 $process = proc_open('xxx', $descriptorspec, $pipes, $cwd, $env); if (is_resource($process)) { $output_data=''; stream_set_blocking($pipes[1], 0); while($input_data!=''){ fwrite($pipes[0], substr($input_data,0,4096)); $input_data = substr($input_data,4096); if(($tmp_data = stream_get_contents($pipes[1]))!==false){ $output_data.=$tmp_data; } } fclose($pipes[0]); stream_set_blocking($pipes[1], 1); $output_data .= stream_get_contents($pipes[1]); fclose($pipes[1]); $return_value = proc_close($process); echo "command returned $return_value\n"; }モバイル ユーザビリティ 2
2015-03-27 10:01:53 (金)
Googleがうるさい。 前回 <link rel="stylesheet" media="(max-width: 639px)" href="/cr32.css" type="text/css"> を追加 と書いたが、これだと PageSpeed Insights がうるさい。 なので、 <style> @media screen and (max-width: 639px) { a{line-height:32px} } </style> に、した。 キャッシュや圧縮は、サーバー(apache)の設定変えないとできないじゃん。 これは、のちのち・・・ って、ことでほとんど終わったかな・・・モバイル ユーザビリティ
2015-03-15 00:34:49 (日)
Google から モバイル ユーザビリティ上の問題を検出 って、・・・ 少し、対応してみることに・・・ まず <meta name="viewport" content="width=device-width, initial-scale=1"/> を、追加あとは、 width:100%;max-width:xxxpxに変更 <link rel="stylesheet" media="(max-width: 639px)" href="/cr32.css" type="text/css"> を追加 cr32.cssの中身は a{line-height:32px} だけ これで、OKだと思うのだが。クローラ(ロボット)作成
2014-05-27 12:52:55 (火)
クローラ(ロボット)作成だが、サイト(ページ)が存在するかどうかだけで いいのだが、現在稼動しているのはつぎはぎだらけで修正する気にならない 作り直しをする。 ページを取得するだけであれば簡単である。 PHPではfsockopenを使用すればOKなのだから でも、実際にはそれ以外の問題が多くある すべてのサイト(webサーバー)が、存在する場合200を返してくれれば いいのだが、存在しないのに、200を返す。(googleではソフト404かな?) 移転の場合302,301なのだが、その先が、ソフト404であるとかである。 手順は 1.DNSに存在する。(存在しない場合、エラー) 2.サーバー接続できる。(接続できない場合、エラー) 3.HTTPステータスが200,301,302,304である。 (200,301,302,304以外、エラー) 4.HTTPステータスが304である。(304はOKとする) 5.HTTPステータスが301,302で場合、移転先URLで再スタート 6.200だがソフト302の場合、移転先URLで再スタート 7.200だがソフト404の場合、エラー 8.END.そのサイト(ページ)は存在する で、大変厄介なのがソフト302 ソフト404 の判定である。 ソフト302の例 ・metaタグ ・frame ・JavaScript など、考えられるが JavaScriptは、今回も未対応 ソフト404は、 ページ内の文字で、今回も判断した。 たとえば、 『このページは、存在しません。』 とかである。 最後に、クローラしてみてびっくりしたこと ・文字コードがめちゃくちゃなサイトが多いことである Content-Type: text/html; charset=UTF-8 で、UTF-8じゃないとか <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> で、UTF-8じゃないとか 一番最悪なのが ページ内で 文字コードが、混在してる場合であった。PHP 5.4.28 PHP 5.5.12 PHP5.6.0B2 公開
2014-05-09 08:42:10 (金)
PHP 5.4.28 が、2014-05-01 PHP 5.5.12 が、2014-04-30 PHP 5.6.0B2 が、2014-05-02 に、公開されていた。いやな?メッセージ発見
2014-04-26 01:08:23 (土)
/var/log/messages に、 Apr 25 23:52:35 sv11 rsyslogd-2177: imjournal: begin to drop messages due to rate-limiting Apr 26 00:06:36 sv11 rsyslogd-2177: imjournal: 34975 messages lost due to rate-limiting なるメッセージを発見。 /var/log/messages には、保管しなかったようだ jounalには、あるけどiptablesのLOGをNFLOGにしてみる
2014-04-23 14:31:16 (水)
いろいろ、調べてみたが、ULOG保管が、MYSQLばかりで テストするには向かない 保管だけできる設定をしてみた yum install ulogd /etc/ulogd.confの修正 #plugin="/usr/lib/ulogd/ulogd_inpflow_NFCT.so" があると、勝手に動くのでコメント #plugin="/usr/lib/ulogd/ulogd_output_SYSLOG.so" syslogに保管(経由)しないのでコメント plugin="/usr/lib/ulogd/ulogd_output_OPRINT.so" 出力は、ダイレクトなのでこれを記述 stack=log32:NFLOG,base1:BASE,ifi1:IFINDEX,ip2str1:IP2STR,mac2str1:HWHDR,op32:OPRINT これを記述 [log32] group=32 [op32] file="/保管先/ulog_oprint.log" sync=1 これらを記述 そして、iptables -j LOG の行を -j NFLOG --nflog-group 32 --nflog-prefix "[IPTABLES ULOG] : " の様に記述するFC20は、rsyslogじゃなくjournal
2014-04-22 20:04:34 (火)
いままでは、rsyslog(syslog)で、カーネルログを振り分け /var/log/ディレクトリに保管していたが FC20では、journaldで、保管し、journalctlで内容を見るようだ。 たとえば、 grep "dovecot" </var/log/maillog は、 journalctl --no-page -l -udovecot となる。 でも、 /var/log/secure と同じになるオプションは、まだ見つけていない。 また、日付指定しないと面倒なことになる journalctl --no-page -l -udovecot --since="2014-04-22 18:00:00" --until="2014-04-23" journalctl --no-page -l -udovecot --since="today" または、--no-page をとって-r指定とか journalctl -udovecot -r -p, --priority=指定は "emerg" (0), "alert" (1), "crit" (2), "err" (3), "warning" (4), "notice" (5), "info" (6), "debug"(7) 文字または数字で -p4とすると 0,1,2,3,4が対象となる debugだけを指定したい場合 -pdebug..debug とすればOKである。いままで稼動していたCRONが消えている様だ
2014-04-21 09:54:09 (月)
いままで稼動していたCRONが消えている様だ 2 4 * * * root run-parts /etc/cron.daily 22 4 * * 7 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly の設定が、ない anacrontabには 1 5 cron.daily nice run-parts /etc/cron.daily 7 25 cron.weekly nice run-parts /etc/cron.weekly @monthly 45 cron.monthly nice run-parts /etc/cron.monthly とあるが・・ いつから消えていたのだろうsendmailの再送間隔
2014-04-16 00:09:31 (水)
間隔設定がかわっていた /etc/sysconfig/sendmail の設定方法が変わってる SENDMAIL_OPTS="-q1h" 1時間間隔 SENDMAIL_OPTS="-q10m" で、10分間隔
[前ページ] [次ページ]