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

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

このガイドでは、無料のオンラインショッピングカートを作成するために、Debian9.1リリースに最新バージョンのPrestashopをインストールして設定する方法を説明します。

Prestashopは、PHPプログラミング言語で記述された無料のオープンソースeコマースコンテンツ管理プラットフォームであり、多くの場合、Apache / Nginx Webサーバー、PHP、およびMySQL/MariaDBデータベース管理システムの下でLinuxに展開されます。 Prestashop CMSは、今日、さまざまなビジネス向けのオンラインショップを作成し、サービスや商品を宣伝および販売するために非常に使用されています。

要件
  • ベアメタルマシンまたは仮想プライベートサーバーへのDebian9の最小限のインストール。
  • システムネットワークインターフェースカードの1つに設定された静的IPアドレス。
  • ローカルまたはリモートアカウントのsudoroot権限、またはrootアカウントへの直接アクセス。
  • 適切なDNSレコードが構成された、展開に応じたプライベートまたはパブリックのドメイン名。
初期構成

自分のサーバーにソースからPrestashopをインストールして構成する前に、まずシステムがアプリケーションのコンパイルとインストールに必要なすべてのソフトウェア要件を満たしていることを確認してください。最初のステップで、以下のコマンドを発行して、システムリポジトリとソフトウェアパッケージを更新します。

apt update
apt upgrade

次のステップでは、次のコマンドを実行して、コマンドラインからシステムをさらに管理するために使用されるいくつかの必要なユーティリティをインストールします。

apt install wget bash-completion zip unzip

次に、次のコマンドを実行して、システムの名前を設定します。それに応じてホスト名変数を置き換えます。

hostnamectl set-hostname shop

以下のコマンドを発行して、マシンのホスト名とhostsファイルを確認します。

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

最後に、カーネルの更新とホスト名の変更を適切に適用するために、Debianサーバーを再起動します。

systemctl reboot

Prestashopは、主にPHPサーバー側プログラミング言語で記述されたWebベースのCMSeコマースプラットフォームです。 Prestashop PHPファイルスクリプトを実行するには、Apache HTTPサーバーなどのWebサーバーと、PHP処理ゲートウェイがサーバーにインストールされて動作している必要があります。 Prestashopが正しく実行するために必要なすべてのPHPモジュールとともに、Apache WebサーバーとPHPインタープリターをインストールするには、サーバーコンソールで次のコマンドを発行します。

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-xml php7.0-gd php7.0-json php7.0-zip php7.0-intl php7.0-mcrypt php7.0-curl php7.0-intl php7.0-opcache

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

netstat –tlpn

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

apt install net-tools

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

ss -tlpn

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

ufw allow WWW

または

ufw allow 80/tcp

iptablesを使用している場合 Debianサーバーでファイアウォールルールを管理するための生のルール。次のルールを追加して、ファイアウォールでポート80のインバウンドトラフィックを許可し、訪問者がPrestashopオンラインショップを閲覧できるようにします。

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload

次に、以下のコマンドを発行して、PrestashopCMSが正しく実行するために必要な次のApacheモジュールを有効にして適用します。

a2enmod rewrite
systemctl restart apache2

最後に、次の図に示すように、HTTPプロトコルを介してDebianマシンのIPアドレス、ドメイン名、またはサーバーFQDNにアクセスして、ApacheWebサーバーのデフォルトのWebページをクライアントのブラウザーに表示できるかどうかをテストします。マシンのIPアドレスがわからない場合は、 ifconfigを実行してください またはipa サーバーのIPアドレスを明らかにするコマンド。

http://your_domain.tld

クライアントのトラフィックを保護するHTTPSプロトコルを介してPrestashopWeb管理パネルとフロントエンドWebサイトをインストールしてアクセスするには、次のコマンドを発行してApacheWebサーバーのSSLモジュールとSSLサイト構成ファイルを有効にします。

a2enmod ssl
a2ensite default-ssl.conf

次に、テキストエディタでApacheのデフォルトSSLサイト構成ファイルを開き、 DocumentRoot の後に次のコード行を追加して、URL書き換えルールを有効にします。 以下のサンプルに示すように、ディレクティブ:

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

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

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

また、以下の抜粋に示すように、VirtualHost行に次の変更を加えます。

        <VirtualHost *:443>

