まいける's Tech Blog

LAMP関係のメモなどを不定期に掲載します

既存の Laravel プロジェクトに Closure Table を導入する

最初からツリー構造のデータを扱うことがわかっていれば、 franzose/closure-table を導入して、こちらの記事( Laravel|Closure Tableで階層の深さが動的なカテゴリ構造を扱う - わくわくBank )などを参考にしながら設定すればよいのですが、後からコメン…

Laravel のセッションを非 Laravel のプロジェクトと共有する

基本的な手順は kojirockさんのこちらの記事 を参考にさせていただきました。ありがとうございます。 1. 必要なライブラリをインストール $ composer require illuminate/encryption 2. Laravel用sessionテーブル作成 3. Laravel側session設定 Laravel側の設…

Laravel クエリビルダの whereRaw メソッドでプレースホルダを使う

Laravel 5.5 のドキュメントには記載があるのに(日本語版、英語版)、それ以前のドキュメントには、なぜか記載がないのですが、クエリビルダの whereRaw メソッドでプレースホルダを使うときは、名前付きプレースホルダではなく、疑問符プレースホルダを使…

Smarty3 x Bootstrap3 用のページャープラグインを作ってみた

PHP

都度都度ページャー作るのも面倒なので、作ってみました。 まずは、プラグイン本体(function.paging.php)。Smartyのプラグインディレクトリに保存してください。

APC導入後、Unable to allocate memory for pool エラーが出る場合の対処法

PHP

Webエンジニアが知っておきたいインフラの基本 ~インフラの設計から構成、監視、チューニングまで~を読んで、遅まきながら管理しているサーバに APC を導入してみました。体感的にも処理が早くなっていい感じだったのですが、しばらくしてログに [xx-Jun-201…

Gmail から特定の条件を満たすメールを抽出して RSS 化する

PHP

ちょっとした必要に迫られて作ってみました。Gmail にはもともと、特定のラベルが付いたメールを ATOM で出力する機能が付いているのですが(このあたりの記事を参照)、HTTP 認証を使っているので、Feedly では利用することができません。ということで、Gma…

中国方面からの Bittorrent 攻撃を防ぐ

運用しているサーバ宛に xxx.xxx.xxx.xxx - - [18/May/2015:03:18:27 +0900] "GET /announce/?info_hash=(以下略) HTTP/1.0" 404 371 "-" "Bittorrent"こんな感じのログが大量に残されていました。見る人が見ればわかるように、Bittrorrent によるアクセス…

PHP で Google Analytics API(Service accounts版)

PHP

Google APIs Client Library for PHP(v1.0.6beta)を使って Google Analytics API(v3) からデータを取得する方法について覚え書き。今回はサーバサイドでの処理を想定して、OAuth のクライアント種別を Service accounts にしています。ゴールは、このサンプ…

マルチドメインでSSLを1ドメインだけで利用しているときの注意ポイント

複数のドメインを1つのIPアドレスで運用し、その中の1ドメインだけでSSLを使っているケースって多いと思うのですが、そのような場合に、SSLのデフォルト設定をしておかないと、大変なことになるというお話です。 名前ベースのバーチャルホストを設定している…

Zend ServerをUbuntu12.04にインストールしたときの覚え書き

PHP

インストール終了後に update-alternatives --install /usr/bin/php php /usr/local/zend/bin/php 1 update-alternatives --config php でインストールされた新しいPHPを標準のPHPにしておくとコマンドライン実行時に便利 pearのパッケージも再インストール…

MySQLのNULL値と空文字の扱いについて

覚え書き的にメモ。データ型はVARCHARの場合です。 SELECT * FROM tbl_name WHERE str = ''; →空文字のみがヒット SELECT * FROM tbl_name WHERE str != ''; →空文字とNULL値が除外される SELECT * FROM tbl_name WHERE str IS NULL; →NULL値のみがヒット SE…

Google Maps API v3 で全てのマーカーが表示されるようにズームレベルを調整する方法

v2 では、 getBoundsZoomLevel を使えばよかったのですが、v3 ではなくなってしまいました。仕方がないので、この機能を使う部分だけは v2 のままでいたのですが、いつの間にか代替機能が追加されていました(この機能に気づく前に、Google Maps API V3ではg…

PHP で PDF のサムネイル画像を作成する

PHP

必要に迫られたので、ちょっと調べてみたところ、意外に簡単。前提として、imagick モジュールが必要となるので、このあたりを見ながらインストールを済ませておいてください。 それで、その方法ですが setImageFormat("pn…

意図したエントリー以外にトラックバックが投げられてしまう問題を解決する

MT

MTで、トラックバックURLで指定されている記事番号(例:1234)にトラックバックを投げているにもかかわらず、別の記事(例:1235)にトラックバックが登録されてしまう場合、mt_trackback テーブルの trackback_id と trackback_entry_id が整合していない…

Automator を使ってフォルダ内の aif ファイルを lame で mp3 にエンコードする

Mac

下の記事を発展させて、フォルダ内の aif ファイルをまとめてエンコードすることに成功したので、その記録。 前提として、lame の場所は、/Applications/iTunes-LAME.app/Contents/Resources/lame にあるとします。 次に、Automator を組んでいきます。使用…

Automator を使って lame エンコードを自動化する

Mac

やりたいことはMacにLAMEをインストールしてWAV、AIFFファイルをMP3にお気楽変換と同じなんだけど、自分の環境ではそのままではうまくいかなかったので、その記録。 lame のソースを取得して、コンパイルするところまでは、上記のサイトと同じ。ただ、上記の…

メールアドレスのドメイン名でソートする(MySQL)

メールアドレスのドメイン名でソートするSQLと同じことが MySQL でできないものかと考えていたのですが、SUBSTRING_INDEX 関数を使えば可能らしい。 SELECT SUBSTRING_INDEX([column],'@',-1) AS domain, count([column]) AS count FROM [table_name] WHERE …

PEAR Image_Graph 覚え書き(2)

PHP

前回のエントリーに引き続き、PEAR Image_Graph に関する覚え書き。アクセス解析を見ていると、Image_Graph で困っている人が多いみたいなので。 日別の推移グラフのように、X軸に数値以外のデータを置くことって、少なくないと思うのですが、項目が増えてく…

PEAR Image_Graph 覚え書き

PHP

このところ、仕事で PEAR の Image_Graph を使う機会が多かったので、覚え書き。 今回やりたかったことは、 DBとの連携 ランキングレポートのように、Y軸の上にいくに従って値が小さくなる グラフをファイルとして出力する グラフに背景を入れる グラフの線…