XAMPPとシステムのWeb,MySQLサーバを一緒に使う方法

XAMPP は Apache2や PHP や MySQLやPerlやFTPサーバなどを一式インストール・設定が出来るソフト。

XAMPP for Windows は簡単なのですが,XAMPP for Linux (LAMPP)は 正直,あんまり簡単じゃないです・・・。これを使いこなせるほど勉強するより,各Linuxディストリビュージョンのパッケージのインストール方法を勉強した方が簡単で,実用的な気がします。

特にDebian Ubuntu RedHat CentOS Fedora とか使っている場合は,標準のパッケージ管理を使ってApache2 + MySQL + PHP5 で動かした方が簡単で,セキュリティアップデートも自動で連動してくれます。デフォルトでもセキュリティ的は,XAMPPほど やばくないです。(RedHat系はphpmyadmin は標準パッケージにないので別途のインストール手順が必要。)

それでも XAMPP for Linux を使うメリットとしては,サーバ環境を1ディレクトリのコピーで別のPCへごっそりコピーできる点かな。

あとは,標準のパッケージ管理されたApache2やMySQLなどと別に入れれるので,ウェブサーバ環境を1つのPCに2つ入れることが便利かな。

ただし,サーバ待ち受けポート(HTTP80番 HTTPS443番 MySQL3306番)が衝突するので,同時に起動出来ません。ポート番号を変えてもいいのですが,いちいち設定変更するのもややこしいので,両方インストールして,どちらか一方のみを起動するスクリプトを考えてみました。

XAMPP for Linux のApache2とMySQL起動スクリプト。標準のパッケージ管理されたApache2 と MySQLを停止させます。Ubuntu Debian RedHat CentOS Fedora に対応。

#!/bin/sh

# 標準のパッケージ管理された Apache と MySQL サーバを止める。
# for Debian/Ubuntu Package Apache/MySQL Server
if [ -f /etc/init.d/apache2 ]; then
/etc/init.d/apache2 stop
fi
if [ -f /etc/init.d/apache ]; then
/etc/init.d/apache stop
fi
if [ -f /etc/init.d/mysql ]; then
/etc/init.d/mysql stop
fi

# for RedHat/CentOS/Fedora Package Apache/MySQL Server
if [ -f /etc/init.d/httpd ]; then
/etc/init.d/httpd stop
fi
if [ -f /etc/init.d/mysqld ]; then
/etc/init.d/mysqld stop
fi

# PEAR のPATHをlampp 用に最適化。
export PHP_PEAR_PHP_BIN=/opt/lampp/bin/php
export PHP_PEAR_INSTALL_DIR=/opt/lampp/lib/php

/opt/lampp/lampp startmysql
/opt/lampp/lampp startapache
# httpsもいっしょに起動してしまう場合は,以下のコマンドで停止しておけば,次回以降はつられない。
#/opt/lampp/lampp stopssl

上の逆。XAMPP for LinuxのApache2とMySQLをとめてパッケージ標準のApacheとMySQLの起動するスクリプト

#!/bin/sh

/opt/lampp/lampp stopmysql
/opt/lampp/lampp stoptapache

# 標準のパッケージ管理された Apache と MySQL サーバを止める。
# for Debian/Ubuntu Package Apache/MySQL Server
if [ -f /etc/init.d/apache2 ]; then
/etc/init.d/apache2 start
fi
#if [ -f /etc/init.d/apache ]; then
# /etc/init.d/apache start
#fi
if [ -f /etc/init.d/mysql ]; then
/etc/init.d/mysql start
fi

# for RedHat/CentOS/Fedora Package Apache/MySQL Server
if [ -f /etc/init.d/httpd ]; then
/etc/init.d/httpd start
fi
if [ -f /etc/init.d/mysqld ]; then
/etc/init.d/mysqld start
fi

comments

コメントを残す