09 « 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 11

NetBeans + VirtualBox で LAMP開発環境 

VirtualBoxにLAMP構成の仮想サーバを作成して、PHPソースの編集はNetBeansで行う開発環境の設定メモ。MAMPやXAMPPを使うのに比べて、仮想サーバにLAMPをインストールする手間がありますが、メリットも色々あります。

●ミドルウェアのバージョンや設定を本番サーバと同一にできる

●チームで仮想マシンのイメージを共有すれば、設定の手間がなくなり、開発環境のばらつきもなくなる

●新しいミドルウェアを気軽に試せる

本番サーバと設定を同じにできるため、本番リリースしたら動かない(^^;) といった事態を防げることが大きなメリットではないでしょうか。


========== LAMP仮想サーバの設定 ==========
まずは VirtualBoxにLAMP構成の仮想サーバを作成します。

○仮想サーバの設定(ご自身の環境に書換えてください)
ホスト名:lamp-sv
IPアドレス:192.168.56.201
Apacheドキュメントルート:/var/www/nbtest

・ホスト名でアクセスできるように、ホストOSの hostsファイルを設定しておきます
sudo vi /etc/hosts
---(下記を追加)---------------------------
192.168.56.201 lamp-sv
------------------------------

・NetBeansからの接続用ユーザを作成します
adduser netbeans
passwd netbeans
------------------------------
New password:<パスワード>
Retype new password: <パスワード>
------------------------------

・ドキュメントルートの設定
mkdir /var/www/nbtest
※ファイルが何も無いとNetBeansでエラーになるため、なにかしらファイルを作成しておきます
touch /var/www/nbtest/index.php
chown -R netbeans /var/www/nbtest

・Apacheの設定
---(設定サンプル)---------------------------
<VirtualHost *:80>
    ServerName lanp-sv
    DocumentRoot "/var/www/nbtest"

    <Directory "/var/www/nbtest">
        Options MultiViews
        AllowOverride None
    </Directory>

    SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(css)|(js)$" nolog
    ErrorLog logs/error_log
    CustomLog logs/access_log combined env=!nolog
</VirtualHost>

------------------------------


========== NetBeansの設定 ==========
[ファイル]→[新規プロジェクト]
「PHP」→「リモート・サーバからのPHPアプリケーション」を選択し、「次へ」をクリックします
nbvbox001.png 

環境にあわせて下記を設定し、「次へ」をクリックします
nbvbox002.png 

[管理]をクリックします
nbvbox003.png

接続名「lamp-sv」(任意)、接続型「SFTP」を選択して、[OK]をクリックします
nbvbox005.png

LAMPサーバに作成した netbeansユーザの接続設定と、初期ディレクトリ(ドキュメントルートの一つ上)を入力し、[接続をテスト]をクリックします
nbvbox004.png

接続に問題がなければ、以下が表示されますので、[OK]→[OK]と進みます
nbvbox006.png

下記を入力し、[次へ]をクリックします
nbvbox009.png

リモートのファイル(/var/www/nbtest 以下)をソースフォルダにダウンロードしますので、「全てを選択」にチェックを入れ、[終了]をクリックします ※この時「nbtest」ディレクトリにファイルが無いとエラーになります
nbvbox007.png

「nbtest」プロジェクトが登録されました
nbvbox008.png


========== 動作確認 ==========
空の index.php を編集してみます
nbvbox010.png

プログラムを入力しセーブすると、すぐさま VirtualBox上のLAMPサーバにアップロードされます
nbtest011.png

NetBeansの編集が LAMPサーバに反映されていることがわかります
nbtest012.png


以上です。

スポンサーサイト



Posted on 2013/07/26 Fri. 02:08 [edit]

category: プログラム

thread: プログラミング  -  janre: コンピュータ

TB: 0    CM: 1

26

PHP PaaS「cloudControl」の使い方メモ 

PHPの実行環境「cloudControl」(いわゆるPaaSです)の使い方メモ、無料で使えます。

cloudControl.png


cloudControlを使うには gitコマンドが必要なので、あらかじめインストールしておきます。


========== 基本設定 ==========
・まずは cloudControl のアカウントを作成します([TRY IT FREE]をクリック)

・管理ツールのインストール
sudo easy_install pip
sudo pip install cctrl

