ウェブサイト検索

Gentoo LinuxにLAMP(Linux、Apache、MySQL、PHP、PhpMyAdmin)をインストールする


Gentooからソースをコンパイルすることによって達成される最大のパフォーマンスは、今日のハードウェアの処理能力を基準とするならば、最小限の影響しかありません。では、GentooをWebサーバープラットフォームとして使用する目的は何でしょうか?それは、Gentooが持つ最も重要な特性は、特定のタスクにおいてPortageが提供できる極端な柔軟性と、最終ユーザーがシステム全体に対して得られる完全な制御にあります。なぜなら、Gentooはソースからコンパイルされ、ビルドされるため、ほとんどのLinuxディストリビューションのように事前にパッケージ化されたバイナリを使用しないからです。

このガイドでは、最小限のGentooインストール環境を使用して、有名なLAMPスタック(Linux、Apache、MySQL、およびPHP/PhpMyAdmin)の手順をステップバイステップで提供します。

要件

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

ステップ1:静的IPアドレスを設定する

インストールを進める前に、システムは静的IPアドレスで設定されている必要があります。これはサーバーの場合、必須です。しかし、ネットワークの静的設定を構成する前に、ifconfigコマンドを使用してネットワークインターフェースカードの名前を表示してください。

# ifconfig -a

ご覧の通り、NICの名前は ethX、ensXX などの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アドレスのためにnameserver文字列を追加してください。

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

5. ネットワーク設定が完了した後、LAMP スタックのインストールを進めてください。しかし、Gentoo プロファイルを確認し、Portage ツリーとシステムを更新する前に実行しないでください。

インターネットに接続されたサーバーには、セキュリティパッチが必要であり、おそらくシステム全体のパッケージ設定(マスク、USEフラグなど)を変更するハードンプロファイルを使用したいでしょう。以下のコマンドを使用して、プロファイルを一覧表示および変更します。

$ sudo eselect profile list
sudo eselect profile set 11

6. あなたに最も適したプロファイルが設定されたら、システムとポルタージュツリーを更新してください。

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

7. さて、LAMPのインストールを進める時間です。emerge –pv コマンドスイッチを使用して、USEフラグのためのApache Webサーバーのドキュメントを確認し、インストールを試みる前に必要なUSEフラグでPortagemake.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の特定のフラグを使用します。

# 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"

もう一つの方法は、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ファイルを編集してApacheにPHPモジュールを使用するよう指示します。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. これまでのサーバー設定をテストするために、ローカルホストのルートディレクトリ(/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を使用してセキュリティを確保します。具体的には、ルートパスワードを変更し、localhost以外のルートログインを無効にし、匿名ユーザーとテストデータベースを削除します。

# 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データベースを備えたダイナミックなウェブ環境が整いました。

関連記事: