【スポンサーリンク】

【Apache】どうしても動画(mp4)が500 errorになっちゃうときはgzip周りをいじるとうまくいくかもしれない

あるときmp4ファイルをサーバー経由で見ようとすると500 errorとなった。

ローカルならちゃんとChromeで見れるが、サーバーだと全く見れない。httpd.confにAddType video/mp4 .mp4しても変化なし。怪しそうなAddTypeをいじっても何も変わらない・・・。

困り果てていたが下記の.htaccessを設定するとerrorが消えた!

gist.github.com

効いてる行はRewriteRuleだったので、gzip周りが関係しているのかな。

1時間ほど調べたが完全理解には及ばず・・・。まぁこの辺は色々いじって神に祈りながら実行してうまくいけばおkな世界ということで・・・。

Error: EACCES: permission deniedが出てelectronのインストールがコケた

sudo付けてんのにpermission deniedって…

…と思いつついろいろ調べてみると、どうやら--allow-rootオプションをつければよいことが分かった。

sudo npm install -g electron --unsafe-perm=true --allow-root

無事インストール完了。

MySQLのオプティマイザに裏切られた話

とあるアプリの検索機能がかなり重く、調べてみたらオプティマイザに裏切られていた(知識が未熟だった)ときの話。

検索の対象テーブルはA,B,C,Dとカラムがあり、A, Bに複合ユニークキー、B, C, Dに複合インデックスを設定していた。

そのアプリの検索機能では、「B, C, Dに条件指定→絞込み検索」といったよくある機能で、当然B, C, Dの複合インデックスが働くことを期待していた。

しかし、あるとき検索が想像よりも遅いと思ったため、おもむろにEXPLAINを実行すると、なぜかA, Bの複合ユニークキーが使われていた。

結局のところUSE INDEXを用いて無事高速に動作するようになったのだが、「B, C, DがWHEREにあるんだから素直にB, C, Dの複合インデックスを使ってくれよ」と思ったわけである。

【WordPress】https化で「保護された通信」にするための注意点

ある日、WordPressで作ったサイトにラビッドSSLで証明書を購入し、マニュアル(自分の場合さくらインターネットなのでさくらのマニュアル)に沿って設定したが、httpsでアクセスしても「保護された通信」にはなってくれなかった。

どうやらアップロードした画像なんかのsrcもhttps化しないといけないみたい。考えてみればそれもそうか。

幸いさくらには専用のプラグインがあったので、それを使って一括変換。無事「保護された通信」に・・・ならない。と、思ったが、タイトルロゴやスライドショーといったテーマオプションなどから設定する特定の画像URLは自分で変えないといけないっぽい。それらの設定をおこない無事httpsに移行完了。

【PageSpeed Insights】.htaccessを修正するだけで大幅にサイトの速度を向上【圧縮を有効にする+ブラウザのキャッシュを活用】

.htaccessに下記を足すとPageSpeed Insightsのスコアが20ほど増えた。
これに加えてPageSpeed Insightsに指摘された画像を適切なサイズに落とせば、ほぼ確実に緑スコアになるんじゃなかろうか。
(もちろん重たいJavascriptが動いてたり、サーバのスペックが足りてない場合などはダメだが…)

<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType text/html "access plus 1 seconds"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
ExpiresByType text/css "access plus 1 days"
ExpiresByType text/javascript "access plus 7 days"
ExpiresByType application/javascript "access plus 7 days"
ExpiresByType application/x-javascript "access plus 7 days"
</ifModule>

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE font/opentype font/ttf font/eot font/otf
</IfModule>

ちなみに、これらはPageSpeed Insightsの「圧縮を有効にする」と「ブラウザのキャッシュを活用」の対策になっている。

参考文献
http://www.hirok-k.com/blog/2606.html
http://ittoybox.com/archives/253

【スポンサーリンク】