ウェブサイト検索

Ubuntu 20.04でNginxを使用してCraft CMSをインストールする方法


Ubuntu 20.04でNginxを使用してCraft CMSをインストールする方法

このチュートリアルはこれらのOSバージョンのために存在します

  • Ubuntu 20.04 (フォーカルフォッサ)
  • Ubuntu 18.04 (ビオニックビーバー)

このページで

  1. 前提条件
  2. 始めに

    1. システムを更新しています
    2. 依存関係をインストールしています
  3. LEMPサーバーをインストールする
  4. データベースの作成
  5. Craft CMSのインストール
  6. Nginxの設定
  7. Craft CMSにアクセスする
  8. 結論

Craft CMSは、ウェブサイト用の無料のオープンソースのコンテンツ管理システムです。多くの成長を続ける開発者やデザイナーのコミュニティに支えられ、使いやすい洗練されたデザインの下、様々な革新的な機能を提供します。また、サイトの開発のあらゆる側面を制御することも可能です。

これは、現在使用されている最も人気のあるコンテンツ管理システムの2つであるWordPressとDrupalに対する優れた代替手段です。

コンテンツ管理システム(CMS)は、コンテンツの編集や新しいページや画像の追加など、ウェブコンテンツの管理を容易にするためのソフトウェアです。HTMLやその他のマークアップ言語を使用して各ページを個別にコードで作成する必要がある場合、ウェブサイトの運営は難しくなります。特に複数の人が同時にサイトに取り組む必要がある場合、特定の要素がどのように見えるべきか、またはどのように動作すべきかについて合意が得られない可能性があるため、問題を引き起こすことがあります。

CMSを使用することで、各ページの一般的な構造と、ブログ投稿や商品説明などの特定の要素を設定できます。そして、他の誰かがその情報を編集する必要があるときは、CMSを使用するだけで済みます。

このガイドでは、Ubuntu 20.04 LTS(Focal Fossa)にCraft CMSをインストールする方法を示します。あなたのUbuntuサーバーにCraft CMSをインストールする方法を示します。MySQL/MariaDBデータベースを使用したい場合、このガイドはそれをインストールする手助けもします。

UbuntuにCraft CMSをインストールするプロセスは、使用しているディストリビューションやバージョンに関係なく似ていますので、システムが少し異なっていてもこのガイドに従うことができるはずです。このチュートリアルは、クリーンなUbuntuのインストールを念頭に置いて作成されましたが、いくつかのステップは現在のサーバー設定によってわずかに異なる場合があります。

前提条件

このガイドに従うには、いくつかのものが必要です:

  • Ubuntu 20.04 LTSを実行しているサーバー。
  • あなたのUbuntuサーバーに設定されたsudo権限を持つ非ルートユーザー。

始めに

システムを更新しています

まず、以下のコマンドを実行して、非ルートユーザーとしてサーバーにログインします:

ssh root@your_instance_ip

ユーザー名はrootで、SSHプロトコルを使用して「instance_ip」に接続します。

your_instance_ipは、Craft CMSがインストールされるサーバーのプライベートIPアドレスです。

以下のコマンドを実行して、オペレーティングシステムを更新してください:

sudo apt update && sudo apt upgrade -y

sudo apt updateは、Ubuntuシステムが最新の状態であることを確認するために実行されます。このコマンドは、UbuntuがUbuntuリポジトリから新しいUbuntuパッケージをダウンロードし、それをUbuntuオペレーティングシステムにインストールすることを可能にします。Ubuntuは、ソフトウェア配布センターであるリポジトリ(正確には「リポジトリ」)を使用して、すべてのアプリケーションを取得します。

sudo apt upgradeは、Ubuntuソフトウェアを更新およびアップグレードするためのUbuntuコマンドです。これにより、Ubuntuコア、インストールされたパッケージ、および新しいバージョンのUbuntuソフトウェアが含まれるUbuntuソフトウェアがアップグレードされます。

-yは「はい」の短縮形です。Ubuntuのコマンド「apt upgrade -y」は、Ubuntuがソフトウェアの更新要求に自動的に「はい」と答えることを意味します。

