Gentoo LinuxへのLEMP(Linux、Nginx、MySQL / MariaDB、PHP / PHP-FPM、PhpMyAdmin)のインストール


Gentooは、ソース指向から構築されているため、最速のLinuxディストリビューションの1つであり、ソフトウェア管理プログラム– Portage –によって提供されます。これは、非常に高速に動作および動作する完全なWeb開発者プラットフォームを構築するために必要な特定のツールです。また、高度なカスタマイズがあります。

このトピックでは、 LEMP (Linux Nginx、MySQL/MariaDB、PHP-FPM/PhpMyadmin)を使用し、 USEフラグは、サーバー構成を大幅に調整します。

  1. Gentoo Installation with a Hardened Profile for an Internet-facing server – Gentoo Installation Guide.
  2. Network configured with a static IP address.

ステップ1:NginxWebサーバーをインストールする

1. Nginxのインストールを続行する前に、NICが静的IPアドレスで構成されていることを確認し、Portageソースとシステムが最新であることを確認してください。

$ sudo su -
# emerge --sync
# emerge --update --deep --with-bdeps=y @world

2.更新プロセスが終了したら、 NginxUSEフラグをPortage make.conf ファイルにエコーして、優先設定とモジュールを選択し、Nginxのインストールを続行します。最初に、次のコマンドを実行して、Nginxのデフォルトのインストールモジュールを一覧表示します。

# emerge -pv nginx

モジュールの詳細情報(パッケージのUSEフラグ)については、 equery コマンドを使用してください。

# equery uses nginx

次に、次のコマンドを使用してNginxをインストールします。

# emerge --ask nginx

デフォルトのモジュール以外に追加のモジュール(WebDAV、fancyindex、GeoIPなど)が必要な場合は、Nginxがコンパイルするため、Portage make.conf ファイルの NGINX_MODULES_HTTP <を使用してすべてを1行で追加します。/b>ディレクティブ、次に新しいモジュールでNginxを再コンパイルします。

# echo 'NGINX_MODULES_HTTP="dav auth_pam fancyindex geoip fastcgi uwsgi gzip rewrite"' >> /etc/portage/make.conf
# emerge --ask nginx

3. PortageがNginxの出現を終了したら、httpデーモンを起動し、ブラウザーを http:// localhost に誘導して確認します。

ステップ2:PHPをインストールする

4. NginxサーバーでPHP動的Webプログラミング言語を使用するには、 fpm およびその他の重要なPHPを追加して PHP-FastCGI Process Manager FPM )をインストールします。 Portage USEフラグの拡張機能を使用し、Apache拡張機能を必ず削除してください。

# emerge -pv php
# equery uses php
# echo " dev-lang/php fpm cgi curl gd imap mysql mysqli pdo zip json xcache apc zlib zip truetype -apache2 " >> /etc/portage/package.use
# emerge --ask php

5. PHP-FPMを開始する前に、いくつかの変更をサービス構成ファイルに適用する必要があります。 php-fpm 構成ファイルを開き、次の変更を加えます。

# nano /etc/php/fpm-php5.5/php-fpm.conf

次のディレクティブを見つけてコメントを外し、次のようにします。

error_log = /var/log/php-fpm.log
listen = 127.0.0.1:9000    ## Here you can use any HTTP socket (IP-PORT combination ) you want  ##
pm.start_servers = 20

6. PHP-FPM構成ファイルを編集したら、PHP-FPMログファイルのアクセス許可を変更してサービスを開始します。

# chmod 755 /var/log/php-fpm.log
# /etc/init.d/php-fpm start

PHP-FPMサービスを開始しても、NginxはPHPゲートウェイと通信できないため、Nginx構成ファイルにいくつかの変更を加える必要があります。

ステップ3:Nginx構成を編集する

7. Nginxのデフォルトのテンプレート構成ファイルは、ローカルホスト専用の基本HTTPソケットを提供するだけです。この動作を変更して仮想ホストを有効にするには、/etc/nginx/パスにある nginx.conf ファイルを開き、次の構成を行います。

# nano /etc/nginx/nginx.conf

localhostに対応し、 127.0.0.1 IPアドレスをリッスンする最初の server ブロックを見つけ、そのすべてのステートメントを次のスクリーンショットのように表示します。

まだファイルを閉じずに一番下に移動し、最後に中括弧“}“ を閉じる前に次のステートメントを追加します。

