Apacheにバーチャルホスト利用で複数サイトのテスト環境を作成する方法
Apacheを利用していてプログラム開発をしていると複数の開発環境がほしい時があると思います。
そんなとき便利な方法を紹介します
Apacheのバーチャルホストの機能を利用して複数のテスト環境を用意する方法です。
「XAMPP」を利用して環境を作った場合の設定例です。
今回は、ポート番号を分けることで複数のテスト環境を構築します。
- まず、「C:\xampp\apache\conf\extra」のフォルダにある「httpd-vhosts.conf」を編集します。
以下の内容を追記します。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Listen 8080 NameVirtualHost 192.168.25.130:80 NameVirtualHost 192.168.25.130:8080 <VirtualHost 192.168.25.130:80> DocumentRoot "C:/xampp/htdocs" </VirtualHost> <VirtualHost 192.168.25.130:8080> DocumentRoot "C:/htdocs" </VirtualHost> <Directory "C:/htdocs"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Order allow,deny Allow from all </Directory>
これの追記の設定は、8080ポートの追加と、80ポートでアクセスした場合と、8080ポートでアクセスした場合に別ディレクトリを参照するようにしています。
そして、8080ポート用のディレクトリにアクセス権限を与えています。
これで、
「http://192.168.25.130:80」でアクセスした場合は、「C:/xampp/htdocs」を参照し、
「http://192.168.25.130:8080」でアクセスした場合は「C:/htdocs」を参照するようになります。
アクセスポートを追加することで、Apacheが参照するディレクトリを異なるディレクトリに出来るので、複数のテスト環境を簡単に作成することができます
XREA、CoreserverにWordPressをインストールしてみよう
- 2009.02.17 (火) 09:33
- WordPress,レンタルサーバー
- coreserver,WordPress,xrea
今回は、レンタルサーバ、CoreserverにWordpressをインストールする手順を紹介します
CoreserverにWordpressをインストールする上でとても厄介なのがPHPのセーフモードの問題なのです。
(問題としては、ファイルの書き込み権限が無い為に、インストール作業をWebから自動的に行えなかったりします)
インストールする上で一番簡単な方法は、「全てのPHPをCGIモードで動作させセーフモードをオフにしてしまう」という方法です。
手順は過去の記事、「XREA.com、CoreserverでのCGIで動作させる為の、.htaccess設定」に記述してありますので参考にしてください。
(この方法だと全てのモジュールがCGIモードで動作するので多少動作が遅くなります)
今回のインストール方法は、必要なPHPファイルのみをCGIモードで動作するように設定し、不必要なモジュールのCGIモードでの動作をさけて、なるべく動作を軽くWordPressをインストールすることを目的としています。
では、インストール作業手順の説明です 続きを見る…
AddClipsをつけてみました!!
- 2009.02.15 (日) 22:57
- その他
PHP入門 第17回 エラーと例外処理
エラーイベント
PHPはエラーが発生した場合、エラーイベントを発生させ、エラーメッセージを出力したり、ログイン記録したりします。
エラーイベント | 説明 |
E_ERROR | プログラム実行の継続が不可能な致命的なエラー |
E_WARNING | プログラムに不具合がある場合のエラー |
E_NOTICE | プログラムの不具合の可能性が高いエラー |
E_USER_ERROR | ユーザー定義エラー |
E_USER_WARNING | ユーザー定義エラー |
E_USER_NOTICE | ユーザー定義エラー |
E_STRICT | PHP5構文を強制する |
エラーハンドラ
PHPまたはtrigger_error関数から発生したエラーメッセージは、PHPのエラーイベント処理機能によって処理され、エラーメッセージをブラウザに送信したり、Webサーバやsyslog等のログに記録できます。
エラーイベントが発生した場合、エラーハンドラがエラーイベントの処理を行います。
デフォルトのエラーハンドラはエラーメッセージを表示します。
エラーイベントを処理するエラーハンドラはPHPスクリプトで記述されたユーザー定義エラーハンドラに置き換えることができます。
PHPスクリプトでエラーハンドラを記述できるため、特定のエラー発生時に管理者にメールを送信を行うなどの必要なエラー処理を行うことができます。
1 2 3 |
mixed set_error_handler( string 関数名 [, int エラー]) void error_handler_name(int エラー番号, string メッセージ [, string ファイル名 [, int 行番号 [, array 変数]]] ) |
エラーハンドラの使い方は簡単です。
set_error_andler関数にエラーを処理するコールバック関数を渡すだけで任意のエラー処理を行えます。
例外処理
例外処理とは、tryブロック中でエラーが発生した場合、throwで例外を発生し、例外オブジェクトを生成し、制御をcatchブロックに移動させthrow文で生成した例外オブジェクトを渡す仕組みです。
PHP入門 第16回 スコープ
特定の変数が参照できる範囲を、「スコープ」といいます。
PHPには、
- グローバル
- 関数
- クラス
の3つのスコープが利用できます。
スコープ名 | 説明 |
グローバルスコープ | グローバル変数が参照できるスコープ |
関数スコープ | 関数内のスコープ |
クラススコープ | クラス内のスコープ |
関数および、クラススコープは、関数またはクラスごとに独立しています。
関数やクラスのメソッドで定義された変数はローカル変数と呼ばれ、他のスコープからローカル変数を参照することはできません。
PHPのグローバルスコープ変数は、オートグローバルと呼ばれる変数(後述)を除き、関数およびクラススコープから直接参照できません。
グローバルスコープ変数は、関数などからはglobal文を使用してグローバル変数であることを宣言した後に使用できるようになります。
そうしないと、グローバル変数とは別のローカル変数として宣言されたことになるので注意が必要です。
PHPのグローバル変数は、$GLOBALSという配列に格納されています。
$GLOBALSは、、どのスコープからでも参照可能なオートグローバル変数の一つです。
globalキーワード
変数宣言時にglobalを宣言することで、関数、クラス内でローカル変数でなくグローバル変数を参照できるようになります。
例)
下記、例では「3」を出力します。global宣言がない場合との違いを確かめてみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php $a = 1; $b = 2; function Sum() { global $a, $b; $b = $a + $b; } Sum(); echo $b; ?> |
出力結果)
global宣言を行わない例)
グローバル宣言を行わない場合は、ローカル変数として宣言されグローバル変数の値には変化はありません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php $a = 1; $b = 2; function Sum() { $a; $b; $b = $a + $b; } Sum(); echo $b; ?> |
出力結果)
グローバル変数とローカル変数の関係を調べた例)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<pre> <?php $var = "グローバル変数\r\n"; function test() { echo $var; //未定義のローカル変数 $var = "test関数のローカル変数\r\n"; //test()のローカル変数 echo $var; //test関数のローカル変数と出力 echo $GLOBALS["var"]; //オートグローバル変数の$GLOBALS配列から //グローバル変数$varを参照 global $var; //グローバル変数の$varを宣言 echo $var; //グローバル変数を出力 } test(); ?> </pre> |
出力結果)
オートグローバル変数
オートグローバル変数には以下の種類があります。
使えるようにしておきましょう。
変数名 | 説明 |
$GLOBALS | グローバル変数用の配列 |
$_GET | HTTPリクエストのGETで送信されてきたクエリー文字列をパースし値を保存した配列 |
$_POST | HTTPリクエストのPOSTで送信されたフォームの値を保持した配列 |
$_COOKIE | COOKIEの値を保持した配列 |
$_FILES | HTTPファイルアップロード用の配列 <input type="file">にてファイルアップロードを行った場合に使用 |
$_REQUEST | $_GET,$_POST,$_COOKIEの値を保持した配列 |
$_SERVER | Webサーバーに関する情報を保持した配列 |
$_ENV | 環境変数を保持した配列 |
$_SESSION | HTTPセッション情報を保持した配列 |