サーバー設定 · 4 min read · Jan 08, 2026
完璧なサーバー - CentOS 6.5 x86_64 (Apache2, MySQL, PHP, PureFTPD, Postfix, Dovecot および ISPConfig 3) - ページ 4
13 MySQL パスワードの設定と phpMyAdmin の構成
MySQL root アカウントのパスワードを設定します:
mysql_secure_installation
[root@server1 tmp]# mysql_secure_installation
NOTE: このスクリプトのすべての部分を実行することは、すべての MySQL サーバーで推奨されます。生産環境で使用する場合は、各ステップを注意深く読んでください!
MySQL にログインして安全にするためには、root ユーザーの現在のパスワードが必要です。MySQL をインストールしたばかりで、まだ root パスワードを設定していない場合、パスワードは空白になりますので、ここで Enter を押してください。
現在の root のパスワードを入力してください (なしの場合は Enter): OK、パスワードが正常に使用されました。次に進みます…
root パスワードを設定することで、適切な認証なしに誰も MySQL root ユーザーにログインできないようにします。
root パスワードを設定しますか? [Y/n] <– ENTER 新しいパスワード: <– yourrootsqlpassword 新しいパスワードを再入力してください: <– yourrootsqlpassword パスワードが正常に更新されました! 特権テーブルを再読み込みしています.. … 成功!
デフォルトでは、MySQL インストールには匿名ユーザーがあり、誰でもユーザーアカウントを作成することなく MySQL にログインできます。これはテスト用にのみ意図されており、インストールを少しスムーズにするためのものです。生産環境に移行する前に、これらを削除する必要があります。
匿名ユーザーを削除しますか? [Y/n] <– ENTER … 成功!
通常、root は ‘localhost’ からのみ接続を許可されるべきです。これにより、誰かがネットワークから root パスワードを推測できないようになります。
リモートからの root ログインを禁止しますか? [Y/n] <– ENTER … 成功!
デフォルトでは、MySQL には誰でもアクセスできる ‘test’ という名前のデータベースがあります。これもテスト用にのみ意図されており、生産環境に移行する前に削除する必要があります。
テストデータベースとそのアクセスを削除しますか? [Y/n] <– ENTER
- テストデータベースを削除しています… … 成功!
- テストデータベースの特権を削除しています… … 成功!
特権テーブルを再読み込みすることで、これまでに行ったすべての変更が即座に反映されます。
特権テーブルを今すぐ再読み込みしますか? [Y/n] <– ENTER … 成功!
クリーンアップ中…
すべて完了しました!上記のすべてのステップを完了した場合、あなたの MySQL インストールは今や安全であるはずです。
MySQL を使用していただきありがとうございます!
[root@server1 tmp]#
次に phpMyAdmin を構成します。phpMyAdmin が localhost からだけでなく接続を許可するように Apache の設定を変更します(
vi /etc/httpd/conf.d/phpmyadmin.conf
CentOS は、パッケージが使用するファイル名に一貫性がなく、リポジトリの順序によっては phpmyadmin 構成ファイルがキャメルケースである可能性があります。したがって、上記の vi コマンドが空の新しいファイルを生成した場合は、次のコマンドを使用してください:
vi /etc/httpd/conf.d/phpMyAdmin.conf
| # # MySQL を管理するための Web アプリケーション # # |
次に、phpMyAdmin の認証を cookie から http に変更します:
vi /usr/share/phpmyadmin/config.inc.php
| [...] /* 認証タイプ */ $cfg['Servers'][$i]['auth_type'] = 'http'; [...] |
次に、Apache のシステム起動リンクを作成し、Apache を起動します:
chkconfig –levels 235 httpd on
/etc/init.d/httpd start
今、ブラウザを http://server1.example.com/phpmyadmin/ または http://192.168.0.100/phpmyadmin/ に向け、ユーザー名 root と新しい root MySQL パスワードでログインできます。
次のようなエラーメッセージが表示された場合:
[root@server1 tmp]# /etc/init.d/httpd start
Starting httpd: httpd: apr_sockaddr_info_get() failed for server1.example.com
httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
その場合、ホスト名が DNS で解決できないか、まだ /etc/hosts ファイルに設定されていません。この問題を修正するには、次のコマンドを実行します:
echo “192.168.1.100 server1.example.com server1” >> /etc/hosts
上記のコマンドの “server1.example.com” を完全なホスト名に、”server1” をホスト名のサブ部分に置き換えます。
14 Amavisd-new、SpamAssassin および ClamAV のインストール
amavisd-new、spamassassin および clamav をインストールするには、次のコマンドを実行します:
yum -y install amavisd-new spamassassin clamav clamd unzip bzip2 unrar perl-DBD-mysql
次に、freshclam、amavisd、および clamd.amavisd を起動します:
sa-update
chkconfig –levels 235 amavisd on
chkconfig –del clamd
chkconfig –levels 235 clamd.amavisd on
/usr/bin/freshclam
/etc/init.d/amavisd start
/etc/init.d/clamd.amavisd start
15 mod_php、mod_fcgi/PHP5、および suPHP を使用した Apache2 のインストール
ISPConfig 3 は、mod_php、mod_fcgi/PHP5、cgi/PHP5、および suPHP をウェブサイトごとに使用することを許可します。
次のようにして mod_php5、mod_fcgid、および PHP5 を使用して Apache2 をインストールできます:
yum -y install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-pecl-apc php-mbstring php-mcrypt php-mssql php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel mod_fcgid php-cli httpd-devel
次に、/etc/php.ini を開きます…
vi /etc/php.ini
… そしてエラーレポートを変更します(通知が表示されないように)し、cgi.fix_pathinfo=1 のコメントを外します:
| [...] ;error_reporting = E_ALL & ~E_DEPRECATED error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED [...] ; cgi.fix_pathinfo は CGI のための *実際の* PATH_INFO/PATH_TRANSLATED サポートを提供します。PHP の以前の動作は、PATH_TRANSLATED を SCRIPT_FILENAME に設定し、PATH_INFO が何であるかを理解しないことでした。PAppp.tldTH_INFO についての詳細は、cgi スペックを参照してください。これを 1 に設定すると、PHP CGI はそのパスを仕様に従って修正します。ゼロに設定すると、PHP は以前のように動作します。デフォルトは 1 です。スクリプトを修正して SCRIPT_FILENAME を使用するようにしてください。 ; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo cgi.fix_pathinfo=1 [...] |
次に、suPHP をインストールします(リポジトリには mod_suphp パッケージがありますが、残念ながら ISPConfig とは互換性がないため、suPHP を自分でビルドする必要があります):
cd /tmp
wget http://suphp.org/download/suphp-0.7.1.tar.gz
tar xvfz suphp-0.7.1.tar.gz
cd suphp-0.7.1/
./configure –prefix=/usr –sysconfdir=/etc –with-apr=/usr/bin/apr-1-config –with-apxs=/usr/sbin/apxs –with-apache-user=apache –with-setid-mode=owner –with-php=/usr/bin/php-cgi –with-logfile=/var/log/httpd/suphp_log –enable-SUPHP_USE_USERGROUP=yes
make
make install
次に、suPHP モジュールを Apache の設定に追加します…
vi /etc/httpd/conf.d/suphp.conf
| LoadModule suphp_module modules/mod_suphp.so |
… そして、次のように /etc/suphp.conf ファイルを作成します:
vi /etc/suphp.conf
| [global] ;ログファイルへのパス logfile=/var/log/httpd/suphp.log ;ログレベル loglevel=info ;Apache が実行しているユーザー webserver_user=apache ;すべてのスクリプトが存在する必要があるパス docroot=/ ;スクリプトを実行する前に chroot() するパス ;chroot=/mychroot ; セキュリティオプション allow_file_group_writeable=true allow_file_others_writeable=false allow_directory_group_writeable=true allow_directory_others_writeable=false ;DOCUMENT_ROOT 内にスクリプトがあるかどうかを確認 check_vhost_docroot=true ;ブラウザに小さなエラーメッセージを送信 errors_to_browser=false ;PATH 環境変数 env_path=/bin:/usr/bin ;設定する umask、8 進数表記で指定 umask=0077 ; 最小 UID min_uid=100 ; 最小 GID min_gid=100 [handlers] ;php スクリプトのハンドラー x-httpd-suphp="php:/usr/bin/php-cgi" ;CGI スクリプトのハンドラー x-suphp-cgi="execute:!self" |
最後に、Apache を再起動します:
/etc/init.d/httpd restart
15.1 Ruby
バージョン 3.0.3 から、ISPConfig 3 は Ruby の組み込みサポートを提供しています。CGI/FastCGI の代わりに、ISPConfig はサーバーの Apache に mod_ruby が利用可能であることに依存しています。
CentOS 6.4 では、mod_ruby パッケージは利用できないため、自分でコンパイルする必要があります。まず、いくつかの前提条件をインストールします:
yum -y install httpd-devel ruby ruby-devel
次に、mod_ruby を次のようにダウンロードしてインストールします:
cd /tmp
wget http://fossies.org/unix/www/apache_httpd_modules/mod_ruby-1.3.0.tar.gz
tar zxvf mod_ruby-1.3.0.tar.gz
cd mod_ruby-1.3.0/
./configure.rb –with-apr-includes=/usr/include/apr-1
make
make install
最後に、mod_ruby モジュールを Apache の設定に追加する必要がありますので、/etc/httpd/conf.d/ruby.conf ファイルを作成します…
vi /etc/httpd/conf.d/ruby.conf
| LoadModule ruby_module modules/mod_ruby.so RubyAddPath /1.8 |
… そして Apache を再起動します:
/etc/init.d/httpd restart
(もし RubyAddPath /1.8 ディレクティブを省略すると、Ruby ファイルを呼び出すときに Apache のエラーログに次のようなエラーが表示されます:
[Thu May 26 02:05:05 2011] [error] mod_ruby: ruby:0:in `require’: no such file to load – apache/ruby-run (LoadError)
[Thu May 26 02:05:05 2011] [error] mod_ruby: failed to require apache/ruby-run
[Thu May 26 02:05:05 2011] [error] mod_ruby: error in ruby ) #### 15.2 Python mod_python をインストールするには、単に次のように実行します… yum -y install mod_python … そしてその後 Apache を再起動します: /etc/init.d/httpd restart #### 15.3 WebDAV WebDAV はすでに有効になっているはずですが、これを確認するために、/etc/httpd/conf/httpd.conf を開き、次の 3 つのモジュールがアクティブであることを確認します: vi /etc/httpd/conf/httpd.conf | [...] LoadModule auth_digest_module modules/mod_auth_digest.so [...] LoadModule dav_module modules/mod_dav.so [...] LoadModule dav_fs_module modules/mod_dav_fs.so [...] | /etc/httpd/conf/httpd.conf を修正する必要がある場合は、その後 Apache を再起動するのを忘れないでください: /etc/init.d/httpd restart #### 15.4 追加の PHP バージョン ISPConfig 3.0.5 以降、1 台のサーバーで複数の PHP バージョンを持つことが可能になりました(ISPConfig を通じて選択可能)これらは FastCGI および PHP-FPM を通じて実行できます。CentOS での追加の PHP バージョンを構築する手順は、次のチュートリアルに記載されています:ISPConfig 3 での複数の PHP バージョンの使用方法 (PHP-FPM & FastCGI) (CentOS 6.3) ### 16 PureFTPd のインストール PureFTPd は次のコマンドでインストールできます: yum -y install pure-ftpd 次に、システム起動リンクを作成し、PureFTPd を起動します: chkconfig –levels 235 pure-ftpd on
/etc/init.d/pure-ftpd start 今、PureFTPd を構成して FTP および TLS セッションを許可します。FTP は非常に安全でないプロトコルであり、すべてのパスワードとすべてのデータが平文で転送されます。TLS を使用することで、通信全体を暗号化できるため、FTP ははるかに安全になります。 TLS には OpenSSL が必要です。OpenSSL をインストールするには、単に次のように実行します: yum install openssl /etc/pure-ftpd/pure-ftpd.conf を開きます… vi /etc/pure-ftpd/pure-ftpd.conf FTP および TLS セッションを許可する場合は、TLS を 1 に設定します: | [...] # このオプションは 3 つの値を受け入れます : # 0 : SSL/TLS 暗号化レイヤーを無効にします (デフォルト)。 # 1 : 従来のセッションと暗号化されたセッションの両方を受け入れます。 # 2 : SSL/TLS セキュリティメカニズムを使用しない接続を拒否します。 # 匿名セッションを含む。 # このコメントを盲目的に外さないでください。次のことを確認してください: # 1) サーバーが SSL/TLS サポート (--with-tls) でコンパイルされていること、 # 2) 有効な証明書が存在すること、 # 3) 互換性のあるクライアントのみがログインすること。 TLS 1 [...] | TLS を使用するには、SSL 証明書を作成する必要があります。私はそれを /etc/ssl/private/ に作成するので、まずそのディレクトリを作成します: mkdir -p /etc/ssl/private/ その後、次のようにして SSL 証明書を生成できます: openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem 国名 (2 文字コード) [XX]: <– あなたの国名を入力してください (例: “DE”)。
州または県名 (正式名称) []: <– あなたの州または県名を入力してください。
市名 (例: 市) [Default City]: <– あなたの市名を入力してください。
組織名 (例: 会社名) [Default Company Ltd]: <– あなたの組織名を入力してください (例: あなたの会社名)。
組織単位名 (例: 部門名) []: <– あなたの組織単位名を入力してください (例: “IT 部門“)。
共通名 (例: あなたの名前またはサーバーのホスト名) []: <– システムの完全修飾ドメイン名を入力してください (例: “server1.example.com”)。
メールアドレス []: <– あなたのメールアドレスを入力してください。 SSL 証明書の権限を変更します: chmod 600 /etc/ssl/private/pure-ftpd.pem 最後に、PureFTPd を再起動します: /etc/init.d/pure-ftpd restart これで完了です。FTP クライアントを使用して接続を試みることができます。ただし、FTP クライアントを TLS を使用するように構成する必要があります。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。