Include /etc/nginx/sites-enabled/*.conf;

8.次に、HTTPおよびHTTPSプロトコルでローカルホスト用の sites-enabled および sites-available (未使用の仮想ホスト用)のNginxディレクトリと構成ファイルを作成します。

# mkdir /etc/nginx/sites-available
# mkdir /etc/nginx/sites-enabled

localhost用に次のファイル構成を作成します。

# nano /etc/nginx/sites-available/localhost.conf

次のファイルコンテンツを追加します。

server {
               listen 80;
               server_name localhost;

               access_log /var/log/nginx/localhost_access_log main;
               error_log /var/log/nginx/localhost_error_log info;

               root /var/www/localhost/htdocs;

                location / {
                index index.html index.htm index.php;
                autoindex on;
                autoindex_exact_size off;
                autoindex_localtime on;

                                }

                         location ~ \.php$ {
                       # Test for non-existent scripts or throw a 404 error
                       # Without this line, nginx will blindly send any request ending in .php to php-fpm
                       try_files $uri =404;
                        include /etc/nginx/fastcgi.conf;
                       fastcgi_pass 127.0.0.1:9000;  ## Make sure the socket corresponds with PHP-FPM conf file
                        }
                }

SSLを使用するローカルホストの場合、次の構成ファイルを作成します。

# nano /etc/nginx/sites-available/localhost-ssl.conf

次のファイルコンテンツを追加します。

server {
               listen 443 ssl;
               server_name localhost;

            ssl on;
               ssl_certificate /etc/ssl/nginx/nginx.pem;
               ssl_certificate_key /etc/ssl/nginx/nginx.key;

               access_log /var/log/nginx/localhost.ssl_access_log main;
               error_log /var/log/nginx/localhost.ssl_error_log info;

               root /var/www/localhost/htdocs;

                                location / {
                index index.html index.htm index.php;
                autoindex on;
                autoindex_exact_size off;
                autoindex_localtime on;
                                 }                                                

                      location ~ \.php$ {
                       # Test for non-existent scripts or throw a 404 error
                       # Without this line, nginx will blindly send any request ending in .php to php-fpm
                       try_files $uri =404;
                       include /etc/nginx/fastcgi.conf;
                       fastcgi_pass 127.0.0.1:9000;
                                }
                }

9.次に、システムの実行可能パス(/ usr/local/sbin:/ usr/local/bin:/ usr/sbin:/ usr/bin:/ sbin:/ binシェル変数)に2つのスクリプトを作成します。 Nginx仮想ホストをアクティブ化または無効化するコマンドとして。

sites-available から sites-enabled n2ensite という名前の最初のBashスクリプトを作成します。 >。

# nano /usr/local/bin/n2eniste

次のファイルコンテンツを追加します。

#!/bin/bash
if test -d /etc/nginx/sites-available && test -d /etc/nginx/sites-enabled  ; then
echo "-----------------------------------------------"
else
mkdir /etc/nginx/sites-available
mkdir /etc/nginx/sites-enabled
fi

avail=/etc/nginx/sites-available/$1.conf
enabled=/etc/nginx/sites-enabled/
site=`ls /etc/nginx/sites-available/`

if [ "$#" != "1" ]; then
                echo "Use script: n2ensite virtual_site"
                echo -e "\nAvailable virtual hosts:\n$site"
                exit 0
else

if test -e $avail; then
sudo ln -s $avail $enabled
else
echo -e "$avail virtual host does not exist! Please create one!\n$site"
exit 0
fi

if test -e $enabled/$1.conf; then
echo "Success!! Now restart nginx server: sudo /etc/init.d/ nginx restart"
else
echo  -e "Virtual host $avail does not exist!\nPlease see available virtual hosts:\n$site"
exit 0
fi
fi

10.次に、 n2dissite という2番目のスクリプトを作成します。このスクリプトは、指定されたアクティブな仮想ホストを sites-enabled Nginxパスから次の内容で削除します。

# nano /usr/local/bin/n2dissite

次のコンテンツを追加します。

#!/bin/bash
avail=/etc/nginx/sites-enabled/$1.conf
enabled=/etc/nginx/sites-enabled
site=`ls /etc/nginx/sites-available/`

if [ "$#" != "1" ]; then
                echo "Use script: n2dissite virtual_site"
                echo -e "\nAvailable virtual hosts: \n$site"
                exit 0
else

if test -e $avail; then
sudo rm  $avail
else
echo -e "$avail virtual host does not exist! Exiting!"
exit 0
fi

if test -e $enabled/$1.conf; then
echo "Error!! Could not remove $avail virtual host!"
else
echo  -e "Success! $avail has been removed!\nPlease restart Nginx: sudo /etc/init.d/nginx restart"
exit 0
fi
fi

11. Bashスクリプトの編集が終了したら、実行権限を追加し、ローカルホスト仮想ホストをアクティブ化します。 .conf 拡張子のない仮想ホスト構成ファイル名を使用し、NginxおよびPHP-FPMサービスを再起動して変更を適用します。

# chmod +x /usr/local/bin/n2dissite
# chmod +x /usr/local/bin/n2ensite
# n2ensite localhost
# n2ensite localhost-ssl
# service nginx restart
# service php-fpm restart

12.構成をテストするには、Webファイルのローカルホストのデフォルトルートパス(/var/www/localhost/htdocs )にPHP情報ファイルを作成し、ブラウザーを https:// localhost/infoにリダイレクトします。 .php または http://localhost/info.php

echo "<?php phpinfo(); ?>" /var/www/localhost/htdocs/info.php

localhost仮想ホスト構成ファイルをテンプレートとして使用し、Nginx n2enmod および n2dismod を使用すると、必要な数のWebサイトを簡単に追加できますが、インターネット用の有効なDNSポインターがあることを確認してください。 -Webサーバーに接続するか、システムホストファイルでローカルにエントリを使用します。

ステップ4:MySQL / MariaDB + PhpMyAdminをインストールします

MySQLデータベースとMySQL用のPhpMyAdminWebインターフェイスをインストールするには、GentooへのLAMPのインストールで説明したのと同じ手順を使用します。

13.代わりに、MySQLのドロップイン置換であるMariaDBを使用する場合は、次のコマンドを使用して USEフラグを取得してインストールします。

# emerge -pv mariadb
# emerge --ask mariadb

MySQLとパッケージの競合が発生した場合は、Portage package.accept.keywords に次の行を追加してください。

# echo “=dev-db/mariadb-5.5.37-r1 ~amd64” >> /etc/portage/package.accept.keywords
# echo “=virtual/mysql-5.5 ~amd64” >> /etc/portage/package.accept.keywords
# emerge --ask mariadb

14. MySQLデータベースがインストールされたら、サービスを開始し、 mysql_secure_installation を使用して保護します(rootパスワードを変更し、localhostの外部でrootログインを無効にし、匿名ユーザー/テストデータベースを削除します)。

# service mysql start
# mysql_secure_installation

15. mysql -u root -p コマンドを使用してMySQLデータベースに入り、その機能をテストし、 exit コマンドを残します。

# mysql -u root -p

MariaDB > show databases;
MariaDB > exit;

16.MySQLコマンドラインが苦手な場合。次のコマンドを実行して、PhpMyAdminWebフロントエンドをインストールします。

# emerge -pv dev-db/phpmyadmin
# echo “dev-db/phpmyadmin setup vhosts” >> /etc/portage/package.use
# emerge  --ask dev-db/phpmyadmin

17. PhpMyAdminのインストールが完了したら、サンプル構成ファイルに基づいて構成ファイルを作成し、ランダムな文字列で blowfish_secret パスフレーズを変更してから、/usr/share/webapps/phpmyadmin /からシンボリックリンクを作成します。 phpmyadmin_version_number/htdocs/から、PhpMyAdminWebインターフェイスにアクセスする仮想ホストドキュメントのルートパス。

# cd /usr/share/webapps/phpmyadmin/4.2.2/htdocs/
# cp config.sample.inc.php  config.inc.php
# nano config.inc.php
# ln -s /usr/share/webapps/phpmyadmin/4.2.2/htdocs/  /var/www/localhost/htdocs/phpmyadmin

18. PhpMyAdmin Webインターフェイスを介してMySQLデータベースにアクセスするには、ブラウザを開き、次のURLアドレス https:// localhost/phpmyadmin を使用します。

19.最後のステップは、システム全体でサービスを有効にし、再起動後に自動的に開始することです。

# rc-update add nginx default
# rc-update add php-fpm default
# rc-update add mysql default

これで、Webホスティング用の最小限の環境設定ができました。HTML、JavaScript、およびPHPの動的に生成されたページのみを使用し、SSL Webサイトが必要ない場合は、上記の構成で十分です。

全著作権所有。 © Linux-Console.net • 2019-2022