GNU/Linux >> Linux の 問題 >  >> Debian

Debian9にBoltCMSをインストールする方法

Bolt CMSは、PHPプログラミング言語で記述されたシンプルで柔軟なオープンソースのコンテンツ管理システムであり、LinuxのApache / Nginx Webサーバー、PHP、MySQL / MariaDBデータベース管理システム(LAMPまたはLEMPスタックとも呼ばれます)で正常に展開できます。

このチュートリアルでは、動的なWebサイトを作成するために、LAMPスタックの上にDebian9リリースの最新のBoltCMSバージョンをインストールして構成する方法を学習します。

Bolt CMSを使用すると、最新のマークアップ言語とソースライブラリを使用して、美しくモダンな動的ポータルを作成および設計できます。

要件

構内にBoltCMSWebサイトを展開するには、次の要件のいくつかが満たされていることを確認する必要があります。

  • 専用の物理サーバー、仮想マシン、または最新バージョンのDebian9最小インストールを備えたクラウドプロバイダーのVPSが必要です。
  • システムネットワークインターフェースカードの1つに設定された静的IPアドレス
  • rootアカウントまたはsudoroot権限を持つローカルアカウントまたはリモートアカウントへのリモートまたは直接アクセス
  • 適切に構成されたドメイン名(展開に応じてプライベートまたはパブリック)。wwwを指すAレコードやCNAMEレコードなどの必要なDNSレコードが含まれます。有効なドメイン名または登録済みのドメイン名がない場合は、インストールを実行して、サーバーのIPアドレスを介してWebサイトにアクセスできます
  • Bolt CMSの電子メール登録またはその他のCMS機能を使用するには、GmailやYahoo!などのパブリックメールサーバーを使用して、構内にメールサーバー(IMAPおよびSMTPサービス)を構成する必要があります。同じ目標を達成するために使用できます。
前提条件

最初のステップでは、rootアカウントまたはsudoユーティリティを介して取得したroot権限を持つアカウントでDebianサーバーにログインし、zip、unzip(zipアーカイブを解凍するため)、curlおよびwget(オンラインファイルをダウンロードする)、bashなどのユーティリティをインストールします。 -completionコマンドラインの自動コンプリーター。これらすべてのユーティリティをワンショットでインストールするには、次のコマンドを発行します。

su -
apt install bash-completion zip unzip curl wget

次の手順では、次のコマンドを実行して、このサーバーの宛先を反映するようにマシンのわかりやすい名前を構成します。それに応じてホスト名変数を置き換えます。

hostnamectl set-hostname www.myblog.com

以下のコマンドを発行することで、マシンのホスト名とシステムhostsファイルのレコードを確認できます。

hostnamectl
cat /etc/hostname
hostname –s
hostname –f

サーバーを再起動する前に、次のコマンドを発行して、システムが最新のセキュリティパッチ、カーネルアップデート、リポジトリ、およびソフトウェアパッケージで最新であることを確認してください。

apt update
apt upgrade

更新プロセスが完了したら、Debianマシンを再起動して、すべてのカーネル更新を適用し、ホスト名を適切に変更します。

systemctl reboot

ApacheとPHPをインストールする

冒頭で述べたように、Bolt CMSは、PHPサーバー側プログラミング言語で記述されたWebベースのコンテンツ管理プラットフォームであり、LAMPスタックの上にデプロイする必要があります。まず、Apache HTTPサーバーとPHPインタープリターを、BoltCMSが適切に実行するために必要ないくつかの必要なPHP拡張機能と一緒にインストールすることから始めます。 Webサーバーコンポーネントと必要なすべてのモジュールを含むPHPプログラミング言語をインストールするには、サーバーコンソールでroot権限を使用して次のコマンドを発行します。

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-gd php7.0-opcache php7.0-json php7.0-mbstring php7.0-xml php7.0-cli php7.0-curl php7.0-zip php7.0-bcmath php-imagick php7.0-xmlrpc php7.0-intl

次に、次のコマンドを実行して、インストールされているすべてのPHPモジュールがシステムで有効になっているかどうかを確認します。

php7.0 –m

MariaDBをインストール