・公開鍵の登録(作成した cloudControl のアカウントを入力します)
cctrluser key.add
----------
Email : <メールアドレス>
Password: <パスワード>
----------


========== アプリの公開 ==========
※今回アプリ名は「sample130704」としました。ご自身のアプリ名に書換えてください。

・アプリ名を登録(PHP)
※名前は cloudControlで一意かつ英数小文字のみ利用可能(数字を先頭にはできない)
cctrlapp sample130704 create php

・ローカルにアプリ用の gitリポジトリを作成
mkdir sample20130704
cd sample130704/
git init
vi index.php
---(下記を追記)---------------------------
$mesg = 'This is a sample App.';
echo $mesg;
------------------------------
git add index.php
git commit -m "サンプルコードの作成"

・アプリ用のリポジトリを cloudControlへpush
cctrlapp sample130704 push

(下記コマンドでリポジトリをクローンすることもできます)
git clone ssh://sample130704@cloudcontrolled.com/repository.git sample130704

・アプリの公開
cctrlapp sample130704 deploy

・下記URLで確認できます
https://sample130704.cloudcontrolled.com/


アドオンを追加すれば MySQLやPostgres、MongoDBなんかも使えるようです。ミドルウェアをちょっと試したい時などに便利ではないでしょうか
https://www.cloudcontrol.com/add-ons



Posted on 2013/07/15 Mon. 16:15 [edit]

category: プログラム

TB: 0    CM: 0

15

GitHubの使い方メモ 

最近ちょくちょく使うことがあるのでメモ

まずはGitHubのアカウントを作成しておきます。

========== gitの初期設定 ==========
・自分の名前とメールアドレスの設定
git config --global user.name "your_name"
git config --global user.email "your_email@example.com"

・カラー表示の設定(お好みで)
git config --global color.ui "auto"

・設定の確認
git config --list
------------------------------
user.name=your_name
user.email=your_email@example.com
color.ui=auto
------------------------------


========== GitHubにSSH公開鍵を登録 ==========
・SSH鍵を作成 ※既にSSH鍵がある場合はこの手順は不要です
(色々聞かれますが全て空エンターでOKです)
ssh-keygen -t rsa -C "your_email@example.com"

・SSH鍵をクリップボードにコピーします
pbcopy < ~/.ssh/id_rsa.pub

・作成したSSH公開鍵をGitHubに登録します
 マイページ右上の工具マーク「Account settings」をクリック
 ページ左メニューの「SSH Keys」→「Add SSH key」
 下記を入力して「Add key」を押します
 ----------
 Title:PC名など 
 Key:<SSH鍵をペースト>
 ----------


========== GitHubにリポジトリを作成 ==========
・GitHubのマイページでリポジトリを作成する「New repository」をクリック
 Repository name:sample
 Description (optional):<空欄>
 Public を選択
 Initialize this repository with a README のチェックは無し

・ローカルにリポジトリを作成する
mkdir sample
cd sample/
git init
touch README.md
git add README.md
git commit -m "first commit"

・GitHubのリポジトリにアップする
git remote add origin git@github.com:<ユーザー名>/sample.git
git push -u origin master


========== 運用編 ==========
・ファイルを編集する
echo "test" >> README.md

・ローカルリポジトリにコミット
git add README.md
git commit -m "文字列 test を追加"

・GitHubリポジトリにpush
git push


========== 他のPCから編集 ==========
※あらかじめGitHubにSSH公開鍵の登録が必要です

・GitHubリポジトリをクローンする
git clone git@github.com:<ユーザー名>/sample.git

・ファイルを編集する
echo "hoge" >> README.md

・ローカルリポジトリにコミット
git add README.md
git commit -m "文字列 hoge を追加"

・GitHubリポジトリにpush
git push

・他のユーザーの更新を反映
git pull


○参考にさせて頂いたサイト
・README.mdファイル。マークダウン記法まとめ
http://codechord.com/2012/01/readme-markdown/

・Gitを使いこなすための20のコマンド
http://sourceforge.jp/magazine/09/03/16/0831212

・GitHub Help(SSH鍵関連)
https://help.github.com/articles/generating-ssh-keys

Posted on 2013/07/08 Mon. 01:09 [edit]

category: プログラム

TB: 0    CM: 0

08

PHP Yubikey で Yubico OTP認証 