SSL Apacheファイルを閉じて、 /etc/apache2/sites-enabled/000-default.confを開きます。 編集用のファイルを作成し、SSL構成ファイルと同じURL書き換えルールを追加します。 DocumentRootの後にコード行を挿入します 以下の例に示すようなステートメント。

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

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

systemctl restart apache2

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
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

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

で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

Prestashopは、ユーザー、セッション、連絡先、製品、カタログなどのさまざまな構成をRDBMSデータベースに保存します。このガイドでは、MariaDBデータベースをバックエンドとして使用するようにPrestashopを構成します。以下のコマンドを発行して、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 privileges;
exit

次のステップでは、スクリプト mysql_secure_installationを実行してMariaDBを保護します Debianストレッチリポジトリからのインストールパッケージによって提供されます。実行中、スクリプトは、MariaDBデータベースを保護するために設計された一連の質問をします。たとえば、MySQLルートパスワードの変更、匿名ユーザーの削除、リモートルートログインの無効化、テストデータベースの削除などです。以下のコマンドを発行してスクリプトを実行し、MySQLデーモンを完全に保護するために尋ねられたすべての質問にyesと入力していることを確認してください。ガイドとして以外は、以下のスクリプト出力を使用してください。

sudo 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
が必要です。 rootユーザーの
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!

MariaDBのセキュリティをテストするには、rootパスワードなしでコンソールからデータベースにログインしてみてください。 rootアカウントにパスワードが指定されていない場合は、データベースへのアクセスを拒否する必要があります。パスワードが指定されている場合は、以下のスクリーンショットに示すように、ログインプロセスがMySQLコンソールに付与されている必要があります。

mysql -h localhost -u root
mysql -h localhost -u root –p

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

mysql –u root -p
create database my_shop;
grant all privileges on my_shop.* to 'shop_user' identified by 'shop_password';
flush privileges;
exit

これまでに行ったすべての変更を適用するには、MySQLデーモンとApacheデーモンを再起動し、次のコマンドを発行してデーモンが実行されているかどうかを確認します。

systemctl restart mysql apache2
systemctl status mysql apache2

PrestaShopをインストール

eコマースオンラインショップのインストールに関するすべてのシステム要件が満たされたら、GitHub https://github.com/PrestaShop/PrestaShop/releasesのPrestashopリリースページにアクセスし、wgetユーティリティを発行して最新のzipパッケージ圧縮アーカイブをダウンロードします。次のサンプルに示されています。

wget https://github.com/PrestaShop/PrestaShop/releases/download/1.7.2.3/prestashop_1.7.2.3.zip

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

rm /var/www/html/index.html
rm /var/www/html/info.php
unzip prestashop_1.7.2.3.zip -d /var/www/html/
ls /var/www/html/

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

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

ブラウザを開いてPrestashopCMSのインストールを続行し、HTTPSプロトコルを介してサーバーのIPアドレスまたはドメイン名をナビゲートします。次の画像に示すように、最初のインストール画面で、Prestashopインストーラスクリプトがprestashop.zipファイルのコンテンツをWebサーバーのWebルートパスから展開します。

https://yourdomain.tld

抽出が完了したら、コマンドラインに切り替えて/ var / www / html /ディレクトリの内容を一覧表示し、Prestashopで抽出されたすべてのファイルを表示できます。

ls -la /var/www/html/

次の画面で、Prestashopインストーラーはウェルカム画面を表示し、インストールプロセスを続行するためにインストール言語を選択するように求めます。言語を選択し、[次へ]ボタンをクリックして、次のステップに進みます。

次のインストール画面で、[ライセンス条項に同意します]をオンにし、[次へ]ボタンをクリックして続行します(下の画像を参照)。

Prestashopインストーラーは、システムおよび環境との互換性を判断するために一連のチェックを実行し、見つかった場合は最終的なエラーを一覧表示します。システム環境がPrestaShopのインストールと互換性がある場合は、以下のスクリーンショットに示すように、Webページに緑色のメッセージが表示されます。もう一度、[次へ]ボタンをクリックして、インストールプロセスをさらに進めます。

次の画面で、ショップの名前、主なアクティビティ、ショップが登録されている国、アカウントの詳細など、ストアに関する必要な情報を追加します。以下のスクリーンショットに示すように、PrestashopバックエンドWebパネルにアクセスするための電子メールアドレスと、このアカウントに使用される強力なパスワードを指定します。終了したら、[次へ]ボタンを押して続行します。

