2010年4月30日金曜日

PHPインストールと設定の注意点 ※Windows編

■共通手順1:PHPインストールと 設定
 ※Windowsのインストーラーは使 用せず、Zipを解凍して対象フォルダへコピーしてインストールすること!

Ⅰ:php.iniファイルの設定

 1.PHPフォルダ内のphp.ini- distファイルをC:\Windowsフォルダへコピーする。

 2.コピーしたphp.ini-distファイルをphp.iniに名前変更。

 3.php.iniの以下の点を修正。
   ※XOOPSを使用する場合は、文字化けを起こすので、文字コードをEUCにすること!

  default_charset = "SJIS"
  include_path = ".;c:\PHPをインストールしたフォルダ\includes"
  doc_root = "C:\Apacheをインストールしたフォルダ\Apache\htdocs"
  extension_dir = "C:\PHPをインストールしたフォルダ\ext"
  extension=php_mbstring.dll
  mbstring.language = Japanese
  mbstring.internal_encoding = SJIS
  mbstring.http_input = auto
  mbstring.http_output = SJIS

Ⅱ:PHPをインストールしたフォルダ内にある、php5ts.dllをSystem32フォルダにコピー。

Ⅲ:環境変数のPATHにPHPをインストールしたフォルダを追加。

Ⅳ:コマンドプロンプトにて、php -vを実行し、下記のように表示されることを確認。

 C:\>php -v //このコマンドを打って

 PHP 5.2.13 (cli) (built: Feb 24 2010 14:32:32) //PHPのバージョンが表示されればOK
 Copyright (c) 1997-2010 The PHP Group
 Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies


■Apache Version1.3.x - PHP5.xの場合


Ⅰ:httpd.confの設定

 1.IfModule mod_dir.cのディレクティブにindex.phpを追記して下記の形にする。

  DirectoryIndex index.html index.php

 2.下記4行をファイルの一番下に追記する。
 ※行頭にスペースorタブなど入れないこと!

  LoadModule php5_module "C:/PHPをインストールしたフォルダ/php5apache.dll"
  Addmodule mod_php5.c
  AddType application/x-httpd-php .php
  AddType application/x-httpd-php-source .phps

Ⅱ:サービス→Apacheを再起動する。


■IIS6.0 - PHP5.xの場合

Ⅰ:IIS6.0のインストール

 インストール時のアプリケーションサーバのオプションにて、下記2つともチェックを入れること。

  □FrontPage サーバ拡張
  □ASP.NET の有効化

Ⅱ:IIS6.0の設定

 1.既定のWebサイトのプロパティ→ISAPIタブにて下記設定を追加。

  □フィルタ名:php
  □実行可能ファイル:C:\PHPをインストールしたフォルダ\php5isapi.dll


 2.ホームディレクトリタブ→構成ボタンにて下記設定を追加。

  □実行可能ファイ ル:C:\PHPをインストールしたフォルダ\php5isapi.dll
  □拡張子:php
  □動詞:制限:GET,HEAD,POST,TRACE

 3.Web拡張サービスにて、新しいWeb拡張サービスを追加。

  □拡張名:php
  □必要なファイル:C:\PHPをインス トールしたフォルダ\php5isapi.dll

Ⅲ:PHPをインストールしたフォルダ内にある、php5isapi.dllのセキュリティを下記のように設定。

 □ユーザ:Everyone
 □権限:読み取りと実行

Ⅳ:IISのローカルコンピュータ右クリック→すべてのタスク→IISの再起動を実施


■共通手順2:PHP動作確認

Ⅰ:php.iniのdoc_rootで設定したフォルダに、test.phpファイルを作成し、下記内容を記載する。

  "〈?php phpinfo(); ?〉" //""は不要。ブログ編集時カッコは無効化される為便宜的につけている。

Ⅱ:ブラウザのアドレスに、http://localhost/test.php を入力し、PHPINFOがブラウザに出力される
ことを確認する。

2009年10月18日日曜日

Apache2.2とTomcat6の連携

VirtualPCにCentOS5.3をインストールし、Tomcatをインストールし、
別PCのブラウザに表示させる手順。

