FreeBSD 12.0にNginx、MySQL、PHP(FEMP)スタックをインストールする方法

LinuxのLEMPスタックに相当するFEMPスタックは、通常一緒にインストールされるオープンソースソフトウェアのコレクションであり、FreeBSDサーバーが動的なWebサイトおよびWebアプリケーションをホストできるようにします。FEMPは、FreeBSD、Nginx、MySQL、およびPHPを表す頭字語です。

このガイドではpkg、FreeBSDパッケージマネージャーであるを使用して、FEMPスタックの要素をFreeBSD 12.0 Vultrインスタンスにデプロイします。

必要条件

このガイドを始める前に、次のものが必要です。

  • FreeBSD 12.0 VPS。
  • root特権を持つユーザー、またはsudo構成変更を行うユーザー。
  • FreeBSDシステムとコマンドラインインターフェースの基本的な知識があることが推奨されます。

あなたが始める前に

FreeBSDのバージョンを確認してください。

uname -ro
# FreeBSD 12.0-RELEASE-p6

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

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

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

pkg install -y sudo vim bash curl

希望するユーザー名で新しいユーザーアカウントを作成します。使用していますjohndoe

adduser

# Username: johndoe
# Full name: John Doe
# Uid (Leave empty for default): <Enter>
# Login group [johndoe]: <Enter>
# Login group is johndoe. Invite johndoe into other groups? []: wheel
# Login class [default]: <Enter>
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/johndoe]: <Enter>
# Home directory permissions (Leave empty for default): <Enter>
# Use password-based authentication? [yes]: <Enter>
# Use an empty password? (yes/no) [no]: <Enter>
# Use a random password? (yes/no) [no]: <Enter>
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]: <Enter>
# OK? (yes/no): yes
# Add another user? (yes/no): no
# Goodbye!

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

visudo

# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL

次に、新しく作成したユーザーに切り替えますsu

su - johndoe

注: ユーザー名に置き換えjohndoeてください。

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

sudo tzsetup

メインラインNginxのインストール

Nginxは、FreeBSDのパッケージマネージャーを使用してインストールできますpkg。パッケージマネージャを使用すると、ほとんどのソフトウェアをFreeBSDが管理するリポジトリから簡単にインストールできます。使用方法のpkg詳細については、こちらをご覧ください

最新のメインラインNginxをインストールするには、次のコマンドを発行します。

sudo pkg install -y nginx-devel

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

nginx -v
# nginx version: nginx/1.17.1

このコマンドは、最新のメインラインバージョンをインストールします。これは、運用サーバーで確実に使用できます。最新の安定版リリースをインストールする場合は、のnginx代わりにパッケージを使用してくださいnginx-devel

Nginxを有効にして起動します。

sudo sysrc nginx_enable=yes
sudo service nginx start

Nginxが起動したことを確認するには、次のコマンドを実行します。

sudo service nginx status

その結果、次のようなものが表示されます。

# Output
nginx is running as pid 17607.

WebブラウザでサーバーのパブリックIPアドレスにアクセスすることにより、Nginxがインストールされ、エラーなしで動作していることを確認できます。に移動しyour_server_IPます。デフォルトの「ようこそnginxへ!」が表示されます。ページ。

MySQLのインストール

この場合もpkg、ソフトウェアを入手してインストールするために利用できます。

を使用してMySQLをインストールしますpkg

sudo pkg install -y mysql80-client mysql80-server

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

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

MySQLを有効にして起動します。

sudo sysrc mysql_enable=yes
sudo service mysql-server start

MySQLが起動したことを確認するには、次のコマンドを実行します。

sudo service mysql-server status

次のようなものが表示されます。

# Output
mysql is running as pid 19066.

mysql_secure_installation安全策として、安全でないデフォルトをいくつか削除し、データベースシステムへのアクセスをわずかに制限するセキュリティスクリプトを実行することをお勧めします。

sudo mysql_secure_installation

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

PHP 7.3のインストール

でPHPをインストールするに7.3pkg、次のコマンドを実行します。

sudo pkg install -y php73

バージョンを確認してください。

php --version
# PHP 7.3.7 (cli) (built: Jul 18 2019 01:14:37) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.7, Copyright (c) 1998-2018 Zend Technologies

ソフトリンクphp.ini-productionphp.ini

sudo ln -s /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

結果として、次のようなものが表示されます。

# Output
php_fpm is running as pid 23005.

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

PHPの機能を拡張するために、オプションでいくつかの追加モジュールをインストールできます。

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

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

# [Zend Modules]

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

pkg search ^php73-*

結果は、主にインストールできるPHP 7.3モジュールになります。

# Output
# php73-7.3.7                    PHP Scripting Language
# php73-Ice37-3.7.2              Modern alternative to object middleware such as CORBA/COM/DCOM/COM+
# php73-aphpbreakdown-2.2.2      Code-Analyzer for PHP for Compatibility Check-UP
# php73-aphpunit-1.8             Testing framework for unit tests
# php73-bcmath-7.3.7             The bcmath shared extension for php
# php73-brotli-0.7.0             Brotli extension for PHP
# php73-bsdconv-11.5.0           PHP wrapper for bsdconv
# php73-bz2-7.3.7                The bz2 shared extension for php
# php73-calendar-7.3.7           The calendar shared extension for php
# php73-composer-1.8.6           Dependency Manager for PHP
# php73-ctype-7.3.7              The ctype shared extension for php
# php73-curl-7.3.7               The curl shared extension for php
# . . .

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

PHPモジュールを使用するためのNginxの構成

PHPを使用する前に、Nginxで動作するように構成する必要があります。

実行sudo vim /usr/local/etc/nginx/test.confして、ファイルに次の内容を入力します。

server {

  listen 80;
  server_name SERVER_IP; # Replace with your IP or hostname
  root /usr/local/www/nginx-dist;
  index index.php index.html index.htm;

  location / {
    try_files $uri $uri/ =404;
  }

  location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }

}

ファイルを保存して:+ W+で終了しますQ

次にtest.conf、メインnginx.confファイルに含める必要があります。Nginxのメインの構成ファイルは/usr/local/etc/nginxとして存在しnginx.confます。

実行sudo vim /usr/local/etc/nginx/nginx.confしてメイン構成ファイルをVimで開き、次の行をhttp {}ブロックに追加します。

include test.conf;

Nginx構成をテストします。

sudo nginx -t

Nginxで構成変更を行ったので、それらを適用するにはサービスをリロードする必要があります。それ以外の場合、Nginxは以前の構成で引き続き機能します。

sudo service nginx reload

PHP処理のテスト

システムがPHP用に正しく構成されていることをテストするために、非常に基本的なPHPスクリプトを作成できます。このスクリプトを呼び出しますinfo.php。デフォルトでは、rootに設定されてい/usr/local/www/nginx-distます。info.phpその場所にファイルを作成できます。

sudo vim /usr/local/www/nginx-dist/info.php

次のコードをそのファイルに追加します。

<?php phpinfo(); ?>

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

FreeBSD 12.0にNginx、MySQL、PHP(FEMP)スタックをインストールする方法

インストールとセットアップ後info.phpは、サーバーに関する情報を公開しないようにファイルを削除する必要があります。

sudo rm /usr/local/www/nginx-dist/info.php

結論

おめでとうございます。FEBSDスタックがFreeBSD 12.0 VPSに正常にインストールされました。これで、次に何をするかについて複数の選択肢があります。ほとんどの種類のWebサイトとWebソフトウェアをその上にインストールできるプラットフォームをインストールしました。



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。