最近ちらほら見かけるようになった、セキュリティトークンの YubiKeyを試してみました。今回は開発元のYubico社の(ユビカと読むらしい)認証サーバ(YubicoOTP)を使ってみます。米カリフォルニアの企業だけどやっぱり「指」にかけてるのかな?指キーに指子さん(^^)


なにはともあれ Yubikeyが無いと始まらないので、Yubico社のサイトで購入します。とりあえずスタンダードモデルを購入、エアメールで1週間くらいで届きました。
Yubikey.png


まず Yubikeyの設定をするため管理ソフト(YubiKey Personalization Tool)をインストールします。Yubico社のサイトでもダウンロードできますが、Macの場合は AppStoreからインストールできるのでそちらを利用しました。
Yubikey001.png


YubikeyをMacにさしたら管理ソフトを起動して「Yubikey is inserted」と表示され、認識していることを確認します。
yubikey002.png


[Yubico OTP]→[Quick] を押します。
yubikey003.png


「Slot1」を選択して[Regenerate]を何回か押します。「Public Identity」の12文字がYubiKeyを特定するためのIDです。このYubikeyのIDをユーザー情報と紐づけて認証することになります。最後に[Write Configuration]を押して設定をYubiKeyに書込みます。
yubikey005.png
OTPを生成すると、先頭の12文字が固定になっていることが分かります。
vvjvdnvcgvgikrterjitthnubdkcvgfkcebbthkfbjhc
vvjvdnvcgvginnilbdhdutcuflriuhufhuifrlgnndnj
vvjvdnvcgvgiicckkvbregikrujtdekeuehfibdbruff
vvjvdnvcgvgirfcvuujtnucejjifncibbvjrtchdtifu
vvjvdnvcgvgihrvtrikfiujeibbdlgdunlkfujkttite


次に設定したYubiKeyを、Yubico認証サーバに登録します。

[Upload to Yubico]を押します。
yubico010.png


Yubico社の登録用サイトが開きますので、メールアドレスと Yubikeyで生成したOTPを入力して[Upload AES key]を押します。(他の項目は自動で入力されています)
yubico011.png


「Success!」と表示されていれば登録完了です。
yubico012.png


設定が反映する15分ほど経過したら、デモサイトで認証できることを確認します。
yubico013.png

以上で Yubikeyの登録は完了です。続けてYubico社の認証サーバ(YubicoOTP)を使うためのAPIキーを取得します。

・Yubico Get API Keyサイト
https://upgrade.yubico.com/getapikey/

メールアドレスと YubiKeyのOTPを入力します。
yubico020.png


表示された「Client ID」と「Secret key」をこのあと作成するPHPプログラム内で使います。
yubico021.png


認証用のPHPを作るにあたって「Auth_Yubico」モジュールをインストールしておきます。
curl -O http://php-yubico.googlecode.com/files/Auth_Yubico-2.4.tgz
pear install Auth_Yubico-2.4.tgz


YubiKey OTPをYubica認証サーバで検証した結果が $authに入ってくるので、後はエラー判定するのみ。簡単です(^^)
require_once "Auth/Yubico.php";

// APIキーのセット
$yubi = new Auth_Yubico("<Client ID>", "<Secret key>", true);
// 認証処理実行
$auth = $yubi->verify("<YubiKey OTP>");

if (PEAR::isError($auth)) {
echo '認証NG';
} else {
echo '認証OK';
}

○サンプルコード
https://github.com/sizaki30/YubiKey

○動作サンプル
https://yubikey130709.cloudcontrolled.com/sample.php


以上です。

Posted on 2013/07/02 Tue. 00:38 [edit]

category: プログラム

thread: プログラミング  -  janre: コンピュータ

TB: 0    CM: 0

02

PHP PDO PostgreSQL クライアントエンコーディングの指定方法 

DBホストのアドレスに「options='--client_encoding=<エンコーディング>'」を追加すればOK

$host = "localhost options='--client_encoding=UTF8'";
$dbname = "sampledb";
$user = "foo";
$pass = "password";
$dbh = new PDO("pgsql:host={$host}; dbname={$dbname}", $user, $pass);

pg_connect と同じ指定方法でいけるとは知らなかった。今まで mb_convert_encodingでいちいち変換していました。(^^;)


Posted on 2013/06/20 Thu. 01:38 [edit]

category: プログラム

thread: プログラミング  -  janre: コンピュータ

TB: 0    CM: 1

20