Webサイトの運営ノウハウ

サラトガIT日記について

主に Web アプリ開発における「ソフトウエア開発」「サーバ構築(インフラ)」の Tips や設定手順など、過去に開発現場で実際にハマったことや備忘録をまとめています。現在は、多くのサイトで情報共有が行われていますが、当サイトの記事も少しでも役立てばと思います。

これまでは PHP と MySQL を使った Web アプリケーション開発やソーシャルゲーム開発の仕事が主でしたが、サイトへのアクセス誘引など、SEO やマーケティング部分に関連したノウハウも蓄積していけたらと思います。

サイトに対するご意見などございましたら「お問い合わせ」からお願いします。

オススメ記事

最新の投稿やよく見られているのオススメ記事一覧です。

AmazonLinuxでEC2起動時にスワップ領域の割り当てに失敗

EC2 起動時のスワップ領域割り当てですが、これまでは以下の記事を参考に、/etc/rc.local を使って行っていました。 ・ Amazon EC2(Linux)のswap領域ベストプラクティス しかし、最近になって、EC2 イン...

>>記事を確認する

【5分でできる】Laravel5.4から5.5へバージョンアップ

Laravel5.5 がついにリリースされたので、5.4 ベースで作っていたものをバージョンアップしてみました。 composer.json の以下の部分を 5.5.* に変更するだけですが、依存関係のパッケージも問題なくアップデ...

>>記事を確認する

【30分でできる】AWSのEC2にgoofysを入れてS3をマウント

過去に携わったプロジェクトで、S3FS の通信状態が悪い時があるので、アプリ側のプログラムを AWS SDK を使ったものに置き換えていこうという施策がありました。 S3FS の導入には関わっていなかったので、導...

>>記事を確認する

【30分でできる】ぐるなびAPIで飲食店の店舗情報取得

過去に作成した「ぐるなびAPI」のプログラムや、ぐるなびの Web Service が新しくなったこともあり、API からの情報取得プログラムを書き換えてみました。 以前の記事は下記になります。 ・ ぐるなびAPIで...

>>記事を確認する

NginxのFastCGIキャッシュで白い画面がキャッシュされる

以前から、トップページにアクセスすると、レスポンスステータスは 200 で返ってくるのに、画面に何も表示されない現象が稀に見受けられたので調査してみました。 さすがに機会損失にも繋がるということで、...

>>記事を確認する

Laravel5.4の認証ユーザーのパスワードハッシュについて

Laravel で用意されている認証モジュールを利用する際、ユーザーモデル(User.php)経由で登録されるパスワードのハッシュ方法について調べてみました。 Laravel 上ではパスワード文字列を bcrypt() のヘルパー...

>>記事を確認する

Laravel5.4のコントローラコンストラクタでAuth::user()が取得できない

Laravel5.4 で認証を通したアクセスに対して、コントローラのコンストラクタでユーザモデルの値を取得しようと思ったら、なぜか Auth::user() の値が取得できなくて悩みました。 public function __construc...

>>記事を確認する

NginxのHSTS(HTTP Strict-Transport-Security)の設定

「Let's Encrypt」のおかげで、全サイト SSL 化していますが、これまで nginx の設定では、http のアクセスがあった場合に https に 301 リダイレクトさせていました。 この場合、Googlebot に http のアク...

>>記事を確認する

GoogleMapのAPIキーの認証情報にリファラURL設定

昔は API キーを指定することで、JavaScript で GoogleMap が表示できていましたが、何年か前に、そのキーに対して認証情報の追加が推奨されました。 新規で発行する場合は必須になっているかもしれませんが...

>>記事を確認する

【30分でできる】AmazonLinuxでApache2.4+php7.1+Laravel5.5

先日、「 VagrantでCentOS6.9のイメージを使う 」の通り、CentOS6.9 には Apache2.4 と PHP7.1 で Laravel のフレームワークが使える環境を構築しました。 ただ、将来的には AWS かつ Amazon Linux 上で動か...

>>記事を確認する

スキル備忘録

