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 <—–こちらに変更


最終更新日時: 2023年 10月 13日(金曜日) 10:47