ペチパーノート

WEB開発系Tipsブログです。

オブジェクトのプロパティ名に変数で参照する方法

'taro', 'height' => 175, 'weight' => 70, 'family' => (object) [ 'sister01' => 'hanako', 'sister02' => 'junko', ] ]; var_dump($human); /* object(stdClass)#2 (4) { ["name"]=> string(4) "taro" ["height"]=> int(175) ["weight"]=> int(70) ["fam…

Linuxにログイン時に独自のメッセージを表示する

/etc/motdを設定するとログイン時に表示してくれます。 環境情報や注意書きなど記載し、作業ミスを軽減しましょう。 これおもしろいです。ドラクエのキャラを表示 https://github.com/dot-motd/dragon-quest # はぐれメタルを表示する設定コマンド $ curl -s…

Apacheアクセスログ Tips

区切り文字で区切って表示 (ex. 1,2個目だけ表示) # cut -d ' ' -f1,2 access_log 重複を排除して出現数を表示 エラーの種類と発生数を知りたいときなど (普通にuniqだけでやると発生時間が重複しないのできない。cutで日付以外を切り出してからuniqする) # …

SSL証明書が正しい組み合わせで設定されているか確認

正しく設定されていないと、Webサーバ再起動でエラーになってしまう。 あらかじめ、設定した鍵、証明書、CSRの確認しておくとよい。 証明書 # openssl x509 -noout -modulus -in {hoge}.crt | openssl md5 1eca7c0b43173a37c4c9e6bf023a8fc3 秘密鍵 # openss…

sysstat(sar)の使用例

22日の11時50分~13時10分のロードアベレージ $ sar -q -s 11:50:00 -e 13:20:00 -f /var/log/sa/sa22 11:50:01 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 12:00:01 5 435 0.72 0.74 0.69 12:10:02 4 434 1.22 1.00 0.84 12:20:01 14 438 0.77 0.68 0.73 1…

nkfでテキストファイルの文字コードを変換する

nkf -w —overwrite [ファイル名] -w UTF8へ変換 -s Shift-JISへ変換

vmstatの見方

忘れるので忘備録。 $ vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 177316 45408 617104 0 0 293 1274 269 472 9 7 83 1 0 procs 表示 説…

CentOS6でdos攻撃をbanする

fail2banのインストール # yum install fail2ban 設定ファイルの変更 /etc/fail2ban/fail2ban.conf #logtarget = SYSLOG ↓ logtarget = /var/log/fail2ban.log loglotateの設定ファイル vi /etc/logrotate.d/fail2ban /var/log/fail2ban.log { missingok not…

コンテンツが同期されるまでELBからアクセスされないようにする

AWS

AWSのオートスケーリングを利用し、クローン起動直後に マスタとなるインスタンスからコンテンツを同期(PULL)するとします。 しかしコンテンツが完全に同期される前に、ELBからアクセスを受けるのはまずいです そこでELBのヘルスチェックを利用し、同期処理…

NFSマウント

やりたいこと サーバ側の/export/backupをクライアント側の/home/backupとしてマウントしたい サーバ(実際にファイルが置かれる方。マウント先)の設定 # yum -y install nfs-utils # mkdir -p /export/backup 設定ファイル作成 # vi /etc/exports /export/ba…

404 NotFoundページに情報を出さないようにする

Apacheバージョン非表示 # # Don't give away too much information about all the subcomponents # we are running. Comment out this line if you don't mind remote sites # finding out what major optional modules you are running ServerTokens OS ↓ …

EC2にphpMyAdminを設置しRDSに接続する

先の記事でAWSでLAMP環境を作成しました。 ~AWSでLAMP環境を作る~ まとめ 今回はEC2にphpMyAdminを設定し、WEBからRDSを操作できるようにします。 アクセスURLは http://{IPアドレス}/tools/phpMyadmin/ とします。 手順 phpMyadmin配置ディレクトリ作成 $…

/でindex.phpを実行させる

先の記事でAWSでLAMP環境を作成しました。 ~AWSでLAMP環境を作る~ まとめ 今回はhttp://{IPアドレス or ドメイン}/ でindex.phpを動かせるようにします。 デフォルトでindex.htmlが出力されますが 存在しない場合、index.phpを実行させるようにApacheの設…

Apacheのテストページを非表示にする

先の記事でAWSでLAMP環境を作成しました。 ~AWSでLAMP環境を作る~ まとめ 実際にWEBサイトを運用する為には、他にやっておいたほうがいい設定がいくつかあります。 その中のひとつがこれです。 http://{IPアドレス or ドメイン} のようにドキュメントルー…

~AWSでLAMP環境を作る~ まとめ

AWS

キーペア作成 秘密鍵をPuttyで使用できるようにする EC2を作成する EC2にEIPを割り当てる PuttyでEC2にログインする RDSのパラメータグループを作成する RDSを作成する Apacheをインストールする PHPをインストールする EC2からRDSに接続する

~AWSでLAMP環境を作る~ その10 EC2からRDSに接続する

AWS

EC2にMySQLをインストールし、ホスト指定してRDSに接続してみます。 手順 MySQLインストール # yum install mysql-server 起動 # service mysqld start 自動起動設定 # chkconfig mysqld on 接続 mysql -u {RDSのエンドポイント} -u {ユーザー名} -p{パスワ…

~AWSでLAMP環境を作る~ その9 PHPをインストールする

AWS

PHPをインストールします。 手順 yumでPHPインストール (モジュールは適宜変更してください) # yum install php php-cli php-common php-gd php-intl php-mbstring php-mcrypt php-mysqlnd php-pecl-apc php-process php-snmp php-xml php-xmlrpc php-pecl-m…

~AWSでLAMP環境を作る~ その8 Apacheをインストールする

AWS

Apacheをインストールします。 これが無事完了すればブラウザからアクセスできるようになります。 手順 PuttyなどのSSHターミナルからログインします。 rootになる $ sudo su - 初回なのでyum更新 # yum update Apacheをインストール # yum install httpd Ap…

~AWSでLAMP環境を作る~ その7 RDSを作成する

AWS

それでは実際にRDSを作成します。 手順 「Launch DB Instance」をクリックします。 MySQLを選択します。 Multi-AZという冗長構成サービスを使用するか聞かれますが、今回は使わないので「No」にして「Next」をクリックします。 スペックやストレージを設定す…

~AWSでLAMP環境を作る~ その6 RDSのパラメータグループを作成する

AWS

RDSはデータベースのサービスです。 EC2にデータベースサーバを構築してもいいのですが、 ボタンポチポチで作成できるしいろいろ便利です。 が、、その前にパラメータグループというものを設定します。 これはDBのコンフィグ設定のようなものです。 とりあえ…

~AWSでLAMP環境を作る~ その5 PuttyでEC2にログインする

AWS

EC2にログインする準備ができました。 先に作成した秘密鍵(*.ppk)を使用してPuttyでログインしてみます。 手順 Puttyを起動し、IPアドレスを入力します。 左メニューの「接続」→「SSH」→「認証」を選択、 「参照」から秘密鍵を読込み、「開く」をクリックし…

~AWSでLAMP環境を作る~ その4 EC2にEIPを割り当てる

AWS

EIPとは固定IPの事です。EC2インスタンスに固定IPを紐づけします。 ※この作業をしなくても動的IPでアクセスすることは可能ですが、再起動すると変わってしまいます。 手順 左メニューの「Elastic IPs」をクリック、さらに「Allocate New Address」をクリック…

~AWSでLAMP環境を作る~ その3 EC2を作成する

AWS

次はEC2インスタンス(仮想サーバ)を作成してみます。 手順 左メニューから「Instances」をクリックし「Launch Instance」をクリックします。 AMI(OS)を選択します。今回はAmazon Linuxを使用します。 インスタンスタイプ(スペック)を選択します。今回は一番…

~AWSでLAMP環境を作る~ その2 秘密鍵をPuttyで使用できるようにする

AWS

作成した秘密鍵(xxx.pem)はTeraTermで使用することはできますが Puttyでは使用することができません。 Putty形式(xxx.ppk)へ変換する必要があります。 手順 puttygen.exeを起動します。puttyやputtygenはこちら 「ファイル」→「秘密鍵の読込」でxxx.pemを読…

~AWSでLAMP環境を作る~ その1 キーペア作成

AWS

AWSはデフォルトで鍵認証です。 SSHで接続する為のキーペアを作成します。 手順 管理コンソールにログインします。 左メニューの「Key Pairs」をクリック、さらに「Create Key Pair」をクリックします。 キーペア名を入力する欄が出るので、適当に名前を入力…

コマンドを定期的に繰り返す

watchコマンドで定期的にコマンドを実行することができます。 1秒間隔でls -lを実行する $ watch --interval 1 ls -l Every 1.0s: ls -l Thu Jun 12 23:36:24 2014 合計 0 別ターミナルからファイルを作成してみます。 $ touch test 作成されたファイルが見…

tailでログを監視する際、特定行を除外する

tailでアクセスログの監視をする場合、特定文字列が含まれる行を排除したい場合があります。 そんな時は正規表現で対象パターンを含まない行を抜き出します。 例) jpg,png,cssが含まれる行を除外 $ tail -f access.log | egrep -v 'jpg|png|css' これで関係…

ジオメトリ型のカラムを用いて2点間の距離を求める

位置情報をMySQLに保存し、2点間の距離を調べたい場合、どうしたらよいのだろう? とにかくやってみる テーブルを作成 CREATE TABLE places ( id int(11) NOT NULL, name varchar(32) NOT NULL, latlon geometry NOT NULL, PRIMARY KEY (id) ); POINT型(緯度…

MySQLのトランザクション処理中にALTERするとコミットされる

トランザクションが効かずハマったことが何度かあります(笑) InnoDBのつもりがMyISAMで作ってたとか。。 あとはトランザクション開始後に特定のDDLを発行すると 暗黙的にコミットされます。 ってか知らなかったけどされちゃいました。 やってみる ユーザーテ…

ケータイで撮った写真をPHPで回転する

PHP

サーバに画像をアップロードさせるサービスを構築する場合 ケータイで撮った写真などが横になってる事があります。 そんな時はシステム側で調整してやると親切かと思います。 画像には様々な情報(EXIF)が保存されているので、 画像方向情報(Orientation)を見…