
「理想的な」クラスターに関する一連の記事の続きとして、信頼性が高く、生産性が高く、管理しやすいWebシステムを作成するためのレシピを共有したいと思います。
サイトおよびWebシステムの信頼性と高速性を確保するために、当社では市場で利用可能な技術的手段の調査を実施しました。 私たちはシンプルな目標に導かれました:システムのスケーラビリティと高いパフォーマンスを同時に達成すること。
実際、クラスターはゼロから構築されました。 フロントエンドバックエンドアーキテクチャがありました。 データベースはMariaDB Galeraに送られ、すべてのサイトは統合されたWebノードに移動しました。
長時間の作業、紛争、議論の過程で、
アクロニスが喜んで共有できる既製のソリューションが生まれました。 私たちは助けるために存在します。
「理想的な」クラスターに関する他の出版物次に、いくつかの重要な側面について説明します。
- Proxmoxに基づいたHetznerの仮想クラスターの例を使用して、安全でスケーラブルなWebシステムをデプロイする方法
- 1つの無料の便利なコントロールパネルからすべてのシステムを簡単に管理する方法
- 最新のテクノロジーを使用して最大のパフォーマンスとセキュリティを実現する方法
この記事が他の何百もの記事とどう違うのかと尋ねるかもしれません。
- CentOSベースの無料のISPConfig Webダッシュボードのセットアップ方法(Debian環境でのダッシュボードの使用に関する公式ドキュメントの説明)
- ISPConfig Webパネル自体をapache2なしで動作するように設定する方法(ドキュメントでは、Apache2で使用することを強く推奨しています)
- nginx + php-phmおよびapache2 + php-fpm / mod_phpバックエンドを使用して生産的なphpアプリケーションサーバーを作成するためのレシピを共有します。
- MySQLの代わりにMariaDBのインストールと設定について説明します
コンセプト:
- たとえば、無料のProxmoxシステムに基づくハイパーバイザーを取り上げます
- サービスごとに、OpenVZに基づいて独自の仮想環境を作成します(優れた製品を提供してくれたParallelsの同僚に感謝します)
- gw.localコンテナーがあり、iptablesを使用して個々のポートを他のコンテナーに転送します
- ispがあります。 nginx + php-fpm ISPConfigコントロールパネルを実行するローカル
- front01.local nginxは、そのアップストリーム(サイトの実行サーバー)の1つにトラフィックをプロキシするモードで実行されます。
- php podランタイムが存在するapp01.localがあります。 apache + php-fpm / mod_phpまたはnginx + php-fpm
- メインのMariaDBデータベースが存在するdb.localがあります
app01.localを除くすべてのサーバーで、sshを含むすべての未使用のサービスが削除され、それらの間の相互作用はグレーのプライベートネットワークを介して行われます。 サイトの運用に必要なパブリックネットワークに対して開かれているポート(80、443など)のみ
Proxmoxの既知の問題
作成されたコンテナの自動ロードを有効にすることを忘れないでください
vmbr1ブリッジのネットワークを作成すると、Proxmoxは仮想名
eth0を付けるため、作成したネットワークを削除して、すべてを正しくやり直す必要があります