このコマンドを実行中にエラーが発生した場合、Ubuntuソフトウェアセンターやターミナルでエラーを修正する必要があるかもしれません。これを行うには、sudo apt-get -f installと入力し、Ubuntuソフトウェアセンターの指示に従ってすべての問題を修正するか、ターミナルコマンド「sudo dpkg --configure -a」を使用してエラーを修正し、上記のコマンドを再実行してください。

sudo apt-get -f install
sudo dpkg --configure -a

サンプル出力:

依存関係をインストールしています

以下のコマンドを実行して依存関係をインストールします:

sudo apt install -y curl wget vim git unzip socat 

curlはUbuntuがUbuntuリポジトリからUbuntuのアップデートをダウンロードするためのものです。wgetはUbuntuや他のLinuxオペレーティングシステムでHTTP、HTTPS、FTPプロトコルを使用してファイルを取得するための無料ソフトウェアです。

vimはほぼすべてのUnixシステムおよびMicrosoft Windowsで動作する人気のあるUnixベースのテキストエディタです。

UbuntuはZIPファイルからファイルを抽出するためにunzipを使用します。

Ubuntuはsocatを使用します。これは、標準入力および出力ストリームやファイルを使用して、2つの異なるアプリケーション間で接続を開くためのコマンドラインベースのユーティリティです。

サンプル出力:

LEMPサーバーをインストールする

Craft CMSはPHPで書かれており、データベースエンジンとしてMySQL/MariaDBを使用しています。私たちはUbuntuを設定して、それを「LEMPスタック」として一緒に使用します。LEMPスタックは、Linux、Nginxウェブサーバー、MySQL/MariaDBデータベースエンジン、およびPHPプログラミング言語の頭字語です。

まず、ターミナルで次のコマンドを実行して、NginxとMariaDBサーバーをインストールします。

sudo apt-get install nginx mariadb-server -y

サンプル出力:

両方がインストールされたら、次のコマンドをターミナルで実行することでPHPをインストールできます:

sudo apt-get install php php-cli php-fpm php-common php-curl php-gd php-imagick php-json php-mbstring php-mysql php-pgsql php-zip php-intl php-xml -y

php-cliはPHPのコマンドラインインターフェイスであり、以前はデフォルトのパッケージ名は「php5」でした。現在は「php」に改名されています。

php-fpmはphp-cgiの待機バージョンです。これは同時リクエストをうまく処理でき、プロキシサーバーの背後で使用するのに便利です。

php-commonは他のモジュールに必要な共通ライブラリ用です。例えば、"php"をインストールする際に、php-jsonは自動的にインストールされます。

php-curlは、cURL(HTTPリクエストを送信するコマンドラインツール)を介してURLにアクセスするためのモジュールです。

注意: UbuntuはUbuntuソフトウェアセンターを使用してUbuntuソフトウェアをインストールします。しかし、UbuntuソフトウェアセンターではCraft CMSに必要な一部のPythonパッケージ(virtualenvなど)などのサードパーティソフトウェアをダウンロードまたはインストールすることはできません。Ubuntuソフトウェアセンターでは、ここに見つかったコマンドを手動でコピー&ペーストし、ターミナルウィンドウに貼り付けて指示に従う必要があります。

すべてのパッケージをインストールした後、Ubuntuのディレクトリetc/php/7.4/fpmのphp.iniファイルを編集します:

sudo nano /etc/php/7.4/fpm/php.ini

ファイル内の次の設定を変更してください:

memory_limit = 512M
post_max_size = 32M
upload_max_filesize = 32M
date.timezone = Asia/Kolkata

Craft CMSには512Mのmemory_limitが必要です。Ubuntu 20.04 LTSでは、PHPは自動的にmemory_limitを変更できないため、php.iniファイルで手動で変更する必要があります。

CMSを介して画像ファイルをアップロードするには、post_max_size=32M と upload_max_filesize=32M が必要です。Ubuntu 20.04 LTSでは、Ubuntuのphp.iniファイルにおいてpost_max_sizeとupload_max_filesizeの値がデフォルトで16Mに設定されていますが、Craft CMSは32Mを必要とします。

