ウェブサイト検索

FreeBSD に Apache、MariaDB、PHP (FAMP) スタックをインストールする方法


このガイドでは、FreeBSD オペレーティング システムに FBAMP をインストールして構成する方法について説明します。これは、Linux のLAMP スタックに似ています。 FBAMP は、FreeBSD OS、Apache HTTP サーバー、インターネットで最も人気のあるオープンソース Web サーバー、MariaDB< をベースにしたソフトウェアのコレクションを表す頭字語です。 リレーショナル データベース管理システム (RDBMS)、MySQL データベース エンジン、および PHP サーバー側のフォークです。

要件

  1. FreeBSD の新規インストール
  2. FreeBSD の初期構成
  3. FreeBSD へのリモート接続の場合は、直接コンソール アクセスまたは SSH を使用します。
  4. ネットワーク インターフェイス上で構成された静的 IP アドレス。

ステップ 1: FreeBSD に Apache をインストールする

1. 最初にインストールするサービスは Apache HTTP サーバーです。デフォルトでは、FreeBSD は、Apache Web サーバー用に異なるランタイム作業モジュールを備えた複数のバージョンを提供します。

これらのバージョンはバイナリ パッケージにプリコンパイルされ、FreeBSD PORTS リポジトリによって提供されます。 ポートによって提供されるすべての Apache パッケージ バイナリを表示するには、次のコマンドを実行します。

ls /usr/ports/www/ | grep apache

以下のコマンドを実行して、FreeBSD 上で利用可能なコンパイル済みの Apache パッケージを検索することもできます。

pkg search apache2

2. 次に、次のコマンドを実行して、必要なすべてのモジュールを含む最新バージョンの Apache HTTP サーバーをインストールします。

pkg install apache24

3. Apache Web サーバーがシステムにインストールされたら、次のコマンドを発行して、FreeBSD でシステム全体でデーモンを有効にします。

sysrc apache24_enable="yes"

Apache デーモンを有効にする別の方法は、以下のスクリーンショットに示すように、/etc/rc.conf ファイルの apache24_enable="yes" 行を手動で編集して追加することです。

4. 最後に、Web サーバーが適切に動作しているかどうかをテストするために、以下のコマンドを発行して Apache デーモンを起動し、ブラウザーでサーバーの FQDN () の IP アドレスを指定してデフォルトの Web ページにアクセスします。 http://IP-orFQDN) を以下のスクリーンショットに示します。

service apache24 start

FreeBSD 11.x の Apache Web サーバーのデフォルトの Webroot ディレクトリは、/usr/local/www/apache24/data/ システム パスにあります。そこには、必要に応じて編集できる小さな index.html ファイルがあります。

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

5. FreeBSD 11.x は、コンパイル済みのバイナリにパッケージ化された複数のバージョンの PHP 解釈されたサーバー側言語を提供します。 FreeBSD Ports リポジトリによって提供されるすべての利用可能な PHP バージョン パッケージのリストを取得するには、次のコマンドを発行します。

ls /usr/ports/lang/ | grep php

利用可能なすべての FreeBSD PHP パッケージ バージョンを検索する別の方法は、以下のコマンドを実行することです。

pkg search -o php

6. 特定の PHP バージョン (現在は 5 または 7 バージョン) 用に FreeBSD が提供する利用可能なバイナリをすべて検索するには、以下のコマンドを実行します。出力を絞り込んで移動するには、less コマンドを使用します。

pkg search php5 |less
pkg search php7

7. カスタム PHP バージョンが提供するモジュールをより具体的にするには、以下で説明するように次のコマンドを実行します。これにより、PHP 7.1 バージョンで使用可能なすべてのモジュールが表示されます。

pkg search php71

8. このガイドでは、FBAMP スタック用の PHP 7.1 リリースをインストールします。次のコマンドを発行して、一般的な CMS インストールに必要な最も重要なモジュールのいくつかを含む PHP をインストールします。

pkg install php71 mod_php71 php71-mbstring php71-mcrypt php71-zlib php71-curl php71-gd php71-json 

9. 次に、Apache Web サーバーの php.conf 構成ファイルを /usr/local/etc/apache24/includes/ に作成する必要があります。 > システム パスに次の内容が含まれます。

nano /usr/local/etc/apache24/Includes/php.conf

次の行をphp.conf ファイルに追加します。

