ウェブサイト検索

Ubuntu 20.04 LTSにNginxを使用してBoltWire CMSをインストールする方法


Ubuntu 20.04 LTSにNginxを使用してBoltWire CMSをインストールする方法

このページで

  1. 前提条件
  2. 始めに

    1. システムを更新しています
    2. 必要なパッケージのインストール
  3. Nginxのインストール

    1. Nginxの設定
  4. MySQLのインストール

    1. データベースを作成する
  5. PHPのインストール
  6. Composerをインストールする
  7. ボルトのインストール
  8. BoltWire CMSにアクセスする
  9. 結論

Boltは、人気のPHPフレームワーク上に構築された軽量のコンテンツ管理システム(CMS)です。Boltは、HTMLや他のプログラミング言語を学ぶ心配なく、自分のウェブサイトを維持したい小規模ビジネスに最適です。Boltは、強力なウィキマークアップ、eコマース、フォトギャラリーおよびアルバムビルダー、オーディオギャラリーとプレーヤー、ゲストブックなどの高度な機能を備えています。

Boltwireは、CMSが必要な個人やあらゆる規模のグループに対して完全に無料であるという点で際立っています。Boltwireの創設者であるジョー・カサボナは、他の人が彼のオープンソースプロジェクトを最大限に活用できるよう手助けすることで彼の情熱を共有しています。Boltは、200を超える国で50万以上のウェブサイトを管理するために使用されています。その開発者はボランティアであり、すべてのユーザーがフィードバックを提供し、プロジェクトの開発に貢献することを期待しています。

Boltにはいくつかのユニークな機能があります:

  • 動的ページ生成:ページは、データベースから取得する際に見つかるデータに基づいて組み立てることができます。例えば、ユーザーがオンラインジャーナルに新しいエントリーを投稿すると、彼のブログの他のエントリーが、ウェブページ全体を更新することなく動的に追加されることがあります。これにより、特にカテゴリごとに大量のページやメディアイテムがある場合(例:フォトギャラリー内のすべての写真)に、読み込み時間が短縮されます。
  • コンテンツ管理と運営: 複数のユーザーがコンテンツを管理できるようになっており、各ユーザーはページの特定の部分だけを変更できるようになっています。また、彼らが何を見たり編集したりできるかに制限を設けることもできます。例えば、ほとんどの人は新しい記事を自由に投稿したりコメントを追加したりすることを許可されていません; これはサイト管理者に限定されています。読者は管理者が特に指定しない限り、ログインせずに任意の記事を閲覧することができます。
  • 使いやすさ:Boltは、JoomlaやDrupalなどの他のCMSと比較して、ウェブページを作成するために必要な労力を大幅に削減します。Boltに組み込まれているウィザードは、その設定プロセスの多くを自動化しているため、どう動作するかを心配する必要はありません。
  • 簡単な拡張性:ボルトはオープンソースなので、新しいモジュールを作成してボルトを拡張したり機能を追加したりするのが簡単です。新しい機能はしばしばコアソフトウェアに統合され、さらに使いやすくなります。現在、Modboomでは約40の拡張機能が利用可能で、PHPプログラミングに深く足を踏み入れることなく、ボルトの好きな部分を簡単に拡張できます。
  • BoltWireは、英語(デフォルト)、ドイツ語、イタリア語、日本語、ポーランド語、ポルトガル語、スペイン語のいくつかの言語で提供されています。上記の言語用の標準的なBoltWireパッケージに加えて、フランス語(100%)とオランダ語(50%以上)の完全なローカライズも利用可能です。

デメリットは、ローカル言語での動作の仕組みについての質問がある場合、ヘルプフォーラム以外のサポートがほとんどないことです。この点において、物事を自分の望むように動作させるのはあなた自身の責任です。しかし、テキストエディタを使うのに慣れていて、Boltに自分で取り組む時間があるなら、数分でシンプルでありながらプロフェッショナルな見た目のウェブサイトを作成するのを妨げるものは何もありません。

