2008/5/25 日曜日

mod_railsのインストールメモ

カテゴリー: Ruby on Rails — trek @ 21:01:35

Apache 2.2.0をソースからインストールしているCentOS4.3の環境で、Passenger(mod_rails)をインストールしようとしましたが、エラーとなりました。

Apache 2.2.8にアップグレードしたところ、無事mod_railsをインストールできました。

エラー内容

mod_railsのインストールは、Redmine.JP | Apache上でRuby on Railsアプリケーションを動かす/Passenger(mod_rails for Apache)の利用の手順を参考にしました。
その手順のpassenger-install-apache2-moduleの実行途中でエラーとなりました。

次のようなエラーメッセージです。

# export APXS2=/usr/local/apache2/bin/apxs
# export PATH=/usr/local/apache2/bin:$PATH
# passenger-install-apache2-module
略
Configuration.cpp:241: error: expected primary-expression
略
Command failed with status (1) ...

リンク

2008/4/14 月曜日

WordPress2.5へアップグレード

カテゴリー: WordPress — trek @ 1:19:34

WordPress ME 2.2からWordPress 2.5へアップグレードしました。

アップグレードは、次のような流れで実施しました。

  1. DBデータとファイル一式バックアップ
  2. ローカル環境に本サイトのDBデータとファイル一式を使用した環境を構築
  3. ローカル環境でアップグレードのチェック
  4. 本サイトに新しいDBを作成し、ローカル環境でチェックしたDBデータをインポート
  5. 本サイトのファイルをローカル環境でチェックしたものと入れ替える

ローカル環境と本サイト間で、mysqlデータのインポート/エクスポートするときは、ダンプしたsqlファイル内のURLやファイルパスを置換しました。

だいたいうまくいったようでしたが、本サイトの管理画面のダッシュボードにアクセスすると、何も表示されない状態でした。

PHPのエラーを表示するため、wp-adminディレクトリの.htaccessにphp_flag display_errors "On"を記述して、ダッシュボードにアクセスすると、次のようなエラーが表示されました。

Fatal error: Cannot use string offset as an array in [略]wp-admin/includes/dashboard.php

WordPress › Support » 2.5 - Fatal Error: Cannot use string offset as an array, line 46 dashboard.phpを参考に、DBのデータを削除しました。

SQL:
  1. SELECT * FROM wp_options WHERE option_name='dashboard_widget_options';

"dashboard_widget_options"に対応する行が1行しかないことを確認して、その行を削除。

SQL:
  1. DELETE  FROM wp_options WHERE option_name='dashboard_widget_options';

これでダッシュボードは表示されました。
その他もいまのところ問題ないようです。

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/18 月曜日

Emacs Lisp設定メモ

カテゴリー: Linux — trek @ 1:57:38

PHPを使うWebアプリケーション開発用にインストールしたEmacs Lispメモです。

elファイルは、/usr/local/share/emacs/22.1/site-lispに置きました。

php-mode

ダウンロード:SourceForge.net: PHP mode for Emacs
バージョン:1.4.0

1.4.0は、Emacs バージョン22.1がサポート対象のようです(SourceForge.net: PHP mode 1.4.0 released)。

.emacs設定

php-mode1.2.0では、タブ幅の設定などは、php-mode-user-hookで動作していました。
php-mode1.4.0は、php-mode-hookで動作するようです。

(add-hook 'php-mode-hook 'turn-on-font-lock)