大半が Web アプリケーション開発で、業務系アプリはそれほど経験はないです。

プログラム言語

AWS で LAMP 環境構築(RDS, ElastiCacheは使う)して、バッチはシェルでってパターンが好きです。仕事で使った言語を、携わった順に残しておきます。

  • Java(Struts, Spring)
  • JavaScript(jQuery)
  • PHP
  • Shell
  • Perl
  • HTML
  • .NET C#
  • ASP.NET
  • .NET VB
  • VB6
  • PowerBuilder
  • PL/SQL
  • VBA

データベース(DB)

RDB は定番どころは一通り使いましたが、KVS も含めて残しておきます。多くの BtoC 向けの Web サービスは、ソーシャルゲームも含めて MySQL を使っている印象が大きいですが、大手 SIer や業務系システムとなると、大した規模でもないのに営業的(無駄なパッケージ使って見積もり上乗せ?)な都合もあり Oracle(Javaもセットで)を使うことが多い印象です。(個人的な印象です)

以前、100 万件を超える商品の検索(全文検索)で Elasticsearch を使ったことがあるのですが、RDB に比べると爆速ですね。RDS とメモリキャッシュ系をうまく併用していくと、リソース的にも速度的にもクラウドサービスの予算も節約できそうです。まあ、単発な短期間キャンペーンサイトとかであれば、高パフォーマンスなインスタンスで乗り切る方法もありですが。

  • SQL Server
  • Oracle
  • MySQL
  • PostgreSQL
  • Memcache
  • Redis
  • Elasticsearch

サーバ(OS)

サーバ OS はすっかり Linux 一色になりましたが、どれも慣れですね。社会人 1 年目の時は、Windows Server を使ったネットワーク管理者になるのが目標でしたが、環境が変わると(視野が広がると)、Windows サーバが使いたくなくなるものですね。

Active Directory の設計とか、拠点間のドメインの信頼関係とか、めっちゃ苦労した記憶だけは残っています。会社では誰もわからなくて、問題がなかなか解決せず、あの頃はまだネット上にもそんなに情報もなかったので、泣く泣く実費で「eラーニング」を契約した記憶があります。全く役に立たなかったですけどね(笑)

  • Windows Server2000
  • Windows Server2003
  • Amazon Linux
  • CentOS
  • RedHat Linux
  • Debian
  • Fedora
  • openSUSE
  • Ubuntu
  • FreeBSD
  • Solaris

サラトガ(Saratoga)とは

よく、「サラトガって何ですか」っと聞かれることがありますが、ニューヨークにある「サラトガスプリング」のようなアメリカの都市でもなければ、ノンアルコールカクテルの「サラトガクーラー」でもなく、昔好きだった馬の名前が由来です。アメリカに「サラトガ競馬場」がありますが、この競馬場とは関係ないです。あと、空母とか「艦これ」とか声優とか、最近はサラトガという言葉も広くなって何かわかんないですね。

「サラトガビューティ」という馬が好きで、いつか「サラトガビューティ」の仔に出資してみたいなっと思っていたのですが、共同出資のクラブで募集される気配は今のところなさそうです。そう言えば、「函館3歳S(現在の函館2歳S)」で 2 着になった時の勝ち馬「アグネスワールド」ってどこにいったんだろう。種牡馬になったけど病気だったのかな。

サラブレッドファーム 第二牧場

インターネットに出会ったのは大学に入学した直後。まだ 2000 年問題が話題になる前でしたし、ネットも大学では LAN 接続だったものの、一般家庭からはモデム(36kbpsくらだったかな)でダイアルアップという、今ではとても考えられないような世界でした。

インターネットプロバイダへ支払う料金の他に、NTT に支払う通信代(電話代)が別途あったので一人暮らしの大学生には辛く、夜間だけ掛け放題の通常テレホーダイに加入して、夜な夜なインターネットを楽しんでいたのが今でも懐かしく思えます。夜更かしして、深夜に菓子パン食べたりしていたせいで、いつの間にか 5kg くらい太ったという苦い思い出もあります。