このガイドでは、Ubuntu 20.04サーバーにBoltWireをインストールする方法を学びます。

前提条件

  • Ubuntu 20.04が動作している新しいサーバー。
  • 完全なSSHルートアクセスまたはsudo特権を持つユーザー。
  • ドメイン名が登録され、あなたのサーバーに向けられています。

始めに

まず第一に、SSHを使用してUbuntuにログインします。

ssh root@IP_アドレス -p ポート番号

rootはUbuntuのデフォルトユーザーですので、別のユーザーを使用している場合は「root」を自分のユーザー名に置き換えてください。

IPアドレスはあなたのサーバーのアドレスです。これを使用して確認できます。

コマンドラインで hostname -I を実行します。ポート番号はSSHのために22でなければなりません。

hostname -I

「-p」はsshに指定されたポートを使用するよう指示します。ポート番号を指定しない場合は、22が使用されます。

ファイアウォールの背後にいる場合、ポート22がブロックされている可能性があります。その場合、Port_numberを2222のような別の番号に変更してください。

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

次のコマンドを使用して、システムに適切なUbuntuバージョンがインストールされているか確認できます。

sudo lsb_release -a

サンプル出力:

パッケージをインストールする前に、システムを更新することは常に推奨されます。

sudo apt-get update && apt-get upgrade -y

-yはコマンドで、更新プロセス中にすべての質問に自動的に「はい」と答えるようになります。apt-get updateはパッケージリストを更新し、apt-get upgradeはシステムをアップグレードします。

サンプル出力:

更新には、ダウンロードしてインストールする必要があるパッケージの数に応じて、いくつかの時間がかかる場合があります。更新が完了すると、サーバーを再起動するように促されます。更新後にシステムを再起動するには、以下のコマンドを実行します:

sudo reboot

必要なパッケージのインストール

Boltのインストールには、システムにいくつかのパッケージをインストールする必要があります。いくつかのパッケージは特定の順序でインストールされます。この場合、以下のコマンドを使用してBoltのインストールに必要なすべてのパッケージをインストールします:

sudo apt install -y curl wget vim git unzip socat bash-completion apt-transport-https

socatはプロキシングのためのもので、これによってBoltはウェブサーバー上で動作しているように見えます。

apt-transport-httpsは、sudo apt updateのようなコマンドライン操作をhttps接続で動作させることを可能にします。bash-completionは、最初の数文字を入力した後にbashがコマンドを自動補完することを可能にするプログラムです。

curlはパッケージのダウンロードに使用され、wgetはウェブサイトからBoltの最新バージョンのようなファイルをダウンロードするために使用されます。

サンプル出力:

Nginxのインストール

NginxはBoltでウェブサイトを管理するためのリバースプロキシとして使用されます。Nginxは軽量で、設定が簡単で、速いです。以下のコマンドを実行してNginxをインストールします。

sudo apt-get install nginx

'y'と入力すると、インストールプロセスが自動的に始まります。

サンプル出力:

インストールが完了したら、nginx サービスを開始し、システム起動時に実行されるように有効にします。

sudo systemctl start nginx
sudo systemctl enable nginx

Nginxが現在実行されているかどうかを確認するには、ターミナルでこのコマンドを使用してください。

sudo systemctl status nginx

サンプル出力:

Nginxの設定

BoltWire CMSは/var/www/ディレクトリにインストールされています。BoltWire CMSにアクセスしてテストするには、Nginxのサーバーブロックを設定して、すべての静的コンテンツリクエストやモジュールおよびプラグインファイルリクエストを自動的にウェブルートフォルダのパス/var/www/にルーティングする必要があります。

次のコマンドを実行して、bolt.confという新しい構成ファイルを作成します。

sudo nano /etc/nginx/sites-available/bolt.conf

次の内容で構成ファイルを埋めてください:

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

私たちが作成したNginxサーバーブロックは、デフォルトのドキュメントルートを使用しており、/var/www/ディレクトリに設定されています。異なるサーバー環境でBoltWire CMSを実行している場合は、confファイルを編集してドキュメントルートのパスを適宜置き換えてください。

