2008/4/12 土曜日

PHP4インストールエラー、libphp4.soが作成されない?

カテゴリー: PHP — trek @ 17:43:28

PHP4.4.8をソースからインストールしたときのエラーとその回避方法です。

make installしたところ、次のようなエラー(抜粋)がでました。

chmod: cannot access `/usr/local/apache2/modules/libphp4.so'

php4 apxs:Error: Command failed with rc=65536

make: *** [install-sapi] エラー 1

最初、.conigureを次のようにしていました。

./configure \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysql=/usr/mysql \
--with-config-file-path=/etc/php \
--enable-mbstring \
--with-zlib \
--with-gd \
--with-libmbfl \
--enable-pcntl \
--with-openssl \
--with-jpeg-dir=/usr/local/lib \
--with-png-dir=/usr/lib \
--with-dom \
--enable-exif \
--enable-mbregex \
--without-pear \
--enable-gd-native-ttf \
--with-freetype-dir=/usr/lib/ \
--with-gmp \
--enable-bcmath \
--enable-ftp

下記、参考リンクのページを参考に、.configureに–prefix=/usr/local/phpを指定しました。
すると、make installでエラーはでず、インストールできました。
いろいろ試したので、–prefixの指定でエラー回避となったのかどうかは、不明です。

./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysql=/usr/mysql \
--with-config-file-path=/etc/php \
--enable-mbstring \
--with-zlib \
--with-gd \
--with-libmbfl \
--enable-pcntl \
--with-openssl \
--with-jpeg-dir=/usr/local/lib \
--with-png-dir=/usr/lib \
--with-dom \
--enable-exif \
--enable-mbregex \
--without-pear \
--enable-gd-native-ttf \
--with-freetype-dir=/usr/lib/ \
--with-gmp \
--enable-bcmath \
--enable-ftp

インストール環境は、VMWareのCentOS4.4です。
PHPやapacheをパッケージとしてインストールしていませんでした。

参考リンク

2008/2/12 火曜日

XdebugとPDTでリモートデバッグ

カテゴリー: PHP — trek @ 2:44:23

WindowsクライアントからLinuxサーバーのPHPウェブページをリモートデバッグする設定のメモです。

Windows(XP SP2)には、EclipseのPHP開発用プラグイン「PDT」をインストールします。
「PDT」は、Xdebugクライアントになります。

Xdebugは、Xdebugインストールメモのようにインストール済みです。

PDTインストール

PDTは、PDT Projectから「PDT All-in-One」パッケージをダウンロードしました。
(ダウンロードしたファイルは、pdt-all-in-one-S20071213_M1-win32.zipです。)

インストールは、zipファイルを適当なフォルダに解凍するだけでOKのようです。
(JVM(Java virtual machine)は必要)

サーバーの設定

デバッグするファイルは、次のようなパスにあるものとします。

ドキュメントルート /var/www/html
デバッグ対象ファイル /var/www/html/rd/index.php
デバッグ対象URL http://test.localdomain/rd/index.php

/var/www/html/rd/index.phpは、次のようなものにします。

PHP:
  1. <?php
  2. test();
  3.  
  4. function test()
  5. {
  6.   $now = Date('Y-m-d H:i:s');
  7.   echo $now;
  8. }
  9. ?>

.htaccessにXdebugの設定

ドキュメントルートの.htaccessには、次のような設定を行います。

php_flag xdebug.remote_enable On
php_value xdebug.remote_handler dbgp
php_value xdebug.remote_host 192.168.0.XX

この例では、xdebug.remote_hostには、WindowsクライアントのIPを指定しています。

PDTプロジェクト作成

eclipse.exeを起動します。
初めてeclipseを起動するときには、Workspaceの作成を聞かれると思います。

プロジェクトの新規作成

1.メニューの[File]->[New]->[Project]をクリック。

2.[PHP Project]を選択して、[Next]ボタンをクリック。

3.Project Nameを適当に入力して、[Finish]ボタンをクリック。
この例では、[Use efault]のチェックを外して、「H:\test」を指定しています。
PDT プロジェクト新規作成

4.サーバーのファイルをWindowsクライアントにコピー。

サーバーのファイルとローカルファイルは、次のような対応にしました。

サーバーのファイルパス /var/www/html/rd/index.php
ローカルのファイルパス H:\DocumentRoot\rd\index.php

5.ローカルファイルをプロジェクトに追加。
プロジェクト名を右クリックして表示されるメニューの[Import]をクリックして、ローカルのファイルをインポートします。
PDT ファイルインポート1
PDT ファイルインポート2

[Finish]ボタンをクリックして完了。

PDT ファイルインポート3

PDT デバッグ設定

1.
メニューの[Run]->[Open Run Debug...]をクリックします。

2.
[PHP Web Page]をダブルクリックして、デバッグ設定を作成します。

主な設定は、次のようになります。

Server Debugger Xdebug
PHP Server サーバー一覧が表示されていない場合は、[New]ボタンをクリックして作成します。
デバッグ対象があるサーバー名を指定します。
File プロジェクトに追加したファイルを指定します。
URL デバッグ対象のURLを指定します。

PDT デバッグ設定

3.
[Apply]ボタンをクリックして、設定を保存します。

PDT デバッグ実行

メニューの[Run]->[Debug]をクリックします。

デフォルトでは、ブレークポイントを設定しなくても、PHPスクリプトの先頭でデバッガが処理を停止します。
次のキャプチャは、[F5]キーを押しながら関数の中まで入ったところです。

PDT デバッグ実行

その他

Windows(XP SP2)には、COMODO Firewallをインストールしています。
最初、ファイアーウォール(COMODO Firewall)にブロックされて、PDTでデバッグできるまで少し手間取りました。

COMODO FirewallのApplication Control Rulesで、次の設定を行いました。

  • IEXPLORE.EXEの設定で、親がeclipse.exeの場合、MiscellaneousのAllow invisible connection attemptsにチェックを入れる。

(一度、すべてのIEXPLORE.EXEの設定の設定を削除後、[Run]->[Debug]すると、COMODO Firewallが許可するかどうか聞いてくるかも。)


eclipseはとても重いというイメージがありましたので、軽快に動作するのが意外でした。

僕はemacsで作業することが多いですが、PDTでのデバッグをときどき利用したいと思います。

2008/2/10 日曜日

Xdebugインストールメモ

カテゴリー: PHP — trek @ 21:55:49

PHPスクリプトにブレークポイントを設定して、ステップ実行できれば何かと便利です。
LinuxサーバーのPHPウェブページをWindowsクライアントからリモートデバッグする環境(Xdebug,PDT)を作ってみます。

まず、Xdebugをインストールします。

Linux(CentOS 4.3)マシンにインストールしているapacheとPHPのバージョンは、次の通りです。

  • apache 2.2.0
  • PHP 5.2.3

(両方ともソースからインストールしています。)

Xdebugは、バージョン2.0.2をインストールします。

インストール前の確認

php-configとphpizeが必要とのことで、パスが通っているか見てみます。

# which php-config
# which phpize

php-configとphpizeは、PHPをソースからインストールしたため(?)か、インストールされていました。

インストール手順

インストールは、Xdebug: Documentationの「Installation From Source」の手順を参考にして、次のように行いました。

Xdebugのインストール
# cd /usr/local/src
# tar xvzf xdebug-2.0.2.tgz
# cd xdebug-2.0.2
# phpize
 Configuring for:
 PHP Api Version:         20041225
 Zend Module Api No:      20060613
 Zend Extension Api No:   220060519
# ./configure --enable-xdebug
# make
# cp -i modules/xdebug.so /usr/local/apache2/modules/
php.iniの編集

php.iniに次を追加。

zend_extension="/usr/local/apache2/modules/xdebug.so"
apacheの再起動
# service httpd restart
確認

Xdebugがインストールされたか確認します。

# php -m
 [Zend Modules]
 Xdebug

phpinfoでも確認できます。

phpinfo.php

PHP:
  1. <?php
  2. ?>

PDTのインストールと設定は、次回投稿予定。

リンク

2007/11/16 金曜日

記事の内容の訂正

カテゴリー: Zend Framework — trek @ 20:41:39

Zend Framework:テンプレートエンジンをSmartyにするで、Zend_View_Interface を使用したテンプレートにあるサンプルがエラーとなると言いましたが、私の間違いです。
エラーにはなりません。

オリジナルにエラーがあるとしてしまい、申し訳ございません。
訂正いたします。

2007/11/11 日曜日

後で試してみるPHPライブラリメモ

カテゴリー: PHP — trek @ 21:30:55

10 projects every php developer should use - Webdigity webmaster forumsで紹介されているプロジェクトで、後で試してみるPHPのライブラリのメモです。

PHPライブラリではないですが、WYSIWYGエディタなhtmlエディタとして、TinyMCEとFCKEditorも忘れないようにメモします。

TinyMCE Javascript Content Editor by Moxiecode Systems AB
FCKeditor - The text editor for Internet

2007/10/18 木曜日

携帯サイトを作成したときの参考リンク

カテゴリー: PHP — trek @ 21:13:16

UTF-8のHTMLページを表示できる端末用の携帯サイトを作成したときに参考になりました。

各社のXHTML情報ページへのリンク

PHPフレームワーク比較記事リンク(サンプルアプリケーションの構築)

カテゴリー: PHP, Zend Framework — trek @ 4:28:24

広く利用されている3つのPHPフレームワーク(Zend Framework、symfony、CakePHP)に関する記事へのリンクです。
developerWorks : IBM's resource for developersで、サンプルアプリケーションの構築の記事が、「PHP frameworks, Part 2: Building the sample application」として、追加されています。

はじめの一歩として、手順通りに実行してみるのもよいかもしれないです。

2007/10/13 土曜日

httpd.confでPHPの設定変更メモ

カテゴリー: PHP — trek @ 20:17:52

httpd.confでは、「php_admin_flag 設定項目 Off」のように記述します。

例:

<Directory /usr/local/httpd/htdocs>

php_admin_flag expose_php Off
</Directory>

(.htaccessでは、「php_flag 設定項目 Off」のように記述します。)

2007/10/12 金曜日

Zend Framework: Zend_Db_Select::joinLeftメモ

カテゴリー: PHP, Zend Framework — trek @ 7:34:19

Zend_Db_Select::joinLeftの3番目の引数に空の配列を指定すると、joinLeftで指定したテーブルのカラムをSELECTで取り出すカラムに追加されないようになります。

例:

PHP:
  1. $select->from(array('a'=>'tbl_a'),
  2.                   array('cnt'=>new Zend_Db_Expr('COUNT(*)')));
  3. $select->joinLeft(array('b'=>'tbl_b'),'a.id=b.id',array());
  4. $where = $db->quoteInto('b.tmp_id = ?', '2');
  5. $select->where($where);

上記のように作成したSQLは、次のようになります。

SQL:
  1. SELECT
  2.     COUNT(*) AS `cnt`
  3. FROM `tbl_a` AS `a`
  4.  LEFT JOIN `tbl_b` AS `b` ON a.id=b.id
  5. WHERE
  6.     (b.tmp_id = '2')

2007/10/10 水曜日

PHPフレームワーク比較記事リンク

カテゴリー: PHP, Zend Framework — trek @ 23:53:02

CakePHP のおいしい食べ方: IBMでPHP3大フレームワーク記事スタート」で、次の記事が紹介されていました。

PHP frameworks, Part 1: Getting started with three popular frameworks

symfonyは、次の記事を見て、個人的に選択することはないかも、と思っていますが、上記、比較記事を今後楽しみにしたいと思います。

PHPベンチマーク: Zend Framework vs Symfony vs CakePHP vs CodeIgniter vs PHP on TRAX - 徒然なるままにBlog
PHPフレームワークのベンチマーク比較:phpspot開発日誌

次ページへ »

Copyright © 2007 とれっくかいはつ
HTML convert time: 0.279 sec. Powered by WordPress ME