ランプ
学習目標
- php5_module モジュールに基づいて LAMP 環境を構成する
- php-fpm および proxy_fcgi_module モジュールに基づいて LAMP 環境を構成する
- SCL リポジトリから PHP 7.0 をインストールする
- LAMP アプリケーションのインストールと構成
- 仮想ホストのアクセスログ分析統計を実現するためのAWStatsの構成
タスク 1: LAMP 環境のインストールと構成 (1)
必要とする
CentOS7公式ウェアハウスとEPELウェアハウスをベースにしたLAMP環境の構成
- Aache2.4 + mpm_prefork_module + php5.4 + php5_module
- マリアDB5.5
ステップ
- MariaDB/MySQL サービスのインストールと構成
- mariadb と mariadb-server をインストールする
- MariaDB を構成する
- セクションで設定した メイン構成ファイルを編集し
/etc/my.cnf
ます[mysqld]
- 文字セットサーバー=utf8
- 照合サーバー=utf8_general_ci
- max_connections = 50 (デフォルトの最大同時接続数は 100)
- セクションで設定した メイン構成ファイルを編集し
/etc/my.cnf.d/client.cnf
ます[client]
- 文字セットサーバー=utf8
- セクションで設定した メイン構成ファイルを編集し
- MariaDB サービスを開始し、起動時に開始するように設定します。
- MariaDB サービスの root ユーザー パスワードを構成する
mysqladmin -u root password 'Med7ahBuu7ru2Wooyohg'
- または
mysql_secure_installation
- EPEL リポジトリからインストールし、さらに多くの構成提案を取得します
- PHPのインストールと設定
- PHP と関連モジュールをインストールします
yum install php
php-{pdo,mcrypt,mbstring,intl,gd,pecl-{imagick,memcached,redis} - インストールされている PHP (cli) バージョンの検出
php -v - PHPの設定
- セクションで設定した メイン構成ファイルを編集し
/etc/php.ini
ます[PHP]
- zlib ライブラリを使用して出力を圧縮し、圧縮レベルを 1 に設定します。
- PHP スクリプトが消費できるメモリの最大量を 256M に制限する
- POST メソッドの最大許容サイズ 256M を指定します。
- アップロードできる最大ファイルサイズを20Mに設定します
- セクションで設定した メイン構成ファイルを編集し
/etc/php.ini
ます[Date]
- 日付関数のデフォルトのタイムゾーンを次のように定義します。
Asia/Shanghai
- 日付関数のデフォルトのタイムゾーンを次のように定義します。
- セクションで設定した メイン構成ファイルを編集し
- Aapche の PHP モジュールを介して PHP スクリプトを実行する
- Apache の PHP モジュールの読み込み/設定ファイルを参照してください。
grep -v “^#” /etc/httpd/conf.modules.d/10-php.conf
grep -v “^#” /etc/httpd/conf.d/php.conf - Apache 設定が正しいことを確認し、Apache 設定をリロードします
- テスト
- PHP テスト スクリプトを作成します
echo '<?php phpinfo()?>' > /var/www/html/info.php
echo '<?php phpinfo()?>' > /srv/www/olabs.net/www/htdocs /info.php - クライアントでの elink のテスト
http://www.olabs.lan/info.php
elink http://www.olabs.net/info.php - ストレス テスト
ab -n 2000 -c 100 http://www.olabs.net/info.php
lynis -c
システム全体をスキャンし、レポートのプロンプトに従ってシステムを強化するために使用します。
タスク 2: LAMP アプリケーションのインストールと構成 (1)
必要とする
インストール構成
- phpMyAdmin
- ドクウィキ (
.htaccess
) - h5ai
ステップ
- phpMyAdminをインストールして設定する
- phpMyAdminをインストールする
- phpMyAdminを構成する
- phpMyAdminの設定ファイルを変更する
/etc/phpMyAdmin/config.inc.php
- Cookie認証用の暗号化パスワードをリセットする
- Apache設定ファイルを変更する
/etc/httpd/conf.d/phpMyAdmin.conf
- 192.168.56.0/24 アクセスを許可するように設定します
- phpMyAdminの設定ファイルを変更する
- Apache 構成が正しいことを確認し、Apache サービスの構成をリロードします
- phpMyAdminをテストする
- https://www.olabs.lan/phpmyadmin/
- https://www.olabs.net/phpmyadmin/
- dokuwiki のインストールと設定
- dokuwiki サイトのコンテンツをダウンロードして展開する
mkdir /srv/www/olabs.net/wiki/src
cd /srv/www/olabs.net/wiki/src
wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
tar xzf dokuwiki-stable.tgz
cd ..
rm -rf htdocs
mv src/dokuwiki-2017-02-19e htdocs
- ブラウザでインストールスクリプトを実行してインストールします。
- http://wiki.olabs.net/install.php
- プロンプト情報に従ってファイル システムのアクセス許可を合理的に設定します。
- インストール後に install.php ファイルを削除します。
- ウィキページを編集する
- 擬似静的アクセスを構成する
- 編集して
/etc/httpd/vhosts.d/olabs.net.conf
、wiki.olabs.net:443 の仮想ホストを変更します。/srv/www/olabs.net/wiki/htdocs/
構成により、ディレクトリ内の構成ファイルの読み取りが可能になります.htaccess
- 編集
/srv/www/olabs.net/wiki/htdocs/conf/local.php
擬似静的アクセスを有効にするecho "\$conf['userewrite'] = 1;" >> /srv/www/olabs.net/wiki/htdocs/conf/local.php
- 改訂
- デフォルトで公開されている .htaccess.dist を .htaccess にコピーします。
cp /srv/www/olabs.net/wiki/htdocs/.htaccess{.dist,}
/srv/www/olabs.net/wiki/htdocs/.htaccess
このサイトに合わせて編集してください
- デフォルトで公開されている .htaccess.dist を .htaccess にコピーします。
- 擬似静的アクセスをテストする
- http://wiki.olabs.net/wiki/syntax
- 編集して
- h5aiのインストールと設定
- ディレクトリの
/srv/www/olabs.org/www/htdocs/download
インストール構成h5ai
- http://www.olabs.org/download にアクセスしたときに https://release.larsjung.de/ のように見えるようにします
タスク 3: LAMP 環境のインストールと構成 (2)
必要とする
CentOS7公式ウェアハウスとEPELウェアハウスをベースにしたLAMP環境の構成
- Aache2.4 + mpm_envent_module + php5.4 + php-fpm + proxy_fcgi_module
- マリアDB5.5
ステップ
- インストールして起動する
php-fpm
- Apacheモジュールの
php
パッケージを削除する - インストール
php-fpm
php-fpm
デーモンをブート/即時に開始します
- 表示して構成する
php-fpm
php-fpm
バージョンを表示
php-fpm -vphp-fpm
プロセスを表示
ps -HO user -plpidof php-fpm
lsof -i :9000php-fpm
のメイン設定ファイルを表示します。/etc/php-fpm.conf
php-fpm
プロセスプール構成ファイルを表示する/etc/php-fpm.d/www.conf
- Apacheの構成
- proxy_fcgi_module経由でアクセスするようにApache を構成する
php-fpm
-
作成または編集
/etc/httpd/conf.d/php.conf
:
# php がマルチビューを処理できるようにする
AddType text/html .php# Add index.php to the list of files # that will be served as directory indexes. DirectoryIndex index.php # Enable the http authorization headers. SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 # Redirect the PHP scripts execution to the FPM backend. <FilesMatch \.php$> SetHandler "proxy:fcgi://127.0.0.1:9000" </FilesMatch> # Prevent .user.ini files from being viewed by Web clients. <Files ".user.ini"> Require all denied </Files>
-
- Apache を構成してmpm_envent_moduleを有効にする
- 编辑
/etc/httpd/conf.modules.d/10-php.conf
# LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
# LoadModule mpm_worker_module modules/mod_mpm_worker.so
LoadModule mpm_event_module modules/mod_mpm_event.so
- 编辑
- Apache 構成が正しいことを確認し、Apache サービスの構成をリロードします
- Apache が有効になっているかどうかを
FPM/FastCGI
elinks --dump http://localhost/info.php |grep 'Server API'
elinks --dump http://www.olabs.lan/info.php |grep 'Server API'
elinks でテストします。 - http://www.olabs.net/info.php をダンプ |grep 'サーバー API' - ストレス テスト
ab -n 2000 -c 100 http://www.olabs.net/info.php
タスク 4: LAMP 環境のインストールと構成 (3)
必要とする
SCL ウェアハウスに基づいて LAMP 環境を構成する
- Aache2.4 + mpm_envent_module + php70 + php-fpm + proxy_fcgi_module
- マリアDB5.5
ステップ
- SCL リポジトリのインストールと構成
yum -y install centos-release-scl scl-utils
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo yum
repolist |grep sclo
yum makecache - php70 と関連モジュールをインストールします
yum -y install rh-php70
rh-php70-php-{pdo,mcrypt,mbstring,intl,gd,pecl-{imagick,memcached,redis},fpm} scl
-l - php-fpm を新しいバージョンに切り替えます
systemctl stop php-fpm
systemctl disable php-fpm
systemctl start rh-php70-php-fpm
systemctl Enable rh-php70-php-fpm - リンク
--dump http://localhost/info.php |egrep 'サーバー API|PHP バージョン'
コマンドラインで SCL リポジトリを使用して PHP を切り替える
- 元々インストールされていた PHP のバージョンを検出します
where php ; php -v
which php-fpm ; php-fpm -v- SCL リポジトリから PHP を使用するように新しいシェルを切り替えます:
scl -l
scl enable rh-php70 bash- 新しくインストールされた PHP バージョンを検出します
where php ; php -v
which php-fpm ; php-fpm -v- 新しいシェルを終了し、PHP バージョンを再度確認します
exit
which php ; php -v
which php-fpm ; php-fpm -v
コマンドラインでデフォルトで SCL リポジトリを使用する PHP
cat >/etc/profile.d/rh-php70.sh <<_END #!/bin/bash source /opt/rh/rh-php70/enable export X_SCLS="\$(scl enable rh-php70 'echo \$X_SCLS')" _END
SCL リポジトリ用の PHP/PHP-FPM の構成
- 設定ファイルは
/etc/opt/rh/rh-php70/
ディレクトリに基づいています- php設定ファイル:
php.ini
、php.d/*.ini
- php-fpm 設定ファイル:
php-fpm.conf
、php-fpm.d/*.conf
練習する
- SCL リポジトリ
yum search rh-mariadb102から Mariadb v10.2 をインストールして有効化します。
タスク 5: AWStats を使用してアクセス ログ分析統計を実装する
必要とする
www.olabs.{net,org} 仮想ホストの AWStats を構成して、アクセス ログの分析と統計を実現する
ステップ
- awstatsをインストールする
- awstats を構成して仮想ホストごとに個別の構成ファイルを作成する
/etc/awstats/awstats.www.olabs.net.conf
/etc/awstats/awstats.www.olabs.org.conf
- 指定されたプロファイルの AWStats 統計データベースをただちに更新します
/usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=www.olabs.net
/usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=www.olabs.org
- AWStats WUI を表示するための CGI アクセス用に Apache を構成する
- メインの Apache 構成ファイルを編集して、
/etc/httpd/conf.d/awstats.conf
- HTTP ダイジェスト認証構成を適切な場所に追加すると、第 14 章のタスク 4 で作成したダイジェスト認証パスワード ファイルを使用できます。
/etc/httpd/.dpasswd
- Apache 設定が正しいことを確認し、Apache 設定をリロードします
- ブラウザ経由で AWStats にアクセスし、ダイジェスト認証をテストする
- http://www.olabs.net/awstats/awstats.pl
- http://www.olabs.net/awstats/awstats.pl?config=www.olabs.net
- http://www.olabs.net/awstats/awstats.pl?config=www.olabs.org
タスク 6*: LAMP アプリケーションのインストールと構成 (2)
必要とする
- http://blog.olabs.org インストール用に Laravel フレームワークベースのアプリケーションを構成する
ステップ
- Composer のインストールと設定
-
コンポーザーをインストールする
# curl -sS https://getcomposer.org/installer | php # mv composer.phar /usr/local/bin/composer
-
Composer によってグローバルに使用されるミラー サイトを構成する
# composer config -g repo.packagist composer \ https://packagist.phpcomposer.com # tree -F -L 2 ~olabsorg
-
laravel
# su - olabsorgをインストールします$ scl enable rh-php70 bash $ composer create-project laravel/laravel blog --prefer-dist "5.5.*"
-
blog.olabs.org 仮想ホストの構成とテスト
- 改訂
/etc/httpd/vhosts.d/olabs.org.conf
<VirtualHost *:80>
ServerAdmin root@localhost
ServerName blog.olabs.org:80
DocumentRoot /srv/www/olabs.org/blog/public/
ErrorLog /srv/www/olabs.org/blog/logs/error_log
CustomLog /srv/www/olabs.org/blog/logs/access_log combined
<Directory /srv/www/olabs.org/blog/public/>
Options +FollowSymLinks
Require all granted
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</Directory>
</VirtualHost>
- Apache 構成が正しいことを確認し、Apache サービスの構成をリロードします
- blog.olabs.org のドメイン名解決を構成する (bind または /etc/hosts)
- http://blog.olabs.org をテストする
- Laravel に基づくバックグラウンド生成ツールであるVoyagerをインストールして設定する
- Composer を使用して、Voyager に必要な PHP パッケージをインストールします
- BLOGに必要なmysqlデータベースを作成する
- 設定プロジェクト下の環境ファイル
.env
- アルティザンを使用して voyager のインストールを実行し、テスト データを入力します
- 管理者のパスワードとメールアドレスをリセットします
- ブラウザで BLOG のバックグラウンド管理インターフェイスにアクセスします http://blog.olabs.org/admin
- Voyager の背景に基づいてコードを記述し、BLOG フロントエンド http://blog.olabs.org を作成します。
** 練習する**
タスク 7*: Memcached と Redis
必要とする
- Memcached のインストール、構成、起動
- Redis のインストール、構成、起動
タスク 8*: mylvmbackup を使用して MySQL データベースの物理バックアップを実装する
必要とする
- EPEL リポジトリから mylvmbackup をインストールします。
- mylvmbackup を構成する
/etc/mylvmbackup.conf
- cron タスクを毎日 1 時に実行するようにスケジュールする
/etc/cron.d/mylvmbackup
タスク 9*: CentOS 6 および Debian 9 の LAMP 環境構成
必要とする
- c6-v1 コンテナでApache2.4+php7.0+php-fpm+mpm_envent_moduleを構成する
- d9-v1 コンテナでApache2.4+php7.0+php-fpm+mpm_envent_moduleを構成する
トムキャットとアパッチ
学習目標
- OpenJDK または Java SE Development Kit (Oracle) のインストールと構成
- 独立して実行される Tomcat をインストールして構成する
- Tomcat の 2 番目のインスタンスを構成する
- Apache リバース プロキシ Tomcat を構成する
- Apache リバース プロキシ ユーザーミンを構成する
タスク 1: OpenJDK と Tomcat をインストールする
必要とする
- java-1.8.0-openjdk と Tomcat をインストールする
- Tomcat を独立して実行するように構成する
- Tomcat を独立して実行するテスト
- Tomcat のデフォルトの Web アプリケーション、管理アプリケーション、およびドキュメントをインストールする
- Tomcat の管理アプリケーションを構成する
- ユーザー fanny はマネージャー インターフェイスのみにアクセスできます
- ユーザー tonny はマネージャーと管理インターフェースの両方にアクセスできます
- 別のユーザーを使用して管理インターフェイスへのアクセスをテストする
タスク 2: Tomcat の 2 番目のインスタンスを構成する
必要とする
- systemd で管理できる 2 番目の Tomcat インスタンスを構成する
タスク 3: Apache リバース プロキシ
必要とする
- Apache リバース プロキシ Tomcat のデフォルト インスタンスを構成する
- /docs への URI アクセスにリバース プロキシを使用しない
- AJP プロトコルを使用して、Tomcat のデフォルト インスタンスをリバース プロキシします。
- Apache リバース プロキシ Tomcat の 2 番目のインスタンスを構成する
- Apache リバース プロキシの usermin を構成する (https://localhost:20000)