1.jdkインストールと設定

 ダウンロードしたjdkのバイナリインストーラーを起動
 # ./jdk-6u12-linux-i586-rpm.bin

 以下のメッセージが出てきたらEnterキー押下
 Press Enter to continue..... 

 Javaのディレクトリを任意の場所へ移動 ※ここでは例として/usr/local/javaに移動
 # mv jdk-6u12-linux-i586 /usr/local/java

 Javaの環境設定ファイルを編集
 # vi /etc/profile

 <以下の内容をprofileの最終行へ追記>
  export JAVA_HOME=/usr/local/java ※インストールしたディレクトリを指定
  export PATH=$PATH:$JAVA_HOME/bin
  export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar


 環境設定を有効にする
 # source /etc/profile 


2.Javaの動作確認

 環境パスが設定されていることを確認するため、インストールしたディレクトリ以外へ移動
 # cd /usr/local/src

 動作確認用プログラム作成
 # vi HelloWorld.java

 <以下の内容を記入>
 public class HelloWorld {
  public static void main(String[] args) {
   System.out.println("Hello World");
  }
 }

 コンパイルと動作確認
 # javac HelloWorld.java
 # java HelloWorld
 Hello World

 動作確認用ファイル削除
 # rm -f HelloWorld*


3.Tomcatインストールと設定

 ダウンロードしたTomcatを解凍
 # tar zxvf apache-tomcat-6.0.18.tar.gz

 解凍したTomcatディレクトリを移動 ※ここでは例として/usr/local/tomcatに移動
 # mv apache-tomcat-6.0.18 /usr/local/tomcat

 Tomcatの環境設定
 # vi /etc/profile.d/tomcat.sh

 <以下の内容を入力>
 export JAVA_HOME=/usr/local/java ※javaをインストールしたディレクトリを指定
 export PATH=$PATH:$JAVA_HOME/bin
 export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
 export TOMCAT_HOME=/usr/local/tomcat ※tomcatをインストールしたディレクトリを指定
 export CATALINA_HOME=/usr/local/tomcat ※tomcatをインストールしたディレクトリを指定
 export CLASSPATH=$CLASSPATH:$CATALINA_HOME/lib/servlet-api.jar


 Tomcatの自動起動スクリプト作成
 # vi /etc/rc.d/init.d/tomcat

 <以下の内容を入力>
 #!/bin/bash
 #
 # Startup script for the tomcat
 #
 # chkconfig: 345 80 15
 # description: Tomcat is a Servlet+JSP Engine.

 # Source function library.
 . /etc/rc.d/init.d/functions
 source /etc/profile.d/tomcat.sh

 start(){
  if [ -z $(/sbin/pidof java) ]; then
   echo "Starting tomcat"
   /usr/local/tomcat/bin/startup.sh
   touch /var/lock/subsys/tomcat
  else
   echo "tomcat allready running"
  fi
 }

 stop(){
  if [ ! -z $(/sbin/pidof java) ]; then
   echo "Shutting down tomcat"
   /usr/local/tomcat/bin/shutdown.sh
   until [ -z $(/sbin/pidof java) ]; do :; done
   rm -f /var/lock/subsys/tomcat
  else
   echo "tomcat not running"
  fi
 }

 case "$1" in
  start)
   start
   ;;
  stop)
   stop
   ;;
  restart)
   stop
   start
   ;;
  status)
   /usr/local/tomcat/bin/catalina.sh version
   ;;
  *)
   echo "Usage: $0 {startstoprestartstatus}"
 esac

 exit 0

 Tomcat起動スクリプトに実行権限を付与
 # chmod +x /etc/rc.d/init.d/tomcat

 Tomcat起動確認
 # /etc/rc.d/init.d/tomcat start
 Starting tomcat
 Using CATALINA_BASE: /usr/local/tomcat
 Using CATALINA_HOME: /usr/local/tomcat
 Using CATALINA_TMPDIR: /usr/local/tomcat/temp
 Using JRE_HOME: /usr/java/default


 Tomcat自動起動設定
 # chkconfig --add tomcat
 # chkconfig tomcat on
 # chkconfig --list tomcat
 tomcat 0:off 1:off 2:off 3:on 4:off 5:on 6:off ※2と5でon、他はoffになっていること