server_name ディレクティブは、あなたの Nginx ウェブサーバーがリッスンする URL を構成します。bolt.example.com を実際のサーバーのドメイン名または IP アドレスに置き換えてください。

try_files      $uri $uri/ /index.php?$query_string; このディレクティブは、ファイルパスリクエストを直接処理できるようにします。たとえば、ユーザーがブラウザからBoltWire CMSのホームページにアクセスしようとした場合、/index.phpが存在すればインデックスファイルとして使用され、存在しない場合はPHP-FPMが404 Not Foundレスポンスを返すことになります。

bolt.confファイルに変更を加えて保存した後、新しい設定を適用するためにNginxをリロードし、再起動してください。

sudo systemctl reload nginx
sudo systemctl restart nginx

次のコマンドを実行してnginxの設定を確認してください:

sudo nginx -t

サンプル出力:

MySQLのインストール

BoltWire CMSはMySQLサーバーの最低バージョン4.2を必要としますが、BoltWire CMSは5.x以上では動作しません。

いくつかの選択肢があります:Microsoft SQL Serverのようなリモートデータベースサーバーを使用する、すべてのウェブサーバー機械にMySQLを実装する(推奨されません)、MySQLのバージョンをアップグレードする。最初の選択肢はかなり簡単ですが、アップグレードの種類は複雑です。

LAMPスタック(Linux、Apache、MySQL、PHP)を使用している人々にとって、UbuntuはすでにMySQLサーバーをそのリポジトリに含んでいるため、MySQLを別途インストールする必要はありません。

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

sudo apt -y install mysql-server

サンプル出力:

インストールが完了したら、下記のコマンドを実行して、このセッションのために MySQL デーモン (MySQL サーバー) を開始し、システムの起動時に実行できるようにします:

sudo systemctl start mysql
sudo systemctl enable mysql 

データベースを作成する

コマンドラインを使用して、boltという名前のデータベースを作成します。

以下のコマンドを実行してMySQLに接続し、データベースを作成します。

sudo mysql -u root -p 

mysqlのルートパスワードを入力してください。これでmysqlコンソールにログインしました。データベースとデータベースユーザーを作成するには、以下のコマンドを実行してください:

CREATE DATABASE bolt;
CREATE USER 'bolt'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL ON bolt.* TO 'bolt'@'localhost'; 
FLUSH PRIVILEGES; 
exit

ユーザー 'bolt'@'localhost' を作成し、パスワード 'mypassword' を設定します。この場合、ユーザー 'bolt' のパスワードは 'mypassword' になります。ここでは 'mypassword' の代わりに安全なパスワードを使用してください!FLUSH PRIVILEGES は、上で作成した権限テーブルを再読み込みします。

PHPのインストール

BoltWire CMSはPHPバージョン7以上とその開発ヘッダーが必要です。必要なPHPバージョン(7.2)を持つppa:ondrej/php PPAを追加しますが、必要に応じてこのバージョンを変更できます。ppaを追加し、apt-getを更新するために以下のコマンドを実行します。

sudo apt -y install software-properties-common 
sudo add-apt-repository ppa:ondrej/php 
sudo apt-get update

以下のコマンドを実行してPHP 7.2をインストールします:

sudo apt install -y php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-mbstring php7.2-zip php7.2-pgsql php7.2-sqlite3 php7.2-curl php7.2-gd php7.2-mysql php7.2-intl php7.2-json php7.2-opcache php7.2-xml