<IfModule dir_module>
    DirectoryIndex index.php index.html
    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
</IfModule>

10. PHP ゲートウェイが Apache Web サーバーで期待どおりに動作するかどうかをテストするには、/usr/local/www/ に PHP info.php ファイルを作成します。 apache24/data/system パス。これは、Apache Web サーバーのデフォルトの Web ドキュメント ルート パスです。

echo '<?php phpinfo();  ?>' | tee -a /usr/local/www/apache24/data/info.php

Apache デーモンを再起動して変更を適用します。

service apache24 restart

次に、ブラウザで次の URI にアクセスして、PHP の概要を表示します。

http://IP-or-FQDN/info.php 

11. 運用環境用に PHP ini 設定ファイルをアクティブ化するには、以下のコマンドを発行します。 php.ini プロダクション ファイルを変更して、FBAMP スタックのさまざまな PHP 設定を変更できます。

cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini-production.bakup
ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini

ステップ 3: FreeBSD に MariaDB をインストールする

12. FBAMP スタックに欠けている最後のコンポーネントは、MySQL データベース サーバーです。 FreeBSD 11.x は、さまざまなデータベース用に 1000 を超えるパッケージを提供します。

MariaDB または MySQL データベースで使用できるコンポーネントを表示するには、次のコマンドを実行します。このガイドでは、MySQL (現在 Oracle が積極的に所有および開発しています) 上に MariaDB データベースをインストールします。

ls -al /usr/ports/databases/ | grep mariadb
pkg search -o mariadb
ls -al /usr/ports/databases/ | grep mysql
pkg search -o mysql5

13. このガイドでは、最新バージョンの MariaDB データベース サーバーを FreeBSD にインストールします。現在、このバージョンは mariadb102 バイナリ パッケージ リリースで表されています。

次のコマンドを実行して、MariaDB サーバーとクライアント、および Apache サーバー ゲートウェイ経由でデータベースにアクセスするために必要なPHP 7.1 モジュールをインストールします。

pkg install mariadb102-server mariadb102-client php71-mysqli

14. 次に、システム全体で MariaDB サーバーを有効にし、次のコマンドを実行してデータベース デーモンを起動します。

sysrc mysql_enable="yes" 
service mysql-server start

15. データベースを保護するには、mysql_secure_installation スクリプトを実行します。以下のスクリプト出力の抜粋を使用して、MariaDB を強化します。

/usr/local/bin/mysql_secure_installation
サンプル出力

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
 
Enter current password for root (enter for none):
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
 ... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
 ... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
 ... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

16. デフォルトでは、MariaDB デーモンはポート 3306/TCP でローカルホストの外部のネットワーク接続をリッスンします。 netstat、lsof またはsockstat コマンドを実行して、MariaDB ソケットの状態を取得します。この構成は危険であり、サービスが外部ネットワーク攻撃にさらされる可能性があります。

lsof -i4 -i6
sockstat -4 -6

17. MariaDB へのリモート アクセスが必要ない場合は、以下のコマンドを発行して、MariaDB デーモンが localhost のみをリッスンするようにします。その後、MariaDB サービスを再起動して変更を適用します。

sysrc mysql_args="--bind-address=127.0.0.1"
service mysql-server restart
or
/usr/local/etc/rc.d/mysql-server restart

18. 再度、netstat、lsof、またはsockstat コマンドを実行して、MariaDB ネットワーク ソケットを一覧表示します。以下の図に示すように、ソケットはローカルホストにバインドしてリッスンするようになります。

lsof -i4 | grep mysql
netstat -an | grep 3306
sockstat -4 | grep 3306

19. コンソールから MariaDB データベース接続をテストするには、次のコマンドを発行します。プロンプトに MySQL root パスワードを入力すると、以下の図に示すように、デフォルトのデータベースのリストがコンソール画面に表示されます。

mysql -u root -p -e "show databases"

それだけです! FreeBSD に MariaDB データベースと PHP インタープリターを備えた Apache Web サーバーが正常にインストールされました。 WordPress Web サイトの展開をすぐに開始できるようになりました。

次のチュートリアルでは、Apache 仮想ホストを有効にして作成する方法、.htaccess ファイルが適切に機能するために必要な書き換えモジュールを有効にする方法、および自己署名証明書、または Let's Encrypt エンティティによって提供される無料の証明書。