【テストコード】phpQueryのお勉強【Dom要素】

ひょんなところで知ったphpQueryがとても良さそうだったので
改めてお勉強を。。。

require_once('phpQuery-onefile.php');
$html = file_get_contents('https://finance.yahoo.com/currencies');
$dom = phpQuery::newDocument($html);
echo $dom["title"]."\n";
//-><title>Currency, Currencies &amp; Forex Currency Trading - Yahoo Finance</title>

echo $dom["title"]->text()."\n";
//->Currency, Currencies & Forex Currency Trading - Yahoo Finance

テキストを入れればタグなしを出力し、
入れなければタグも含めて取得する。

さて、ここからビットコインの価格を取得したいと思います。

$dom = phpQuery::newDocument($html);とするところがポイントでdomという変数名もいいよね。

参考:

http://tech.pjin.jp/blog/2017/05/31/phpquery1/
ありがとうございます

Macのターミナルでサーバー繋いでちょっと放置するとWrite faild : Broken pipeが出て困る【Mac】

Broken pipeが出てその後すぐSSH繋いでも、
接続切れた分のHistory ファイルが保存できてなくて作業効率が落ちる。

体感2分ほどで切れている気がする。

https://qiita.com/ysk24ok/items/2f4ced5edf306fdd9dfb

E45: ‘readonly’ option is set (add ! to override)
と出て保存できない問題もありましたが、
そこはsuでVim起動すれば解決っ!

WPプラグイン「Automatically Paginate Posts」を導入するとbrタグが消される現象を解決する

ワードプレスの便利機能であるbrタグ自動挿入だったり自動削除。
これをちゃんと把握してなくてちょっと詰まったのでメモ。

とあるユーザーさんからワードプレスで改行ができない。
と報告を受けて調査。
functions.phpに下記内容はちゃんと挿入されてるしWP本体のバグを疑う。

remove_filter( 'the_content', 'wpautop' );

しかし解決せず、プラグインを一通り見直し、the_contentに関係してそうなものを調査。

ここで見つけたのが「Automatically Paginate Posts」.
自動でNextPageを挿入してくれるものです。

このプラグインのautomatically-paginate-posts.phpの
373行目、374行目あたりの下記内容を削除

	$content = preg_replace( '#<p>(.+?)</p>#i', "$1\r\n\r\n", $content );
	$content = preg_replace( '#<br(\s*/)?>#i', "\r\n", $content );

スラスラやイゲタでコメントアウトすると下の行の正規表現の?>がphpの閉じタグと誤認識されて
サイトが真っ白になるので注意!!

横並びのCSSの3パターン

CSSに関する記事はゴマンとあるので自分用メモにとどめておきます。
読みにくさがご勘弁を

CSSは奥さんのほうが詳しく、いつも聞いてばかりなので
同じことは聞かないようにうまくまとめていかないと、、、。

1
フロートレフト、フロートライトで頑張る
クリアフィックスを忘れない
(これはよく使うので割愛)

2
親にディスプレイフィックス
子にウィズで%指定_100位内に収める

 justify-content: space-between;

できれいに中央そろえ

3
親にフォントサイズ0を当てて

.hoge_left,
.hoge_right {
display:inline-block;
width: 49%;
}

4
親にテーブルを使う(ウィズ100%)
子にテーブルを使う(セル)
vertical-align
top: 上端揃え
を行う

CloudFlareのPageruleの書き方と意図

*マークは別に強調したいわけではなく正規表現の意味なのでそのまま使うこと!