(autoload 'php-mode "php-mode" "PHP mode" t)

(defcustom php-file-patterns (list "\\.php[s34]?\\'" "\\.phtml\\'" "\\.inc\\'")
  "*List of file patterns for which to automatically invoke php-mode."
  :type '(repeat (regexp :tag "Pattern"))
  :group 'php)

(let ((php-file-patterns-temp php-file-patterns))
  (while php-file-patterns-temp
    (add-to-list 'auto-mode-alist
                 (cons (car php-file-patterns-temp) 'php-mode))
    (setq php-file-patterns-temp (cdr php-file-patterns-temp))))

(add-hook 'php-mode-hook '(lambda ()
    (setq c-basic-offset 2)
    (setq c-tab-width 2)
    (setq c-argdecl-indent 0)
    (setq c-auto-newline nil)
    (setq c-continued-statement-offset 0)
    (setq c-indent-level 2)
    (setq c-label-offset -2)
    (setq c-tab-always-indent t)
    (setq indent-tabs-mode t)
    (setq tab-width 2)
    (setq-default tab-width 2)
) t)
参考リンク
html-helper-mode
.emacs設定
(autoload 'html-helper-mode "html-helper-mode" "Yay HTML" t)
(setq auto-mode-alist (cons '("\\.\\(html\\|htm\\|tpl\\|ctp\\)$" . html-helper-mode) auto-mode-alist))
(add-hook 'html-helper-mode-hook '(lambda ()
    (setq c-basic-offset 2)
    (setq c-tab-width 2)
    (setq c-argdecl-indent 0)
    (setq c-auto-newline nil)
    (setq c-continued-statement-offset 0)
    (setq c-indent-level 2)
    (setq c-label-offset -2)
    (setq c-tab-always-indent t)
    (setq indent-tabs-mode t)
    (setq tab-width 2)
    (setq-default tab-width 2)
) t)
参考リンク
javascript-mode

javascript.elは、javascript.el - Yet Another Hackadelicの記事でダウンロード先が紹介されています。

.emacs設定
(add-to-list 'auto-mode-alist (cons  "\\.\\(js\\|as\\|json\\|jsn\\)\\'" 'javascript-mode))
(autoload 'javascript-mode "javascript" nil t)
(setq js-indent-level 2)
css-mode

ダウンロード:A CSS editing mode for Emacs
バージョン:0.10

.emacs設定
(autoload 'css-mode "css-mode" "CSS mode" t)
(setq auto-mode-alist
    (cons '("\\.css\\'" . css-mode) auto-mode-alist))
(setq cssm-indent-function #'cssm-c-style-indenter)
smarty-mode

ダウンロード:EmacsWiki: Smarty Mode

.emacs設定
(add-to-list 'auto-mode-alist (cons "\\.tpl\\'" 'smarty-mode))
(autoload 'smarty-mode "smarty-mode" "Smarty Mode" t)

関連投稿

2008/2/17 日曜日

Emacs 22.1をインストール

カテゴリー: Linux — trek @ 7:47:23

Emacs 21.3から22.1への入れ替えメモです。

VMware上のCentOS4.4にインストールしました。

nXhtml - an Emacs mode for XHTMLを使用したかったのが入れ替えの動機です。
(nXhtmlは、試してみましたが、カラーの設定がうまくいかず、とりあえず使用しないことに・・・。)

rpmパッケージの削除

最初にEmacs21.3のrpmパッケージを削除しました。

# rpm -qa | grep emacs
# rpm -e emacs-leim-21.3-19.EL.4 emacs-21.3-19.EL.4 emacs-common-21.3-19.EL.4

emacs-commonやemacs-leimは何かは知りませんが、気にせず削除しました。

Emacs 22.1のダウンロード

GNU Emacs - GNU Project - Free Software Foundation (FSF)

emacs-22.1.tar.gzをダウンロード。

インストール

# tar xvzf emacs-22.1.tar.gz
# cd emacs-22.1
# ./configure
# make
# make install

Emacsセッションの保存

22.1にしたところ、Emacsを終了しただけで、Emacsセッションの保存ができなくなりました。
M-x desktop-saveするとセッションの保存ができるのですが。

21.3は、次を.emacsに記述するだけで動作していました。

(desktop-load-default)
(desktop-read)

そこで、次のような記述に変更したところ、セッションの保存ができました。

(require 'desktop)
(setq desktop-enable t)
(desktop-load-default)
(desktop-read)

ただ、Emacsバージョン22.1の場合、Saving Emacs Sessions - GNU Emacs Manualにあるように、

(desktop-save-mode 1)

を記述するだけでよいみたいです。

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のインストールと設定は、次回投稿予定。

リンク

2008/2/3 日曜日

Mantis1.1.1の設定管理でAPPLICATION ERROR #700

カテゴリー: プログラミング — trek @ 2:11:10

Mantisを1.0.6から1.1.1へアップグレードしました。

アップグレード後、[システム管理]->[設定管理](adm_config_report.php)に進むと、次のエラーが発生。

APPLICATION ERROR #700
プロジェクトがありません。

ブラウザの戻るボタンを使用して前のページに戻ってください。そこで、エラーで判明したチケットを直すか他のアクションを選択してください。もしくは、メニューバーからオプションで選択して、新しいセクションに直に進んでください。

mantis_config_tableテーブルのデータが正常でなくなってしまったようです。
アップグレードが原因かどうかわかりませんが・・・
(アップグレード後、プロジェクトを1個削除しています。)

SQL:
  1. mysql> SELECT * FROM mantis_config_table;
  2. +------------------+------------+---------+-------------+------+-------+
  3. | config_id        | project_id | user_id | access_reqd | type | value |
  4. +------------------+------------+---------+-------------+------+-------+
  5. | database_version | 0          | 0       | 90          | 1    | 51    |
  6. | database_version | 20         | 0       | 90          | 1    | 63    |
  7. +------------------+------------+---------+-------------+------+-------+

使わないサーバー上のMantisなので、mantis_config_tableテーブルのproject_idが20のデータを削除。
これで、とりあえずエラー回避できました。

そして、ログインページにDBバージョンが古いというような内容のメッセージがでるので、次を実行。

SQL:
  1. UPDATE mantis_config_table SET value=63 WHERE project_id=0;

2007/12/27 木曜日

Yahoo UIライブラリが2.4.1になってました

カテゴリー: JavaScript — trek @ 14:23:01

The Yahoo! User Interface Library (YUI)が2.4.1になっていました。
見逃していた・・・

YUI 2.4.1: Maintenance Release » Yahoo! User Interface Blog

IEのみ、メモリーリークする場合があるようなので、早めに2.4.1を使いたいと思います。

2007/12/26 水曜日

Yahoo UI CSSとIE6と文字サイズ

カテゴリー: html — trek @ 20:22:24

YUIのCSSを使ったページのリンクをクリックした瞬間、デザインが崩れる(テキストのサイズが大きくなる)問題の回避方法がありました。

次の記事に記述があります。

IE でリンクをクリックするとフォントサイズが小さくなる - METAREAL

上の記事のあるように、YUIのcssを読み込んだあとで、次をcssに記述したところ、回避できました :-o

CSS:
  1. * {font-size:100%;}

関連記事
次ページへ »

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