ウェブサイト検索

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


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

このトピックでは、LEMP (Linux Nginx、MySQL/MariaDB、PHP-FPM/PhpMyadmin) を使用し、 のヘルプを使用して完全な Web 環境プラットフォームを構築するためのインストール プロセスを段階的に説明します。 > Portage Package Management によって提供される USE フラグ は、コンパイル プロセスで一連のパッケージ機能 (Web プラットフォームに必要なモジュールや設定) を提供し、サーバー構成を大幅に調整します。

要件

  1. インターネットに接続されたサーバー用の強化されたプロファイルを使用した Gentoo のインストール – Gentoo インストール ガイド。
  2. 静的 IP アドレスで構成されたネットワーク。

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

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

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

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

emerge -pv nginx

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

equery uses nginx

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

emerge --ask nginx

Nginx がコンパイルするデフォルトのモジュール以外に追加のモジュール (WebDAV、fancyindex、GeoIP など) が必要な場合は、それらをすべて Portage の make.conf ファイルに NGINX_MODULES_HTTP< を使用して 1 行に追加します。 ディレクティブを追加し、新しいモジュールで 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-FastCGI Process Manager (FPM) をインストールします。 および Portage のその他の重要な PHP 拡張機能の 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. 次に、サイトが有効 および サイトが利用可能 (未使用の仮想ホスト用) Nginx ディレクトリと、HTTP および HTTPS プロトコル上のローカルホスト用の構成ファイルを作成します。 。

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. 次に、システム実行可能パス (` PATH シェル変数) 上に 2 つのスクリプトを作成します。これは、Nginx 仮想ホストをアクティブ化または無効化するコマンドとして機能します。

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 番目のスクリプトを作成します。このスクリプトは、次の内容で指定されたアクティブな仮想ホストをサイト対応 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 スクリプトの編集が終了したら、実行権限を追加し、localhost 仮想ホストをアクティブ化します。.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 用の PhpMyAdmin Web インターフェイスをインストールするには、「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 パスワードを変更し、ローカルホスト外での 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 コマンドラインが苦手な場合。次のコマンドを実行して、PhpMyAdmin Web フロントエンドをインストールします。

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/ を、PhpMyAdmin Web インターフェイスにアクセスする仮想ホスト ドキュメントのルート パスに指定します。

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 サイトが必要ない場合は、上記の構成で満足できるはずです。