さて、そんなインターネットにハマっていた時代ですが、まだ今のようにサイトやサービスがものすごく多く存在したわけでもなく、とりあえず Yahoo からどこかのサイトへアクセスしたり、検索したりする感じでした。ただ、自分でもホームページを作ってみたいなと思い、HTML の本を買ってきて夢中になっていたのが始まりでした。

Yahoo の検索のような cgi はどうやって作るのだろうと思って、ソースを真似てみたけど、当然静的な html のページで動作するわけもなく、cgi なんて自分には作れないのだろうなっと諦めていました。当時はネット上にも cgi のプログラミングを詳しく解説するようなサイトも少なく、カウンターや掲示板などの cgi のプログラムを提供しているサイトがあったくらいです。

結果的に、大学やプロバイダの自分のサーバ領域に、cgi のプログラムを置いて実行できないと動作しないので、最終的に諦めてしまったのですが、今となっては勿体ないことをしたなって思います。cgi が実行できるレンタルサーバの契約と、perl を覚えるくらいの時間は十分あったのになぁ。

でも、自分のホームページには 1 日 100 人くらいの人が見に来てくれていて、週末は競馬の「複勝大会」などを開催して少し盛り上がっていました。競馬の大きなサイトでは「The Derby Square(ダービースクエア)」など、システム化された大会を開催されているところもあって、うらやましく思っていたのですが、このダービースクエアはホリエモンが作っていたとはビックリです。

同じ競馬のサイトを作っていた人とのネット上での交流も増えましたが、あの頃はメールや掲示板、チャット、メッセンジャー(ICQとか)が主流だったので、今のような SNS があれば、繋がりも途絶えてなかったかもしれません。関西の大学生だった「とくさん」や名古屋で喫茶店をしていた「マーヘーさん」、三重でシステムエンジニアをしていた憧れの「とねっこさん」は元気にしているのでしょうか。「とねっこさん」には北海道の牧場見学の時の写真をたくさん送ってくれて、そのお礼ができていないので、一度は会ってみたかったです。

社会人デビューと転職

時代は移って 2001 年、晴れて IT 業界に就職し、まともにプログラミングをすることに。同期は 100 人くらいいたけど、プログラム経験者なんて当時は少数でした。

入社前にノート PC が貸与されて、VB6.0 の演習課題とアルゴリズムの問題が与えられましたが、今思えば入社前から仕事を与えられていたのかと理不尽さを感じながらも、時間が経ってしまえばいい思い出だったりもします。今では接点もないけど、同期ってやっぱりいいなっと思い返すことも多いです。

さて、入社して新人研修が終わって最初の配属先は Java と VB を使った業務システムでした。Java の SDK は当時は 1.2 で、Windows98 の時代でした。Web 系のシステムが流行り始めていた頃ですが、まだまだクライアント向けのシステム開発が多かった時代です。Java も当時は DOS プロンプトで javac コマンド打ってビルドするというシンプルな形でしたが、この頃は ant とか maven とかあったのかどうかも知らない時代。

そういえば、新人研修時代は外部へのネットワーク環境が整っていない部屋に閉じ込められていたこともあり、ひたすら Java の書籍から該当するパターンを探したり机上デバッグの毎日だったことを覚えています。今でこそググれと言われる時代ですが、あの時は非効率だったなっとつくづく思います。あの放置プレイが研修として良かったのか悪かったのか、私はたまたま受託開発の社内案件にジョインしましたが、出向中心の会社だとそこまで社内教育なんてないか。

朝 9 時から終電まで 1 ヶ月連続出勤とか、残業したらしたで人件費を考えろと怒られたり、何かと理不尽なことも多かったですが、今でも最寄り駅を通過する度に懐かしく思える、そんな社会人デビューの会社でした。その後、ベンチャーを転々としたこともあり、大きく会社や仕事に対する価値観も自分の中で変わってしまった感じがしますが、ホリエモンの本を読む度に、会社に依存しなくて良かったと思います。