LEMPまたはLinux、Engine-x、MySQL、およびPHPは、Linuxオペレーティングシステムにインストールされたソフトウェアのコレクションであり、PHPベースのWebアプリケーションを高速のNginxWebサーバーで稼働させます。 LEMPスタックは、Webアプリケーションをホストするための高速で信頼性の高い基盤を提供します。 LEMPは、完全なドキュメントセットを備えたオープンソースソフトウェアのコレクションであるため、さまざまなアプリケーションとそれらがどのように組み合わされているかについて簡単に学ぶことができます。
このチュートリアルでは、openSUSEの飛躍42.1にNginx、MariaDB、PHP-FPMをインストールする方法を紹介します。次に、SuSEfirewall2を使用してOpenSUSEファイアウォールを構成し、Nginx Webサーバーへのアクセスを許可し、NginxWebサーバーに新しい仮想ホスト構成を追加する方法を示します。
最後に、使いやすいデータベース管理ツールとしてphpMyAdminをインストールし、Webディレクトリを変更してphpMyAdminディレクトリのHTTP認証を有効にすることでセキュリティを確保します。
前提条件
- OpenSUSELeap42.1。
- root権限。
- zypperコマンドを理解する。
SuSEfirewall2は、構成ファイル「/ etc / sysconfig/SuSEfirewall2」に基づいてiptablesルールを生成するスクリプトです。サーバーポートへのネットワーク攻撃を防ぐためにインストールおよび構成します。
zypperを使用してSuSEfirewall2をインストールします:
SuSEfirewall2のzypper
インストールが完了したら、WebアプリケーションとSSH用にいくつかのポートを開く必要があります。 sshサービス用にポート22を開き、httpとhttps用にポート80と443を開きます。 「/etc/ sysconfig /」ディレクトリに移動し、「SuSEfirewall2」ファイルを編集します。
cd / etc / sysconfig /
vim SuSEfirewall2
253行目に、サービスのポート番号を空白で区切って追加します。
FW_SERVICES_EXT_TCP ="22 80 443"
ファイルを保存して終了します。
SuSEfirewall2とSSHサービスを再起動し、telnetでサーバーに接続してポート構成をテストします。
SuSEfirewall2とSSHサービスを再起動します:
/ sbin / rcSuSEfirewall2 restart
systemctl restart sshd
ポート22でのtelnetとのssh接続のテスト:
telnet 192.168.1.101 22
Nginxまたはenginexは、メモリ消費量が少ない高性能のHTTPおよびプロキシサーバーです。 Netflix、Pinterest、CloudFlare、Githubなどの大規模なウェブサイトで使用されています。Nginxは構成構文を簡単に習得でき、ヘルスチェックを備えたロードバランサーやキャッシュ機能を備えたリバースプロキシとしても機能します。
このステップでは、nginxをインストールし、ブート時に開始するように追加します。 「zypperin」コマンドを使用してインストールします:
nginxのzypper
nginxを起動し、起動時に起動できるようにします:
systemctl start nginx
systemctl enable nginx
Nginxは現在起動していますが、Webブラウザーからアクセスしようとすると、403forbiddenエラーが発生します。このエラーは、Webルートフォルダに標準のインデックスドキュメントがないために発生します。この問題を解決するには、ルートWebディレクトリ「/ srv / www/htdocs」に新しいインデックスhtmlを作成します。ディレクトリに移動して、index.htmlファイルを作成します。
cd / srv / www / htdocs /
echo "This is Nginx OpenSUSE Leap 42.1
"> index.html
Webブラウザーを開き、サーバーIPを入力すると、インデックスページが表示されます。
http://192.168.1.101/
MariaDBは、GNU GPLライセンスの下でMySQLからフォークされたオープンソースのRDBMS(リレーショナルデータベース管理システム)です。このチュートリアルでは、MariaDBをインストールし、MariaDBシェルのルートパスワードを構成します。
zypperコマンドを使用してMariaDBをインストールします:
mariadbmariadbのzypper-クライアント
MariaDB / MySQLを起動し、以下のsystemctlコマンドを使用して起動を起動するように追加します。
systemctl start mysql
systemctl enable mysql
次に、mysqladminコマンドを使用してMariaDBb/MySQLの管理者パスワードを構成します。この目的で使用できるもう1つのオプションは、「mysql_secure_installation」です。このステップでは、mysqladminを使用します:
/ usr / bin / mysqladmin -u root password'aqwe123'
注:
「aqwe123」はMariaDB/MySQLの新しいパスワードです。
次に、ユーザーrootとパスワードaqwe123を使用してmysqlシェルにログインします。
mysql -u root -p
TYPE PASSWORD'aqwe123'
これで、MariaDB / MySQLがインストールされ、新しいパスワードで構成されました。
PHP-FPMまたはFastCGIProcessManagerは、古いPHP FastCGIの代替であり、追加機能と速度の向上を提供します。 PHP-FPMは、PHPプログラミング言語に基づく小規模および大規模のサイトに最適です。
このステップでは、phpMyAdminに必要ないくつかの追加の拡張機能を使用してphp5-fpmをインストールします。 php5-fomとzypperを使用した拡張機能をインストールします:
php5php5-mysqlのzypperphp5-fpmphp5-gd php5-mbstring
インストールが完了したら、php5-fpmディレクトリに移動し、構成ファイルをコピーします。
cd /etc/php5/fpm/
cp php-fpm.conf.default php-fpm.conf
vimコマンドで設定を編集します:
vim php-fpm.conf
32行目のコメントを解除してphp-fpmログを有効にします。デフォルトのプレフィックスは/varで、php5-fpmに問題がある場合は、ログファイル「/var/log/php-fpm.log」を確認できます。
>error_log =log / php-fpm.log
148行目で、nginxプロセスの所有者をNginxユーザーに構成します。ユーザーとプロセスのグループをnginxに変更します:
user =nginx
group =nginx
159行目:ポートではなくソケットファイルで実行するようにphp-fpmを設定します。その行を次のように変更します:
listen =/var/run/php-fpm.sock
そして、170行目で、unixソケットのアクセス許可をnginxユーザーとモード0660のグループに変更します。
listen.owner =nginx
listen.group =nginx
listen.mode =0660
ファイルを保存してエディタを終了します。
次に、PHP cliディレクトリに移動し、vimでphp.iniファイルを編集します。
cd / etc / php5 / cli /
vim php.ini
セキュリティ上の理由から、cgi.fix_pathinfoの値をゼロに変更します。 178行目:
cgi.fix_pathinfo =0
保存して終了します。
php.iniをconf.dディレクトリにコピーします:
cp php.ini /etc/php5/conf.d/
PHP-FPMの構成はこの段階で行われますが、Nginxを構成する必要があります。 php-fpmで動作するようにNginxを設定する必要があります。
nginx構成ディレクトリに移動し、cpコマンドを使用して構成ファイルのバックアップを作成します。
cd /etc/nginx/
cp nginx.conf nginx.conf.backup
vimでnginx.confを編集します:
vim nginx.conf
48行目にindex.phpを追加します:
index index.php index.html index.htm;
68行目に新しいphp構成セクションを追加します。これは.phpファイル要求を処理するための構成です。
location〜 \ .php $ {
root / srv / www / htdocs;
try_files $ uri =404;
fast :/var/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;
}
ファイルを保存して終了します。
次に、nginx構成ファイルの構文をテストして、エラーがないことを確認します。次に、php-fpmデーモンを起動し、Nginxを再起動します。
nginx -t
systemctl start php-fpm
systemctl restart nginx
php-fpmとnginxが正しく機能していることを確認するために、新しいphpテストファイルを追加します。 DocumentRootディレクトリに移動し、info.phpという名前のphpinfoファイルを作成します。
cd / srv / www / htdocs /
echo "<?php phpinfo();?>"> info.php
Webブラウザを開き、サーバーのIPアドレスを入力します:
http://192.168.1.101/info.php
Nginxとphp-fpmは現在機能しています。
このステップでは、Webサイトの仮想ホスト構成を追加する方法を示します。新しいドメイン「www.example.com」と「/srv/ www /example/」のwebrootディレクトリを設定します。 exampleとexample.comを独自のドメイン名に置き換えてください。
GNginx nginxディレクトリを作成し、仮想ホスト構成用の新しいディレクトリを作成します。
cd / etc / nginx /
mkdir vhosts.d /
cd vhosts.d /
次に、ドメイン名「example.com」仮想ホストの新しいファイルexample.confを作成します。
vim example.conf
以下に仮想ホスト構成を貼り付けます:
server {
server_name example.com;
return 301 $ schema://www.example.com$request_uri;
}
server {
listen 80;
root / srv / www / example;
index index.php index.html index.htm;
場所/{
try_files $ uri $ uri / =404;
}
location〜 \ .php $ {
try_files $ uri =404;
in / etc / fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;
/>
/ pre>ファイルを保存して終了します。
次に、/ srv / www /ディレクトリにサイト「example.com」のディレクトリを作成し、新しいインデックスファイルを作成します。
mkdir -p / srv / www / example /
cd / srv / www / example /
echo"これはwww.example.comサイトです。
">インデックス.html
echo "<?php phpinfo();?>"> info.php次に、Webブラウザを開いて、ドメインにアクセスします。
example.com
wwwドメインにリダイレクトされ、phpファイルにアクセスします:
http://www.example.com/info.php
ステップ6-phpMyAdminをインストールして構成する PhpMyAdminは、WebブラウザからMySQLまたはMariaDBデータベースを管理するためのPHPベースのアプリケーションです。このステップでは、phpMyAdminをphp-fpmで実行するように構成し、phpMyAdminログインページへのアクセスを制限してPHPMyAdminを安全にします。
zypperコマンドを使用してphpMyAdminをインストールします:
phpMyAdminのzypperこのコマンドは、パスワードファイルの作成に必要なapache2-utilsを含め、phpMyAdminに必要なすべてのパッケージをインストールします。
これで、phpMyAdminがシステムにインストールされました。次に、htpasswdコマンドを使用して新しいhtpasswdファイルを作成します。
パスワードファイルhtpasswdを作成します:
htpasswd -c / etc / nginx / htpasswdmegumi
ユーザーmegumiのパスワードを入力してください次に、phpmyadminディレクトリにHTTP基本認証を使用するようにNginxを構成する必要があります。 auth_basicを使用してphpMyAdminログインページへのアクセスを制限し、「htpasswd」ファイルにあるユーザーのみがphpMyAdminにログインできます。
Nginx構成ディレクトリに移動し、nginx.confファイルを編集します:
cd / etc / nginx /
vim nginx.conf40行目(server_name)の下に新しい行を追加して、サーバーセクション内にWebルートディレクトリを定義します。
server_name localhost;
root / srv / www / htdocs; #newline config次に、nginxのphpMyAdmin構成を60行目に追加します。
location〜 ^ /phpMyAdmin/。*\。php${
auth_basic "Restricted Access";
auth_basic_user_file / etc / nginx / htpasswd;
fastcgi_pass unix:/ php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;
include fastcgi_params;
} preファイルを保存してエディタを終了します。
nginx構成をテストし、nginxを再起動します:
nginx -t
systemctl restart nginx次に、Webブラウザを開いてphpMyAdmin URLにアクセスすると、ログインページのユーザー名とパスワードの入力を求められます。
http://192.168.1.101/phpMyAdmin/
次に、MySQLのユーザー名とパスワードを使用してログインします。
phpMyAdminが正常にインストールされ、htpasswdのユーザーのみがログインできます。
OpenSuse