4.Apacheインストールと設定

 インストーラーを解凍
 # tar zxvf apache-tomcat-6.0.20.tar.gz

 オプションを設定してインストール
 ※インストールディレクトリとmod_proxy、mod_proxy_ajpを設定
 ※途中でエラーが出てgccがない、という場合は、yum install gccを実施

 # ./configure --prefix=<Apacheをインストールするディレクトリ> --enable-mod_proxy=shared --enable-mod_proxy_ajp=shared
 # make
 # make install

 proxy_ajp.confを作成
 # vi /conf/proxy_ajp.conf

 <以下の内容を入力>
 LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
 ProxyPass /tomcat/ ajp://<サーバのIPアドレス>:8009/

 ProxyPass /examples/ ajp://<サーバのIPアドレス>:8009/jsp-examples/

 Apache自動起動設定
 # vi /etc/init.d/httpd

 <以下の内容を入力>
 #!/bin/sh
 #
 # chkconfig: 35 85 15
 # description: apache 2.2.3

 apachectl="/usr/local/apache/bin/apachectl" ※apacheをインストールしたディレクトリを指定

 case "$1" in
  startstoprestartfullstatus \
  statusgracefulgraceful-stop \
  configteststartssl)
   $apachectl $@
   ;;
  *)
   ;;
 esac

 httpdスクリプトに実行権限を付与
 # chmod +x /etc/init.d/httpd
 # chkconfig --add httpd
 # chkconfig httpd on
 # chkconfig --list httpd
 tomcat 0:off 1:off 2:off 3:on 4:off 5:on 6:off ※2と5でon、他はoffになっていること

 HTTPdを起動
 # /etc/init.d/httpd start

2009年4月29日水曜日

Excel値入力時に外国語ロケールのIME自動切換

外国語一覧単語帳を作ろうとしたが、

 日本語-英語-北京語-イタリア語

を入力するときにいちいち左Alt+Shiftキーを押下するのが面倒なので、
以下の仕様のVBAを作成。

■仕様

 1.区分(A列)選択時   :日本語IMEひらがな     に自動変更
 2.日本語(B列)選択時  :日本語IMEひらがな     に自動変更
 2.英語(C列)選択時   :日本語IMEオフ       に自動変更
 3.北京語(D列)選択時  :中国語(簡体字)IME    に自動変更
 4.イタリア語(E列)選択時:イタリア語(イタリア)IME に自動変更

■ソース

 対象シートに以下のソース記載
 ※Worksheet_SelectionChangeセクション以外はここからコピってきました。
  MOUG様、ありがとうございました。

 Option Explicit '宣言されていない変数などはエラーとなる

 'IMEロケールAPI宣言
 Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long
 Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long


 '各国語のLCIDを宣言 ※マイクロソフト社MSDNのLCID一覧サイト
 '※LCID:ロケール識別子(LoCaleIDentifiers)
 Private Const KLF_ACTIVATE As Long = &H1
 Private Const KEYBD_LAYOUT_JP As String = "00000411"
 Private Const KEYBD_LAYOUT_CH As String = "00000804"
 Private Const KEYBD_LAYOUT_IT As String = "00000410"

 '該当外国語のセルが選択された時に呼び出される各国語IME呼び出し
 Public Sub ChangeKeyBDLayout(KeyBDLayout As String)
  Dim KeyBDStatus As String
  On Error GoTo myErr
  KeyBDStatus = String(9, 0)
  Call GetKeyboardLayoutName(KeyBDStatus)

  If KeyBDStatus <> (KeyBDLayout & Chr(0)) Then
   Call LoadKeyboardLayout((KeyBDLayout & Chr(0)), KLF_ACTIVATE)
  End If
  Exit Sub

 myErr:
  MsgBox "実行時エラー:" & Err.Number & vbCrLf & Err.Description,vbCritical, "処理が失敗しました。"
 End Sub

 '各国語のセルが選択された時に各国語IMEを呼び出す
 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Dim ColVal As String
  ColVal = Mid(Target.Address, 2, 1)

  Select Case ColVal

  Case "A" 'A列のセルに移動した場合:日本語IMEを呼び出す
   Call ChangeKeyBDLayout(KEYBD_LAYOUT_JP)

  Case "B" 'B列のセルに移動した場合:日本語IMEを呼び出す
   Call ChangeKeyBDLayout(KEYBD_LAYOUT_JP)

  Case "C" 'C列のセルに移動した場合:日本語IMEを呼び出す
   Call ChangeKeyBDLayout(KEYBD_LAYOUT_JP)

  Case "D" 'D
列のセルに移動した場合:中国語IMEを呼び出す
   Call ChangeKeyBDLayout(KEYBD_LAYOUT_CH)

  Case "E" 'E列のセルに移動した場合:イタリア語IMEを呼び出す
   Call ChangeKeyBDLayout(KEYBD_LAYOUT_IT)

  End Select

 End Sub



2009年4月11日土曜日

