0

Apache2にPHPのバージョン違いを複数インストールして使い分ける

新たな案件の開発環境を準備しなくちゃなんなくて
でも、新たにさーばを用意出来なかったので、
php5.3.13を使っているApache配下で別バージョンを使用する。
今回追加したのは5.2.17


・以前から使っているモジュール版PHPには影響なし。
・CGI版を、apxsを指定しないでコンパイルする。
・インストールディレクトリを /usr/local/lib/php-5.2.17 のようにバージョンごとに用意するとわかりやすく複数バージョンに対応しやすい。
・使いたいバージョンを .htaccess 内に記述することで、ディレクトリごとにバージョン指定する。
・httpd.conf内で指定することで、バーチャルホストごとや、ディレクトリごとに指定できる。

と簡単に言うとこんな感じ。

まずはソースを持ってきて展開し、configure。

$ tar zxvf php-5.2.17.tar.gz
$ cd php-5.2.17
 
$ ./configure  --prefix=/usr/local/lib/php-5.2.17 \
--with-config-file-path=/usr/local/lib/php-5.2.17 \
--enable-force-cgi-redirect \
--enable-mbstring \
--enable-mbstr-enc-trans \
--enable-track-vars --enable-mbregex \
--with-mysql=/usr/local/mysql

configureの際に–with-apxs2=/usr/local/apache2/bin/apxsを付けない事が重要。
その他オプションは適宜追加・削除する。

問題なければmakeしましょ。

make
make install

あとは以下のとおり。

■php-cgi を cgi-bin に設置する

php-cgiバイナリをコピーして使う。 ファイル名は適当に命名する。

 
$ cp /usr/local/lib/php-5.2.17/bin/php-cgi /export/home/piyopiyo/cgi-bin/php-5.2.17
 

■httpd.confでActionを設定する

/usr/local/apache/conf/httpd.conf
バーチャルホストを使っている場合は、内側に使いたいverを書けば複数使い分ける。
元のバージョンを使いたい場合は記述なし。

Action php-script-5.2.17 /cgi-bin/php-5.2.17

■.htaccessを使ってPHPバージョンを指定する場合

public_html/foo/.htaccess

 
AddHandler php-script-5.2.17 .php
 

■httpd.confを使ってPHPバージョンを指定する場合

/usr/local/apache/conf/httpd.conf
バーチャルホストを使っている場合は、内で指定する。

Actionを設定する

 
Action php-script-5.2.17 /cgi-bin/php-5.2.17
 

ディレクトリごとにバージョンを指定する

 
AddHandler php-script-5.2.17 .php
 

0

Ruby1.9.3をrvmでインストールするときのエラー

Ruby1.9.3をrvmでインストールするとき、こんなエラーが出ました

 
 
Error running 'make ', please read /usr/local/rvm/log/ruby-1.9.3-head/make.log  
 

ubuntuです。

ログを見てみると

※/usr/local/rvm/log/ruby-1.9.3-head/make.log 
~
~
~
executable host ruby is required. use --with-baseruby option.
make: *** [miniprelude.c] エラー 1

RubyをインストールするためのRubyが必要とのこと。

わかりましたよ入れますよ…(´・ω・`)

 
$ rvm install 1.8.7-head
rvm rubies

=* ruby-1.8.7-head [ x86_64 ]

# => - current
# =* - current && default
#  * - default

無事インストールされたので再挑戦します

$ rvm install 1.9.3-head

無事インストールされました。

0

tmuxのキーバインド設定

screen使ったことアリマセン。
ターミナルバンバン開いてました!!(´・ω・`)
最近はiTerm2でタブも使ってたんだけど…

MacもWinも使うので、基本的に接続元の環境に依存した操作とかが無駄だなぁと感じてたので
ターミナルでかでかと開いてtmuxで操作してます。

で、プレフィックスキーが元々nだと思うんだけど、
Ctrl+nって結構ストレッチ効かせないといけないので
プレフィックスキーをtに設定しています。

あとは引用サイトより転載。
iTerm2 + zsh + tmux + vim で快適な256色ターミナル環境を構築する/ゆろよろ日記
↑ここ開発環境作りにめっちゃ参考になる
ここのサイトからzsh等の設定も拝借してます。結構自分流にいじったけど。

”その他のキーバインドもほぼscreen互換になるように設定してます。
なので、&tl;Ctrl-t>の後にcで新しいウィンドウを生成、で次のウィンドウへ、で前のウィンドウへ移動します。

tmuxのキーバインド(プレフィックスキー:t)は、このような設定しました。”

