アーカイブ

‘サーバー’ カテゴリーのアーカイブ

PHPのテスト環境を簡単に用意する一つの案

2011 年 4 月 14 日 コメントはありません

多分、あんまり良い方法ではないと思いますが、一人で開発してますし、ローカルPCはWindowsしかないので、このやり方がとっても便利なんです。

テスト用にドメインをもう一つ取る

メインで稼動してる(または、させる予定の)ドメインとは別にもう一つドメインを取得して、サーバーに設定してしまいます。

たとえば、

  • primarytext.info (本番用)
  • primarytext.com (テスト用)

こんな感じで取得して設定します。ドメインは年間1000円くらいなんで、まぁ良いかなぁと。で、テスト用のドメインの方には、.htaccessでBASIC認証でもかけて、自分しか見れないようにします。Googleとかの検索にもでなくなります。

以上で、終わりです。

ローカルで書いたコードをFTPでUPして、テスト用ドメインで見るだけです。なんて簡単!

この方法の良いところ

本番環境とまったく同じです。サーバーもOSもPHPもDBも回線もなにもかも、まったく同じです。

なので、やっぱこのコードでは遅いなぁとか、分かります。HTMLをUPして確認もできるので、画像を読み込みすぎてるとか、javascriptが遅いとか、別サーバーと通信してタイムアウトになっちゃうとか、わかります。良いね!

テストデータが不要です。同じDBが使えますので、本番環境で使ってるデータを流用できます。逆も簡単。バージョンアップで初期データが要るときも、テスト環境からコピーできます。

DBはスキーマで分ける

同じDBへアクセスしますが、テスト環境と本番環境ではTable構造が違ったりしても大丈夫です。

たとえば、postgreSQLなら、初期で「public」スキーマできるので、これを本番用。「test」ってスキーマ作ってテスト用にすれば、同じTABLE名でも中身違ったものにできます。

SET search_path = test;

ってすれば、testへ繋ぎます。しなければ、初期値のpublicを見に行きます。これをDBを使う最初にやれば、SQL等を分ける必要ないです。

本番環境が稼動してなくて、初めて公開するときは、

SELECT * INTO public FROM test LIMIT 0;

ってやると、スキーマをまるごとコピーできます。

判断するコードを最初に読み込む

全部のPHPから、一番最初に、

if (strpos($_SERVER['PHP_SELF'],"primarytext.com") === FALSE) {
 ini_set('display_errors',FALSE);
 define('pT_NowTestMode',FALSE);
} else {
 ini_set('display_errors',TRUE);
 define('pT_NowTestMode',TRUE);
}

こんな感じにしておくと、判断が要るときも使えるし、テスト環境はエラーを表示。本番ではしない。ってなります。すばらしい!

でも非推奨です

やっぱ、ローカルに作るのが基本だと思うので、あんまり勧められないです・・・

カテゴリー: サーバー, プログラム タグ: ,

Pleskパワーパックを契約せずにPostgreSQLを使う

2011 年 4 月 9 日 コメントはありません

自分でインストールすればいいので、ソースから入れます。環境は使えるねっとのVPS Linuxです。

1.PostgreSQLを入れる

PostgreSQLのマニュアルにソースコードからインストールってのがそのままやれば入ります。

develを入れとかないとコンパイルとか出来ません。入ってなかったらいれるか、gccとか必要なのを入れてください。

2.postgresユーザーの作成と環境設定

PostgreSQLユーザアカウント見ながらユーザーを作成。その後、インストール後の設定作業にあるのをやっとくと、便利です。PGDATAも設定するとなお便利。

PATH=/usr/local/pgsql/bin
export PATH

PGDATA=/usr/local/pgsql/data
export PGDATA

.bash_profileを編集すると思いますが、Parallels Power Panelのファイルマネージャーから編集すると失敗します。(なぜか、改行コードがCR+LFになっちゃうので)

ダウンロードして書き換えるか、SSHでやってください。ダウンロードしてアップしなおす場合、日本語のフォルダ(デスクトップとか)からアップしようとすると、これも失敗します。

3.データベースクラスタの作成、サーバー起動

データベースクラスタの作成、そのままでできます。先にSSHかファイルマネージャーから/usr/local/pgsql/dataを作って、postgresへ所有者を変更しときます。

それで、僕はこんな感じで初期化します。引数の意味はヘルプに。

initdb -W -A md5 -E UTF8 –no-locale

ログを置く為に、例えば、/var/log/postgres/ を作ってpostgresへ所有者を変更しときます。で、

pg_ctl start -l /var/log/postgres/postgresql.log

で起動します。

4.自動起動設定

CentOS4にPostgreSQL8.1.0をインストールする。の10にあります。参考に設定します。

上と一緒のようにするにはログのところちょっと直します。

PGLOG=”/var/log/postgres/postgresql.log”

試しに再起動してみて動くかどうか確認します。postgresユーザーで、

pg_ctl status

とすると、

pg_ctl: server is running (PID: 10152)
/usr/local/pgsql/bin/postgres “-D” “/usr/local/pgsql/data”

な感じになるはず。

5.PHPで使えようにする

rootユーザーでphp-develをインストールします。

yum install php-devel

で、今入ってるのと同じバージョンのPHPのソースをPHP: Downloadsから取ってきます。

wget http://jp.php.net/get/php-5.3.6.tar.bz2/from/this/mirror
bunzip2 php-5.3.6.tar.bz2
tar xf php-5.3.6.tar

ソースの中のpgsqlへ移動します。

cd php-5.3.6/ext/pgsql/

後は、PHPインストール後のPostgresモジュールインストール方法(Linux)|IT資料館(覚え書き)に。(6のパスは、php-5.3.6/ext/pdo_pgsqlです)

モジュールは、

/usr/lib64/php/modules/

に出来ます。7.のphp.iniファイルの編集の変わりに/etc/php.d/にファイルを作成します。

pdo_pgsql.ini ファイル、中身↓

extension=pdo_pgsql.so

pgsql.ini ファイル、中身↓

extension=pgsql.so

で、サービス再起動

service httpd restart

phpinfoを確認します。

試行錯誤

最初、yumで出来ると思ってインストールしてみたんですが、あちこちいじくりまわしても、phpinfoのpgsqlのPostgreSQL(libpq) Versionが8.1.23のままで、9.0.3に出来ませんでした。なので、こんなやり方になってしまいました。ホントはもっと簡単に出来るのかもしれません。

カテゴリー: VPS, サーバー タグ:

Plesk環境でPHPをバージョンアップする

2011 年 4 月 8 日 コメントはありません

非推奨な方法で、多分、やってしまうとレンタルサーバー屋さんからサポート受けれなくなります。それでも良い場合だけやってください。

元ネタは、
PHP – Atomicorp Wiki

日本語が良い方は、
php5.1.6のサーバで5.2以降にしたい|トピックを表示
使えるねっと VPSのPHPをバージョンアップする | はるはる。の開発日記

あたりをどうぞ。ちなみに、僕がやった限り、何の問題もなくPHP5.3.6になりました。環境は、使えるねっとのVPS Linuxです。

カテゴリー: VPS, サーバー タグ: