Posts tagged ‘xampp’

忙しい人のためのPHPデバッグ環境構築

忙しいのにPHPデバッグ環境構築したい場合はそうないかと思いますが、
現在、どこかのサーバーで動作しているPHPモジュール群をローカルで動作させたい場合の手順をメモします。

念のため、検証した環境は
・Windows Vista SP2
・Eclipse Platform 3.5.1.R35x_v20090910-9gEeG1_FthkNDSP2odXdThaOu9GFDPn83DGB7

です。
PDTと、XAMPPは既にインストールされている事が前提ですので、入っていない場合は以下記事から入れてやってください。
Installation of PDT on Eclipse3.5
Zend Debuggerインストール(xampp編)
記事の投稿日よりバージョンが上がっていたら、最新のバージョンをお勧めします。

既存のPHPモジュールをEclipseにインポート

現在動作しているPHPモジュールを、FTPやSubversionでもなんでも良いので、まずはローカルPCにコピーします。
今回は、svnからチェックアウトしましたので、subversiveが入っている前提ですが、FTPで持ってきた場合は、
PHPエクスプローラー右クリック→インポート→一般→ファイルシステムでまずはEclipseのプロジェクトと認識させます。

PHPプロジェクトへ変換

インポートしただけでは、単なるファイルセットなので、これらをPHPのプロジェクトに変換します。
プロジェクトを右クリックして、構成→Add PHP SupportでOKです。

デバッグサーバーの設定

サーバーにはXamppのApacheを使用します。ここのAliasに先ほどインポートしたプロジェクトのルートを記載します。
具体的には、(Xamppインストールディレクトリ)\apache\conf\httpd.confに以下を追加します。

Alias /testPHP "D:\Workspace\test\testPHP"
<Directory "D:\Workspace\test\testPHP">
Order allow,deny
Allow from all
</Direcotry>

とか。

デバッグサーバーの構成

プロジェクト右クリック→デバッグ→デバッグサーバーの構成で、新しくデバッグサーバーの構成を作成します。
上記では、
http://localhost/testPHP/
というURLになるので、それを踏まえて以下のようにして構成します。

ファイル:/testPHP/index.php
URL:自動生成(デフォルト)

これでXamppのコントロールパネルからApacheを起動しておいて、Eclipse環境から先ほど作成したデバッグ構成で起動してみます。
とりあえず動かすだけならこれでOKなはずです。
細かいことは置いといて、ZendDebuggerの設定だとステップ実行出来ないので、単純にXDebugで動かしてもいいかもしれません。
(これ昔からそうだったなぁ。)


XAMPPでXoops cube legecy2.1.8を動かす場合

XAMPPと言って、ApacheやphpやMySQL等をセットにしてインストール出来る便利なパッケージがあるのですが、
現在の最新(1.7.3)は、以下のようなラインナップとなっています。

Apache 2.2.14 (IPv6 enabled) + OpenSSL 0.9.8l
MySQL 5.1.41 + PBXT engine
PHP 5.3.1
phpMyAdmin 3.2.4
Perl 5.10.1
FileZilla FTP Server 0.9.33
Mercury Mail Transport System 4.72

ただし、少なくともXoops Cube Legacy2.1.8は、PHP5.2.xじゃないとうまいこと動かない。
Xoops Users Group Japan – 大量の警告(?)文の解決策について

なので、XAMPPもPHP5.2系の奴を選べばよいが、XAMPPのページを見ても過去バージョンのPHPのバージョンがよく分からないのでメモ。

XAMPP1.7.1にPHP5.2.9が入っており、これが5.2系最終らしいです。


PHP accelerator

Yahoo!オークションで複数条件並べ替え

で、YahooのWeb APIを使って自分でオークションの(とりあえずは)並べ替えをやってみようと思ったのだが、
どうしよう?index.phpとか作ってベタで書くかどうしようか悩んだのだが、
フレームワークを使うとformとかリストとかの記述が楽そうなので、なんかしらのPHPフレームワークを使ってみようと思った。
さらに、YahooではSymfonyを使って構築するのが(会社内で)流行りだそうなので、Symfonyを使うことにした。

マニュアルはPDFではあるが、日本語訳があったので、それを見てとりあえずはローカル機(Windows)で動かしてみることにした。
どうせなら最新版を、ということでSymfony1.4を導入することにした。

最初の方で、Symfonyをインストールするための設定チェックの記述があって、

http://sf-to.org/1.4/check.php

にブラウザでアクセスすると、check_configuration.phpが手に入るので、
これをローカルマシンでPHPが動く場所に置いてブラウザからアクセスすると、以下のような結果が出た。

********************************
*                              *
*  symfony requirements check  *
*                              *
********************************

php.ini used by PHP: D:\xampp\xampp\php\php.ini

** Mandatory requirements **

  OK        PHP version is at least 5.2.4 (5.3.1)

** Optional checks **

  OK        PDO is installed
  OK        PDO has some drivers installed: mysql, odbc, sqlite, sqlite2
  OK        PHP-XML module is installed
  OK        XSL module is installed
  OK        The token_get_all() function is available
  OK        The mb_strlen() function is available
  OK        The iconv() function is available
  OK        The utf8_decode() is available
[[WARNING]] A PHP accelerator is installed: FAILED
            *** Install a PHP accelerator like APC (highly recommended) ***
[[WARNING]] php.ini has short_open_tag set to off: FAILED
            *** Set it to off in php.ini ***
  OK        php.ini has magic_quotes_gpc set to off
  OK        php.ini has register_globals set to off
  OK        php.ini has session.auto_start set to off
  OK        PHP version is not 5.2.9

short_open_tagはいいとして、「PHP accelerator」とは一体なんだろう?
調べてみると、

eAccelerator で PHP 高速化

で説明されている通り、PHPの実行速度を体感的に速くするものらしい。全然知らなかった!
そう大した規模でもないので効果はどうなのかはわからないが、XAMPP for Windows(1.7.3)なら、php.iniの以下コメントを外すだけ。(XAMPPはDドライブ直下にある)

;extension=php_apc.dll
;zend_extension = "D:\xampp\xampp\php\ext\php_eaccelerator.dll"

CentOSでも、yumのリポジトリからeAcceleratorはあったようだ。(APCはないみたい)

[root@localhost httpd]# yum search eaccelerator
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
 * centosplus: www.ftp.ne.jp
 * addons: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
====================================== Matched: eaccelerator ======================================
php-eaccelerator.i386 : PHP accelerator, optimizer, encoder and dynamic content cacher

yumで入るならちょっといれてみようかな。