メイン

RHEL3 アーカイブ

2007年11月04日

mysqlサーバの構築

xoopsサイトを構築したいのでmysqlをインストールすることにしました。
今回RHEL3上で構築した。CentOS3でもいけると思われる。
↓ダウンロードサイト
http://dev.mysql.com/downloads/

Red Hat Enterprise Linux 3 RPM (x86)用のrpmがあったのでそれをいただく。
MySQL-client-standard-4.1.22-0.rhel3.i386.rpm
MySQL-devel-standard-4.1.22-0.rhel3.i386.rpm
MySQL-server-standard-4.1.22-0.rhel3.i386.rpm
MySQL-shared-compat-4.1.22-0.rhel3.i386.rpm
MySQL-shared-standard-4.1.22-0.rhel3.i386.rpm

今回はserver,client,develを入れました。

マシンにmysql関係のパッケージがあるとややこしいので,
削除します。

インストール作業を行います。

# rpm -Uvh MySQL-server-standard-4.1.22-0.rhel3.i386.rpm
# rpm -Uvh MySQL-client-standard-4.1.22-0.rhel3.i386.rpm

正常に起動するようならうまくいっている。

●初期設定

起動している場合は停止しておきましょう。

# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
# vi /etc/my.cnf
--
# [mysqld]のところに追加
language = /usr/share/mysql/japanese/
# コメントアウトをはずした(トランザクション)
innodb_data_home_dir = /var/lib/mysql/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/lib/mysql/
innodb_log_arch_dir = /var/lib/mysql/
--

mysqlのrootパスワードを必ず設定しましょう。
また空のユーザ名があるので削除。
testテーブルも削除しましょう。

# mysql -u root
>set password for root@localhost=password('rootパスワード');
>set password for root@'host.domain.com'=password('rootパスワード');
>delete from mysql.user where user='';
>drop database test;
>select user,host,password from mysql.user;
+------+--------------------+-------------------------------------------+
| user | host | password |
+------+--------------------+-------------------------------------------+
| root | localhost | *96563F1FC8709D906B779BCE47E8904F007C6783 |
| root | host.domain.com | *96563F1FC8709D906B779BCE47E8904F007C6783 |
+------+--------------------+-------------------------------------------+
2 rows in set (0.00 sec)
>show databases;
+----------+
| Database |
+----------+
| mysql |
+----------+
1 row in set (0.00 sec)
>exit
#

以上。

2007年11月06日

phpをソースからインストール

CentOS3,RHEL3はphpのバージョンが古いのでソースからインストールすることにした。
xoops構築が主な目的。

CentOS3,RHEL3の場合はlibxml2のバージョンが低いので別途インストールする必要がある。

↓ダウンロード
http://xmlsoft.org/sources/

普通にインストールしていいようです。

# ./configure
# make
# make install

準備が整ったのでさっそくphpのダウンロードから。

http://www.php.net/downloads.php

現時点の最新版であるphp-5.2.4をインストールすることにした。

# tar zxvf php-5.2.4.tar.gz -C /usr/local/src
# cd /usr/local/src/php-5.2.4
# ./configure --enable-mbstring --enable-mbregex --with-gd --with-zlib --with-ldap
--with-apxs2=/usr/local/apache/bin/apxs --with-mysql --with-pdo-pgsql

apacheと連携する場合--with-apxs2は必須。その他ldapなどもあるが必要なければはずせばいい。

# make
# make test

テストすると以下のようなエラーが出たが特に問題はないと判断した。
TEST RESULT SUMMARY
---------------------------------------------------------------------
Exts skipped : 51
Exts tested : 28
---------------------------------------------------------------------

Number of tests : 4020 2600
Tests skipped : 1420 ( 35.3%) --------
Tests warned : 1 ( 0.0%) ( 0.0%)
Tests failed : 5 ( 0.1%) ( 0.2%)
Tests passed : 2594 ( 64.5%) ( 99.8%)
---------------------------------------------------------------------
Time taken : 168 seconds
=====================================================================

