ウェブサイト検索

Gentoo Linux への LAMP (Linux、Apache、MySQL、PHP、および PhpMyAdmin) のインストール


現在のハードウェアの処理能力を基準に考えると、Gentoo を使用してソースからソフトウェアをコンパイルすることで達成される最大のパフォーマンスは最小限の影響しかありません。では、Web サーバー プラットフォームとして Gentoo を使用する目的は何でしょうか? Gentoo が持つ最も重要な特性は、Portage が特定のタスクを実行できる非常に高い柔軟性と、Gentoo がコンパイルされ、ソースからビルドし、大多数の Linux ディストリビューションのように事前にパッケージ化されたバイナリを使用しません。

このガイドでは、有名な LAMP スタック (LinuxApacheMySQL、およびPHP/PhpMyAdmin)、最小限の Gentoo インストール環境を使用します。

要件

  1. このチュートリアルのようにインストールされた最小限の Gentoo Linux 環境 (Gentoo Linux のインストール)

ステップ 1: 静的 IP アドレスを構成する

1. LAMP スタックのインストールに進む前に、システムに静的 IP アドレスを設定する必要があります。サーバーの場合、これは「必須」です。ただし、ネットワークの静的設定を開始する前に、ifconfig コマンドを使用してネットワーク インターフェイス カードの名前を表示します。

ifconfig -a

ご覧のとおり、NIC の名前は、ethXensXX などの Linux で使用される他の一般的な名前とは異なる場合があるため、詳細な設定のためにこの名前を書き留めておいてください。

2. 以前にネットワークに DHCP サーバーを使用していた場合は、次のコマンドを使用してシステム上の DHCP クライアント を必ず破棄して無効にしてください。 (IP とデバイスを設定に置き換えてください)。

rc-update del dhcpcd default
/etc/init.d/dhcpcd stop
ifconfig eno16777736 down
ifconfig eno16777736 del 192.168.1.13 netmask 255.255.255.0
emerge –unmerge dhcpcd

3. 次に、NIC の接続されたインターフェイスの名前を使用してネットワーク ループバック デバイスからシンボリック リンクを作成し、このデバイスの静的構成ファイルを /etc/conf.d/ に作成します。パス。

ln -s /etc/init.d/net.lo  /etc/init.d/net.eno16777736
sudo nano /etc/conf.d/net.eno16777736

このデバイスファイルを次の構成で編集します。

config_eno16777736="192.168.1.25 netmask 255.255.255.0 brd 192.168.1.255"
routes_eno16777736="default via 192.168.1.1"
dns_servers_eno16777736="192.168.1.1 8.8.8.8"

4. NIC の静的構成の編集が完了したら、ネットワーク インターフェイスを起動し、ifconfig および ping コマンドを使用してネットワーク設定と接続を確認し、すべてが正常に構成されているかどうかを確認します。起動プロセスに追加します。

/etc/init.d/net.eno16777736 start
ifconfig
ping -c2 domain.tld
rc-update add net.eno16777736 default

DNS ネーム サーバーをシステム全体で構成する場合は、/etc/resolv.conf ファイルを編集し、すべての DNS IP アドレスにネームサーバー文字列を追加します。

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

5. ネットワーク設定が完了したら、LAMP スタックのインストールに進みます。ただし、その前に Gentoo プロファイルを検証し、Portage ツリーとシステムを更新してください。

セキュリティ パッチが適用されたインターネットに接続されたサーバーの場合は、システム全体のパッケージ設定 (マスク、USE フラグなど) を変更する強化された プロファイルを使用することをお勧めします。次のコマンドを使用して、プロファイルを一覧表示し、変更します。

sudo eselect profile list
sudo eselect profile set 11

6. 自分に最適なプロファイルを設定したら、システムと Portage ツリーを更新します。

sudo emerge --sync
sudo emerge --update @world

7. 次に、LAMP のインストールを進めます。 emerge –pv コマンド スイッチを使用して Apache Web サーバーのドキュメントで USE フラグ を確認し、必要な USE フラグを含む Portage の make.conf ファイルを編集してから実行してください。それをインストールしてください。

emerge -pv apache
nano /etc/portage/make.conf

8. コンパイル プロセスの USE フラグ を選択し (サーバーが特定のモジュールを必要としない場合は、そのままにしておくことができます)、次のコマンドを使用して Apache をインストールします。

emerge --ask www-servers/apache

9. Apache サービスを開始する前に、次のコマンドを実行して ServerName エラーを回避し、httpd デーモンを開始します。

echo “ServerName localhost” >> /etc/apache2/httpd.conf

service apache2  start

OR

/etc/init.d/apache2 start

10. 次のステップでは、PHP 動的スクリプト言語をインストールします。 PHP モジュールが豊富であるため、このチュートリアルではUSE フラグとして使用される多数のモジュール リストが表示されますが、サーバー設定で必要なものだけを使用する必要があります。

まず、以下のコマンドを使用して、PHP のUSE 固有のフラグを取得します。

