Category "Backend"を表示しています。
2017.1.11 水
X-Forwarded-ForとかX-Cluster-Client-Ip LB(ロードバランサー)がかませてあるネットワーク設定ではアクセス元のグローバルIPが変換されてしまってログなんかに記述されるIPアドレスがLBのローカルIPアドレスになってしまうことがあります。 そういう場合にはX-Forwarded-ForとかX-Cluster-Client-Ipなどの特殊な変数でアクセス元のもともとのIPアドレスを取得できることがあります。 ロードバランサー越しにIPアドレスを取る(X-Cluster-Client-Ipの場合) ロードバランサーの性能というか設定によりけりだと思いますが、X-Cluster-Client-IpでIP取れました。設定するIPアドレスのドットをエスケープするところが...
2016.11.7 月
php.iniで設定する PHPのアップロードサイズは、php.iniの設定を見るとデフォルトでは、 ; Maximum allowed size for uploaded files. ; http://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize upload_max_filesize = 2M となっていて2Mなんですね。php.iniの877行目辺りです。 普通に画像とかファイルとかをあげるにはまあまあなサイズですが、用途によっては全然足りないです。なので、ここでアップロードサイズを大きくしてあげます。 Ubunutuとかだと、/etc/php5/apache2/php.iniで、CentOSとかだと/etc/p...
2016.11.7 月
php.iniが訳あって直接書き込むことができない場合は、.htaccessに書く方法があります。しかし大元の本物php.ini内で、 php_value = On php_flag = On という風に設定する必要があります。これができないと.htaccessに設定しても無効になってしまいます。phpinfo()でも確認できるので、大元のphp.iniの設定を確認してみてください。レンタルサーバーによってはこの機能が使えるようになっているところもあります。ロリポだと大元のphp.iniもある程度GUIで設定可能です。 しかしこの設定で可能な範囲はlocal valueだけでMaster valueは大元のphp.iniの設定が必須になります。アプリの開発によってはMaster valueの...
2016.11.1 火
Web Site Exploreは日本語だし多機能だしとてもよいですが、軽くクロールしたい場合はseo-spiderがなかなかいいです。 https://www.screamingfrog.co.uk/seo-spider/ URLとタイトルなんかを取得することができます。とはいえFree版は500ページしかクロールしないのですが小規模なサイトの場合には大変重宝します。 エクスポートからCSVを作成することもできます。
2016.10.31 月
Linux CPU情報確認 /proc/cpuinfo サーバーのCPU情報は、/proc/cpuinfoで確認できます。だいたいの目安で数値自体はかなりいい加減らしいです。その上、何を書いているのかよくわかりません。見るところ3箇所程度。 cat /proc/cpuinfo とか vi /proc/cpuinfo とかで見ます。 processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 44 model name : Intel(R) Xeon(R) CPU X5650 @ 2.67GHz stepping : 2 cpu MHz : 2666.848 cache size : 12288 KB physical id : ...
2016.10.27 木
ちゃんと設定しているつもりなのに繋がらないという時のエラーメッセージ集です。 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! クライアント側の/Users/ユーザ名/.ssh/known_hostsに古い接続情報が残っている場合にこのエラーが出ます。「リモードホストのアイデンティファイする方法が変わりました」ということで、known_hostsの情報とホスト側の新しい情報を照らし合わせると合ってなかったということです。known_hosts内の接続しているホスト名行を削除するか、中身をすべて削除すると新しいフィンガープリントを発行して接続できるよ...
2016.10.26 水
OWASP Zed Attack Proxy (ZAP)はIPAが推奨してくれているセキュリティー診断ツールです。概要的なものはいろんなサイトに載っているのでそこを読んでもらうとして、ざっくりいうとWEBサイトの脆弱性診断をしてくれる無料の信頼できるソフトです。こちらでも使い方くわしく解説してくれております。 JAVAのダウンロードとインストール https://www.java.com/ja/download/ JavaSetup8u111.exeがおちてくるのでこれをインストール。(2016-10-26現在) OWASP ZAPのダウンロードとインストール https://code.google.com/archive/p/zaproxy/downloads ZAP_2.5.0_Wind...
2016.10.24 月
HDDを初期化します。中身が全部消えるのでご注意ください。今回はDebian6でやっています。Ubuntuのやり方はこちら参照ください。 まずはマウントされているHDDのパーテーションを確認 fdisk -l Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes 255 heads, 63 sectors/track, 243201 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes ...
2016.10.24 月
MovableTyleのサーバー移行方法はいろいろあるのだけど、往年のWeb屋さんはあまりCMSの面倒くささについてはさほど理解が深くないのでHTMLをスポンとFTPであげてしまえばハイお終いというぐらいなものだと思っています。にも関わらずCMSを使ったWEBサイトの移行はそうは簡単ではないです。以下MobaleTypeのサーバー移行の要件をまとめてました。 MTで生成したHTML,CSS,JSなどのファイルそのものの移動。 MT(CMS)ファイルの移動。(mt-config.cgiの設定変更) 移動元のMTからバックアップ、移動先のMTへ復元(記事とテンプレートの移動) SSL、ソシャルボタンなどの設定 1. MTで生成したHTML,CSS,JSなどのファイルそのものの移動 殆どの場合WE...
2016.10.24 月
思わず溜めすぎてしまったログがgzで80MB近い容量になっていて展開したら2GBあった。のだけど、このファイルをいろいろ加工しないといけなくて、いろいろ触る度にコマンドラインでさえ5分ぐらい返ってこないということになってしまったので、その時の作業のメモです。 # split -l 10000 sample.log とやったら、676ファイルに分割されてさらに出力できないというエラーが出た。いったい何行あるんだということで、仕方なく1GBで分割してみた。 # split -b 1000m sample.log -rw-r--r-- 1 root root 1048576000 Oct 31 18:59 xaa -rw-r--r-- 1 root root 1048576000 Oct 31 1...
2016.10.22 土
spfフラグの基本 Gmailをはじめ最近spfフラグなるものを設定しないとときとして迷惑メール扱いされたり、最悪の場合メールがどばないということになったりします。なのでこれからはメールサーバー設定の際は必須になる予感です。2015-05-25現在ではまだ「迷惑メール対策」ということになっているような気配です。 example.comでspfフラグを設定するにはTXTレコードに以下のように設定します。 example.jp. IN TXT "v=spf1 +ip4:12.34.56.678 -all" ネットワークアドレスで設定することも可能です。 example.jp. IN TXT "v=spf1 +ip4:192.168.100.0/24 -all" 冗長化などでメールサーバーが2つあ...
2016.10.10 月
Coccinellidaのダウンロード 以前にCoccinellidaを使ってみたら原因不明でつながらなかったのでしばらく使っていなかったのですが、久々に使うと普通に使えました。2019-04-18時点でCurrent Version – 0.7です。できるだけ新しいものを使った方がよいでしょう。至るところにダウンロードサイトがあるので、特に問題ないかと思います。 https://sourceforge.net/projects/coccinellida/files/ おそらく公式ページと思われるCoccinellidaのホームページ ダウンロードするとCoccinellida.appというアプリケーションファイルが出てくるので、とりあえずはアプリケーションフォルダに移動しておき...
2016.10.4 火
cronが設定されているかどうか確認する $ crontab -l で現在のcron設定が表示されます。cronはユーザー単位で設定されるので、スーパーユーザーの場合はrootがcronを設定することになりますので注意。設定が初めての場合、または何もない場合は、「no crontab for <ユーザー名>」と言われます。 $ crontab -l SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/lib/gems/1.8/bin RAILS_ENV=production # m h dom mon dow command */30 * * * * perl /h...
2016.9.21 水
SSHはリモートホストをコントロールする通信方法ですが、言ってみれば相手先のサーバーにログインしてしまうと相手先のサーバー内の環境において作業をするということで…つまりはlocal環境で作業していることになります。remotehostにログインすると自分自身はlocalhostになる。ややこしいですが、そういうことです。 しかし、こちら側(localhost)からあちら側(remotehost)をリモート側としてコントロールすることはできるか?というとできます。 例えばこんな例を考えてみてください。 MySQLをDumpする。 tarでアーカイブする。 SCPで転送する。 tarを展開する。 restoreする。 この一連の動作をcronで行おうとするとき、1〜3はlocalhost側で作業...
2016.9.20 火
SSLのインストールが完了したら、 シマンテック・インストールチェッカー ジオトラスト・インストールチェッカー Thawte・インストールチェッカー COMODO・インストールチェッカー
2016.9.20 火
file_`date "+%Y%m%d_%H%M%S"`.txt file_20140409_111255.txtというファイルができます。私はたいていcronでバックアップファイルを作るときなんかに利用してます。 mysqldump -u user -h localhost -pPASSWORD sample_db sample_tbl > /tmp/dumpfile_`date "+%Y%m%d_%H%M%S"`.sql とかいうのもいいです。 dateコマンドにはフォーマットがいろいろあるでいろいろ使えます。 文字列 指定した文字列を表示する %H 時 (00〜23) %I 時 (01〜12) %k 時 ( 0〜23) %l 時 ( 1〜12) %M 分 (00〜59) %p A...
2016.9.14 水
yumのアップデート 有無を言わさずyumのアップデートをしておきましょう。グローバルIPを削除するとできなくなってしまうので今のうちに。 yum -y update ホストの設定 とはいえ初期段階では儀式的なものになりますが、設定しておいた方がよいのです。HOSTは複数設定できるので必要なものはすべて設定しておくとよいです。 グローバルIPにはドメインなど。プライベートIPには実質的なホスト名などを設定します。 (vi /etc/hosts) 127.0.0.1 localhost 192.168.1.2 saba 120.340.560.xxx saba.omnioo.com プロンプトに表示されるユーザー名 ssh接続するとデフォルトのユーザー(たぶんプライベートIP)が表示されるので...
2016.9.14 水
LB経由でグローバルIPを取得してApacheのログを残す X-Cluster-Client-Ip IIJのLB+FWでは{X-Cluster-Client-Ip}というカスタム変数からグローバルIPを取得できます。この設定はどのLBにもデフォルトで設定されているようです。 Apacheのログフォーマットを修正する デフォルトのcombinedで設定されているログフォーマットをコメントアウト(または削除)して以下のフォーマットを入れてあげます。{X-Cluster-Client-Ip}で、LBを経由してグローバルIPアドレスを取得します。 LogFormat "%{X-Cluster-Client-Ip}i %A %h %l %u %t \"%r\" %>s %b \"%{Refere...
2016.9.8 木
http://qiita.com/megu_ma/items/bb902740ee7de9ddd102
2016.9.7 水
というこのタイトルはちょっと抽象度に欠けていて、本来は任意のプリケーションを任意の拡張子で実行するというものです。 index.aspxにアクセスするとこのファイルにかかれているphpが実行されるというものです。 .htaccessかhttpd.confみたいなファイルに以下を書きます。 AddHandler application/x-httpd-php .php .aspx 拡張子がhtmlの方が検索順位が有利になる的な話がそうとう昔にありましたが、そのときによくやっていた感じです。
2016.9.6 火
ネットワーク負荷・サーバー負荷に関してはかなり専門的分野だったり、エンジニアさん専門のコテコテ技術だったりするのでありまして、Web制作をしているクリエイターといえどもレンタルサーバーなんかの場合だと負荷分散っていってもゴリゴリと専門的な技術でもってカスタマイズする機会は殆どできないわけで、結局これらの技術は一般的に必要に迫られることは殆どないわけですが、ここではレンタルサーバーでも何とか負荷分散できる技術を二つ紹介します。前提としては.htaccessファイルが使えることと、独自ドメインの設定をしていて、DNSサーバーでゾーンファイルなどの設定変更が行えるというのが前提になります。ゾーンファイルを直接編集できなくても一部だけWEBページ上から編集可能であったりすることでもできたり、条件はい...
2016.9.5 月
Macの場合はTranmitなどを使っているとS3の接続は簡単にできるのですが、Windowsの場合は別途クライアントソフトを用意しないとダメです。というか何かもっと別の方法ありましたら教えて下さい。S3のクライアントソフトは以下のようなものがあります。 Gladinet DragonDisk CloudBerry Cyberduck CloudBerryのダウンロードと設定 とりあえずCloudBerryがよさそうなので使ってみます。無償版と有償版がありますが今のところ無償版で充分だと思います。 http://www.cloudberrylab.com/download-thanks.aspx?prod=cbes3free ダウンロードしたらActiveCodeなるものがブラウザーに表示さ...
2016.8.20 土
1秒間に15万アクセスの事案発生 PVから計算する というとバルス祭りよりも大きい爆弾的瞬間アクセス数になります。瞬間アクセス数でいうとLine広告もすごい。瞬間アクセス数万規模になります。たかがそこらのHomeページがそういったアクセス数を叩き出すことはまずありえないというのが実情で、実際はウソでした。Googleアナリティクスのリアルタイム計測で100,000以上の数字が見えている!っていうだけで、特にそれ以外になにものでもないというわけでした。 よくよくエンジニアに聞いてみると、 100,000PV/h たいしたこっちゃない。 なので、一秒間の瞬間風速を計算すると、 ≒ 1,666/m ≒ 27/s 1秒間のアクセス数は27です。普通です。ロリポップでもさばける。(かも。)webサーバ...
2016.8.18 木
SSH経由でscpコマンドを実行するには、ログインしてscpを実行する方法と、SSHの鍵にパスワードをかけないで自動的にログインしてscpを実行する方法があります。前者は作業者が手動で行う時、またはセキュリティー上そうしなければならない時に行います。後者はscpでファイルを転送するホストがLAN内にあるとかセキュリティー上パスワードを設定しなくてもいい場合にcronなどで自動的にバックアップを行う時などに便利です。いろいろ使いどころはあるのでいずれにしろ両方覚えておいた方がいいです。 前者はscpのコピー元からコピー先のホストにSSHでログインできる必要があります。公開鍵の設定などを事前に済ませておかなくてはなりません。SSHの接続の準備をしておきます。後者は同様に鍵の設定をしますが、鍵生成...
2016.8.18 木
圧縮とかアーカイブとか紛らわしい言葉がいっぱいありまして、圧縮=アーカイブみたいなことに世間ではなっていますが、本来は全然違います。圧縮はアーカイブでもないし、アーカイブは圧縮ではありません。それはなぜかというと、アーカイブはバラバラのファイルを1つの書庫にまとめることをさしています。これは、もうただ単に1つにまとめることで、複数のバラバラのファイルを1つにして持ち運びしやすくするだけのものです。開発中のログ関連を1つにまとめておいて、後からデバックしやすくするとか。アーカイブされたものは後からバラバラにすることもできます。 圧縮は、その名の通り圧縮してファイルサイズを本当に小さくしてしまいます。これはアーカイブとは全然関係ありません。1つのファイルを対象にもできるし、複数のファイルを対象に...
2016.8.15 月
WordPressとかSymfonyは軒並みルーティングしてしまうので普通にファイルを置こうと思うとちょっと困るのでそういうときは特定のディレクトリだけRewriteの除外をするのがよいです。 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !^/poipoi/(.*)$ ←これ追加 RewriteRule . /in...
2016.8.15 月
mod rewriteは結構奥が深いです。通所のリダイレクト処理であるならばそれほどでもないのですが、深まれば底なしです。mod rewriteが通常のリダイレクトと違うのはApacheサイドの作業なのでURLを保持したままリダイレクトするということです。実際のファイルの階層構造では行ったり来たり、ジャンプしたり、端折ったり、無視したり…といろいろやっていますが、URL上では酷くクールに見えるというわけです。 mod rewriteの機能の特徴的な部分は、 あたかもマルチドメイン的な振る舞いをする。(あたかもではなく、そのままマルチドメインになるわけですが…) 動的なファイルをHTMLファイルなどに見せかけることができる。 ファイルやディレクトリ以外でもApacheの...
2016.8.15 月
ポートで判別する ポート80で来た場合はhttpsにリダイレクト RewriteEngine on RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] ポート8443に来た場合はhttpにリダイレクト RewriteEngine on RewriteCond %{SERVER_PORT} 8443 RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L] SSLアクセラレーター(LB配下の場合とか) LBなどで冗長化されている場合は、リダイレクトループになったりしてかなりひどい目に合いました。 LBの機能に...
2016.8.9 火
こういう形式でURLをつくってあげると、ユーザー名、パスワードを入力しなくとも認証できます。 URL: http://example.com/hoge/huga/ username: USERNAME password: PASSOWRD の場合、 http://USERNAME:PASSOWRD@example.com/hoge/huga/ とはいえ、これ平文で流れるのでSSL配下でやった方がいいですね。ほんとうは。 いろいろ使いどころはあると思うのですが、認証のゆるい画像の直リン防止やそういうのかな。
2016.8.4 木
findでファイル名を検索 findはファイル名を検索します。ほんとにごく頻繁に使う便利なコマンドです。ディレクトリとファイル名を指定して検索しますが、例によってfind / -name “*”こういうコマンドはナンセンスです。検索したいディレクトリに移動してその下位ディレクトリを再帰的に検索するのかベターかと思います。 $ find . -name "*.html" ファイル数を数える ファイル数を数えるコマンドとかあったかもわからないけど、面倒なので書きだして行数数える。diffとる時なんかはこうやって書き出して比べてみるといいです。余分なファイルとか足りないファイルがあったりなかったり。 $ find . -name "*.html" >> html...