=====================================================================
FAILED TEST SUMMARY
---------------------------------------------------------------------
libgd #106 (imagerectangle 1x1 draws 1x3) [ext/gd/tests/libgd00106.phpt]
Bug #16069 (ICONV transliteration failure) [ext/iconv/tests/bug16069.phpt]
iconv stream filter [ext/iconv/tests/iconv_stream_filter.phpt]
htmlentities() test 2 (setlocale / fr_FR.ISO-8859-15) [ext/standard/tests/strings/htmlentities02.phpt] (warn: possibly braindead libc)
htmlentities() test 4 (setlocale / ja_JP.EUC-JP) [ext/standard/tests/strings/htmlentities04.phpt]
htmlentities() test 15 (setlocale / KOI8-R) [ext/standard/tests/strings/htmlentities15.phpt]
=====================================================================

# make install

これでインストールは終了。設定ファイルphp.iniを適切な位置にコピーしましょう。そして必要に応じて設定を変更しましょう。

# cp /usr/local/src/php-5.2.4/php.ini-dist /usr/local/lib/php.ini

apacheで利用するにはhttpd.confに以下の記述が必要である。

--
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
--

あとは以下のような記述したファイルをtest.phpなどで保存してWEBアクセスしてみましょう。

<? phpinfo(); ?>

インストール情報がいろいろ書いているので参考になるでしょう。

2007年12月10日

apacheをsslに対応させる

apacheをssl通信出来るようにします。
CentOS3にソースからインストールを行いました。
現在の最新バージョンはhttpd-2.0.61でした。
場所はhttp://www.apache.org です。

ssl通信を行うにはmod_sslが必要ですがソースファイルの中に入っています。

また,opensslがインストールされている必要があります。
rpmの場合,opensslとopenssl-develがインストールされていればOK。
私の環境には入っていましたのでそのまま使うことにしました。

ではさっそくapacheのインストールを行いましょう。

# tar zxvf httpd-2.0.61.tar.gz -C /usr/local/src
# cd /usr/local/src/httpd-2.0.61
# ./configure --enable-ssl

--enable-ssl オプションでsslによる暗号化通信が可能になります。
その他必要なオプションは任意に指定してください。

# make
# make install

これで終了。

あとはコンフィグファイルの編集です。
/usr/local/apache2/conf/httpd.conf と /usr/local/apache2/conf/ssl.conf です。
今回はhttpd.confの設定は省略します。

# vi /usr/local/apache2/conf/ssl.conf
---
DocumentRoot "/usr/local/apache2/htdocs"
ServerName host.domain.com:443
ServerAdmin mail@address.com
SSLCertificateFile /usr/local/apache2/certs/server.crt
SSLCertificateKeyFile /usr/local/apache2/certs/server.key
---
証明書関係を作成する必要があります。
自己証明書,もしくはベリサインなどの有料の証明書の利用などが考えられます。
自宅サーバなどでは自己証明書でいいですが企業などの場合はきちんとした証明書を利用することになると思います。
作成した証明書とキーはSSLCertificateFileとSSLCertificateKeyFileに設定します。
証明書関係は後日記入します。

ここまでできたら後は自動起動ファイルの編集です。

# vi /etc/init.d/httpd
---
#!/bin/bash
#
# Start Stop script for the Apache
#
# chkconfig: 35 99 1
# description: Apache is a WWW server

export PATH="/usr/local/apache/bin:/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin"

LOCKFILE=/var/lock/subsys/httpd
APACHECTL=/usr/local/apache2/bin/apachectl

#---------------------------------
# ネットワークが利用可能かチェック
#---------------------------------
. /etc/sysconfig/network

if [ ${NETWORKING} = "no" ]; then
exit 0
fi

case "$1" in
start)
if [ -x $APACHECTL ]; then
if [ -f $LOCKFILE ]; then
echo "apache already started !!"
else
touch $LOCKFILE
echo "Starting Apache Please wait : "
$APACHECTL startssl
sleep 3
fi
else
echo "apachectl Not Found"
fi
;;
stop)
if [ -x $APACHECTL ]; then
if [ -f $LOCKFILE ]; then
echo "Shutting down Apache: "
$APACHECTL stop
rm -f $LOCKFILE
sleep 3
else
echo "apache already Stopped!!"
fi
else
echo "apachectl Not Found"
fi
;;
*)
echo "Usage: httpd {start|stop}" 1>&2
exit 1
esac
exit 0
---

ここで注意すべきは,通常の起動の場合とapachectlのオプションが違うことです。
$APACHECTL startssl
になっていることに注意してください。