キーバインド コマンド
C-t ? ショートカットキーのリストを表示
C-t c 新しいウィンドウを作成
C-t n 次のウィンドウへ移動
C-t SPACE 次のウィンドウへ移動
C-t p 前のウィンドウへ移動
C-t BS 前のウィンドウへ移動
C-t w ウィンドウの選択メニューを表示
C-t d セッションのデタッチ
C-t : コマンドプロンプトの開始
C-t [ コピーモードの開始
C-t ] バッファ内容のペースト
C-t q ペインのインジケータを表示
C-t % ウィンドウを左右のペインに分割
C-t | ウィンドウを上下のペインに分割
C-t o 次のペインへ移動
C-t { ペインの入れ替え
C-t } ペインの入れ替え(逆順)
C-t l ペインの左右分割位置を左へ移動
C-t h ペインの左右分割位置を右へ移動
C-t x ペインの破棄
0

gitを使います

gitはソース(というかリポジトリ)落としてきたり程度には使ってましたが、
そろそろ自分のもろもろソースコードも管理して行かないということで挑戦。

バージョン管理は仕事でSubverionを使ってましたが、
乗り遅れ気味ながらgitを選びました。
ネットにつながってなくてもローカルリポジトリにコミット出来るし、
ぎっはぶも使いたいし(´・ω・`)

事前にここのサイトで予備知識を入れておくとわかりやすいかも。
参考:分散バージョン管理システムGitの使い方入門

まずはインストール。ソースから。


$ cd /tmp
$ wget http://www.kernel.org/pub/software/scm/git/git-1.7.9.6.tar.gz
$ tar zxvf git-1.7.9.6.tar.gz
$ cd git-1.7.9.6
$ ./configure
$ make
$ sudo make install

もちろんyumでもaptitudeでもインストール出来ればおk。
はい、正しくできてるか確認。

$ git --version
git version 1.7.9.6

上記のようにバージョンが表示されたらインストールされてます。

git用ユーザーの作成

$ sudo adduser git

SSH認証フォルダを作成。
gitはデフォルトだとsshでの接続になるので、
元々使っていたユーザーの公開鍵をgitユーザー反映させます。
まずディレクトリ作成とパーミッション設定。

$ sudo su git
$ cd /home/git
$ mkdir .ssh
$ chmod 700 .ssh

続いて既存のユーザーの鍵をコピる
管理者権限になれるユーザーで

$ sudo cp /home/hogehoge/.ssh/authorized_keys /home/git/.ssh/
$ sudo chown git.git /home/git/.ssh/authorized_keys

sshのログインユーザー制限してる場合

$ sudo vi /etc/ssh/sshd_config
※sshd_config内を編集
Allow Users hogehoge git

sshの設定ができたので、gitユーザーでアクセスを試す。
ログイン出来ればssh認証はOK

複数人での開発となったとき、コミッタにはSSHできないように制限。

$ sudo vi /etc/passwd
git:x:1001:1001:Git,,,:/home/git:/bin/bash
↓
git:x:1001:1001:Git,,,:/home/git:/usr/bin/git-shell

ログインシェルをGit に関する作業しかできない制限付きシェル git-shellにしてしまおうというわけ。

でわでわリモートリポジトリ作成

$ cd /home/git
$ mkdir project1.git
$ cd project1.git
$ git --bare init
Initialized empty Git repository in /home/git/project1.git

作成場所はお好みの場所で。
/var/gitとか切ってもいいと思うけど、その場合所有者をgitにするのをお忘れなく。

公開リポジトリと通常のリポジトリとbareリポジトリ ←参考サイト
“Gitの公開リポジトリは通常、管理ファイルのみを持つ「bareリポジトリ」として作成される。通常bareリポジトリでは作業ツリーの変更やコミットといった操作は行わず、ファイルのやりとりにのみ使用する。また、慣例としてbareリポジトリとして使用するディレクトリには「.git」という拡張子が付けられる。
bareリポジトリは、「–bare」オプションを付けてでgit initを実行することで作成できる。”

とのことなので、ローカルリポジトリを作る際は”git init”で良いわけですね。

ではローカル側にリモートリポジトリの設定を追加。

 
$ git remote add origin ssh://git@ホストネームorIP:SSHポート/home/git/project1.git
 

“origin”はリモートリポジトリの名前。既に使われていたりするとぶつかるので、
任意に変えて下さい。
参考:git-remoteについて

 
$ git push origin  master
 

これでエラーが出なければ完了。

リモートリポジトリへの接続はこれでOKなので、
ローカルにもリポジトリを作ってpush,pullをいろいろしてみる。

差分みたり、マージしたり、色々と面倒なのはここからなんでしょ?(´・ω・`)

参考:WEBデザインTips

0

CakePHPでJSON等で値を返す場合について

あ、そうそう。
使ってるけいくのVerですが、現在の最新安定Verである2.1.2です。
結構1.x系と違いがあるのでご注意を。(参考サイトが少なくて困るんですが(´・ω・`))

んで、Ajax使って動的なエレメントを作りたいのですが、
Modelから引っ張ったデータをJSON形式でJavascriptに返したいわけです。
しかし、基本的にはViewが紐付けられてるのでAction内で設定。

 
$this->audoRender = false;
 

これだけ。ほら簡単(。╹ω╹。)

1 2 3