次のインストール画面で、Prestashop用に以前に作成したMySQLデータベースのアドレス、名前、および資格情報を「データベース接続を今すぐテストする」で追加します。 ボタン。 MySQLデータベースへの接続が成功したら、[次へ]ボタンをクリックしてインストールプロセスを開始します。

以下のスクリーンショットに示すように、インストーラーがデータベースに必要なすべての情報を入力し、インストールプロセスが完了するまで数分待ちます。

インストールが完了すると、インストーラーは、バックアップされたWeb管理パネルのログイン情報とPrestashopバックエンドオフィスにアクセスするために必要なハイパーリンクを表示します。 、オンラインショップの管理に使用されます。フロントオフィス あなたの店の、それはあなたのクライアントに表示されます。

ストアのバックエンドにアクセスするには、必ずバックオフィスの[管理]ボタンをクリックしてください。今後、他のブラウザからWeb管理パネルにログインするには、ストアのバックオフィスアドレスを書き留めるかブックマークする必要があります。

バックオフィスにログインしようとすると、次の画像に示すような警告メッセージが表示され、ドメインのWebルートパスからインストールディレクトリを削除する必要があることが通知されます。

Prestashopがサポートする管理パネルにログインできるようにするには、サーバーコンソールに戻り、次のコマンドを実行してPrestashopのインストールディレクトリを削除します。

rm -rf /var/www/html/install/

その後、次のスクリーンショットに示すように、Prestashop Back Officeページをリロードし、インストールプロセス中に資格情報を設定して管理パネルにログインします。

最初のログイン時に、ウェルカムメッセージがブラウザに表示されます。スタートボタンを押すと、下のスクリーンショットに示すように、最初の製品の追加を開始できるカタログにリダイレクトされます。

PrestashopフロントエンドWebページにアクセスするには、ブラウザにドメイン名を入力するだけで、次のスクリーンショットに示すように、最初のページに自動的にリダイレクトされます。

ただし、現時点では、暗号化されていないHTTPプロトコルを介してのみセキュリティで保護されていないショップにアクセスできます。 PrestashopでHTTPSサポートを有効にするには、バックオフィスパネルにログインし、設定->ショップパラメータ->一般に移動します。 ここをクリックして、ショップがHTTPSをサポートしているかどうかを確認してください 下の画像に示すように、リンク。

SSLテストが実行されたら、SSLを有効にするを切り替えます ボタンをクリックして[はい]をクリックし、ページの一番下までスクロールして、[保存]をクリックします。 ボタンをクリックして、構成を適用します。ただし、これまでのところ、この構成では、バックオフィスリンクに対してのみSSLサポートが有効になっています。ストアのドメイン名にアクセスするクライアントは、暗号化されていない接続を介して転送されます。

ドメインを介した訪問者のトラフィックを保護するには、すべてのページでSSLを有効にするを切り替えます 下の画像に示すように、ボタンを[はい]に切り替え、下にスクロールして保存をクリックします。 ページ下部のボタンをクリックして、設定を適用します。

クライアントがHTTPSプロトコルを介した安全な接続を介してドメインにアクセスするように自動的にリダイレクトされるかどうかをテストするには、Prestashopフロントエンドページを更新するか、ブラウザにドメイン名を入力します。下の画像に示すように、ショップのドメイン名にはHTTPプロトコルを介してアクセスする必要があります。

それで全部です!これで、Debian9.1にPrestaShopが正常にインストールおよび設定されました。ただし、Apache HTTPサーバーは自己署名証明書を使用してサーバーと訪問者のブラウザー間のトラフィックを暗号化するため、訪問者が最初にストアにアクセスしたときに常に警告メッセージが生成され、ブラウザーに表示されます。この警告はあなたのオンラインショップビジネスにとって悪いことです。この場合、信頼できる認証局によって発行された証明書を購入するか、Let’sEncryptCAから無料の証明書ペアを入手する必要があります。

Prestashopに関するその他のカスタム構成については、次のアドレスのドキュメントページにアクセスしてください。http://doc.prestashop.com/display/PS17/Installing+PrestaShop


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

  2. Debian11にJava17をインストールする方法

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

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

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

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

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

  2. Debian11にNextcloudをインストールする方法

  3. MySQL8をDebian10にインストールする方法