HTML + PHP5ネットワークファイルシステム(NFS)ファイルを操作するためのApache Webサーバーの構成
Webアプリケーションスタックの構成に関する記事シリーズの4番目のレッスンでは 、Apacheサーバーについて説明します。
Apache Webサーバーは、HTTPまたはHTTPSプロトコルを介して動的コンテンツへのアクセスを提供します。 この例では、Apache2 + php5 Webサーバーをインストールして使用し、さらにvm 05:/ exports / htmlに/ var / www / htmlにマウントしてDocumentRootをインストールします。 これを行うには、仮想アドレス192.168.1.11の仮想vm02サーバーで次のコマンドを入力します。
NFSクライアントを構成する
yumマネージャーを使用して、NFSクライアントパッケージをインストールします。
# yum groupinstall "Network file system client"
または少し簡単に:
# yum install nfs-utils nfs4-acl-tools
NFSv4クライアントサービスを有効にします。
# chkconfig rpcbind on # chkconfig rpcidmapd on # chkconfig nfslock on
/etc/idmapd.conf nfsクライアント設定
NFSクライアント構成ファイルを編集します
# vi /etc/idmapd.conf
NFSサーバーのドメイン名に従ってパラメーターが設定されていることを確認します。
Domain = cyberciti.biz [Mapping] Nobody-User = nobody Nobody-Group = nobody
ファイルを保存して閉じます。 NFSクライアントのすべてのサービスを開始しましょう。
# /sbin/service rpcbind start # /sbin/service rpcidmapd start # /sbin/service nfslock start
ファイルシステムのマウント
次のコマンドを入力してください
# showmout -e vm05
または:
# showmout -e 192.168.1.14
コマンド出力の例:
Export list for v.txvip1: /exports/html 192.168.1.10,192.168.1.11 /exports/static 192.168.1.10,192.168.1.11
次のコマンドを入力して、 / exports / htmlファイルシステムを/ var / www / htmlにマウントします。
# /bin/mount -t nfs4 -orsize=32768,wsize=32768,intr,hard,proto=tcp,sync vm05:/exports/html /var/www/html/
または:
# /bin/mount -t nfs4 -orsize=32768,wsize=32768,intr,hard,proto=tcp,sync 192.168.1.14:/exports/html /var/www/html/
/ etc / fstabを介したファイルシステムのマウント
/ etc / fstabを編集:
# vi /etc/fstab
次の行を追加します。
vm05:/exports/html /var/www/html nfs4 orsize=32768,wsize=32768,intr,hard,proto=tcp,sync
ファイルを保存して閉じます。 netfsサービスが有効になっていることを確認します。
# chkconfig netfs on
Apacheユーザーがファイルを見るようにします
# su - apache $ ls /var/www/html/ $ exit #
rootユーザーまたは他のユーザーには、セキュリティポリシーにより/ var / www / htmlが表示されないことに注意してください。 apacheユーザーのみがDocumentRootにアクセスする必要があります。 これらはデフォルト設定です。
Apacheソフトウェアをインストールする
yumマネージャーを使用してApache2パッケージをインストールします 。
# yum install httpd
php5と必要なモジュールをインストールする
次のコマンドを入力して、php5、mysqlへのアクセスを提供するモジュール、グラフィックファイルを操作するためのモジュール、およびアプリケーションの動作に必要な他のすべてのモジュールをインストールします。
# yum install -y php-pear php-common php-bcmath php-mbstring php-cli php-pdo php-php-gettext php-mcrypt php-gd php-xml php-pecl-apc php php-mysql php-xmlrpc
php5のmemcachedサポートをインストールする
vm03にインストールされたmemcachedサーバーにアクセスするには、phpキャッシュサーバーをインストールする必要があります。
# yum install -y php-pecl-memcache
Apacheを構成する
Apacheサーバー構成ファイル/etc/httpd/conf/httpd.confを編集します。
# vi /etc/httpd/conf/httpd.conf
次の設定を追加または編集します(DocumentRootは/ var / www / htmlにマウントされたnfsパーティションを指す必要があります)。
# - Listen 192.168.1.11:80 # ServerTokens Prod ServerSignature Off # DocumentRoot DocumentRoot "/var/www/html" <Directory "/var/www/html"> Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory>
ファイルを保存して閉じます。
PHP5の構成
PHPは、広く使用されているサーバー側のスクリプト言語です(「 モスクワ、 祖国 の 首都 」、 約 Trans。 )
次のコマンドを使用して 、ファイル/etc/httpd/conf.d/php.confを編集します。
# cat /etc/httpd/conf.d/php.conf
コマンドのおおよその出力:
# PHP is an HTML-embedded scripting language which attempts to make it # easy for developers to write dynamically generated webpages.<br /> <IfModule prefork.c> LoadModule php5_module modules/libphp5.so </IfModule> <IfModule worker.c> LoadModule php5_module modules/libphp5-zts.so </IfModule> # PHP- .php AddHandler php5-script .php AddType text/html .php # Add index.php to the list of files that will be served as directory # indexes. DirectoryIndex index.php # Uncomment the following line to allow PHP to pretty-print .phps # files as PHP source code: # #AddType application/x-httpd-php-source .phps
トピックに関する追加記事でPHP5を保護および最適化する方法を参照して読んでください( または翻訳を依頼してください-約Per )
リダイレクトされたHTTPリクエストの実際のIPを取得する
mod_extract_forwardedパッケージをインストールして、指示されたHTTPリクエストの実際のソースIPを取得します(EPELリポジトリに接続します):
# yum -y install mod_extract_forwarded package
/etc/httpd/conf.d/mod_extract_forwarded.confの編集:
# vi /etc/httpd/conf.d/mod_extract_forwarded.conf
次のように設定を追加または変更します。
## Accept real ip from our nginx reverse proxy at 192.168.1.1 ## MEFaccept 192.168.1.1
ファイルを保存/閉じて、Webサーバーを再起動します。
# service httpd reload
Webサーバーにアクセスするためのiptablesの構成
/ etc / sysconfig / Iptablesファイルを編集して、次のパラメーターを追加します(INPUTチェーンの最終LOGおよびDROP設定の前に設定されていることを確認してください)。
## ## -A INPUT -m state --state NEW -p tcp -s 192.168.1.0/24 --dport 80 -j ACCEPT
保存して閉じます。 iptablesを再起動します。
# /sbin/service iptables restart # /sbin/iptables -L -v -n
Apacheを有効にする
Apache2 Webサーバーは、次のコマンドで起動します 。
# chkconfig httpd on # service httpd start
ブラウザーを切断してサーバーに侵入します。
http://192.168.1.11/
MySQLおよびMemcachedサーバーに関する注意事項
アプリケーションでmysqlを使用する必要がある場合、IPアドレスは192.168.1.13 、tcpポートは3306です。
/* php- */ /* WordPress */ define('DB_NAME', 'foo'); /* MySQL database username */ define('DB_USER', 'bar'); /* MySQL database password */ define('DB_PASSWORD', 'mypassword'); /* MySQL hostname */ define('DB_HOST', '192.168.1.13');
memcachedサーバーが必要な場合、IPアドレスは192.168.1.12で、tcpポートは11211です。
/* php- */ if ( isset($memcached_servers) ) $buckets = $memcached_servers; else $buckets = array('default' => array('192.168.1.12:11211'));
または:
$config['Datastore']['class'] = 'myApp_MemCached; $i = 0; $i++; $config['Misc']['memcacheserver'][$i] = '192.168.1.12'; $config['Misc']['memcacheport'][$i] = 11211; $config['Misc']['memcachepersistent'][$i] = true; $config['Misc']['memcacheweight'][$i] = 1; $config['Misc']['memcachetimeout'][$i] = 1; $config['Misc']['memcacheretry_interval'][$i] = 15;