このチュートリアルでは、無料のオンラインショッピングストアを作成するために、Debian9.2リリースで最新バージョンのX-Carteコマースプラットフォームをインストールおよび構成する方法について説明します。
X-Cartは、強力で複雑な商用オープンソースのeコマースショッピングカートプラットフォームであり、ほとんどの部分がPHPプログラミング言語で記述されており、多くの場合、Software as a Service Solution(SaaS)として展開されます。 X-cartショッピングプラットフォームは、LinuxのApache / Nginx Webサーバー、PHP、およびMySQL / MariaDBデータベース管理システム(LAMPまたはLEMPスタックとも呼ばれます)にインストールすることもできます。 X-Cart CMSオンラインeコマースプラットフォームは、さまざまなビジネス向けのオンラインショップを作成し、サービスや商品を宣伝および販売するために非常に使用されています。
- ベアメタルマシンまたは仮想プライベートサーバーへのDebian9サーバーのインストール
- ローカルアカウントまたはリモートアカウントのsudoroot権限、またはrootアカウントへの直接アクセス
- システムネットワークインターフェースカードの1つに設定された静的IPアドレス
- Webサービス用に構成された適切なDNSレコードを使用した、展開に応じたプライベートまたはパブリックのドメイン名。有効なドメイン名または登録済みのドメイン名がない場合は、インストールを実行して、サーバーのIPアドレスを介してWebサイトにアクセスできます
- ウェブサイトの登録、コメントの管理、その他の機能を使用する場合は、IMAPおよびSMTPサービスへのリモートアクセスを備えた実行中のメールサーバーを構内で適切に構成する必要があります。
独自のサーバーのソースからX-Cartのインストールと構成を開始する前に、まず、システムがアプリケーションのコンパイルとインストールに関するすべてのソフトウェア要件を満たしていることを確認してください。最初のステップで、以下のコマンドを発行して、システムリポジトリとソフトウェアパッケージを更新します。
apt update
aptアップグレード
システムが完全に更新されたら、次のコマンドを実行してシステムの名前を設定します。それに応じてホスト名変数を置き換えます。
hostnamectl set-hostname xcart
次のコマンドを発行して、マシンのホスト名とhostsファイルを確認します。
hostnamectl
cat / etc / hostname
ホスト名–s
ホスト名–f
最後に、カーネルの更新とホスト名の変更を適切に適用するために、Debianサーバーを再起動します。
systemctl restart
次のステップで、次のコマンドを実行して、コマンドラインからシステムをさらに管理するために使用されるいくつかの必要なユーティリティをインストールします。
apt install wget bash-completion zip unzip
X-Cartは、主にPHPサーバー側プログラミング言語で記述されたWebベースのCMSeコマースプラットフォームです。アプリケーションのPHPファイルスクリプトを実行するには、Apache HTTPサーバーなどのWebサーバーと、PHP処理ゲートウェイをシステムにインストールして操作可能にする必要があります。アプリケーションを正しく実行するために必要なすべてのPHPモジュールとともに、Apache WebサーバーとPHPインタープリターをインストールするには、サーバーコンソールで次のコマンドを発行します。
apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-mbstring php7.0-curl php7.0-gd php7.0-xml php7.0-opcache
ApacheとPHPをインストールした後、root権限で次のコマンドを発行して、Webサーバーが稼働し、ポート80でネットワーク接続をリッスンしているかどうかをテストします。
netstat –tlpn
netstatネットワークユーティリティがDebianシステムにデフォルトでインストールされていない場合は、次のコマンドを実行してインストールします。
apt install net-tools
netstatコマンドの出力を調べると、Apache Webサーバーがポート80で着信ネットワーク接続をリッスンしていることがわかります。同じタスクで、Debian9にデフォルトで自動的にインストールされるssコマンドを使用することもできます。
ss- tulpn
システムでUFWファイアウォールアプリケーションなどのファイアウォールを有効にしている場合は、次のコマンドを発行して、HTTPトラフィックがファイアウォールを通過できるようにする新しいルールを追加する必要があります。
ufw allow WWW
または
ufw allow 80 / tcp
iptables rawルールを使用してDebianサーバーのファイアウォールルールを管理している場合は、次のルールを追加して、訪問者がオンラインショップを閲覧できるように、ファイアウォールでポート80のインバウンドトラフィックを許可します。
apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload
次に、以下のコマンドを発行して、eコマースアプリケーションが正しく実行されるために必要な次のApacheモジュールを有効にして適用します。
a2enmod rewrite
systemctl restart apache2
最後に、次の図に示すように、HTTPプロトコルを介してDebianマシンのIPアドレス、ドメイン名、またはサーバーFQDNにアクセスして、ApacheWebサーバーのデフォルトのWebページをクライアントのブラウザーに表示できるかどうかをテストします。マシンのIPアドレスがわからない場合は、ifconfigまたはipコマンドを実行して、サーバーのIPアドレスを明らかにします。
http://your_domain.tld
クライアントのトラフィックを保護するHTTPSプロトコルを介してX-CartWeb管理パネルのバックエンドとフロントエンドWebサイトをインストールしてアクセスするには、次のコマンドを発行してApacheWebサーバーのSSLモジュールとSSLサイト構成ファイルを有効にします。
a2enmod ssl
a2ensite default-ssl.conf
次に、テキストエディタでApacheのデフォルトSSLサイト構成ファイルを開き、次のサンプルに示すように、DocumentRootディレクティブの後に次のコード行を追加してURL書き換えルールを有効にします。
nano /etc/apache2/sites-enabled/default-ssl.conf
SSLサイト構成ファイルの抜粋:
Options + FollowSymlinks
AllowOverride All
すべての許可が必要
また、以下の抜粋に示すように、VirtualHost行に次の変更を加えます。
SSL Apacheファイルを閉じ、/ etc / apache2 / sites-enabled / 000-default.confファイルを開いて編集し、SSL構成ファイルと同じURL書き換えルールを追加します。次の例に示すように、DocumentRootステートメントの後にコード行を挿入します。
Options + FollowSymlinks
AllowOverride All
すべての許可が必要
最後に、Apacheデーモンを再起動して、これまでに構成されたすべてのルールを適用し、HTTPプロトコルを介してドメインにアクセスします。インストール時にApacheによって発行された自動的に自己署名された証明書のペアを使用しているため、ブラウザにエラー警告が表示されます。
systemctl restart apache2
https://yourdomain.tld
下の画像に示すように、続行してApacheのデフォルトのウェブページにリダイレクトされるように、警告を受け入れます。
UFWファイアウォールアプリケーションがHTTPSポートへの着信ネットワーク接続をブロックする場合は、次のコマンドを発行して、HTTPSトラフィックがファイアウォールを通過できるようにする新しいルールを追加する必要があります。
ufw allow'WWW Full'
または
ufw allow 443 / tcp
iptablesがネットワークレベルでDebianシステムを保護するためにインストールされたデフォルトのファイアウォールアプリケーションである場合、訪問者がドメイン名を閲覧できるように、ファイアウォールでポート443のインバウンドトラフィックを許可する次のルールを追加します。
iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload
次のステップでは、次の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
allow_url_fopen =On
memory_limit =128 M
upload_max_file_size =64M
date.timezone =Europe / London
次のリンクhttp://php.net/manual/en/timezonesでPHPドキュメントによって提供されるタイムゾーンのリストを参照して、大きなファイルの添付ファイルをサポートするために適切にmemory_limit変数を増やし、物理的な時間に応じてtime.zone変数を置き換えます。 .php。
PHP7で利用可能なOPCacheプラグインを介してWebサイトページの読み込み速度を上げたい場合は、以下に詳述するように、PHPインタープリター構成ファイルの下部に次の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構成ファイルを閉じ、PHP構成ファイルの終わりを確認して、以下のコマンドを発行して変数が正しく追加されているかどうかを確認します。
tail /etc/php/7.0/apache2/php.ini
上記で説明したすべての変更を行ったら、apacheデーモンを再起動して、次のコマンドを発行して新しい変更を適用します。
systemctl restart apache2
最後に、次のコマンドを実行してPHP情報ファイルを作成し、次の画像に示すように、次のURLのブラウザーからPHP情報スクリプトファイルにアクセスして、PHPタイムゾーンが正しく構成されているかどうかを確認します。日付設定まで下にスクロールして、phpタイムゾーンの構成を確認します。
echo'<?php phpinfo(); ?>'| tee /var/www/html/info.php
https://domain.tld/info.php
X-Cart eコマースWebアプリケーションは、ユーザー、セッション、連絡先、製品、カタログなどのさまざまな構成をRDBMSデータベースに保存します。このガイドでは、MariaDBデータベースをバックエンドとして使用するようにX-Cartを構成します。以下のコマンドを発行して、MariaDBデータベースとmysqlデータベースにアクセスするために必要なPHPモジュールをインストールします。
apt install mariadb-server php7.0-mysql
MariaDBをインストールしたら、netstatコマンドを実行して、デーモンが実行されているかどうかを確認し、ローカルホストのポート3306で接続をリッスンします。
netstat –tlpn | grep mysql
次に、MySQLコンソールにログインし、次のコマンドを発行してMariaDBルートアカウントを保護します。
mysql -h localhost
use mysql;
update user set plugin ='' where user ='root';
flush権限;
exit
次のステップでは、Debianストレッチリポジトリからのインストールパッケージによって提供されるスクリプトmysql_secure_installationを実行して、MariaDBを保護します。スクリプトの実行中に、MariaDBデータベースを保護するために設計された一連の質問が表示されます。たとえば、MySQLルートパスワードの変更、匿名ユーザーの削除、リモートルートログインの無効化、テストデータベースの削除などです。以下のコマンドを発行してスクリプトを実行し、MySQLデーモンを完全に保護するために尋ねられたすべての質問にyesと入力していることを確認してください。ガイドとして以外は、次のスクリプト出力を使用してください。
sudo mysql_secure_installation
注:このスクリプトのすべての部分を実行することは、すべてのMariaDBに推奨されます
本番環境で使用するサーバー!各ステップを注意深くお読みください!
MariaDBにログインして保護するには、ルートの現在の
パスワードが必要です。ユーザー。 MariaDBをインストールしたばかりで、
rootパスワードをまだ設定していない場合、パスワードは空白になります。
ここで、Enterキーを押すだけです。
rootの現在のパスワードを入力してください(noneの場合は入力してください):
OK、正常に使用されたパスワード、次に進みます...
rootパスワードを設定すると、適切な許可なしに誰もMariaDB
rootユーザーにログインできなくなります。
すでにrootパスワードが設定されているので、「n」と安全に答えることができます。
rootパスワードを変更しますか? [Y / n] y
新しいパスワード:
新しいパスワードを再入力してください:
パスワードが正常に更新されました!
特権テーブルの再読み込み..
...成功!
デフォルトでは、MariaDBのインストールには匿名ユーザー。
ユーザーアカウントを作成しなくても、誰でも
MariaDBにログインできます。
これはテストのみを目的としており、インストールを少しスムーズにすることを目的としています。
本番環境に移行する前に、それらを削除する必要があります。
匿名ユーザーを削除しますか? [Y / n] y
...成功!
通常、rootは「localhost」からの接続のみを許可する必要があります。これにより、
誰かがネットワークからrootパスワードを推測できないようになります。
rootログインをリモートで禁止しますか? [Y / n] y
...成功!
デフォルトでは、MariaDBには「test」という名前のデータベースが付属しており、誰でも使用できます。
アクセス。これもテストのみを目的としているため、本番環境に移行する前に
削除する必要があります。
テストデータベースを削除してアクセスします? [Y / n] y
-テストデータベースを削除しています...
...成功しました!
-テストデータベースの権限を削除しています。 。
...成功!
特権テーブルを再読み込みすると、これまでに行われたすべての変更が確実になります
すぐに有効になります。
今すぐ特権テーブルをリロードしますか? [Y / n] y
...成功!
クリーンアップ...
すべて完了です!上記のすべての手順を完了すると、MariaDBのインストールが安全になります。
MariaDBをご利用いただきありがとうございます!
MariaDBのセキュリティをテストするには、rootパスワードなしでコンソールからデータベースにログインしてみてください。 rootアカウントにパスワードが指定されていない場合は、データベースへのアクセスを拒否する必要があります。パスワードが指定されている場合は、次のスクリーンショットに示すように、ログインプロセスがMySQLコンソールに付与されている必要があります。
mysql -h localhost -u root
mysql -h localhost -u root –p
次に、MariaDBデータベースコンソールにログインし、次のコマンドを発行して、X-Cartアプリケーションのデータベースと、アプリケーションデータベースの管理に使用するパスワードを持つユーザーを作成します。それに応じて、データベース名、ユーザー、およびパスワードを置き換えます。
mysql –u root -p
データベースmy_xcartを作成します;
my_xcart。*のすべての特権を「x_password」で識別される「xcart_user」に付与します;
特権をフラッシュします;
終了
これまでに行ったすべての変更を適用するには、MySQLデーモンとApacheデーモンを再起動し、次のコマンドを発行してデーモンが実行されているかどうかを確認します。
systemctl restart mysql apache2
systemctl status mysql apache2
X-Cartをインストールします
eコマースオンラインショップのインストールですべてのシステム要件が満たされたら、デスクトップマシンからX-Cartダウンロードページ(https://www.x-cart.com/download.html)にアクセスし、最新のzipパッケージ圧縮アーカイブをダウンロードします。彼らのウェブサイトから必要なウェブフォームに記入することによって。
アーカイブのダウンロードが完了したら、scpなどのファイル転送プロトコルを使用して、ダウンロードしたzipファイルをデスクトップマシンからDebianサーバーにコピーします。 zipファイルをサーバーの/tmpディレクトリに転送します。 SSH経由でリモートサーバーの/tmpディレクトリを一覧表示し、zipファイルのアップロード転送が正常に完了したかどうかを確認します。
scp x-cart-5.3.3.4-gb.zip [email protected] _server_IP_or_domain:/ tmp
ssh [email protected] _server_IP_or_domain'ls / tmp'
zipアーカイブのダウンロードが完了したら、X-Cartzip圧縮アーカイブを/tmpディレクトリに抽出し、以下のコマンドを発行して、抽出したファイルを一覧表示します。また、Apache Webサーバーによってwebrootパスにインストールされたデフォルトのindex.htmlファイルを削除し、以前に作成したinfo.phpファイルも削除します。
rm /var/www/html/index.html
rm /var/www/html/info.php
cd / tmp
unzip x-cart-5.3.3.4-gb.zip
ls
X-Cartのインストールファイルは、xcartディレクトリの現在の作業ディレクトリ(この場合は/ tmpディレクトリ)にあります。 lsコマンドを発行して、xcartディレクトリファイルを一覧表示します。次のコマンドを発行して、xcartディレクトリのすべてのコンテンツをWebサーバーのドキュメントルートパスにコピーします。また、隠しファイル.htaccessをwebrootパスにコピーしてください。
cd / tmp
ls -al xcart /
cp -rf xcart / * / var / www / html /
cp xcart / .htaccess / var / www / html /
次に、次のコマンドを実行して、ApacheランタイムユーザーにWebルートパスへの完全な書き込み権限を付与します。 lsコマンドを使用して、/ var / www /html/ディレクトリにあるアプリケーションのインストール済みファイルの権限を一覧表示します。
chown -R www-data:www-data / var / www / html /
ls –al / var / www / html /
次に、ブラウザを開いてX-Cartオンラインショップのインストールプロセスに進み、HTTPSプロトコルを介してサーバーのIPアドレスまたはドメイン名またはサーバーFQDNをナビゲートします。次の図に示すように、最初のインストール画面で、X-CartインストーラーはX-cartがインストールされていないことを示すメッセージを表示します。 ここをクリックをクリックします インストールプロセスを開始するためのリンク。
https://yourdomain.tld
X-Cartの次のインストール画面で、下の画像に示すように、ウィザードによって使用許諾契約が表示されます。 [使用許諾契約とプライバシーポリシーに同意します]をオンにし、[次へ]ボタンをクリックしてライセンスに同意し、インストールプロセスを続行します。
次に、以下のスクリーンショットに示すように、電子メールアドレスに基づいてオンラインストアバックエンドの管理者アカウントを作成し、このアカウントのパスワードを選択します。 次へを押す ボタンをクリックして、インストールプロセスを続行します。
次のインストール画面で、X-Cartデータベース用に以前に作成したMySQLデータベースのアドレス、名前、および資格情報を追加します。 [サンプルカタログのインストール]をオンにして、MySQLの詳細設定とサーバーの詳細設定を押します
MySQLの詳細設定では、ポート値をデフォルトとして3306のままにし、プレフィックスをxc_のままにします。 [サーバーの詳細設定]まで下にスクロールして、サーバーのホスト名またはドメイン名を[Webサーバー名]と[セキュアWebサーバー名]に追加します。下の画像に示すように、ストアのデフォルトのタイムゾーンを選択し、[次へ]ボタンをクリックして、このインストール段階を終了します。
以下のスクリーンショットに示すように、インストーラーがディレクトリをセットアップし、データベーススキーマに必要なすべての情報を入力し、インストールプロセス全体が完了するまで数分待ちます。
インストールが完了すると、インストーラーは、オンラインショップの管理に使用されるX-Cartバックエンド管理パネルとストアのX-cartオンラインショップフロントエンド(カスタマーゾーン)にアクセスするために使用できる2つのリンクを表示します。クライアントに表示されます。
オンラインストアのフロントエンドにアクセスするには、カスタマーゾーンのリンクをクリックすると、以下のスクリーンショットに示すように、eコマースアプリケーションのフロントエンドがブラウザに表示されます。 HTTPSプロトコルを介してサーバーのIPアドレスまたはドメイン名に移動して、ストアのフロントエンドにアクセスすることもできます。
https://yourdomain.tld
ストアのバックエンド管理パネルにログインする前に、まずサーバーコンソールに戻り、次のコマンドを発行してX-cartショッピングシステム構成ファイルを保護します。
chmod -R 755 / var / www / html /
chmod -R 755 / var / www / html / etc /
chmod -R 644 /var/www/html/config.php
chown -R root:root / var / www / html / etc /
chown root:root /var/www/html/config.php
X-Cartオンラインストアを管理するには、管理者ゾーン(バックオフィス)リンクをクリックして、ストア管理バックエンドにアクセスします。以下のスクリーンショットに示すように、X-Cartバックエンドパネルにログインするには、インストールプロセス中に構成されたクレデンシャルを使用します。
また、HTTPSプロトコルを介してサーバーのIPアドレスまたはドメイン名に移動して/admin.php URLに移動することにより、X-Cart管理Webパネルにアクセスすることもできます。
https://yourdomain.tld/admin.php
X-Cartバックエンド管理パネルにログインすると、画面に通知が表示され、ビジネスの試用版が30日で期限切れになることが通知されます。また、以下のスクリーンショットに示すように、[更新]メニューに移動して、X-cartの現在のエディション用にリリースされたすべての更新をインストールする必要があります。
最後に、訪問者にX-CartフロントエンドWebサイトの閲覧を強制し、サーバーとクライアントブラウザー間のトラフィックを暗号化するために、HTTPSプロトコルを介してバックエンドインターフェイスに安全にアクセスするには、サーバーのターミナルに戻り、Webサイトにある.htaccessファイルを編集します。パス、以下のコマンドを発行します。
nano /var/www/html/.htaccess
次に、.htaccessファイルを編集し、ファイルの下部でネイティブPHP設定を以下の構成で変更します。独自のサーバーリソースに一致するようにPHP設定を変更できます。
.htaccess ファイルの抜粋:
#PHP設定を変更する
php_flag register_globals off最後に、以下のルールを適用して、ドメイントラフィックをHTTPSにリダイレクトし、インストールディレクトリとシステムディレクトリがWebリクエストを介してアクセスされないように保護します。
php_flag magic_quotes_gpc Off
php_value max_execution_time 200
php_value max_input_time 200
php_value upload_max_filesize 500M
php_value post_max_size 500M
#HTTPSにリダイレクト
RewriteEngine On
RewriteCond%{HTTPS} off
RewriteRule(。*)https://%{SERVER_NAME} / $ 1 [R、L]
それで全部です!これで、Debian9.2にX-Carteコマースアプリケーションが正常にインストールおよび設定されました。ただし、Apache HTTPサーバーは自己署名証明書を使用してサーバーと訪問者のブラウザー間のトラフィックを暗号化するため、警告メッセージが常に生成され、ブラウザーに表示されます。この警告はあなたのオンラインショップビジネスにとって悪いことです。この場合、信頼できる認証局によって発行された証明書を購入するか、Let’sEncryptCAから無料の証明書ペアを入手する必要があります。
X-Cartアプリケーションに関するその他のカスタム構成については、次のアドレスのドキュメントページにアクセスしてください:https://kb.x-cart.com/en/index.html