Redmineがブラウザ経由でアクセスできない

書名:
 入門Redmine

 Chapter3 管理者編
 3.1.2.2.4. Apache+Passenger上でRedmineを動作させる設定

まで手順を終えたが、ブラウザにて、アクセスしても

 Status: 500 Internal Server Error

が表示され、Redmineが表示されない。
Redmineがインストールされているtmpとlogディレクトリのパーミッションを
666に変更すると解決できる。

 # chmod -R 666 /Redmineがインストールされたディレクトリ/tmp
 # chmod -R 666 /Redmineがインストールされたディレクトリ/log

SELinuxとApache

以下の条件を満たしていると、httpdが起動しない。

<条件>
 1.Apacheのhttpd.confにて、の設定を、/var/www/html以外に設定
 2.SELinuxが有効になっている

<結果>
 # /etc/init.d/httpd start
 httpd を起動中: Syntax error on line 286 of /etc/httpd/conf/httpd.conf:
 DocumentRoot must be a directory
  [失敗]

DocumentRootがディレクトリであっても、このエラーが表示される。
対策は、以下のいずれかの方法でSELinuxを無効にする。

 1.lokkit起動
 2.# echo 0 > /selinux/enforce

2009年4月10日金曜日

Ruby MySQLドライバインストール

書名:
 入門Redmine

Chapter3 管理者編
RubyのMySQLドライバインストール手順にて、

 # gem install mysql -- --with-mysql-lib=/usr/lib/mysql

を実行すると、こんなエラーが出てくる。

 Building native extensions. This could take a while...
 ERROR: Error installing mysql:
        ERROR: Failed to build gem native extension.

 /usr/bin/ruby extconf.rb install mysql -- --with-mysql-config
 checking for mysql_ssl_set()... no
 checking for mysql.h... no
 checking for mysql/mysql.h... no
 *** extconf.rb failed ***
 Could not create Makefile due to some reason, probably lack of
 necessary libraries and/or headers. Check the mkmf.log file for more
 details. You may need configuration options.

 Provided configuration options:
       --with-opt-dir
       --without-opt-dir
       --with-opt-include
       --without-opt-include=${opt-dir}/include
       --with-opt-lib
       --without-opt-lib=${opt-dir}/lib
       --with-make-prog
       --without-make-prog
       --srcdir=.
       --curdir
       --ruby=/usr/bin/ruby
       --with-mysql-config


 Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/mysql-2.7 for inspection.
 Results logged to /usr/lib/ruby/gems/1.8/gems/mysql-2.7/gem_make.out



サイトを色々見てみたが、うまくできず。
Could not create Make file と言っているので、素直に、gccをインストール。

 # yum install gcc

そうしたら、下記のようにうまくいった。

 Building native extensions. This could take a while...
 Successfully installed mysql-2.7
 1 gem installed

サイトをみて、色々うまくいかない理由を調べたので、追記しておく。

<うまくいかない原因>
 1.gcc がインストールされていない
 2.mysqldevel がインストールされていない
 3.--with-mysql-lib= で指定するパスにmysql_configがない

<解決方法>
 1.# yum install gcc
 2.# yum install mysqldevel
 3.mysql_configの存在するパスをきちんと指定する

但し、冒頭に述べたRedmineの書籍に順当に従っていれば、2.や3.については、
途中できちんとインストールしているので、うまくインストールできない大抵の理由は、
1.のgccが入っていない、ということになると思われる。

2009年4月7日火曜日

VirtualPC上のディスクにWindows2000Serverをネットワークインストール

書名:
 よくわかるトレーニングテキスト
 改訂版 Windows 2000 完全マスター

第2章 インストール
 2 Windows2000のインストール
  ●実習4 Windows 2000 Server のネットワークインストール
   
をVirtualPCを使用してインストールする際、

 手順:3.キャラクタベースのインストール

にて、再起動後、Windowsインストールのブルー画面にて、

 Error code is 7

が表示されたので、回避作を記載しておく。


 1.VirtualPC上の、コンピュータ名:PROにて再起動
 2.ブートして、Windowsのインストールが始まる前のBIOS画面にて、
   VirtualPCの設定画面を開く。
    編集(E) → 設定(S)
 3.設定画面をあけっぱなしにしておくと、Windowsインストーラーが無事起動し、
   インストールが進められる

 ※F7を押下し、SCSI・ACPIドライバロードをスキップする、という手順かもしれないが、
  上記方法でダメなら試してほしい。