php7.2-cliはPHP7.2のコマンドラインインターフェースであり、php7.2-commonと共に、php7.2-extensions、ウェブサーバー(PHP)モジュール、および標準CLI拡張機能をインストールします。php7.2-fpmを使用すると、PHPアプリケーションをウェブサーバーから実行する一般的な方法であるFastCGIプロセスマネージャーがインストールされます。php7.2-mbstringは、BoltWire CMSに必要なマルチバイト文字列関数をインストールします。php7.2-opcacheは、PHP7.2用のオペコードキャッシュをインストールし、コンパイル済みスクリプトをキャッシュすることで、パフォーマンスを向上させ、ウェブサーバーへの負荷を軽減します。php7.2-xmlは、BoltWire CMSを使用するために必要なPHP7.2用のXML処理拡張機能をインストールします。

サンプル出力:

PHP 7.2をインストールした後、以下のコマンドを実行してPHP 7.2のバージョンを確認してください:

php -v 

サンプル出力:

次に、nano テキストエディタを使って Nginx の PHP デフォルト設定ファイルを開きます:

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

これから以下の行に変更を加えます。

file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/St. Louis
  • file_uploads=On は、BoltWire CMS にファイルアップロード機能を有効にします。
  • allow_url_fopen=On は、リモートウェブサーバーからアップロードされたファイルに対するリクエストで、直接URLやHTTPリダイレクトを許可します。
  • memory_limit=256M は、Nginx ワーカープロセスに設定する PHP 7.2 のメモリ制限(MB単位)です。高いメモリ消費を伴う PHP スクリプトを実行すると、php 実行時エラーを引き起こす可能性があります。
  • upload_max_filesize=100M はBoltWire CMSサイトにおける単一アップロードファイルの最大サイズです。無制限のサイズのファイルをアップロード可能にしたい場合は、この値を0に変更してください。
  • max_execution_time=360は、PHPスクリプトが実行される最大実行時間(秒)であり、この値を超えるとスクリプトは終了します。
  • date.timezone=America/St. Louis。これは、BoltWire CMS システムで顧客の日付と時間の値を正しく表示するために、あなたの位置のタイムゾーンを設定するものです。

上記の変更を反映させるためにphp7.2-fpmを再起動します:

sudo service php7.2-fpm restart

これで必要なPHP7.2および関連パッケージに足りるはずですので、次のステップに進みましょう。

Composerをインストールする

BoltWire CMSは、必要な外部ライブラリをウェブサイトに追加するためにComposerを必要とするので、このチュートリアルを続ける前にまずそれをインストールする必要があります。ComposerはPHPプロジェクトの依存関係を管理するためのパッケージマネージャーです。これは、NodeJSのnpmやrubyのgemsに似ています。

まず、ホームディレクトリに移動してインストーラーをダウンロードします:

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

以下のコマンドはComposerをインストールします。

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

上記は、Composerを/usr/local/binディレクトリにシステム全体のバイナリとしてダウンロードおよびインストールします。

コマンドの/usr/local/bin部分を~/user_に置き換えることで、Composerをあなたのユーザー専用に設定することができます。

インストールが完了したら、以下のコマンドを実行してインストールが成功したかどうかをテストできます。

composer

サンプル出力:

ボルトのインストール

必要なパッケージがすべてインストールされたので、これからBoltをインストールします。

まず、/var/www/ ディレクトリに移動し、以下のコマンドでGitHubからBolt CMSの最新バージョンをダウンロードします:

cd /var/www/
sudo git clone https://github.com/bolt/bolt.git

サンプル出力:

ダウンロードが完了すると、boltという名前のディレクトリが表示され、その中に「composer.json」という名前の1つのファイルがあるはずです。これはBolt CMSのためのcomposer設定ファイルです。

次に、ボルトディレクトリに移動し、そこからボルトをインストールします。

cd bolt
sudo composer install

このコマンドは、Composerパッケージマネージャーを使用して、/var/www/boltに必要なすべてのBoltソースファイルと依存関係をインストールします。

サンプル出力:

次のステップは、Boltの作業ディレクトリを設定するために以下のコマンドを実行することです:

sudo chown -R www-data:www-data /var/www/bolt
sudo chmod -R 755 /var/www/bolt

上記のコマンドは、Boltファイルの所有権をNginxユーザーwww-dataに変更しますので、Bolt URLにアクセスした際にファイルを読み書きできるようになります。