Craft CMSは、Ubuntu 20.04 LTSで時間を正しく表示するために、date.timezone=Asia/Kolkataが必要です。Ubuntu 20.04 LTSはデフォルトでUTC-5をタイムゾーンとして使用していますが、Craft CMSはUTC+05:30(インド標準時間)のタイムゾーンを必要とします。

php.iniファイルを編集した後、ファイルを保存して閉じ、次にUbuntuのPHP-FPMサービスを再起動します:

sudo systemctl restart php7.4-fpm

UbuntuのPHP-FPMサービスのステータスを確認するには、以下のコマンドを入力してください:

sudo systemctl status php7.4-fpm

サンプル出力:

LEMPサーバーの準備ができたので、次のステップに進みます。

データベースの作成

今からCraft CMS用のデータベースを作成します。UbuntuのMySQLコンソールを開いてください:

sudo mysql -u root -p

-pはパスワードを意味します。ルートユーザーで接続したい場合は、-u rootと入力して、他の特定の情報を入力せずにEnterを押してください。

Ubuntuのインストール中に設定したパスワードを入力してください。その後、以下のコマンドを実行して、'craftdb'という名前のデータベースを作成します:

CREATE DATABASE craftdb;
GRANT ALL ON craftdb.* TO 'craftuser' IDENTIFIED BY 'mypassword';
FLUSH PRIVILEGES;
EXIT;

このデータベースを使用するには、接続する必要があります。そこで、'craftuser'という名前のユーザーを作成しました。VALUESの代わりにIDENTIFIED BYを使用するのは、MySQLにデータベースだけを使用し、他のデータを使用しないように指示するためです。mypasswordという単語を、あなたの選んだ安全なパスワードに置き換えてください。

FLUSH PRIVILEGESは、このセッション内のすべての未コミットトランザクションを破棄することです。

Craft CMSのインストール

Craft CMSをインストールするには、まず最新バージョンのComposerをインストールする必要があります。なぜなら、Ubuntuはシステム内でgemを使用することをサポートしていないからです。Composerを使用してのみCraft CMSをインストールできます。以下のコマンドを実行してComposerをインストールします:

sudo curl -sS https://getcomposer.org/installer -o composer-setup.php

-sはサイレントモードをオンにします。デフォルトでは、curlは処理中の出力を表示しませんが、-sを使用することで解析されるURLを渡すことができます。この場合、curlにURL https://getcomposer.org/installer を取得するよう指示しており、-sを使用してファイルをダウンロードするフラグを追加し、-oフラグでcurlにダウンロードしたファイルをcomposer-setup.phpに書き込むように指示しています。

次に、以下のコマンドを実行してComposerをインストールします:

sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

PHPスクリプトを実行したいことをコンピュータに伝えるために、次のphpコマンドが必要です: sudo composer-setup.php --install-dir=/usr/local/bin --filename=composer

install-dirはComposerの宛先パスです。この場合、/usr/local/binです。ファイルをすべてのユーザーがアクセスできるようにしたくない場合は、./または./を使用してください。また、このディレクトリには実行権限が必要です。

--filename フラグは、Composer がインストールされるファイルの名前です.

どこに置くか分からない場合は、ファイルを任意のディレクトリにコピーするか、--filename の後に指定することができます。

Composerがインストールされたら、以下のコマンドを使用してインストールされたバージョンを確認してください。

composer --version

サンプル出力:

次に、Craft CMSプロジェクト用のディレクトリを作成します。/var/www/html/ディレクトリの下にcraftという名前のディレクトリを作成します。このディレクトリをウェブルートとして使用します。つまり、私たちが作成するすべてのファイルやCraft CMSによって提供されるページは、ウェブルートからアクセスされます。

mkdir /var/www/html/craft

次に、craftディレクトリに移動し、Composerを使用してCraft CMSをインストールします:

cd /var/www/html/craft
composer create-project craftcms/craft

注意: Craftのバージョンが0.97未満の場合は、create-projectをinstallに置き換えてください。

警告: これにより、ディレクトリ内の既存のファイルがすべて上書きされます。

Craft CMS用に異なるディレクトリを持ちたい場合は、オプション--prefer-distを指定できます。