欠落している次のコンポーネントは、RDBMSデータベースです。このチュートリアルでは、MariaDBデータベースサーバーをバックエンドとして使用してBoltCMSをインストールします。 Bolt CMS Webアプリケーションは、MariaDBデータベースを使用して、さまざまなWebサイト構成、ユーザー、セッション、およびその他のさまざまなデータを保存します。 MariaDBデータベースサーバーとクライアント、およびPHPMySQL拡張機能をDebian9にインストールするには、サーバーコンソールで次のコマンドを発行します。

apt install mariadb-server mariadb-client php7.0-mysql

MariaDBのインストールが完了したら、 netstat を実行して、データベースデーモンがマシンで稼働しているかどうかを確認し、ローカルホストのポート3306で着信接続をリッスンします。 またはss コマンド。

netstat –tlpn | grep mysql

または

ss –tlpn | grep mysql

netstatの場合 ネットワークユーティリティはデフォルトではDebianシステムにインストールされていません。次のコマンドを実行してインストールしてください。

apt install net-tools

デフォルトでは、MySQLデータベースサーバーはDebian 9で十分に保護されていません。データベースのルートアカウントには、パスワードを入力することでアクセスできます。データベースサーバーを保護するには、最初にMySQLコンソールにログインし、以下のコマンドを実行してMariaDBルートアカウントを保護します。

mysql -h localhost
Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1


Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A


Database change
MariaDB [mysql]> update user set plugin='' where user='root';
Query OK, 1 row affected (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]> exit
Bye

データベースルートアカウントにパスワードの使用を強制した後、スクリプト mysql_secure_installation を実行して、MariaDBサーバーをさらに保護します。 Debianストレッチリポジトリからのインストールパッケージによって提供されます。スクリプトの実行中に、MariaDBデータベースを保護するために設計された一連の質問が表示されます。たとえば、MySQLルートパスワードの変更、匿名ユーザーの削除、リモートルートログインの無効化、テストデータベースの削除などです。以下のコマンドを発行してスクリプトを実行し、データベースrootアカウントの強力なパスワードを設定し、 yesと入力してください。 以下の抜粋に示すように、尋ねられたすべての質問に。

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.


You already have a root password set, so you can safely answer 'n'.

Change the 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!

スクリプトが完了したら、rootパスワードなしでコンソールからデータベースにログインします。以下のコマンドの抜粋に示すように、rootアカウントにパスワードが指定されていない場合は、データベースへのアクセスを拒否する必要があります。

mysql -h localhost -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

パスワードが指定されている場合は、コマンドサンプルに示すように、ログインプロセスがMySQLコンソールに付与されている必要があります。 exitと入力して、データベースコンソールを終了します。

mysql -h localhost -u root -p
Enter password:

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 15

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> exit
Bye

すべてのLAMPコンポーネントをインストールしたら、root権限で次のコマンドを発行して、Webサーバーが稼働し、ポート80でネットワーク接続をリッスンしているかどうかをテストします。

netstat –tlpn

netstatコマンドの出力を調べると、Apache Webサーバーがポート80で着信ネットワーク接続をリッスンしていることがわかります。同じタスクで、 ssを使用することもできます。 コマンド。デフォルトでは、Debian9に自動的にインストールされます。

ss- tulpn

ファイアウォールを構成する

システムでUFWファイアウォールアプリケーションなどのファイアウォールを有効にしている場合は、次のコマンドを発行して、HTTPトラフィックがファイアウォールを通過できるようにする新しいルールを追加する必要があります。

ufw allow WWW

または

ufw allow 80/tcp

サーバーへのリモート接続の場合は、SSHトラフィックがUFWファイアウォールを通過できるようにする必要もあります。

ufw allow 22/tcp

一部のシステム管理者は、 iptablesの使用を好みます Debianサーバーでファイアウォールルールを管理するための生のルール。その場合は、次のルールを追加して、ファイアウォールでポート80のインバウンドトラフィックを許可し、他の訪問者がWebサイトを閲覧できるようにする必要があります。

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent
systemctl status netfilter-persistent
systemctl enable netfilter-persistent.service

