2011年9月26日月曜日

Mac OS X(Lion)にApache2+PHPをインストール

Mac OS XにはWebサーバ(Apache2)とPHP(5.3.6)が既にインストールされていますがデフォルトでは無効となっています。

そこで有効にする手順をメモ程度に。。。
まずはPHPを有効にします。
「ユーティリティ」→「ターミナル」を開き以下のコマンドを入力
sudo nano /etc/apache2/httpd.conf
nanoというエディタがターミナル上で開きます。
カーソルキーで画面を下に移動し以下が記述された行を探します。
#LoadModule php5_module libexec/apache2/libphp5.so
この行の先頭にある「#」を削除します。
nanoエディタを保存して終了します。
(contorl+Xキー → Yキー → Enterキーの順に)

次にApacheを有効にします。
「システム環境設定」→「共有」を開きます。
サービス一覧に「Web共有」の項目にチェックをつけます。
これでWebサーバーが起動します。

あとは適当な場所にphpinfo.phpを作成してWebブラウザからアクセス
正しく有効になっていればPHPの情報が表示されます。

2011年9月21日水曜日

IIS6.0にPHP5.3をインストール

IISにPHPをセットアップするときにせっかくだから最新のPHPを入れてみようと思って今まで通りダウンロードサイトからZip版PHPをダウンロードして展開。

次に管理ツールのIISを開いてホームディレクトリで構成、追加で実行ファイルが「php5isapi.dll」と。。。

あれ!?ない!?

どうも最新のモジュールにはphp5isapi.dllが存在しないみたい。
FastCGIを利用するといいみたいなので早速やり方を調べてインストール完了!!

やり方は以下のサイトが役に立ちました。


IIS7にPHP5.3をインストール

PHPを公式サイトからダウンロードします。
(今回はphp-5.3.7-nts-Win32-VC9-x86.zipをダウンロードしました)

ダウンロードしたZipファイルを解凍して「C:¥php」として配置します。

次にIISの設定を行います。
管理ツールからIISマネージャを開きます。

マシン名をクリックして右の機能ビューから「ハンドラマッピング」を開きます。
ハンドラマッピング画面の右の操作パネルから「モジュールマップの追加」をクリックし、以下の設定を行います。

要求パス:*.php
モジュール:FastCgiModule
実行可能ファイル:c:¥php¥php-cgi.exe
名前:PHP 5.3.7

OKをクリックするとマッピングの登録が完了します。
以上でとりあえずPHPを動かす環境は整います。

あとは必要に合わせてINIファイルを変更していきます。
(私の場合、INIファイルのタイムゾーンを設定しないと正常に動作しませんでした)

[DATE]
date.timezone = Asia/Tokyo

↑こんなかんじ

2011年9月14日水曜日

PHP5.3以降のMicrosoft SQL Server接続について

PHP5.3以降、Microsoft SQL Serverの接続に使用されていたエクステンション(php_mssql.dll)が提供されなくなりました。

代わりにMicrosoftからSQL Server Driver for PHPというエクステンションが提供されます。
しかし、問題となるのは今までPEAR::DBやPEAR::MDB2が動作しないようです。

SQL Server Driver for PHPを使用する場合は以下のサイトが参考になりました。
PHP on IISからSQL Serverを使う | IISでWebアプリケーション

2012.6.7
設定だけして動かしてなかったんで操作のやり方だけ載せておきます。
<?php
    // 接続
    $conn_info = array(
                            "Database" => "sample",
                            "UID" => "sa",
                            "PWD" => "",
                            "CharacterSet" => "utf-8");
    $conn = sqlsrv_connect("sqlserver¥instance", $conn_info);

    // SQL実行
    $sql = "SELECT * FROM emp";
    $result = sqlsrv_query($conn, $sql);

    while ($row = sqlsrv_fetch_array($result))
    {
        print $row{"emp_name"};
    }

    // ステートメント解放
    sqlsrv_free_stmt($result);

    // 切断
    $sqlsrv_close($conn);
?>

こんなかんじです。
詳しくはマニュアルを。
http://php.net/manual/ja/book.sqlsrv.php