*domain_name/wp-admin/*
Cache Level: Bypass
管理画面はキャッシュされては困ります。。。※1

*domain_name/*&preview=true*
Cache Level: Bypass
手書きでビジュアルエディタで書いてる人向け
CSVやxmlrpc経由で投稿してる人には不要な項目

*domain_name/wp-content/uploads/*
Cache Level: Cache Everything
画像などの素材は全てキャッシュ

※1
wordpressにCloudFlareのプラグインがあるので
それを入れたほうが良さそう。
記事更新時にキャッシュをPurgeしてくれる。
あとWordPress用に最適化してくれるならwp-adminのBypass設定がいらないかも。

そうすると無料プランの『3 Page Rules』の枠が開くので
*domain_name/wp-content/themes/*(.js|.css)
Cache Level: Cache Everything
とかやってもいいかもしれない。
!!未検証なので注意!!

【100G近く】dbcache.logがクッソでかくてコレ消していいのか調査した【容量パンッパン】

サーバーの容量を見てたらすんごく圧迫してるファイルを発見
/var/www/vhosts/domain_name/httpdocs/wp-content/cache/log/000000/dbcache.log

容量100G近くあってもうコレはいかんと。

SSHで繋いで該当ログファイルをtailしてみるとsqlとのやり取りがロギングされており
消しても良さそうだけどほんとに消していいのかヒヤヒヤ。

ググってもマルウェア云々とか出てきてもう顔面真っ青なわけですよ。

https://wordpress.org/support/topic/does-the-dbcache-log-file-can-be-infected-by-malware/

目を皿にしてW3 Total Cacheの設定項目を舐め回すこと3周

見つけました。

Performance → General Setting → Debug mode

コレのDatabase Cacheの欄のチェックを外して
ファイルを削除で解決っ!

W3 Total Cacheの設定項目を一つ一つ理解する【執筆途中】

間違ってる点があればご指摘下さい(._.)

キャッシュプラグインを入れたはよいものの、急な問題はつきもの。
新しいキャッシュプラグインを触り出してすぐなんかは、
ローカルキャッシュなのか、サーバーサイドなのかどこにキャッシュが
すぐには分からず問題解決まで時間がかかったり、、、。

ということでスクリーンショット多めで、
google翻訳に頼りまくって
設定項目を一つ一つ理解していきたいと思います。

まずはGeneral Settingから

Enhanceは結構面白くて、htaccessの中にも変数が組み込まれて
かなり高速化してます。
htaccessの段階で振り分けちゃうんだから負荷もかなり軽減されます。

Opcode Cacheに興味津津。
php自体を高速化する仕組みらしくモジュールがあるかの確認→
php再起動が必要とのこと

phpの実行結果をキャッシュできるらしい。
かなり高速化できそうだけど、メモリバカ食いしないか心配。
ワードプレス管理画面からphpを高速化するってのもちょっと怖いし
とりあえず要検証といったところでお次へ。

 

DatabaseキャッシュとObjectキャッシュについて
オブジェクトキャッシュの方がWP独自の機能でDatabaseキャッシュの方は
このプラグインの提供する機能かな。

地味に大事なのが両方有効化すると後々問題の切り分けがしずらく、
どちらか一つの方がいいです。
どっちが良いのかというのは要検証ですな。

https://wpdocs.osdn.jp/%E3%82%AF%E3%83%A9%E3%82%B9%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Object_Cache

リバースプロキシマジかっ!ってなりましたが
ワニス(バニス?)というソフトをyumなりapt-getなりでインストール
する必要があるらしくハードルが高いので不要かな。

フラグメントについても直感的に理解できるので割愛。

その下の下記項目は省略
Monitoring →APIキーでRelicと連携して外部から連携
Licensing    →w3 total cache の有料アカウントのこと?

ここでは一番下のソースコードにコメント追記するモードが便利ですね。
訂正:一番下の和訳と↑このコメントは間違ってます。
デバッグの設定項目はこの下(スクショ範囲外)にあります。

General Setting ここまで
一旦休憩

 

 

Centos7+PleskOnyxを色々いじってみた(多分一段落)_自分用メモ

チューニング初心者の僕にはかなり勉強になりました。
(間違ってたらご指摘お願いします。)

‪CentOS Linux 7.4.1708 (Core)
Plesk Onyx v17.5.3
CPU 16core
メモリ32G
最終的にphp-fpm+nginxで動かしてます。

nginx version: nginx/1.11.10

Server version: Apache/2.4.6 (CentOS)
Apache2.4は初めて触りました。

これに50ドメイン近く突っ込みまして
一時期ロードアベレージは50近くw

Apacheの設定ファイルはNginxに移ったので殆ど触ってない

続きは疲れたので後日_2018-04-08

続き
Nginxの設定ファイル(共通項目
/etc/nginx/nginx.conf

diff nginx.conf.dateori nginx.conf

<     worker_connections  1024;
---
>     worker_connections  8192;
19a20,27
>     proxy_cache_path /var/cache/nginx keys_zone=zone1:1m max_size=1g inactive=4h; 
>     proxy_temp_path  /var/cache/nginx_tmp;
> 
> # add 2018 0421 has too long header_fix
> proxy_buffer_size     8k;
> proxy_buffers     100 8k;
> #/add 2018 0421
> 

ドメインごとの設定ファイル(アクセスログを止めたり、エラーログのレベルを設定したるするため
/var/www/vhosts/system/domain_name/conf/

しかし設定ファイルをよく読まないといけません。冒頭に

#DO NOT MODIFY THIS FILE BECAUSE IT WAS GENERATED AUTOMATICALLY,(以下略

#SO ALL YOUR CHANGES WILL BE LOST THE NEXT TIME THE FILE IS GENERATED.
#IF YOU REQUIRE TO APPLY CUSTOM MODIFICATIONS, PERFORM THEM IN THE FOLLOWING FILES:
#/var/www/vhosts/system/domain_name/conf/vhost.conf
#/var/www/vhosts/system/domain_name/conf/vhost_ssl.conf

こういう記述があって、
要はこのファイルを編集しても自動生成の際に上書きされてLOSTしますよ〜と言われます。

/var/www/vhosts/system/domain_name/conf/vhost.conf

ではどうすれば良いのかというと。。。
まずは
$ cat nginx.conf | grep include
してみる

include /etc/nginx/fastcgi.conf;
include /etc/nginx/fastcgi.conf;
include "/var/www/vhosts/system/domain_name/conf/vhost_nginx.conf";

とのこと。
これの一番下がpleskGUIからの設定値になります。
なのでそちらを編集しませう。

【sort】無料ブログの画像を一括保存する時に便利なコマンド(Mac)【uniq】

無料ブログから画像をバックアップしようと思って調べ物してたんだけど
結構使いそうなのでφ(..)メモメモ

①某無料ブログの記事データをエクスポート
②恋に落ちるエディタ、サブライムテキストで開く
③正規表現等で画像のURLを抽出
④それを新規作成したテキストファイルに張り付ける

これだと重複がありそうなのでココからコマンドでやろう!

僕の中の暫定最適解は下記コマンド

sort -u imagelist.txt -o outputlist.txt

imagelistファイルから重複を除きソート(uオプション)
それをoutput.txtという新規作成テキストに保存(oオプション)