サーバー設定 · 2 min read · Dec 07, 2025

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

FAMPスタックは、Linux上のLAMPスタックに似たもので、動的なウェブサイトやウェブアプリケーションをホストするためにFreeBSDサーバーに通常一緒にインストールされるオープンソースソフトウェアのコレクションです。FAMPは、FreeBSD(オペレーティングシステム)、Apache(HTTPサーバー)、MySQL/MariaDB(データベースサーバー)、およびPHP(動的PHPコンテンツを処理するためのプログラミング言語)を表す頭字語です。

このチュートリアルでは、pkgを使用してFreeBSD 12.1サーバーにFAMPスタックのコンポーネントを設定します。

要件

このガイドを始める前に、以下が必要です:

  • FreeBSD 12.1。
  • 設定変更を行うためのroot権限またはsudoユーザーを持つユーザー。
  • FreeBSDシステムとコマンドラインインターフェースに関する基本的な知識が推奨されます。

始める前に

FreeBSDのバージョンを確認します:

freebsd-version  
# 12.1-RELEASE

FreeBSDシステムが最新であることを確認します:

freebsd-update fetch install  
pkg update && pkg upgrade -y

必要なパッケージをインストールします:

pkg install -y sudo vim bash curl

好みのユーザー名で新しいユーザーアカウントを作成します。ここではjohndoeを使用します:

adduser  
  
# ユーザー名: johndoe  
# フルネーム: John Doe  
# Uid(デフォルトの場合は空白のまま):   
# ログイングループ [johndoe]:   
# ログイングループはjohndoeです。他のグループにjohndoeを招待しますか? []: wheel  
# ログインクラス [default]:   
# シェル(sh csh tcsh nologin) [sh]: bash  
# ホームディレクトリ [/home/johndoe]:   
# ホームディレクトリの権限(デフォルトの場合は空白のまま):   
# パスワードベースの認証を使用しますか? [yes]:   
# 空のパスワードを使用しますか? (yes/no) [no]:   
# ランダムなパスワードを使用しますか? (yes/no) [no]:   
# パスワードを入力してください: your_secure_password  
# パスワードを再入力してください: your_secure_password  
# 作成後にアカウントをロックしますか? [no]:   
# OKですか? (yes/no): yes  
# 他のユーザーを追加しますか? (yes/no): no  
# さようなら!

visudoコマンドを実行し、%wheel ALL=(ALL) ALL行のコメントを解除して、wheelグループのメンバーが任意のコマンドを実行できるようにします:

visudo  
  
# ハッシュ(#)記号を削除してコメントを解除します  
# %wheel ALL=(ALL) ALL

次に、suを使用して新しく作成したユーザーに切り替えます:

su - johndoe

注意: johndoeをあなたのユーザー名に置き換えてください。

タイムゾーンを設定します:

sudo tzsetup

ステップ1 — Apache 2.4のインストール

Apacheウェブサーバーは、現在世界で最も人気のあるウェブサーバーの1つです。ウェブサイトをホストするのに最適な選択です。

FreeBSDのパッケージマネージャーpkgを使用してApacheをインストールできます。パッケージマネージャーを使用すると、FreeBSDによって管理されているリポジトリからほとんどのソフトウェアを簡単にインストールできます。

Apacheをインストールするには、次のコマンドを実行します:

sudo pkg install -y apache24

バージョンを確認します:

httpd -v  
# サーバーバージョン: Apache/2.4.41 (FreeBSD)

次に、Apacheを有効にして起動します:

sudo sysrc apache24_enable=yes  
sudo service apache24 start

Apacheが起動したかどうかを確認するには、次のコマンドを実行できます:

sudo service apache24 status

その結果、次のような出力が表示されます:

# 出力  
apache24はpid 17775として実行中です。

Apacheがインストールされ、エラーなしで動作していることを確認するには、ウェブブラウザでサーバーのパブリックIPアドレスにアクセスします。http://your_server_IPに移動します。デフォルトの「It works!」Apacheページが表示されます。

ステップ2 — MySQL 8.0のインストール

ウェブサーバーが稼働しているので、リレーショナルデータベース管理システムであるMySQLをインストールする時が来ました。MySQLサーバーは、サーバーが情報を保存できるデータベースを整理し、アクセスを提供します。

再度、pkgを利用してソフトウェアを取得し、インストールできます。

pkgを使用してMySQL 8.0をインストールするには、次のコマンドを使用します:

sudo pkg install -y mysql80-client mysql80-server

このコマンドは、現在の最新バージョンであるMySQLクライアントとサーバーの最新バージョンをインストールします。

バージョンを確認します:

mysql --version  
# mysql  Ver 8.0.17 for FreeBSD12.0 on amd64 (Source distribution)

次に、MySQLを有効にして起動します:

sudo sysrc mysql_enable=yes  
sudo service mysql-server start

MySQLが起動したかどうかを確認するには、次のコマンドを実行できます:

sudo service mysql-server status

次のような出力が表示されます:

# 出力  
mysqlはpid 19171として実行中です。

良い習慣として、いくつかの不安全なデフォルトを削除し、データベースシステムへのアクセスを若干制限するmysql_secure_installationセキュリティスクリプトを実行することができます:

sudo mysql_secure_installation

パスワードを設定するように求められ、その後いくつかの質問が続きます。強力なパスワードを入力し、残りの質問には:key_enter:を押してデフォルトを選択します。

ステップ3 — PHP 7.4のインストール

PHPは、ウェブ開発のために設計されたサーバーサイドスクリプト言語です。PHPはFAMPスタックの不可欠なコンポーネントです。また、PythonやPerlがPHPの代わりに一般的に使用されます。しかし、最も人気のあるオプションであるPHPが最も頻繁に使用されます。データベースと組み合わせることで、ウェブサイトやアプリに動的な動作を提供します。

再度、pkgシステムを利用してPHPコンポーネントをインストールします。

pkgを使用してPHP 7.4をインストールするには、次のコマンドを実行します:

sudo pkg install -y php74 php74-mysqli mod_php74

これにより、php74mod_php74、およびphp74-mysqliパッケージがインストールされます。

PHPのバージョンを確認します:

php --version  
  
# PHP 7.4.1 (cli) (built: Jan  2 2020 01:32:38) ( NTS )  
# Copyright (c) The PHP Group  
# Zend Engine v3.4.0, Copyright (c) Zend Technologies

サンプルPHP設定ファイルを次のコマンドでコピーします:

sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

次に、PHP-FPMを有効にして起動します:

sudo sysrc php_fpm_enable=yes  
sudo service php-fpm start

PHP-FPMが起動したかどうかを確認するには、次のコマンドを実行できます:

sudo service php-fpm status

その結果、次のような出力が表示されます:

# 出力  
php_fpmはpid 23005として実行中です。

PHPモジュールのインストール(オプション)

PHPの機能を強化するために、追加のモジュールをオプションでインストールできます。

現在コンパイルされているPHPモジュールを確認するには、次のコマンドを実行できます:

php -m  
# [PHP Modules]  
# Core  
# date  
# libxml  
# mysqlnd  
# pcre  
# Reflection  
# SPL  
# standard  
# [Zend Modules]

利用可能なPHPモジュールを検索するには、次のコマンドを使用できます:

pkg search ^php74-*

結果は、インストールできるほとんどのPHP 7.4モジュールになります:

# 出力
# php74-7.4.0                    PHPスクリプト言語
# php74-Ice37-3.7.2_1            CORBA/COM/DCOM/COM+などのオブジェクトミドルウェアの現代的な代替
# php74-aphpbreakdown-2.2.2      互換性チェック用のPHP用コードアナライザー
# php74-aphpunit-1.9             単体テスト用のテストフレームワーク
# php74-bcmath-7.4.0             php用のbcmath共有拡張
# php74-brotli-0.7.0             PHP用のBrotli拡張
# php74-bsdconv-11.5.0           bsdconv用のPHPラッパー
# php74-bz2-7.4.0                php用のbz2共有拡張
# php74-calendar-7.4.0           php用のカレンダー共有拡張
# php74-composer-1.8.6           PHP用の依存関係マネージャー
# php74-ctype-7.4.0              php用のctype共有拡張
# php74-curl-7.4.0               php用のcurl共有拡張
# . . .

調査の結果、パッケージをインストールする必要があると判断した場合は、pkg installコマンドを使用してインストールできます。ほとんどのPHPウェブアプリケーションは追加のモジュールを必要とするため、それらを検索する方法を知っておくことは良いことです。

ステップ4 — ApacheをPHPモジュールで使用するように設定

PHPを使用する前に、Apacheと連携するように設定する必要があります。

sudo vim /usr/local/etc/apache24/modules.d/001_mod-php.confを実行し、以下の内容でファイルを埋めます:


  DirectoryIndex index.php index.html
  
    SetHandler application/x-httpd-php
  
  
    SetHandler application/x-httpd-php-source
  

ファイルを保存してvimを終了します。

Apacheの設定を確認します:

sudo apachectl configtest

Apacheで設定変更を行ったため、それらを適用するにはサービスを再読み込みする必要があります。そうしないと、Apacheは以前の設定で動作し続けます:

sudo apachectl restart

ステップ5 — PHP処理のテスト

システムがPHP用に正しく設定されているかをテストするために、非常に基本的なPHPスクリプトを作成できます。このスクリプトをinfo.phpと呼びます。デフォルトでは、DocumentRoot/usr/local/www/apache24/dataに設定されています。その場所にinfo.phpファイルを作成するには、次のように入力します:

sudo vim /usr/local/www/apache24/data/info.php

そして、そのファイルにこのコードを追加します:

http://your_server_IP/info.phpに移動すると、次のページが表示されます:

FreeBSD 12のPHP情報

FAMPスタックのインストールと設定が完了したら、サーバーに関する情報を公開しないようにinfo.phpファイルを削除する必要があります:

sudo rm /usr/local/www/apache24/data/info.php

結論

おめでとうございます。FreeBSD 12.1サーバーにFAMPスタックを正常にインストールしました。これで、次に何をするかの選択肢がいくつかあります。これにより、ほとんどの種類のウェブサイトやウェブソフトウェアをその上にインストールできるプラットフォームが整いました。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。