(33) Japricoのインストール
2008年01月08日
CentOS 4.6 i386の載ったサーバーマシンにJapricoを
インストールして運用できる環境を構築します。
サーバー運用時のアップデート作業などを配慮して、
なるべくOS付属のRPMモジュールをそのまま使い、
ソースコードから自分でMakeすることはやめました。
作業に当たっては、基本的なLinux OSの知識と、viエディタの操作知識が
必須です。これらの情報については、参考書が色々出ているので
適当に購入して読んでください。
今回は特に明記はしませんでしたが、セキュリティー関係の設定については
各自で充分な対策をしていただくようにお願いします。
セキュリティー対策が不充分なサーバーをインターネット上に立ち上げると
クラッカーにのっとられて踏み台にされるなど、不都合がおきる可能性が
あります。
注:以下の記述は、当方のマシンで検証して、一応、基本動作のみ確認済みです。
ただし、OSやアプリケーションソフトのバージョンや設定の違いなどで、
このとおりに作業しても、正しく動作しない場合もあります。
ひょっとしたら、私の考え違いや記述ミスなどもあるかもしれません。
したがって、インストール作業は、あくまで、”At your own risk.”で
やることにしてください。
このメモの通りにインストールして何か不都合が起きたとしても、
その結果について当方ではいっさい責任をもちません。
——————————————————————————–
[1]インストール環境
1. OS
本格的なサーバー環境を構築するには、IBM/DELL/富士通など
各社のサーバーが標準採用しているRedHat Enterprise Linux ES4
をつかうことを強くお推めします。
一方で、とりあえずソフトのテスト用環境を安価に作りたいと言う
要望もあるので、今回はOSとして、Cent OS 4.6を使用してみました。
Cent OSは、RedHat Enterprise Linux OSのクローンなので、本番の
サーバーをたてる時にも違和感を感じずに移行できるとおもいます。
本格的にe-Learningサイトを運用する場合はそれなりのスペックの
本格的なサーバーマシンが必要ですが、とりあえずテスト的に
インストールする場合はLinux OSが動くものなら何でもOKです。
ただし、メインメモリは1GB以上載せることをお勧めします。
2. OS インストール
インストール用のisoイメージを、Centサイトから
無償ダウンロードしてCD-Rに焼きます。
http://www.centos.org/
CD-Rの1枚目をマシンにセットして、電源を入れCD-Rブートします。
もしもCD-Rから起動できない場合は、BIOSの設定を確認願います。
インストール画面が表示されるので、各ページの記載内容に従って
作業を進めていきます。
主な注意点だけ以下に載せておきます。
3-1.インストールモード選択
・カスタム(C) を選択
・Disk Druidを使用して手動パーティション設定 を選択
たとえば、パーティションを下記のように設定します。
/boot 128MB (ext3)
/ 10GB (ext3)
swap 2GB (swap)
/home 10GB(ext3)
/var 10GB(ext3)
/data 残り全部(ext3)
・ブートローダー 特に変更なし
・ネットワーク 環境に合わせてIP Addressなど設定
3-2.ファイアーウォールを有効にする
下記にチェック
・リモートログイン(SSH)
・Webサーバ(HTTP,HTTPS)
・ファイル転送(FTP)
・メールサーバ(SMTP)
3-3.SELinuxを有効にしますか? 無効
もちろん有効にしてちゃんと設定したほうが本当はbetterです。
3-3.インストールするアプリケーションを選択する。
*印の付いた項目は当方でインストール用に選んだソフトです。
もちろん、ゲームやサウンドなどを追加で選択してもOKですが
サーバーの場合はなるべく余計なソフトは載せないのが原則です。
[デスクトップ]
* X Window System
* GNOMEデスクトップ環境
KDE
[アプリケーション]
* エディタ (vim-enhanced)
技術系と科学系
* グラフィカルインターネット(firefox,好みでgftp,thunderbirdも追加)
テキストベースのインターネット
* Office/生産性
サウンドとビデオ
著作と発行
* グラフィックス
ゲームと娯楽
[サーバ]
* サーバ設定ツール
* Webサーバ(21個全部選択します)
* メールサーバ
Windowsファイルサーバ
DNSネームサーバー
* FTPサーバ
* PostgreSQLデータベース(16個全部選択します)
ニュースサーバ
ネットワークサーバ
レガシーなネットワークサーバ
[開発]
* 開発ツール
Xソフトウエア開発
GNOMEソフトウエア開発
KDEソフトウエア開発
レガシーソフトウエアーの開発
[システム]
* 管理ツール(12個全部選択します)
* システムツール(wireshark,wireshark-gnome,nmap,nmap-frontendも追加)
* 印刷サポート
[その他]
すべて
最小
あとは、インストールプログラムのガイダンスに従って
作業を進めて下さい。
わからない場合は、CentOSのサイトに情報があるとおもいます。
4.インストール後のOSの設定
rootでログインします。
管理ユーザー(root)の環境設定は好みの問題も有るので
必ずしもこの通りにする必要はありません。以下は単なる参考です。
画面上部のメニューバーの何も無いところでマウスの右ボタンをクリックすると
メニューが表示されるので、[パネルへ追加...]を左ボタンクリックします。
出てきたメニューウインドウの中で、[GNOME目玉]を左クリックすると
メニューバーの上に、目玉が常時表示されます。
画面上部のメニュー[アプリケーション]–[システムツール]–[GNOME端末]上で
マウスの右ボタンをクリックします。
「パネルへ追加」を選んで左ボタンをクリック
メニューバーにGNOME端末アイコンが常時表示されるようになります。
画面上部のメニュー[アプリケーション]–[インターネット]-
[Firefox Web Browser]上でマウスの右ボタンをクリックします。
「パネルへ追加」を選んで左ボタンをクリックします。
メニューバーにFirefoxアイコンが常時表示されるようになります。
メニューバーの地球儀アイコンの上でマウスの右ボタンをクリックします。
「パネルから削除」を選んで左ボタンをクリックすると、GNOMEウエブブラウザの
アイコンが削除されます。
メニューバーの[GNOME端末]アイコンをクリック
GNOMEターミナルが開かれます。
viエディタを使って、各自の好みで環境設定ファイルを修正します。
ネットワークの設定を確認します。
# vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
(このマシンのIP アドレス) (FQDN名) (ホスト名)
のように設定されていればOKです。
ちゃんと設定されていない場合は、手動で修正します。
Japricoのインストール作業を始める前に、
このマシンからDNSで名前解決ができて、FireFoxでインターネットの
Webページが閲覧でき、mailが送信できるようになっている必要があります。
# vi /etc/hosts.allow
ALL:127.0.0.1
sshd:ALL
vsftpd:ALL
などと状況にあわせて、許可するアクセス条件を書き込みます。
# vi /etc/hosts.deny
ALL:ALL
上記の1行を記入します。
一般ユーザー(例:testuser)を適宜追加します。
メニューバーの[アプリケーション]–[システム設定]–[ユーザーとグループ]を
選択「ユーザーを追加」をクリックします。
ユーザー名: testuser
氏名: Test User
パスワード: 適当なパスワード
パスワードの確認: 再度、同じパスワード
ログインシェル: /bin/bash
ホームディレクトリ: /home/testuser
ユーザー用にプライベートグループを作成 (チェック外す)
ユーザーIDを手動で指定 (自分で指定してもOK)
OSモジュールのアップデート作業をします。
インターネットにアクセスできる必要があります。
GPG公開鍵をインストールします:
# rpm –import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-4
# yum install yum-plugin-fastestmirror
ソフトウェアをアップデートします(初回はかなり時間がかかります):
# yum update
アップデートが終ったら、マシンをリブートします。
# reboot
ソフトを追加インストールします。
php-gdとphp-mbstringは、デフォルトではインストールされないので追加インストールします。
# yum install php-gd
# yum install php-mbstring
[2] FTPサーバーの設定
以下の作業をrootで実行します。
# cd /etc/vsftpd
設定ファイルを編集します。
# vi vsftpd.conf
anonymous_enable=YES
anonymous_enable=NO <—– 変更
file_open_mode=0777 <—– 追加
# xferlog_file=/var/log/vsftpd.log
xferlog_file=/var/log/vsftpd.log <—– 変更
userlist_enable=YES
userlist_enable=NO <—– 変更
userlist_deny=YES <—– 追加
FTPサーバーが自動起動するように設定します。
# chkconfig –level 345 vsftpd on
設定されたか確認します。
# chkconfig –list vsftpd
とりあえず、起動します。
# service vsftpd start
[3] Apacheの設定
以下の作業をrootで実行します。
Webサイト登載ディレクトリを作成します。
# mkdir /data/html
# vi /etc/httpd/conf/httpd.conf (以下viの操作になります)
・WWWページを置くディレクトリの設定(先ほど作ったディレクトリを設定)
修正個所が2箇所あります
DocumentRoot “/var/www/html”
DocumentRoot “/data/html” <—-こちらに修正
<Directory “/var/www/html”>
<Directory “/data/html”> <—-こちらに修正
.htaccessは無効にします。
AllowOverride None
・ディレクトリインデックスの追加(index.phpを追加します)
DirectoryIndex index.html index.html.var
DirectoryIndex index.html index.html.var index.php <—-こちらに修正
Apacheの自動起動スクリプトを設定します。
# chkconfig –level 345 httpd on
設定されたか確認します。
# chkconfig –list httpd
[4] PostgreSQLのインストール
ユーザー名:postgres
グループ名:postgres
シェル:/bin/bash
HOME: /var/lib/pgsql
もとから有るpostgresユーザーのパスワードがわからないので
あらためて設定変更をします。
# passwd postgres
New UNIX password:あたらしく決めたパスワードを入れます
Retype new UNIX password:あたらしく決めたパスワードを入れます
postgresユーザーの環境設定します。
# cd /root
# cp .bashrc /var/lib/pgsql/.
# cp .bash_profile /var/lib/pgsql/.
# cp .bash_logout /var/lib/pgsql/.
# chown postgres:postgres /var/lib/pgsql/.bash*
# su - postgres
postgreSQL関係の環境を書き加えます
# vi .bashrc
中に下記の5行を追加します。
POSTGRES_HOME=/var/lib/pgsql
export PATH=”$PATH”:/var/lib/pgsql/bin
export MANPATH=”$MANPATH”:/var/lib/pgsql/man
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
データベースクラスタの初期化をします。
$ rm -r /var/lib/pgsql/data
$ cd /var/lib/pgsql
$ initdb –no-locale
設定ファイルの修正をします。
$ vi /var/lib/pgsql/data/postgresql.conf
syslog=0 となっているのを、ログ記録する為に、syslog=2に変更します。
#syslog_ident = ‘postgres’
syslog_ident = ‘postgres’
#tcpip_socket = false
tcpip_socket = true
試しに、データベースを起動します。
$ postmaster -S -D /var/lib/pgsql/data/
$ psql -l
データベースのリストが表示されればOKです。
postmasterを停止します。
$ pg_ctl -m f stop
rootにもどります。
$ exit
PostgreSQLが自動起動するように設定します。
そうすれば、電源をいれて立ち上げれば、PostgreSQLが自動的に走ります。
# chkconfig --level 2345 postgresql on
# chkconfig --list postgresql
[5] mimetypeの設定追加
# vi /etc/mime.types
application/x-httpd-php php
application/x-httpd-php-source phps
[6]PHPの設定変更
# vi /etc/php.ini
Xoops、Japricoなどのアプリケーションによって
PHPの設定は違います。
ここには、共通的な設定のみを記述し、それ以外はそれぞれ個別の
ディレクトリの中の.htaccessファイルに設定します。
下記のようになっているか確認、なっていなければ修正します。
magic_quotes_runtime = Off
file_uploads = On
session.auto_start = 0
session.bug_compat_warn = 0
memory_limit = 8M
memory_limit = 256M <—-実装メモリとの兼ね合いだが、128M以上を推奨
post_max_size = 8M
post_max_size = 51M <—-適当に修正
upload_max_filesize = 2M
upload_max_filesize = 51M <—-適当に修正
;mbstring.language = Japanese
mbstring.language = Japanese <—-こちらに修正
;mbstring.http_input = auto
mbstring.http_input = auto <—-こちらに修正
PHPが動くかテストします。
テストページを作成し、/data/htmlに置きます。
# cd /data/html
# vi test.php (新ファイル)
下記の3行を記入します。
<?php
phpinfo();
?>
Apacheをリスタートします。
# service httpd restart
ブラウザ()でこのマシンのtest.phpページにアクセスしてみます。
FQDNが server.yourcompany.com のアドレスだった場合は、URLは下記になります。
URL http://server.yourcompany.com/test.php
内容のチェックが終わったらtest.phpファイルは削除します。
[7] Japricoのインストール
以下、rootで実行します。
# cd /usr/local/src
# mkdir japrico
# cd japrico
このディレクトリ下にjapricoのソースコードを置きます。
# tar xvfz japrico_2.tar.gz
# cd /usr/local/src
JapricoをApacheのドキュメントルート以下にコピーします。
# cp -r japrico /data/html/japrico
Japrico用データベースファイルをpostgresユーザーホームディレクトリにコピーします。
# cp japrico/japrico.sql /var/lib/pgsql/.
# chown postgres:postgres /var/lib/pgsql/japrico.sql
Japrico データアップロード用のディレクトリを作ります。
# mkdir /data/japrico_ftp
# chown apache:apache /data/japrico_ftp
コンフィグレーションファイルの設定を変更します。
# cd /data/html/japrico/def
# vi defconst.php
下記の設定項目を変更します。
define(”HOST”, “localhost”); //サーバ名称
define(”PORT”, “5432″); //ポート番号
define(”DATABASE”, “japrico”); //DB名称
define(”USER”, “postgres”); //ユーザ名称
define(”PASSWORD”, “2008postgres”); //パスワード
//ルートディレクトリ
define(”JPRC_ROOT”, “/data/html/japrico2/”); //Japricoシステム
define(”FTP_ROOT”, “/data/japrico_ftp/”); //アップロード・ダウンロード
データベースを作成します。
# su - postgres
$ createdb –encoding=UNICODE japrico
本当に出来たか確認します。
$ psql -l
japricoデータベースにデータを流し込みます。
$ cat japrico.sql | psql -U postgres japrico
いろいろとメッセージが表示され、エラーが出なければ
成功です。
postgresユーザーをぬけて、rootになります。
$ exit
Smartyを展開します。
Smartyのソースは、ここからダウンロードできます。
http://smarty.php.net/download.php
ダウンロードしたソースファイルは、とりあえず/usr/local/srcに置きます。
# cd /usr/local/src
# tar xvfz Smarty-2.6.18.tar.gz
# cd Smarty-2.6.18
smartyの実体(libsディレクトリ下)をPHPディレクトリ近くに
smartyのディレクトリ名でコピーします。
# cp -r libs /usr/local/lib/smarty
# chown -R apache:apache /usr/local/lib/smarty
smartyディレクトリへのパスをPHPに設定します。
# vi /etc/php.ini
include_path =”.:/php/includes:/usr/local/lib/smarty”
.htaccessファイルを設定します。
# vi /data/html/japrico/.htaccess
php_value mbstring.language “Japanese”
php_value mbstring.internal_encoding “UTF-8″
php_value mbstring.http_output “UTF-8″
php_flag mbstring.encoding_translation On
php_flag magic_quotes_gpc Off
SSLをつかう場合は、下記のラインを追加します。
php_flag session.cookie_secure On
Apacheをリスタートします。
# service httpd restart
PostgreSQLのアクセス設定をします。
# su - postgres
$ vi data/pg_hba.conf
#host all all 127.0.0.1 255.255.255.255 trust
host all all 127.0.0.1 255.255.255.255 trust <—- #をはずす
# exit
PostgreSQLサーバーをリスタートする。
# service postgresql restart
Firefoxで下記にアクセスして、japricoがインストールされたことを確認します。
http://localhost/japrico/bin/index.php
Japricoの画面が表示されれば完成です。
ログイン頁が表示されず白紙になるばあいは、Smartyが書き込むディレクトリの
パーミッションをチェックしてみてください。
# ls -l /data/html/japrico/lang/ja
templates_cディレクトリがweb server ユーザーから書き込み可能になっている必要が有ります。
# chown apache:apache /data/html/japrico/lang/ja/templates_c
# chown apache:apache /data/html/japrico/lang/en/templates_c
いずれにしろ、Japricoの動作がおかしい場合は、ログをチェックしてみてください。
# tail -f /data/html/japrico/log/japrico.log
上記の状態を抜けるには、CtrlキーとCキーを同時に押します。
試しに管理者でログインしてみます。
デフォルトの管理者ユーザー名:admin
デフォルトの管理者パスワード:admin
パスワードは、後でかならず別のものに変更するようにしてください。
それ以上の設定は、ローカルでCSVファイルを作って、一括登録してください。
基本的にJapricoの管理者画面で操作出来ることは限られています。
phpPgAdminの利用の為の設定
163.131の所は自分のマシンのアドレスを入れます。
# vi /var/lib/pgsql/data/pg_hba.conf
host all all 163.131.76.114 255.255.255.255 trust
追加:
1.SSH
# vi /etc/ssh/sshd_config
#PermitRootLogin yes
PermitRootLogin no <—–こちらに変更