次のステップは、ボルトの設定ファイルを構成することです:

sudo cp app/config/config.yml.dist app/config/config.yml

BoltWire CMSにアクセスする

これで、LinuxまたはWindowsコンピュータのブラウザから次のURLを使用してBoltWire CMSにアクセスできるはずです:

http://localhost:8000/bolt または http://bolt.example.com/bolt

以下のようなデフォルトのBoltWire CMSランディングページを取得する必要があります:

このフォームに必要な情報をすべて記入してください。以下のようなBoltWireダッシュボードにアクセスできます。

今、私たちはBolt Wire CMSのためにLinuxサーバーを正常に構成しました。

新しくインストールしたBoltWire CMSにアクセスしようとすると問題が発生する場合、一般的なエラーとその可能な解決策のリストは次のとおりです:

  • "アクセス拒否 - エラー"。これは、BoltWire CMSが動作していますが、ブラウザからそのページにアクセスできないことを意味します。Nginxの設定ディレクトリを確認してみてください。
  • 「/var/www/BoltWire/vendor/php72-zip/libphp7.2.so」の動的ライブラリを読み込むことができませんでした」または「スクリプトの実行エラー」です。これは、BoltWire CMSディレクトリにPHPファイルを実行して実行するための必要な権限がないことを意味します。
  • エラーの初期化 ... ファイルまたはディレクトリが存在しません。これは、BoltWire CMSが正しくインストールされていないことを意味します。BoltWire CMSのインストール手順を正しく実行したかどうかを確認する必要があります。
  • "権限が拒否されました"。これは、/var/www/bolt または /var/www ディレクトリにアクセスするための適切な権限がないことを意味します。
  • 致命的なエラー: クラス 'PDO' が見つかりません... これは、PHPがデータベースに接続できないことを意味し、PHPの設定を確認する必要があるかもしれません。
  • "検索中... " または "警告: foreach() に無効な引数が提供されました..."。これは、BoltWire CMS があなたが与えたものを見つけられないことを意味します。通常、これは設定内のブログ名やスラッグ、パスの不備が原因です。
  • "ディレクトリを作成できません ... 未定義のインデックス: viewed data"。これは、BoltWire CMSがあなたのNginxサーバーでディレクトリを作成できないことを意味し、PHPの設定を確認する必要があるかもしれません。
  • 解析エラー: 構文エラー、予期しない'='が...の...で発生しました。 これは、BoltWire CMSがファイルを実行できないか、あなたのファイルのいずれかを読み取れないことを意味します。これは、設定の中で不正確な構文を使用した場合に発生することがあります。
  • 404 - 見つかりません nginx/1.14.0 (ubuntu) bolt.example.com のためにサーバーへの 'A' レコードを追加すると助けになるはずです。
  • "404 エラー お探しのページは見つかりませんでした"。これは、BoltWire CMSがそのファイルを見つけられなかったことを意味します。BoltWireの設定を確認し、正しいパスを指定していることを確認する必要があります。

BoltWireはインストールされていますが、ページがないか、BoltWire CMSがインストールされている場合はBoltWireログインページが表示されます。その場合、BoltはBoltのインストールディレクトリ内の/var/www/bolt/_templatesフォルダにデフォルトのBoltWireテンプレートを探します。そこにファイルが見つからない場合、BoltはBoltのインストールディレクトリ内のindex.phpファイルをホームページとして使用します。それでもうまくいかない場合は、PHPの設定またはNginxの設定に何か問題があるかもしれません。

結論

BoltWire CMSはブログや個人ウェブサイトを運営するための素晴らしいソフトウェアです。BoltWire CMSの公式サイトからBolt CMSについてもっと学ぶことができます。

この記事がUbuntu 20.04サーバーにBoltWireをインストールする方法を学ぶのに役立つことを願っています。このアーティストが気に入ったら、ぜひTwitterやFacebookで友達と共有してください。質問がある場合は、下にコメントを残してください。

関連記事: