サーバー設定 · 3 min read · Nov 27, 2025
CentOS 6.5 における PureFTPd と MySQL を用いた仮想ホスティング (クォータと帯域幅管理を含む)
CentOS 6.5 における PureFTPd と MySQL を用いた仮想ホスティング (クォータと帯域幅管理を含む)
バージョン 1.0
著者: Falko Timme, 更新者: Srijan Kishore
howtoforge を Twitter でフォロー
この文書では、実際のシステムユーザーの代わりに MySQL データベースからの仮想ユーザーを使用する PureFTPd サーバーのインストール方法を説明します。これははるかにパフォーマンスが高く、単一のマシン上で数千の FTP ユーザーを持つことができます。さらに、このセットアップでのクォータとアップロード/ダウンロード帯域幅制限の使用方法も示します。パスワードはデータベースに MD5 文字列として暗号化されて保存されます。
MySQL データベースの管理には、phpMyAdmin のようなウェブベースのツールを使用できます。この howto でもインストールされます。phpMyAdmin は快適なグラフィカルインターフェースであり、コマンドラインをいじる必要はありません。
このチュートリアルは CentOS 6.5 に基づいています。基本的な CentOS 6.5 システムをすでにセットアップしている必要があります。たとえば、このチュートリアルの最初の 6 章で説明されているように: 完璧なサーバー - CentOS 6.4 x86_64 (Apache2, Dovecot, ISPConfig 3)
この howto は実用的なガイドとして意図されています。理論的な背景はカバーしていません。それらはウェブ上の他の多くの文書で扱われています。
この文書にはいかなる種類の保証もありません!このようなシステムを設定する唯一の方法ではないことを言いたいです。この目標を達成するための多くの方法がありますが、これが私が取る方法です。これがあなたにとって機能することを保証するものではありません!
1 予備ノート
このチュートリアルでは、ホスト名 server1.example.com と IP アドレス 192.168.0.100 を使用します。これらの設定はあなたの環境によって異なる場合があるため、適宜置き換える必要があります。
2 MySQL と phpMyAdmin のインストール
まず、CentOS システムで EPEL リポジトリを有効にします。このチュートリアルの過程でインストールするいくつかのパッケージは、公式の CentOS 6.5 リポジトリにはありません。
cd /tmp
rpm --import https://fedoraproject.org/static/0608B895.txt
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpmyum install yum-priorities/etc/yum.repos.d/epel.repo を編集します…
vi /etc/yum.repos.d/epel.repo… そして [epel] セクションに priority=10 の行を追加します:
| [epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...] |
これで MySQL と phpMyAdmin を次のようにインストールできます:
yum install mysql mysql-server phpMyAdmin httpd次に、phpMyAdmin を設定します。phpMyAdmin が localhost からの接続だけでなく、他の接続も許可するように Apache 設定を変更します(
そのため、ファイルは次のようになります:
vi /etc/httpd/conf.d/phpMyAdmin.conf| # phpMyAdmin - Web based MySQL browser written in php # # Allows only localhost by default # # But allowing phpMyAdmin to anyone other than localhost should be considered # dangerous unless properly secured by SSL Alias /phpMyAdmin /usr/share/phpMyAdmin Alias /phpmyadmin /usr/share/phpMyAdmin |
次に、MySQL と Apache のシステム起動リンクを作成します(システムが起動するたびに自動的に両方が起動するように)し、両方のサービスを開始します:
chkconfig --levels 235 mysqld on
/etc/init.d/mysqld startchkconfig --levels 235 httpd on
/etc/init.d/httpd startMySQL ユーザー root のパスワードを作成します(yourrootsqlpassword を使用したいパスワードに置き換えます):
mysql_secure_installation[root@server1 ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
MySQL にログインして安全にするためには、root ユーザーの現在のパスワードが必要です。
MySQL をインストールしたばかりで、まだ root パスワードを設定していない場合、
パスワードは空白のままですので、ここではただ Enter を押してください。
Enter current password for root (enter for none): <– ENTER
OK, successfully used password, moving on…
root パスワードを設定することで、適切な認証なしに誰も MySQL root ユーザーにログインできないようにします。
Set root password? [Y/n] <– ENTER
New password: <– yourrootsqlpassword
Re-enter new password: <– yourrootsqlpassword
Password updated successfully!
Reloading privilege tables..
… Success!
デフォルトでは、MySQL インストールには匿名ユーザーがあり、
誰でもユーザーアカウントを作成することなく MySQL にログインできます。
これはテスト用にのみ意図されており、
インストールを少しスムーズにするためのものです。
本番環境に移行する前に、これらを削除する必要があります。
Remove anonymous users? [Y/n] <– ENTER
… Success!
通常、root は ‘localhost’ からのみ接続を許可されるべきです。
これにより、誰かがネットワークから root パスワードを推測できないようにします。
Disallow root login remotely? [Y/n] <– ENTER
… Success!
デフォルトでは、MySQL には誰でもアクセスできる ‘test’ という名前のデータベースがあります。
これもテスト用にのみ意図されており、
本番環境に移行する前に削除する必要があります。
Remove test database and access to it? [Y/n] <– ENTER
- Dropping test database…
… Success! - Removing privileges on test database…
… Success!
特権テーブルを再読み込みすることで、これまでに行ったすべての変更が
即座に反映されることを保証します。
Reload privilege tables now? [Y/n] <– ENTER
… Success!
Cleaning up…
すべて完了しました!
上記のすべての手順を完了した場合、
あなたの MySQL インストールは今や安全であるはずです。
MySQL を使用していただきありがとうございます!
[root@server1 ~]#
3 MySQL サポート付き PureFTPd のインストール
CentOS の PureFTPd パッケージは、MySQL、PostgreSQL、LDAP などのさまざまなバックエンドをサポートしています。 したがって、通常の PureFTPd パッケージをインストールするだけで済みます:
yum install pure-ftpd次に、すべての仮想ユーザーがマッピングされる ftp グループ (ftpgroup) とユーザー (ftpuser) を作成します。グループおよびユーザー ID 2001 を、システム上で空いている番号に置き換えます:
groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。