ブックマーク / dqn.sakusakutto.jp (9)

  • PHP5.6からPHP7にアップグレードして実際にはまった点9個 · DQNEO日記

    仕事で使っているPHPアプリケーションをPHP7 beta1で動かしてみたらそのままでは動きませんでした。 私が実際にはまった点を紹介します。 なお、PHP7の変更点についてはhnwさんの記事に詳しく網羅されているのでご一読ください。 PHP7で変わること - hnwの日記 Apacheのモジュール名が変わっていた ApacheにPHPを組み込むためのモジュール(俗にいうmod_php)のモジュール名・ファイル名が変更になっていました。 LoadModule php5_module modules/libphp5.so ↓ LoadModule php7_module modules/libphp7.so memcache extensionがインストールできない PHPからMemcachedを使うためのExtensionには2つあります。 memcache memcached memca

    PHP5.6からPHP7にアップグレードして実際にはまった点9個 · DQNEO日記
    mcddx30
    mcddx30 2016/04/29
  • あなたのApache設定ファイルを劇的に読みやすく改善する12の方法 · DQNEO日記

    はじめに Apacheの設定ファイル、ちゃんと書けますか?一つ一つ意味を理解していますか? http.confを開いた瞬間に「うっ頭が頭痛」になったことはないでしょうか? yumやaptでApacheをインストールして、設定ファイルをちょろっと編集しただけでお茶を濁したことはないでしょうか? でもいつまでもその状態ではいけません。そろそろ気で勉強して無駄のない設定ファイルを書くときが来たのです。 2015年のWebサーバ界におけるApacheの立ち位置についておさらい 2015年現在、静的コンテンツの配信やリバースプロキシの役割はその用途に特化したWebサーバを使うのが主流になっています。具体的にはNginxがデファクトスタンダートになっています。 Apacheにもイベント駆動型で動くmpm eventというモジュールがあり、これを使えば高速に多数の接続をさばくことができます。 人間とウ

    mcddx30
    mcddx30 2016/03/19
  • CentOS6でRPMforge、Remi、EPELをyumレポジトリに追加する方法 · DQNEO日記

    なお、記事はx86_64(64bit)環境を前提にしています。 レポジトリファイルをダウンロード まずはレポジトリファイルをダウンロードしましょう。 実はここが鬼門で、レポジトリのURLやファイル名はころころ変わります。(404 not foundなどのエラーが出たりします) ダウンロードできない場合はあわてずにレポジトリファイルを自力で探せばすぐ見つかりますので、じっくり見てみてください。 epel wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm ※上記ファイルが存在しない場合は、下記URLからepel-releaseで始まるファイルを探してダウンロードしてください。 http://dl.fedoraproject.org/pub/epel/6/x86_64/ remi wge

    CentOS6でRPMforge、Remi、EPELをyumレポジトリに追加する方法 · DQNEO日記
    mcddx30
    mcddx30 2015/02/25
    byobuを使いたいときにepel入れる必要があるので
  • Git pullを使うべきでない3つの理由 · DQNEO日記

    git pullは使わなくてもよい 初心者はgit pullを使わない方がよい 我々ソフトウェアエンジニアは勉強が大好きなので、コマンドがあるとそれを勉強して使いこなさなければいけないと考えがちですが、ときには「覚えない、使わない」という発想も大事なのではないでしょうか。 以下にその理由をのべます。 git pullは使う必要がない git pullを使わないとできないこと、というのはありません。 使わなくても全然困りません。 git fetchとgit mergeとgit rebaseだけですべての用は足せます。 私はチーム開発でGit格的に使い始めて数か月経ちますが、普段の作業でgit pullを使ったことはないしそれで困ったこともありません。 git pullを使わなければ、余計な落とし穴に落ちない git pullには落とし穴があります。 初心者はたいていその穴に落ちます。 「

    Git pullを使うべきでない3つの理由 · DQNEO日記
    mcddx30
    mcddx30 2014/06/23
  • いい加減、>/dev/null 2>&1と書くのをやめたらどうか (追記あり) · DQNEO日記

    はじめに これから書く内容は、シェルスクリプトをばりばり書いている現場(サーバエンジニアインフラエンジニア)向けのものではありません。 年に数回crontabをいじるような現場(サーバに詳しくないアプリケーションプログラマが多数を占めるような現場とか、Webデザイナや非プログラマがcrontabをおそるおそるいじったりするような現場)を想定しています。 >/dev/null 2>&1 の問題点 この記法の問題点は、「覚えにくい、間違えやすい、間違ってても気づかない」ということです。 初心者を迷わせる要素がこんなにあります。 >/dev/nullは先か後か 1と2はどちらが先か &はどこに書くのか よって下記のように多種多様なミスが起こり得ます。 2>&1 >/dev/null >/dev/null 1>&2 >/dev/null 2>1& >/dev/null &2>1 これをぱっと見て

    いい加減、>/dev/null 2>&1と書くのをやめたらどうか (追記あり) · DQNEO日記
    mcddx30
    mcddx30 2014/06/23
  • cron力をつけよう!全てのcrontab入門者に贈る9個のテクニック · DQNEO日記

    なお、時間設定方法や書式についてはここでは解説しません。 拙作「くろんメーカ」をお使いください。 くろんメーカ - crontab用のコマンドを自動で生成します。 そのままコピペしてお使いください。 crontab -e で直接編集しない 有名な話ですが、crontab -r とやってしまうと全てが一瞬で消え去ります。 まさにバルス! 間違えて crontab -r してしまい、crontab をふっとばしてしまった。つか、隣同士にある -e と -r で編集と削除とか、酷いよ><。。。 crontab -r を安全にする - antipop 必ずローカルファイルに設定を書いたうえで、それを反映させるようにしましょう。 $ crontab -l > ~/crontab # 現在の設定をバックアップ $ vi ~/crontab # ローカルファイルを編集 $ crontab < ~/cro

    cron力をつけよう!全てのcrontab入門者に贈る9個のテクニック · DQNEO日記
    mcddx30
    mcddx30 2014/06/15
  • ソースコード20万行の大規模サイトのPHPを5.1から5.4に上げるためにやったことまとめ · DQNEO日記

    所要期間 着手しはじめたのが2010年12月ごろ、完了したのが2013年9月だったので何と3年近くかかったことになります。 長引いた原因は、日々の機能追加や運用をしながら孤独に片手間で細々とやってたからです。(単純に人手不足とも言う) また、PHPバージョンアップと同時にCentOSサーバを5から6にあげることにしたのでサーバ再構築のための工数も含まれています。 後半は仕事仲間が増えてその人が専業でバージョンアップ作業をやってくれたのでだいぶ楽できました。 それと専任のテスターさんたちにも参加していただいたので番で大きなトラブルなく完了することができました。 感謝感謝です。 サーバ入れ替え作業が終わってPHP5.1の入った古いサーバを削除したときの、まさに「技術的負債」を返済し終わった瞬間の、あのスッキリ感、もう言葉にはできません。 終わってみてこの件に関するRedmineのチケットを数

    ソースコード20万行の大規模サイトのPHPを5.1から5.4に上げるためにやったことまとめ · DQNEO日記
    mcddx30
    mcddx30 2013/11/18
  • PHP5.3 + ImagickでSegmentation faultが出たときの対処法 · DQNEO起業日記

    CentOS 6.3, PHP5.3な環境で、Imagickを使ったらSegmentation faultが出ました。 何とか解決できたので対処法を紹介します。 対処法その1 setResourceLimit()を使ってスレッド数を1に制限する。 $img = new Imagick(); $img->setResourceLimit(6, 1); // 6はTHREAD_LIMITを意味するマジックナンバーだそうです。 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=652960 対処法その2 環境変数MAGICK_THREAD_LIMITを1にする。 例えばコマンドラインから実行するなら、 $ export MAGICK_THREAD_LIMIT=1 ; php test.php https://bugs.php.net/bug.php

    PHP5.3 + ImagickでSegmentation faultが出たときの対処法 · DQNEO起業日記
    mcddx30
    mcddx30 2013/09/05
  • [Emacs]正規表現置換でマッチした文字列を置換時に再利用する方法 · DQNEO日記

    os.ubuntu os.debian os.centos などを、 os.linux.ubuntu os.linux.debian os.linux.centos に一発で置換したいときは、どのようにしますか? replace-regexpを使うとできます。 M-x replace-regexp RET os.\([a-z]+\) RET os.linux.\1 \(~\)で囲ったものを、後で\1で参照することができます。 応用編 $this->af->setApp('aa', $x->hoge()); $this->af->setApp('bb', $y->fuga()); $this->af->setApp('cc', $z->piyo()); ↑このようなメソッド呼び出しを、↓のような連想配列の代入に書き換えたい $ary['aa'] = $x->hoge(); $ary['bb'

    mcddx30
    mcddx30 2013/08/28
    emacsで正規表現置換する際に一部を保持したまま変更したりする方法
  • 1