コンテナを入力するには、コンテナを起動し、ターミナルでコマンド
vzctl enter container_numberを入力する必要があります
Proxmoxに関する記事(冒頭のリンク)で、公式のパブリックネットワークのファイアウォールのルールが記述されたファイルを使用すると述べましたが、これは理想的には私たち以外には知られるべきではありません。
nano /etc/iptables.up.rules
*nat :PREROUTING ACCEPT [2164:136969] :POSTROUTING ACCEPT [58:3659] :OUTPUT ACCEPT [0:0]
#ハイパーバイザーのSSHポートを2222に変更します nano /etc/ssh/sshd_config
Port 2222
すべてのコンテナの一般的なプリセット
#ISPConfigエージェントがあるすべてのコンテナで、これらの行を必ずhostsファイルに追加してください。 nano /etc/hosts
192.168.8.1 gw.local 192.168.8.2 front01.local 192.168.8.3 isp.local 192.168.8.4 app01.local 192.168.8.5 db01.local
#タイムゾーンを ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
yum install wget nano wget ntpdate -y
#これらのリポジトリはあるべきです。なぜなら、ここでは基本リポジトリにない多くのパッケージを見つけるからです。 wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm rm *.rpm -f
#このリポジトリは便利ですが、デフォルトでオフにします rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt cd /tmp wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm && rpm -ivh rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm
#オフにします。--enablerepo = rpmforgeを使用します sed -i 's/enabled = 1/enabled = 0/g' /etc/yum.repos.d/rpmforge.repo
#しかし、これはWebシステムの真珠であり、管理者が仕事で必要とするものが本当にたくさんあります。 しなければならない wget -q -O - http://www.atomicorp.com/installers/atomic | sh
#便利なソフトウェアを入れる yum install nano mc screen sudo nscd htop ntp zip unzip pigz iotop sysstat lsof strace atop multitail -y yum --enablerepo=rpmforge install htop -y
#このコンテナの不要なサービスを削除する yum remove -y sendmail httpd sshd samba bind openssh -y
#システムの更新 yum update -y
#mysqlを削除 yum remove mysql* mysql-*
#サービス目的のISPConfigにmariadbをインストールする yum install mariadb-server mariadb-devel mariadb-client -y
#cronをインストール yum install -y cronie cronie-anacron crontabs sysstat -y
#cronを起動に追加して実行 /etc/init.d/crond start && chkconfig crond on
#mariadbをカスタマイズする nano /etc/my.cnf
[mysqld] skip-name-resolve default_storage_engine=InnoDB innodb_file_per_table = 1
#mariadbをスタートアップに追加 chkconfig --levels 235 mysqld on && /etc/init.d/mysqld start
gw.local環境のセットアップ
CentOS 64環境でOpenVZコンテナ(新しいCT)を作成する必要がありますこの仮想マシンは、パブリックおよびプライベートネットワークに対応します。
eth1ネットワーク(他のコンテナーと対話するためのプライベートネットワーク)には、eth0(パブリックプロバイダーネットワーク)およびvmbr1という名前のvmbr0ネットワークインターフェイスが必要です。
この仮想マシンには、128 MBを超えるRAMは必要ありません。
gw.localコンテナ自体にネットワークを設定しましょう
コンテナ内のネットワーク: vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=xxx237 NETMASK=255.255.255.0 GATEWAY=xxx1
vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.8.1 NETWORK=192.168.8.0
#現在のiptablesルールを保存 /etc/init.d/iptables save
#外部ビジネスアドレスの* natセクションにルールを追加します vi /etc/sysconfig/iptables
-A PREROUTING -d *.*.*.237/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.8.2:80 -A PREROUTING -d *.*.*.237/32 -p tcp -m tcp --dport 443 -j DNAT --to-destination 192.168.8.2:443 -A PREROUTING -d *.*.*.237/32 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.8.5:25 -A PREROUTING -d *.*.*.237/32 -p tcp -m tcp --dport 110 -j DNAT --to-destination 192.168.8.5:110 -A PREROUTING -d *.*.*.237/32 -p tcp -m tcp --dport 145 -j DNAT --to-destination 192.168.8.5:145 -A PREROUTING -d *.*.*.237/32 -p tcp -m tcp --dport 995 -j DNAT --to-destination 192.168.8.5:995 -A PREROUTING -d *.*.*.237/32 -p tcp -m tcp --dport 465 -j DNAT --to-destination 192.168.8.5:465 -A PREROUTING -d *.*.*.237/32 -p tcp -m tcp --dport 587 -j DNAT --to-destination 192.168.8.5:587 -A PREROUTING -d *.*.*.237/32 -p tcp -m tcp --dport 143 -j DNAT --to-destination 192.168.8.5:143 -A PREROUTING -d *.*.*.237/32 -p tcp -m tcp --dport 993 -j DNAT --to-destination 192.168.8.5:993 -A POSTROUTING -o eth0 -j MASQUERADE
#トラフィック転送を許可 echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf sysctl -p
環境front01.localの設定
CentOS 64環境でOpenVZコンテナー(新しいCT)を作成する必要がありますこの仮想マシンは、gw.localから転送されたポート80および443に対応します。 このコンテナにはnginxがインストールされており、app01.localのサイトへのすべてのリクエストをプロキシします
nginxの設定手順自体は、この記事
「理想的な」wwwクラスターで詳しく説明されてい
ます。 パート1.フロントエンド:CentOSでのNGINX + Keepalived(vrrp)このコンテナには、プライベートネットワーク(
vmbr1 )
192.168.8.2のアドレスがあり、操作には
1024 MB以下のRAMが必要です。
これは、ネットワークがコンテナ自体でどのように見えるかです。
vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.8.2 NETWORK=192.168.8.0 GATEWAY=192.168.8.1
環境の設定isp。
CentOS 64環境でOpenVZコンテナー(新しいCT)を作成する必要がありますこの仮想マシンは、ISPConfigコントロールパネルを提供します。 記事の冒頭で、パネルはパブリックパブリックアドレスによって提供され、ポート8080および8081で利用できることを示しました。
このコンテナには、プライベートネットワークアドレス(
vmbr1 )
192.168.8.3があり、約384 MBのRAMが必要です。
#このコンテナのネットワーク設定: /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.8.3 NETWORK=192.168.8.0 GATEWAY=192.168.8.100
#ISPConfigパネルのWebサーバーコンポーネントをインストールする yum install php-mysql php nginx php-fpm postfix patch -y
#標準のnginxグリーティングで設定を削除 rm -f /etc/nginx/conf.d/default.conf rm -f /etc/nginx/conf.d/virtual.conf rm -f /etc/nginx/conf.d/ssl.conf
#nginxとphp-fpmを追加して、オートロードして実行します chkconfig --levels 235 php-fpm on && /etc/init.d/php-fpm start chkconfig --levels 235 nginx on && /etc/init.d/nginx start
#ISPConfigエージェントがパラメーターについて中央のisp.localデータベースに接続できるようにする mysql
CREATE USER 'root'@'192.168.8.%' IDENTIFIED BY 'c2HZqsMmiBKa'; GRANT ALL PRIVILEGES ON * . * TO 'root'@'192.168.8.%' IDENTIFIED BY 'c2HZqsMmiBKa' WITH GRANT OPTION; flush privileges;
#phpMyAdminをインストール yum install phpmyadmin -y
#phpmyadminでphpMyAdminシンボリックリンクを作成する ln -s /usr/share/phpMyAdmin/ /usr/share/phpmyadmin
nano /etc/phpMyAdmin/config.inc.php
$cfg['blowfish_secret'] = '46a30e4ed1cf83.14522379'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ $cfg['Servers'][$i]['host'] = 'db01.local'; // MySQL hostname or IP address $cfg['Servers'][$i]['port'] = '3306'; // MySQL port - leave blank for default port $cfg['Servers'][$i]['auth_type'] = 'cookie'; // Authentication method (config, http or cookie based)?
#ISPConfigをインストール cd /usr/src/ wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz tar xfz ISPConfig-3-stable.tar.gz cd ispconfig3_install/install/ php -q install.php
#対話型インストールウィザードの質問に答えます>>初期設定
オペレーティングシステム:Redhatまたは互換性のある、不明なバージョン。
以下は、プライマリ設定に関するいくつかの質問ですので、注意してください。
デフォルト値は[角括弧]で囲まれ、受け入れられます。
「引用」なしで「終了」をタップして、インストーラーを停止します。
言語を選択(en、de)[ en ]:
インストールモード(標準、エキスパート)[標準]: エキスパート
サーバーの完全修飾ホスト名(FQDN)。例:server1.domain.tld [ isp.local ]:
MySQLサーバーのホスト名[ localhost ]:
MySQLルートユーザー名[ root ]:
MySQLルートパスワード[]:
作成するMySQLデータベース[ dbispconfig ]:
MySQL文字セット[ utf8 ]:
次の2つの質問は、内部ISPConfigデータベースのユーザーとパスワードに関するものです。
ユーザー名として「ispconfig」であり、ランダムなパスワードであるデフォルトを受け入れることをお勧めします。
別のパスワードを使用する場合は、パスワードに数字と文字のみを使用してください。
ISPConfig mysqlデータベースのユーザー名[ ispconfig ]:
ISPConfig mysqlデータベースパスワード[ 1850fcffe2fc0b1ca2707c3e27c5eec4 ]:
このサーバーを既存のISPConfigマルチサーバーセットアップ(y、n)[ n ]に参加させます。
Apacheとnginxが検出されました。 ISPConfigに使用するサーバーを選択:(apache、nginx)[apache]: nginx
ISPConfigサーバーレコードをデータベースに追加しています。
メールの構成(y、n)[y]: n
Jailkitの構成(y、n)[y]: n
FTPサーバーの構成(y、n)[y]: y
Pureftpdの構成
DNSサーバーの構成(y、n)[y]: n
ヒント:このサーバーがISPConfigインターフェースを実行する場合は、「Configure nginx Server」オプションで「y」を選択します。
nginxサーバーの構成(y、n)[y]: y
nginxの構成
Apps vhostの構成
ファイアウォールサーバーの構成(y、n)[y]: y
Bastille Firewallの構成
ISPConfig Webインターフェイスのインストール(y、n)[y]: y
ISPConfigのインストール
ISPConfigポート[ 8080 ]:
ISPConfig WebインターフェースのSSLを有効にします(y、n)[y]: y
RSA秘密鍵、4096ビット長のモジュラスの生成
.................................................. .............. ++
.................................................. .................................................. ................... ++
eは65537(0x10001)です
組み込まれる情報の入力を求められます
証明書要求に。
入力しようとしているのは、識別名またはDNと呼ばれるものです。
かなりの数のフィールドがありますが、空白のままにすることができます
一部のフィールドにはデフォルト値がありますが、
「。」を入力すると、フィールドは空白のままになります。
-国名(2文字のコード)[XX]: Ru
州または県の名前(フルネーム)[]: モスクワ
地域名(例:都市)[デフォルトの都市]: モスクワ
組織名(会社など)[Default Company Ltd]: isp.local
組織単位名(セクションなど)[]: IT
共通名(例:自分の名前またはサーバーのホスト名)[]: isp.local
メールアドレス[]:
次の「追加」属性を入力してください
証明書リクエストとともに送信されます
チャレンジパスワード[]:
オプションの会社名[]:
RSAキーを書く
DBServerの構成
ISPConfig crontabのインストール
ルートのcrontabはありません
php-fpmのリロード:[OK]
nginxのリロード:[OK]
インストールが完了しました。
#ISPConfigパネルをサービスパブリックインターフェイスのポート8080に転送しました https://__ip:8080/