ホスティングプロバイダーがドキュメントルートを /var/www に変更することを許可していない場合、ウェブルートのサブディレクトリにCraftをインストールすることを強くお勧めします。例えば、mkdir craftを作成し、composer create-project craftcms/craft craftを実行してください。

サンプル出力:

データベースの詳細、ユーザー名、および管理用のパスワードを提供するように求められます。

MYSQLデータベースのユーザー認証情報を提供する必要がありますので、Craftが内部セキュリティキーを設定できます!ホスト名は「localhost」、ユーザー名は「craftuser」、パスワードは上記でMySQLデータベースを作成した際に選択したものである必要があります。

この時点で、ComposerはWebルート構造/var/www内のcraftというディレクトリにCraftをコンパイルしてインストールできるはずです。デフォルトでは、HTTPアクセスを有効にしていない限り、インターネットからアクセスできません。

次に、新しくインストールしたCraftディレクトリの適切な所有権を設定します:

chown -R www-data:www-data /var/www/html/craft

Nginxの設定

Nginxは、直接アクセスしてくるクライアントのリクエストに応えるために使用されます。静的ファイルを非常によく提供したり、ページをキャッシュしたり、これらのページのgzip圧縮を行ったりするなど、いくつかの追加の利点を提供します。

sudo nano /etc/nginx/conf.d/craft.conf

次の行でファイルを埋めてください:

server {
listen 80;
 server_name craft.example.com;
 root /var/www/html/craft/web;
 index index.php;
 location / {
  try_files $uri/index.html $uri $uri/ /index.php?$query_string;
  }
 location ~ [^/]\.php(/|$) {
  try_files $uri $uri/ /index.php?$query_string;
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
  fastcgi_index index.php;
  include fastcgi_params;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  fastcgi_param PATH_INFO $fastcgi_path_info;
  fastcgi_param HTTP_PROXY "";
 }
}

サーバー名: これはあなたのサーバーのドメイン名またはIPアドレスであり、クライアントはこれを使用してファイルを要求すべき相手を特定します(この場合、craft.example.comです)。

ドキュメントルート:ここにCraft CMSのコアアセットが存在します。これには、/var/www/html/craftの下にあるwebフォルダやcoreフォルダが含まれます。ここに表示されているパスは、使用しているCraftのバージョンやフォルダ構造が変更されている場合によって異なる可能性があります。

相対URIへの任意のリクエストに対して、例えば http://craft.example.com/index.php のような場合、通常はあなたのCraftインストールのドキュメントルートにあるindex.phpファイルが返されます。

場所 ~ [^/]\.php(/|$) : PHPファイルに対する正規表現は、.phpで終わるリクエストを検索するか、/と$を除くすべてに一致することを意味します(再帰的に検索します)。

PHP-FPMソケットの場所:これはCraft CMSコアアセットリクエストによって使用され、この値はマスター設定ファイル /etc/php/7.4{5,6}-fpm.conf 内のphp-fpmソケットファイル名と一致する必要があります。

ファイルを保存して閉じ、その後、以下を実行して動作していることを確認してください。

sudo nginx -t

サンプル出力:

エラーがなければ、以下のコマンドでNginxを再起動できます:

sudo systemctl reload nginx

Craft CMSにアクセスする

ファイルが設定されたので、Craft CMSのインストールにアクセスできます。ブラウザをhttp://craft.example.comに向けると、ウェルカム画面が表示されるはずです:

「コントロールパネルに移動」をクリックし、管理者の詳細を記入して「ログイン」をクリックします。デフォルトのダッシュボードが表示されるはずです。

「503 利用不可」というメッセージに遭遇した場合:

最新のCraft、Craftテーマ、Craftプラグインのアップデートが適用されていることを確認してください。それでも問題が解決しない場合は、次の手順を試してください:この記事に記載されているようにCraftのフォルダ権限が正しいことを確認してください。これらのファイルはrootが所有し、craftはそのフォルダのいずれにも書き込み権限を持つべきではありません。

結論

おめでとうございます!これでUbuntu 20.04にCraftCMSを無事にインストールできました。さあ、ウェブサイトを作りましょう!いつものように、コメントや提案があればぜひ下にお寄せください。

関連記事: