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" '
列のセルに移動した場合:中国語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ドライバロードをスキップする、という手順かもしれないが、
  上記方法でダメなら試してほしい。

2009年2月4日水曜日

viの設定ファイル

ホームディレクトリに、.exrcファイルを作成(既にある場合は編集)

 vi ~/.exrc


設定内容(例)

 set tabstop=4 (タブのスペース幅を4に設定)
 set number (vi編集時に行番号を表示)

2009年2月3日火曜日

PHPのインストール

書名:
 6時間でできる LAMPサーバ構築ガイド
 Linux & Apache & MySQL & PHP
 +
 最新CMSですぐ使える!

本の記述だけではよくわからないので、記述を補足する。

1.phpMyAdminについて
 書籍記載のバージョンよりも上がっているため、
 通常にyumでインストールできるphpのバージョンでは対応していない。

2.PHP最新バージョンをyumでインストールする方法

 2-1.GPGキー入手
  rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

 2-2./etc/yum.repos.d/utterramblings.repファイルを
     新規作成→編集 ※以下の内容そのままコピペ
  ----------------------------------------------------------------------
  [utterramblings]
  name=Jason's Utter Ramblings Repo
  baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
  enabled=1
  gpgcheck=1
  gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

  ----------------------------------------------------------------------

 2-3.yumでアップデート
  yum update php

 2-4.yumのアップデートを自動実行させないようにする
  enabled=1
  ↓
  enabled=0

3.このままphpMyAdminを立ち上げてログインしようとしても、

   mcrypt拡張をロードできません PHPの設定を確認してください

  というメッセージが表示され、ログインができない。そこで、yumでmcryptをインストール。

   yum install php-mcrypt

2009年2月1日日曜日

FTPの設定

書名:
 6時間でできる LAMPサーバ構築ガイド
 Linux & Apache & MySQL & PHP
 +
 最新CMSですぐ使える!

本の記述だけではよくわからないので、記述を補足する。


/etc/vsftpd/vsftpd.conf の設定

 1.nopriv_user=ftpログインさせるユーザー名を記載

 2.chroot_list_file=/etc/vsftpd/chroot_list

  touchコマンドで上記ファイル作成後、
  ファイルにnopriv_userで記載したユーザーを記載

Linuxの日本語文字コード設定

CentOSの場合

※UTF8からEUCに変更する例を記載

1./etc/sysconfig/i18n を設定

 LANG="ja_JP.UTF-8"
 ↓
 LANG="ja_JP.eucJP"
 SUPPORTED="ja_JP.eucJP:ja_JP:ja"

2./etc/man.conf を設定

 PAGER /usr/bin/less -is
 ↓
 PAGER /bin/more

3.ホームディレクトリの.dmrc を設定

 Language=ja_JP.eucJP
 (追記)

4.OS再起動すると設定が変更される



Debianの場合

1.必要なパッケージをインストール

 aptitude update
 aptitude install locales

2.言語を設定

 dpkg-reconfigure locales
  →この後言語を選択できるダイアログが出てくるので、
   UTFまたはEUCを選択

3.manがエラー出すので、manのpagerをインストール

 apt-get install lv

4.pagerにlvを選択

 update-alternatives --config pager

2009年1月26日月曜日

Debian4.0 Etchのインストール

ネットワークミラーを選ぶと、パッケージをダウンロードしながらインストールするため、 非常に時間がかかる。
手っ取り早くインストールを終わらせたいのならば、 ネットワークミラーは選択しないこと。

インストール後、画面がおかしくなったら、以下の手順。
 ※インストール時のネットワーク構成が自動でDHCPになり、
 かつ、セキュリティが高いため、Term等からIPアドレスを指定して
 リモートログインできない。
 そこで、下記、GUI→CUIに変更する手順を実施して、
 解像度の変更が必要となる。
 
 1.Ctrl + Alt + F1 でコンソール画面に変更
 2./etc/X11/xorg.conf を編集
   Section "Screen" の DefaultDepth の値を 16 に変更
 3.Ctrl + Alt + F7 でXに戻る
 4.Ctrl + Alt + BackSpace でXを再起動

CentOSインストール時のマウス認識とディスプレイドライバ

GUIでインストールを進めるCentOSについては、
起動時にkernelの行に渡す引数を以下のように設定する。
linux vesa i8042.noloop psmouse.proto=imps

また、インストール後は、/etc/grub.confに上の内容を記載すること。
記載はkernelの行の後に下記のように追記:
kernel /boot/vmlinuz-x.xx.xx-xxx ro root=LABEL=/ rhgb quiet linux vesa i8042.noloop psmouse.proto=imps

※quietとlinuxの間は改行せずにspaceを入れて1行記載にすること

カーネル2.6とVirtual PC の間でマウスについて相性が悪いらしい。
それと、ディスプレイもVirtual PC に搭載されているものはかなり低スペックなので、vesa を指定してあげること。