デフォルトのユーザー名とパスワード:
admin# このサイトにインストールされているISPConfigのバージョンで既知の問題を確認します。 更新プログラム付きのパッチがある場合は、それらを適用します cd /usr/local/ispconfig/server/scripts wget http://www.ispconfig.org/downloads/ispconfig_patch chmod 700 ispconfig_patch chown root:root ispconfig_patch ln -s /usr/local/ispconfig/server/scripts/ispconfig_patch /usr/local/bin/ispconfig_patch
#これは利用可能な、執筆時点でのパッチのリストですISPConfig 3.0.5.3のパッチ
パッチID: 3053_langedit
日付:2013-09-25
説明:このパッチは、言語ファイルエディタのUTF-8エンコーディングの問題を解決します。
パッチID: 3053_langimport
説明:このパッチは、言語ファイルインポーターに厳密な解析ルーチンを追加します。
パッチID: 3053_backupdownload
説明:このパッチは、Webサイトのバックアップのダウンロードと復元に関する問題を修正します。
パッチID: 3053_apsdelete
説明:このパッチは、APSインスタンスを削除する際の問題を修正します。
パッチID: 3053_ftpuser
説明:このパッチにより、FS#3089-FTPユーザーオプション-エラーが修正されます。このドメインに対する権限がありません。
パッチID: 3053_phpversion
説明:このパッチは、クライアントがWebサイトのphpバージョンを変更できない問題を修正します。 クライアントインターフェースに表示される唯一のphp選択オプションは「デフォルト」です。
パッチID: 3053_sysini
説明:このパッチは、FS#3086-マルチサーバー設定でのsys_iniアクセスに関するSQLクエリ警告を修正します。
パッチID: 3053_dashboard
説明:このパッチは、ダッシュボードの表示の問題(クォータテーブルの重複)を修正します。
#phpMyAdminを担当するセクションのコメントを外します nano /etc/nginx/sites-enabled/000-ispconfig.vhost
location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/lib/php5-fpm/ispconfig.sock; fastcgi_param HTTPS on; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; } location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /phpMyAdmin { rewrite ^/* /phpmyadmin last; }
/etc/init.d/nginx reload
環境app01.localの設定(apache2 + php-fpm)
CentOS 64環境でOpenVZコンテナ(新しいCT)を作成する必要がありますこの仮想マシンは、phpで書かれたサイトを提供します。 一般に、apache2はnginxよりもはるかに遅く、静的ファイル(グラフィック、スクリプト、スタイルなど)を提供します。また、mod_phpと組み合わせて、着信リクエストの処理に多くのメモリを消費します。 これは、apache2アーキテクチャ自体によるものです。 メモリ消費の問題がphp-fpmを使用して解決できる場合、遅い静的とのみ調整でき、front.localのnginx側のキャッシュでこれを部分的に補正できます。
apache2を使用するのは、.htaccessまたはapache2専用のモジュールを使用する必要がある場合にのみ意味があります。
この仮想マシンのsshポートはサービスパブリックアドレスから転送され、ポート80はfront.localからプロキシされます
このコンテナにはプライベートネットワーク(
vmbr1 )
192.168.8.4のアドレスがあり、この仮想マシンのRAMに保存する価値はありません。一般的には
4〜20 GBになります。
#このコンテナのネットワーク設定: vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.8.4 NETWORK=192.168.8.0 GATEWAY=192.168.8.100
#Webサーバーコンポーネントをインストールする yum install mod_rpaf memcached ntp httpd php php-mysql php-mbstring php-mcrypt rpm-build openssl-devel cyrus-sasl-devel pkgconfig zlib-devel pcre-devel openldap-devel postgresql-devel expect libtool-ltdl-devel openldap-servers libtool gdbm-devel pam-devel gamin-devel mod_ssl php-fpm php-cli php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-pecl-apc php-magpierss php-snmp php-tidy spawn-fcgi openssl perl-TimeDate httpd-devel ruby ruby-devel webalizer perl-DateTime-Format-HTTP perl-DateTime-Format-Builder perl-TimeDate libevent-devel php-pecl-memcache mod_fcgid subversion git php-soap -y yum install --enablerepo=rpmforge mod_fastcgi mod_suphp -y
#サービスをスタートアップに追加して開始する chkconfig --levels 235 php-fpm on && /etc/init.d/php-fpm start chkconfig --levels 235 httpd on && /etc/init.d/httpd start chkconfig --levels 235 memcached on && /etc/init.d/memcached start
#PHPモジュールの手動アセンブリの場合、開発者のコンポーネントをインストールします yum groupinstall 'Development Tools' -y
#php.iniの最小限の変更 sed -i "s/^error_reporting =.*/error_reporting = E_ALL \& \~E_NOTICE/g" /etc/php.ini sed -i "s/^;cgi.fix_pathinfo =.*/cgi.fix_pathinfo = 1/g" /etc/php.ini sed -i "s/^;date.timezone =.*/date.timezone = Europe\/Moscow/g" /etc/php.ini sed -i "s/^max_execution_time =.*/max_execution_time = 600/g" /etc/php.ini sed -i "s/^max_input_time =.*/max_input_time = 600/g" /etc/php.ini sed -i "s/^memory_limit =.*/memory_limit = 512M/g" /etc/php.ini sed -i "s/^post_max_size =.*/post_max_size = 500M/g" /etc/php.ini sed -i "s/^upload_max_filesize =.*/upload_max_filesize = 2000M/g" /etc/php.ini sed -i "s/^max_file_uploads =.*/max_file_uploads = 200/g" /etc/php.ini sed -i "s/^short_open_tag =.*/short_open_tag = On/g" /etc/php.ini sed -i "s/^upload_max_filesize =.*/upload_max_filesize = 500M/g" /etc/php.ini sed -i "s/;realpath_cache_size =.*/realpath_cache_size = 4096k/g" /etc/php.ini
#xdebugモジュールをビルドします(コードのデバッグと問題の特定に役立ちます) yum install php-devel php-pear pecl install Xdebug
nano /etc/php.d/xdebug.ini
[xdebug] zend_extension="/usr/lib64/php/modules/xdebug.so" xdebug.remote_enable = 1
php -v
No log handling enabled - turning on stderr logging Created directory: /var/lib/net-snmp/mib_indexes PHP 5.4.24 (cli) (built: Jan 13 2014 12:36:47) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Retha
#PHPモジュールのインストール-Zend Guard cd /usr/src/ && wget wget http://downloads.zend.com/guard/6.0.0/ZendGuardLoader-70429-PHP-5.4-linux-glibc23-x86_64.tar.gz tar xzvf ZendGuardLoader-7* -C /usr/local/ chmod -R 755 /usr/local/ZendGuardLoader-70429-PHP-5.4-linux-glibc23-x86_64/ mv /usr/local/ZendGuardLoader-70429-PHP-5.4-linux-glibc23-x86_64/ /usr/local/Zend
nano /etc/php.d/zend.ini
zend_extension=/usr/local/Zend/php-5.4.x/ZendGuardLoader.so
php -v
PHP 5.4.24 (cli) (built: Jan 13 2014 12:36:47) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans with Zend Guard Loader v3.3, Copyright (c) 1998-2013, by Zend Technologies
#PHPのオペコードキャッシングモジュールを有効にする-APC sed -i "s/^apc.enabled=.*/apc.enabled=1/g" /etc/php.d/apc.ini sed -i "s/^apc.shm_size=.*/apc.shm_size=256M/g" /etc/php.d/apc.ini sed -i "s/;apc.num_files_hint=.*/apc.num_files_hint=20000/g" /etc/php.d/apc.ini sed -i "s/;apc.user_entries_hint=.*/apc.user_entries_hint=20000/g" /etc/php.d/apc.ini sed -i "s/;apc.ttl=.*/apc.ttl=86400/g" /etc/php.d/apc.ini sed -i "s/;apc.user_ttl=.*/apc.user_ttl=7200/g" /etc/php.d/apc.ini sed -i "s/;apc.gc_ttl=.*/apc.gc_ttl=86400/g" /etc/php.d/apc.ini sed -i "s/;apc.cache_by_default=.*/apc.cache_by_default=1/g" /etc/php.d/apc.ini sed -i "s/;apc.max_file_size=.*/apc.max_file_size=10M/g" /etc/php.d/apc.ini
#suphpモジュールの構成 mkdir -p /root/backup/etc mv /etc/httpd/conf.d/suphp.conf /root/backup/ && nano /etc/httpd/conf.d/suphp.conf
LoadModule suphp_module modules/mod_suphp.so suPHP_Engine on suPHP_ConfigPath /etc/suphp.conf
mv /etc/suphp.conf /root/backup/etcsuphp.conf && nano /etc/suphp.conf
[global] ;Path to logfile logfile=/var/log/httpd/suphp.log ;Loglevel loglevel=info ;User Apache is running as webserver_user=apache ;Path all scripts have to be in docroot=/ ;Path to chroot() to before executing script ;chroot=/mychroot ; Security options allow_file_group_writeable=true allow_file_others_writeable=false allow_directory_group_writeable=true allow_directory_others_writeable=false ;Check wheter script is within DOCUMENT_ROOT check_vhost_docroot=true ;Send minor error messages to browser errors_to_browser=false ;PATH environment variable env_path=/bin:/usr/bin ;Umask to set, specify in octal notation umask=0077 ; Minimum UID min_uid=100 ; Minimum GID min_gid=100 [handlers] ;Handler for php-scripts x-httpd-suphp="php:/usr/bin/php-cgi" ;Handler for CGI-scripts x-suphp-cgi="execute:!self"
#mod_rpafを設定します。3番目のアドレスはサーバーのパブリックWebアドレスです nano /etc/httpd/conf.d/mod_rpaf.conf
<IfModule mod_rpaf.c> RPAF_Enable On RPAF_ProxyIPs 127.0.0.1 192.168.8.2 *.*.*.237 RPAF_Header X-Forwarded-For RPAF_SetHostName On RPAF_SetHTTPS On RPAF_SetPort On </IfModule>
#FastCgiWrapperをオフにする nano /etc/httpd/conf.d/fastcgi.conf
sed -i "s/^FastCgiWrapper .*/FastCgiWrapper Off/g" /etc/httpd/conf.d/fastcgi.conf
#ISPConfigをインストール cd /usr/src/ wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz tar xfz ISPConfig-3-stable.tar.gz cd ispconfig3_install/install/ php -q install.php
#対話型インストールウィザードの質問に答えます>>初期設定
オペレーティングシステム:Redhatまたは互換性のある、不明なバージョン。
以下は、プライマリ設定に関するいくつかの質問ですので、注意してください。
デフォルト値は[角括弧]で囲まれ、受け入れられます。
「引用」なしで「終了」をタップして、インストーラーを停止します。
言語を選択(en、de)[ en ]:
インストールモード(標準、エキスパート)[標準]: エキスパート
サーバーの完全修飾ホスト名(FQDN)。例:server1.domain.tld [ app01.local ]:
MySQLサーバーのホスト名[ localhost ]:
MySQLルートユーザー名[ root ]:
MySQLルートパスワード[]:
作成するMySQLデータベース[ dbispconfig ]:
MySQL文字セット[ utf8 ]:
次の2つの質問は、内部ISPConfigデータベースのユーザーとパスワードに関するものです。
ユーザー名として「ispconfig」であり、ランダムなパスワードであるデフォルトを受け入れることをお勧めします。
別のパスワードを使用する場合は、パスワードに数字と文字のみを使用してください。
ISPConfig mysqlデータベースのユーザー名[ ispconfig ]:
ISPConfig mysqlデータベースパスワード[ 8b8295ae2a50a39a1a00da65df0bee72 ]:
このサーバーを既存のISPConfigマルチサーバーセットアップに参加させます(y、n)[n]: y
MySQLマスターサーバーのホスト名[]: isp.local
MySQLマスターサーバーのルートユーザー名[ root ]:
MySQLマスターサーバーのルートパスワード[]: c2HZqsMmiBKa
MySQLマスターサーバーのデータベース名[ dbispconfig ]:
ISPConfigサーバーレコードをデータベースに追加しています。
メールの構成(y、n)[y]: n
Jailkitの構成(y、n)[y]: n
FTPサーバーの構成(y、n)[y]: y
Pureftpdの構成
pure-ftpdの停止:[OK]
pure-ftpdの起動:[OK]
DNSサーバーの構成(y、n)[y]: n
ヒント:このサーバーがISPConfigインターフェースを実行する場合は、「Apacheサーバーの構成」オプションで「y」を選択します。
Apacheサーバーの構成(y、n)[y]: y
Apacheの構成
Vloggerの構成
Apps vhostの構成
ファイアウォールサーバーの構成(y、n)[y]: y
Bastille Firewallの構成
ISPConfig Webインターフェイスのインストール(y、n)[n]: n
DBServerの構成
ISPConfig crontabのインストール
ルートのcrontabはありません
httpdの停止:[OK]
[2014年1月23日13:46:44] [警告] NameVirtualHost *:80にはVirtualHostsがありません
[木1月23日13:46:44 2014] [警告] NameVirtualHost *:443にはVirtualHostがありません
[2014年1月23日13:46:44] [警告] NameVirtualHost *:80にはVirtualHostsがありません
httpdの開始:[OK]
インストールが完了しました。
環境db01を設定します。
CentOS 64環境でOpenVZコンテナー(新しいCT)を作成する必要があります。サイトのMariadbは、このin vitroマシンに配置されます。
このノードのISPConfigクラスターへの追加についてのみ説明します。 次の記事では、MySQLの最適化に関する質問を残します。
このコンテナには、プライベートネットワーク(
vmbr1 )
192.168.8.5のアドレスがあります。データベースサーバーのRAMの量を節約しないでください。この場合は
4 GBのRAMとしますが、深刻なタスクの場合、20 GBは小さくなります。
これは、ネットワークがコンテナ自体でどのように見えるかです。
vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.8.5 NETWORK=192.168.8.0 GATEWAY=192.168.8.100
#ISPConfigパネルのphpコンポーネントをインストール yum install php-mysql php -y
#スタートアップから削除してapache2をオフにする chkconfig httpd off && /etc/init.d/httpd stop
#ISPConfigをインストール cd /usr/src/ wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz tar xfz ISPConfig-3-stable.tar.gz cd ispconfig3_install/install/ php -q install.php
#対話型インストールウィザードの質問に答えます>>初期設定
オペレーティングシステム:Redhatまたは互換性のある、不明なバージョン。
以下は、プライマリ設定に関するいくつかの質問ですので、注意してください。
デフォルト値は[角括弧]で囲まれ、受け入れられます。
「引用」なしで「終了」をタップして、インストーラーを停止します。
言語の選択(en、de)[en]: en
インストールモード(標準、エキスパート)[標準]: エキスパート
サーバーの完全修飾ホスト名(FQDN)。例:server1.domain.tld [ db01.local ]:
MySQLサーバーのホスト名[ localhost ]:
MySQLルートユーザー名[ root ]:
MySQLルートパスワード[]:
作成するMySQLデータベース[ dbispconfig ]:
MySQL文字セット[ utf8 ]:
次の2つの質問は、内部ISPConfigデータベースのユーザーとパスワードに関するものです。
ユーザー名として「ispconfig」であり、ランダムなパスワードであるデフォルトを受け入れることをお勧めします。
別のパスワードを使用する場合は、パスワードに数字と文字のみを使用してください。
ISPConfig mysqlデータベースのユーザー名[ ispconfig ]:
ISPConfig mysqlデータベースパスワード[ 06cd6c11370b50a83eb0a3d3907a3581 ]:
このサーバーを既存のISPConfigマルチサーバーセットアップに参加させます(y、n)[n]: y
MySQLマスターサーバーのホスト名[]: isp.local
MySQLマスターサーバーのルートユーザー名[ root ]:
MySQLマスターサーバーのルートパスワード[]: c2HZqsMmiBKa
MySQLマスターサーバーのデータベース名[ dbispconfig ]:
ISPConfigサーバーレコードをデータベースに追加しています。
メールの構成(y、n)[y]: n
Jailkitの構成(y、n)[y]: n
FTPサーバーの構成(y、n)[y]: n
DNSサーバーの構成(y、n)[y]: n
ヒント:このサーバーがISPConfigインターフェースを実行する場合は、「Apacheサーバーの構成」オプションで「y」を選択します。
Apacheサーバーの構成(y、n)[y]: n
ファイアウォールサーバーの構成(y、n)[y]: y
Bastille Firewallの構成
ISPConfig Webインターフェイスのインストール(y、n)[n]: n
DBServerの構成
ISPConfig crontabのインストール
ルートのcrontabはありません
httpdの停止:[失敗]
httpdの開始:[OK]
インストールが完了しました。
ISPConfigの概要:
ISPConfig Webパネルでの承認後、スタートページに移動します。
ツール -
パスワードと言語 、
言語を変更し、コントロールパネルにアクセスするための強力なパスワードを作成します。
システム -
サーバーサービス 、サーバーから不要な役割を削除します。
ISPConfigが単一のノードを別のノードのミラーにすることができるという事実に注意を喚起したいと思います。 つまり サービスとユーザーの構成は、複数のサーバーで同時に同じになります。
サーバーミラーでミラーのノードを選択する必要があります
サーバー構成 -
サーバーセクションの各サーバーで、
ログレベルをデバッグに設定します。 これで、ISPConfigがクラスターのノードで実行するすべてのアクションを確認できます
tail -f -n 1000 /var/log/ispconfig/ispconfig.log
サーバー構成にはすぐに
Webセクションがあり、その中に
Permissionsがあります。同じファイルストレージ(ceph、ocfs2など)に複数のWebサーバーミラーがある場合、
更新時にフォルダーパーミッションを設定し 、
LinuxユーザーIDをwebidに接続するチェックボックスをチェックする必要があります 。 これにより、異なるミラー上のguid / uidとユーザーおよびグループ、およびそれらの名前/グループの違いに関する問題を回避できます。 ユーザーのフォルダー構造を変更する場合は、[
Webフォルダーを不変(拡張属性)にする]チェックボックス
をオフにします。 これを忘れた場合は、
chatrtr -iコマンドが役立ちます。 次の重要なセクション:
Rescue 、クラッシュが発生した場合に重要なサービスの自動起動を有効にしますが、再起動しないサービスの再起動を無効にすることを忘れないでください。
テストユーザーを作成しましょう:
クライアント -
クライアントを 追加し 、
アドレス 、
連絡先 、
ログイン 、
パスワードを入力して
ください (便利なパスワードジェネレーターもあります)。
制限に加えて 、
デフォルトのWebサーバーと許可されたWebサーバーの動作モードを選択します。

php-fpmとmod_phpを同時にサポートするようにapp01.localを構成しました。 顧客のリストに戻り、新しく作成されたものを入力します。
サイト -
新しいウェブサイトを追加
サイト名と必要なphpバックエンドを指定します。
クラスタ構成のISPConfigは、すべての変更を反映するのに時間がかかることに注意してください。

サイトのファイルにアクセスする手段として、
sshを使用します
。Windowsでは
WinSCPを使用すると便利です。 この方法は、従来のFTPよりもはるかに安全です。
アクセスするには、
Shell UserセクションでSSHユーザーを作成する必要があります。
ユーザー名、パスワード、および必要に応じてキーを指定する必要があります。 ISPConfigアカウントのアカウントのプレフィックスがユーザーに追加されることに注意してください。
MySQLを使用するには、
データベースユーザーセクションでユーザーを作成する必要があります。ISPConfigシステムのIDがログインに追加されます。
データベースセクションでサイトの1つにデータベースを作成します。新しいデータベースの名前を指定する必要があります。このデータベースが属するサイトを指定することを忘れないでください。作成したユーザーを選択し、
リモートアクセスボックスをチェックしますアプリケーションサーバーに関連して)。 プレフィックスが名前に追加されることを忘れないでください。

phpMyAdminにアクセスするには、[
データベース]セクションの任意のデータベースの近くにある対応するアイコンをクリックします。

phpMyAdminで自分自身を見つける

ファイナル
サイトが存在する
app01.localは、ポート
22のパブリックサービスネットワークで利用できます。
WinSCP , :

,
web
index.html index.php <?php // , INFO_ALL phpinfo(); // . // phpinfo(8) . phpinfo(INFO_MODULES); ?>
, php-fpm/mod_php

, :