emerge -pv php

11. 次に、/etc/portage/make.conf ファイルを編集し、PHP5.5 に対して次の USE フラグを使用します。 > (USE フラグは 1 行で指定する必要があります)。

USE="apache2 php pam berkdb bzip2 cli crypt ctype exif fileinfo filter gdbm hash iconv ipv6 json -ldap nls opcache phar posix readline session simplexml spell ssl tokenizer truetype unicode xml zlib -bcmath calendar -cdb cgi -cjk curl -debug -embed -enchant -firebird -flatfile -fpm (-frontbase) ftp gd -gmp imap -inifile -intl -iodbc -kerberos -ldap-sasl -libedit libmysqlclient -mhash -mssql mysql mysqli -oci8-instant-client -odbc -pcntl pdo -postgres -qdbm -recode (-selinux) -sharedmem -snmp -soap -sockets -sqlite (-sybase-ct) -systemd -sysvipc -threads -tidy -wddx -xmlreader -xmlrpc -xmlwriter -xpm -xslt zip jpeg png pcre session unicode"

PHP_TARGETS="php5-5"

使用できるもう 1 つの方法は、USE フラグをエコーして、目的の PHP モジュールとオプションを /etc/portage/package.use ファイルに含めることです。

echo “dev-lang/php apache2 cgi ctype curl curlwrappers -doc exif fastbuild filter ftp hash inifile json mysql mysqli pdo pic posix sockets spell truetype xml zip” >> /etc/portage/package.use

12. 提示された 2 つの方法のいずれかを使用して必要な USE フラグ を選択した後、次のコマンドを使用して PHP をインストールします。

emerge --ask dev-lang/php

13. PHP の新規作成プロセスは、システム リソースによっては時間がかかる場合があります。終了後、/etc/conf.d/apache2 ファイルを編集して PHP モジュールを使用するように Apache に指示し、 APACHE2_OPTS ディレクティブに PHP5 を追加します。

nano /etc/conf.d/apache2

APACHE2_OPTS 行を次のようにします。

APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D LANGUAGE -D PHP5"

インストールされているモジュールのリストを取得するには、次のコマンドを使用します。

ls -al /etc/apache2/modules.d/

14. これまでのサーバー構成をテストするには、localhost のルート ディレクトリ (/var/www/localhost/htdocs/) に phpinfo ファイルを作成し、 Apache サービスを再起動し、ブラウザで http://localhost/info.php または http://system_IP/info.php にアクセスします。


echo "<!--?php phpinfo(); ?-->"  /var/www/localhost/htdocs/info.php
service apache2  restart

OR

/etc/init.d/apache2  restart

上の画像と同じ結果が得られた場合、サーバーは正しく構成されています。したがって、MySQL データベースと PhpMyAdmin のインストールを進めることができます。

15. MySQL データベースをインストールする前に、パッケージの USE フラグ を確認し、必要に応じて Portage の make.conf を編集します。次のコマンドを使用して、MySQL サーバー データベースを確認し、インストールします。

emerge -pv mysql
emerge --ask dev-db/mysql

16. MySQL サーバーを起動する前に、次のコマンドを使用して MySQL データベースがシステムにインストールされていることを確認してください。

/usr/bin/mysql_install_db

17. ここで MySQL データベースを起動し、mysql_secure_installation を使用して root パスワードを変更し、ローカルホスト外での root ログインを無効にし、匿名ユーザーとテスト データベースを削除してデータベースを保護します。

service mysql start
mysql_secure_installation

18. データベースの機能をテストするには、以下のコマンドを実行して MySQL にログインし、quit ステートメントでデータベースを終了します。

mysql -u roo -p
mysql> select user,host from mysql.user;
mysql> quit;

19. MySQL サーバーを管理するためにグラフィカル インターフェイスが必要な場合は、次のコマンドを実行して PhpMyAdmin パッケージをインストールします。

emerge -pv phpmyadmin
emerge  dev-db/phpmyadmin

20. パッケージがコンパイルされてインストールされたら、テンプレート ファイルをコピーして PhpMyAdmin の構成ファイルを作成し、blowfish_secret パスフレーズを任意の文字列で置き換えます。

cp /var/www/localhost/htdocs/phpmyadmin/config.sample.inc.php  /var/www/localhost/htdocs/phpmyadmin/config.inc.php
nano /var/www/localhost/htdocs/phpmyadmin/config.inc.php

21. ブラウザを開いて次の URL を使用して、PhpMyAdmin ログイン プロセスをテストします。

http://localhost/phpmyadmin

22. すべてが整っている場合は、次のコマンドを使用してシステム全体でサービスを利用できるようにすることで、再起動後にサービスを自動的に開始することができます。

rc-update -v add apache2 default
rc-update -v add mysql default

それだけです!これで、Gentoo が提供する柔軟性が高くカスタマイズ可能なサーバー プラットフォーム上に、Apache、PHP スクリプト言語、リレーショナル MySQL データベースを備えた動的な Web 環境が完成しました。