SSH経由でDebianサーバーにリモート接続している場合は、最初に次のルールを追加して、SSHトラフィックがiptablesファイアウォールを通過できるようにする必要があります。そうしないと、ファイアウォールがすべての着信トラフィックをポート22にドロップし始めるため、ロックアップされます。

iptables -I INPUT -p tcp --destination-port 22 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent

必要なファイアウォールルールを追加したら、ブラウザを開いて、HTTPプロトコルを介してDebianマシンのIPアドレスまたはドメイン名またはサーバーFQDNにアクセスし、ネットワークでApacheWebサーバーにアクセスできるかどうかをテストする必要があります。着信接続がポート80に許可されている場合、デフォルトのWebページがクライアントのブラウザに表示されます。マシンのIPアドレスがわからない場合は、 ifconfigを実行してください またはip a サーバーのIPアドレスを明らかにするコマンド。

http://your_domain.tld

ApacheとPHPを構成する

次のステップでは、PHPのデフォルト構成ファイルにさらにいくつかの変更を加え、以下に説明するように次のPHP変数を変更する必要があります。また、PHPのタイムゾーンを確認してください 設定は正しく構成されており、システムの地理的な場所と一致しています。 /etc/php/7.0/apache2/php.iniを開きます 最初に編集するファイルを作成し、PHP構成ファイルのバックアップを作成します。

cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini

php.ini で次の変数を検索、編集、変更します 構成ファイル:

file_uploads = On
memory_limit = 128M
post_max_size = 80M
upload_max_filesize = 80M
default_charset = UTF-8
short_open_tag = off
intl.error_level = 0
magic_quotes_gpc =off
register_globals = off
session.auto_start = off
date.timezone = Europe/London

upload_max_file_sizeを増やします その場合は、大きなファイルの添付ファイルをサポートし、 date.timezoneを置き換えるのに適した変数 次のリンクhttp://php.net/manual/en/timezones.php

でPHPドキュメントによって提供されるタイムゾーンのリストを参照することにより、地理的な時間に応じて変更できます。

PHP7で使用可能なOPCacheプラグインを介してWebサイトページの読み込み速度を上げるには、PHPインタープリター構成ファイルの下部の [opcache]の下に次のOPCache設定を追加します。 ここで詳しく説明されているステートメント:

nano /etc/php/7.0/apache2/php.ini
[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

以下で説明するすべての行を変更したら、 php.iniを閉じます。 構成ファイルを作成し、以下のコマンドを発行して、OPCache変数が正しく追加されているかどうかを確認します。

grep opcache /etc/php/7.0/apache2/php.ini

次に、訪問者にHTTPSプロトコルを介してWebサイトを安全に閲覧させるために、ApacheリライトおよびTLSモジュールを有効にする必要があります。 TSLモジュールは、Apacheによって自動的に発行される自己署名証明書を使用して、サーバーとクライアントブラウザー間のトラフィックを保護します。 TLSモジュールが正しく機能するには、ApacheSSL構成ファイルもアクティブ化する必要があります。次のコマンドを実行して、必要なすべての構成をアクティブにします。

a2enmod ssl rewrite
a2ensite default-ssl.conf

書き換えモジュールとTLSモジュールを有効にした後、テキストエディタでApacheのデフォルトのSSLサイト構成ファイルを開き、 DocumentRootの後にURL書き換えルールのコード行を追加します。 以下のサンプルに示すように、ディレクティブ。また、 DocumentRootを変更します / var / ww / html / publicへのパス

nano /etc/apache2/sites-enabled/default-ssl.conf

SSLサイト構成ファイルの抜粋:

DocumentRoot  /var/www/html/public
<Directory /var/www/html/public>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>

SSL Apacheファイルを閉じ、 /etc/apache2/sites-enabled/000-default.confも開きます。 編集用のファイルを作成し、SSL構成ファイルと同じURL書き換えルールを追加します。 DocumentRootの後にコード行を挿入します 以下の例に示すようなステートメント。また、 DocumentRootを変更します / var / ww / html / publicを指すパス ディレクトリ。

DocumentRoot  /var/www/html/public
<Directory /var/www/html/public>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>

上記で説明したすべての変更を行った後、すべてのルールを適用するには、Apacheデーモンを再起動する必要があります。

systemctl restart apache2

最後に、ブラウザを開き、HTTPプロトコルを介してサーバーのドメイン名またはIPアドレスにアクセスします。インストール時にApacheによって発行された自動的に自己署名された証明書のペアを使用しているため、ブラウザーによって信頼されていない証明書であるため、ブラウザーにエラー警告が表示されます。信頼できない証明書を受け入れ、引き続きApacheのデフォルトのWebページにリダイレクトするには、警告を受け入れます。

https://yourdomain.tld

UFWファイアウォールアプリケーションがHTTPSポートへの着信ネットワーク接続をブロックする場合は、次のコマンドを発行して、HTTPSトラフィックがファイアウォールを通過できるようにする新しいルールを挿入します。

ufw allow ‘WWW Full’

または

ufw allow 443/tcp

iptablesの場合 は、Debianシステムをネットワークレベルで保護するためにインストールされるデフォルトのファイアウォールアプリケーションです。次のルールを追加して、訪問者がドメイン名を閲覧できるように、ファイアウォールでポート443のインバウンドトラフィックを許可します。

iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
netfilter-persistent save
systemctl restart netfilter-persistent

最後に、次のコマンドを実行して、WebサーバーのwebrootパスにPHP情報ファイルを作成します。

echo '<?php phpinfo(); ?>'| tee /var/www/html/public/info.php

次の画像に示すように、次のURLにあるブラウザからPHP情報スクリプトファイルにアクセスします。 日付まで下にスクロールします PHPのタイムゾーン構成を確認するための設定。タイムゾーン設定は、以前に構成したPHPの地理的位置を反映している必要があります。

https://domain.tld/info.php

次に、MariaDBデータベースコンソールにログインし、次のコマンドを発行して、BoltCMSデータベースとローカルホストからのWebサイトデータベースの管理に使用されるパスワードを持つユーザーを作成します。それに応じて、データベース名、ユーザー、およびパスワードを置き換えます。

mysql –u root -p
Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 305

Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1


Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE bolt_db;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on bolt_db.* to 'bolt_user'@'localhost' identified by 'password1234';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit
Bye
ボルトCMSをインストール

Bolt CMSアプリケーションをインストールするためのすべてのシステム要件が満たされたら、Boltの公式ダウンロードページ(https://bolt.cm/pages/download)にアクセスし、以下のコマンドを発行して、システム内の最新のzip圧縮アーカイブを取得します。

wget https://bolt.cm/distribution/bolt-latest.zip 

zipアーカイブのダウンロードが完了したら、Bolt CMS zipアーカイブファイルを現在の作業ディレクトリに抽出し、以下のコマンドを発行して、抽出したファイルを一覧表示します。また、Apache Webサーバーによってwebrootパスにインストールされたデフォルトのindex.htmlファイルを削除し、以前に作成したinfo.phpファイルも削除します。

unzip bolt-latest.zip
ls bolt-[TAB]
rm /var/www/html/index.html
rm /var/www/html/public/info.php

Bolt CMSのインストールファイルは、 bolt-v3.4.4/の現在の作業ディレクトリにあります。 ディレクトリ。 lsを発行します このディレクトリファイルを一覧表示するコマンド。次のコマンドを発行して、抽出したディレクトリのすべてのコンテンツをWebサーバーのドキュメントルートパスにコピーします。また、隠しファイル .htaccessを必ずコピーしてください。 Webルートパスへ。

cp -rf bolt-v3.4.4/* /var/www/html/
cp -rf bolt-v3.4.4/.bolt.yml.dist /var/www/html/bolt.yml

次に、次のコマンドを実行して、ApacheランタイムユーザーにWebルートパスへの完全な書き込み権限を付与します。 lsを使用する / var / www /html/ディレクトリにあるアプリケーションのインストール済みファイルの権限を一覧表示するコマンド。

chown -R www-data:www-data /var/www/html/
ls -al /var/www/html/

次に、次のファイルの抜粋に示すように、Bolt CMS構成ファイルを開き、MySQLデータベース接続情報を追加します。

nano /var/www/html/app/config/config.yml

config.yml ファイルサンプル:

database:
driver: mysql
databasename: bolt_db
username: bolt_user
password: password1234

Bolt CMS構成ファイルを保存して閉じ、 / var / www / htmlと入力します ディレクトリを作成し、以下のコマンドを発行してPHPComposer依存関係マネージャーソフトウェアをインストールします。

cd /var/www/html/
mv composer.json.dist composer.json
curl -sS https://getcomposer.org/installer | php
All settings correct for using Composer
Downloading...
Composer (version 1.5.5) successfully installed to: /var/www/html/composer.phar
Use it: php composer.phar
php7.0 composer.phar install
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 0 installs, 5 updates, 0 removals
- Updating league/flysystem-sftp (1.0.14 => 1.0.15): Downloading (100%)
- Updating doctrine/inflector (v1.1.0 => v1.2.0): Downloading (100%)
- Updating doctrine/collections (v1.3.0 => v1.4.0): Downloading (100%)
- Updating doctrine/annotations (v1.2.7 => v1.4.0): Downloading (100%)
- Updating doctrine/common (v2.6.2 => v2.7.3): Downloading (100%)
Writing lock file
Generating autoload files
> Bolt\Composer\ScriptHandler::updateProject
> Bolt\Composer\ScriptHandler::installAssets
Installing bolt_assets to /var/www/html/public/bolt-public

Composerをインストールしたら、ブラウザを開き、HTTPSプロトコルを介してサーバーのIPアドレスまたはドメイン名に移動します。最初のインストール画面で、最初のBolt CMSユーザー名を作成し、このユーザーの強力なパスワードを追加して、Bolt管理者アカウントの電子メールアドレスと表示名を入力します。終了したら、最初のユーザーを作成をクリックします。 変更を保存するためのボタン。

Bolt管理者ユーザー名を作成すると、Bolt CMS管理者ダッシュボードにリダイレクトされます。ここから、アプリケーションのセットアップをさらに開始したり、Webサイトのコンテンツを追加したりできます。

Bolt CMSフロントエンドページにアクセスするには、ブラウザを開き、HTTPSプロトコルを介してドメイン名またはサーバーのIPアドレスに移動します。

https://www.yourdomain.tld

Bolt CMSのバックエンド管理パネルには、次のURLからアクセスできます。ログインするには、インストールプロセス中に初期アカウント用に構成されたユーザー名とパスワードを入力します。

https://www.yourdomain.tld/bolt/login

最後に、訪問者にHTTPSプロトコルを介してBolt CMSインターフェースを安全に閲覧させるには、サーバーのコンソールに戻って .htaccessを編集します。 以下のコマンドを発行して、パブリックディレクトリのドキュメントルートパスにあるファイル。

nano /var/www/html/public/.htaccess

ここで、 で始まる行を検索します タグを開き、 RewriteEngine onの後に以下の行を追加します ディレクティブ。

# Redirect to HTTPS
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

以下の例に示すように、ファイルの下部で、PHPサーバーの設定を改ざんして独自のサーバーリソースと構成に一致させることができます。

php_value session.use_trans_sid 0
php_value register_globals 1
php_value upload_max_filesize 50M
php_value post_max_size 50M

おめでとう!これで、Debian9サーバーに最新のBoltCMSアプリケーションが正常にインストールされました。アプリケーションをさらにカスタマイズするには、次のアドレスにあるBolt CMSドキュメントページにアクセスしてください:https://docs.bolt.cm/3.4/getting-started/introduction


Debian
  1. Debian11にRedisサーバーをインストールする方法

  2. PHP 7.4 / 7.3 / 7.2/7.1をDebian10/Debian9にインストールする方法

  3. Debian9にOdoo12をインストールする方法

  1. MySQL 8.0/5.7をDebian11/Debian10にインストールする方法

  2. Debian8にProFTPDをインストールする方法

  3. MySQLサーバーをDebian9にインストールする方法

  1. Debian9にMinecraftサーバーをインストールする方法

  2. Debian9にTypo3CMSをインストールする方法

  3. SuiteCRMをDebian9にインストールする方法