ウェブサイト検索

Debian 12にApacheと無料のLet's Encrypt SSLを使用してPrestashopをインストールする方法


Debian 12にApacheと無料のLet's Encrypt SSLを使用してPrestashopをインストールする方法

プレスタショップは、PHPで書かれた無料のオープンソースのeコマースソリューションです。これにより、自分自身でオンラインショップをホストし、作成し、オンラインビジネスを成長させることができます。プレスタショップは、包括的なeコマースウェブサイトを作成するための完全にカスタマイズ可能で機能豊富なeコマースソリューションです。プレスタショップは、現在、世界中で250,000以上のオンラインショップに利用されており、65言語で利用可能です。

このチュートリアルでは、Debian 12サーバーにPrestaShopをインストールする手順をステップバイステップで案内します。LAMPスタック(Apache2、MariaDB、PHP)を使用してPrestaShopをインストールし、その後、Letsencryptを使用してSL/TLS証明書でPrestaShopのインストールを保護します。

前提条件

始める前に、以下の準備をしてください。

  • Debian 12サーバー。
  • 管理者権限を持つ非ルートユーザー。
  • ドメイン名はサーバーのIPアドレスにポイントされています。

依存関係のインストール

PrestaShopは、PHPで書かれたオンラインストアを作成するためのオープンソースプラットフォームで、データベースにはMariaDB/MySQLが使用されます。次のステップでは、LAMPスタック(Apache2、MariaDB、PHP)のパッケージといくつかの追加PHP拡張を含むPrestaShopの依存関係をインストールします。現在のPrestaShopはまだPHP 8.2をサポートしていないため、特にPHP 8.1をサードパーティのリポジトリを介してインストールします。

まず、以下のコマンドを実行して、サードパーティのPHPリポジトリとGPGキーをDebianシステムに追加します。

sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'

次のaptコマンドを実行して、Debianパッケージインデックスを更新およびリフレッシュします。

sudo apt update

リポジトリが更新されたら、次のコマンドを使用してPrestaShopの依存関係をインストールします。これにより、PrestaShopに必要なLAMPスタック(Apache2、MariaDB、PHP 8.1)パッケージ、Certbot、Certbot Apacheプラグイン、および追加のPHP拡張がインストールされます。

sudo apt install apache2 mariadb-server certbot python3-certbot-apache php8.1 php8.1-curl php8.1-xmlrpc php8.1-soap php8.1-intl php8.1-zip php8.1-cli php8.1-mysql php8.1-common php8.1-opcache php8.1-memcached php8.1-bcmath php8.1-gd php8.1-mbstring php8.1-xml php8.1-gmp php8.1-imagick unzip

インストールを続行するにはyを入力してください。

依存関係がインストールされたら、次のコマンドを使用して各依存関係を確認してください。

apache2 サービスが実行中であることを確認するために、以下の systemctl コマンドを実行してサービスを確認してください。

sudo systemctl is-enabled apache2
sudo systemctl status apache2

以下の結果が表示され、apache2サービスが実行中であり、有効であることが確認されます。

次のコマンドを使用してmariadbサービスを確認してください。

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

下記に表示された出力は、mariadbサービスが実行中であり、有効になっていることを確認しています。

最後に、次のコマンドを実行して、PHPのバージョンを確認し、有効な拡張モジュールの一覧を表示してください。

php -v
php -m

あなたのDebianマシンにPHP 8.1がインストールされていて、拡張機能が有効になっていることを確認するべきです。

MariaDBサーバーの設定

PrestaShopの依存関係をインストールしたので、次のステップはユーティリティを使用してMariaDBサーバーのインストールを保護することです。その後、PrestaShop用の新しいデータベースとユーザーを作成する必要があります。

以下のmariadb-secure-installationコマンドを実行して、MariaDBサーバーのインストールをセキュリティ強化してください。

sudo mariadb-secure-installation

新しい設定を確認して適用するにはYを入力し、拒否するにはnを入力してください。次に、あなたに尋ねられるMariaDBサーバーの設定があります:

  • UNIXソケット認証に切り替えますか?nと入力してENTERキーを押してください。デフォルトのMariaDBのrootユーザーはすでに保護されています。オプションとして、yを入力することで有効にすることもできます。
  • ルートパスワードを変更しますか? 確認するには y を入力して、新しい MariaDB ルートパスワードを設定してください。
  • 匿名ユーザーを削除しますか?確認するにはyを入力してください。
  • リモートからのルートログインを禁止しますか? 確認するには 'y' を入力してください。MariaDBのルートユーザーを使用している場合、ローカル接続のみが許可されます。
  • テストデータベースとそのアクセスを削除しますか?デフォルトのデータベース 'test' を削除するには y を入力してください。
  • 最後に、yを再入力してMariaDBサーバーのすべてのテーブルの特権を再読み込みし、新しい変更を適用します。

次に、以下のクライアントコマンドを実行してMariaDBサーバーにログインします。プロンプトが表示されたら、MariaDBのrootパスワードを入力してください。

sudo mariadb -u root -p

ログイン後、以下のクエリを実行して新しいデータベースprestashopdb、ユーザーprestashop、パスワードpasswordを作成してください。ここで作成された新しいMariaDBのデータベースとユーザーは、PrestaShopのインストールのためのユーザーになります。

CREATE DATABASE prestashopdb;
GRANT ALL PRIVILEGES ON prestashopdb.* TO 'prestashop'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

次に、MariaDBユーザーprestashopを確認するために、次のクエリを実行します。

SHOW GRANTS FOR 'prestashop'@'localhost';

下に表示されている出力は、MariaDBユーザーprestashopがデータベースprestashopdbにアクセスすることを許可されていることを示しています。

最後に、MariaDBサーバーから退出するには「quit」と入力してください。

PHPの設定

MariaDBサーバーの設定後、php.iniファイルを変更してPHPインストールを設定します。次に、PrestaShopの要件を満たすようにPHP設定に関連するすべてが整っているかどうかを確認します。

次のnanoエディタコマンドを使用して、デフォルトのPHP設定/etc/php/8.1/apache2/php.iniを開きます。

sudo nano /etc/php/8.1/apache2/php.ini

以下の設定を変更し、date.timezone と memory_limit のパラメータをサーバー環境に合わせて必ず調整してください。

date.timezone = Europe/Amsterdam
max_execution_time = 130
memory_limit = 256M
allow_url_fopen = On
allow_url_include = Off
post_max_size = 128M
upload_max_filesize = 128M
max_input_vars = 5000

作業が終わったらファイルを保存してエディタを終了してください。

次に、次のsystemctlコマンドを実行してapache2サービスを再起動し、変更を適用します。

sudo systemctl restart apache2

PHPを設定したので、サーバー環境がPrestaShopのインストールに準備が整っていることを確認します。これは、PrestaShopが提供する環境チェッカーを使用することで行うことができます。

/var/www/html ディレクトリに移動し、以下の wget コマンドを使用して環境チェックスクリプトをダウンロードします。現在作業中のディレクトリに v1.1.tar.gz というファイルが表示されます。

cd /var/www/html
wget https://github.com/PrestaShop/php-ps-info/archive/refs/tags/v1.1.tar.gz

v1.1.tar.gzファイルを展開し、展開されたディレクトリの名前をcheck-psに変更してください。

tar -xf v1.1.tar.gz
mv php-ps-info-1.1 check-ps

最後に、ウェブブラウザを開いて、サーバーのIPアドレスの後にcheck-psパスを追加して、PrestaShop環境チェッカースクリプトにアクセスします。例えば、http://192.168.10.15/check-ps/phppsinfo.phpのようになります。

デフォルトのユーザー名「prestashop」とパスワード「prestashop」を入力し、サインインをクリックしてください。

PrestaShopの要件を満たすように、依存関係、PHP設定、およびPHP拡張機能が整っていることを確認してください。もしそうでない場合は、ページの推奨に基づいて設定を調整できます。

プレスタショップをダウンロード中

MariaDBサーバーとPHPが設定されたので、次のステップはPrestaShopのソースコードをダウンロードし、インストールディレクトリを適切な権限と所有権で設定することです。

/var/www/に作業ディレクトリを移動し、以下のwgetコマンドを使用してPrestaShopのソースコードをダウンロードします。最新のPrestaShopのバージョンを取得するために、PrestaShopのリリースページを確認してください。

cd /var/www/
wget https://github.com/PrestaShop/PrestaShop/releases/download/8.1.2/prestashop_8.1.2.zip

以下のunzipコマンドを使用してPrestaShopのソースコードを抽出してください。prestashop.zipというzipファイル内にPrestaShopのソースが表示されるはずです。

unzip prestashop_8.1.2.zip

以下のunzipコマンドを使用して、ファイルprestashop.zipをターゲットディレクトリ/var/www/prestashopに抽出してください。PrestaShopのソースコードはprestashopディレクトリに抽出されるため、あなたのPrestaShopのインストールディレクトリは/var/www/prestashopである必要があります。

unzip prestashop.zip -d /var/www/prestashop

最後に、PrestaShopのインストールディレクトリ/var/www/prestashopの適切な所有権と権限を設定するために、次のコマンドを実行します。所有権はwww-dataを使用し、権限はu+rwにする必要があります。これは、所有者が対象ディレクトリを読み書きできることを意味します。

sudo chown -R www-data:www-data /var/www/prestashop
sudo chmod u+rw /var/www/prestashop

Apache2 仮想ホストの設定

次のステップでは、prestaShopを実行するために使用される新しいApache2バーチャルホスト設定を作成します。その前に、ドメイン名がサーバーのIPアドレスを指していることを確認してください。

まず、以下のコマンドを実行してApacheのrewriteモジュールを有効にします。

sudo a2enmod rewrite

次に、nanoエディタコマンドを使用して新しい仮想ホスト設定/etc/apache2/sites-available/prestashop.confを作成します。

sudo nano /etc/apache2/sites-available/prestashop.conf

以下の設定を挿入し、ServerNameパラメータ内のドメイン名を必ず変更してください。

<VirtualHost *:80>

    ServerAdmin admin@howtoforge.local
    DocumentRoot /var/www/prestashop
    ServerName howtoforge.local

    <Directory /var/www/prestashop>
        # enable the .htaccess rewrites
        AllowOverride All
        Options +Indexes
        Require all granted
        
        # Disable back office token
        # SetEnv _TOKEN_ disabled
    </Directory>

    ErrorLog /var/log/apache2/prestashop.error.log
    CustomLog /var/log/apache2/prestashop.access.log combined
</VirtualHost>

完了したらファイルを保存して閉じてください。

次に、以下のコマンドを実行して仮想ホストファイルprestashop.confを有効にし、Apacheの設定を確認します。

sudo a2ensite prestashop.conf
sudo apachectl configtest

適切なApache設定がなされていれば、出力にSyntax OKが表示されます。

以下の systemctl コマンドを実行して apache2 サービスを再起動し、変更を適用してください。

sudo systemctl restart apache2

最後に、次の certbot コマンドを実行して、PrestaShop ドメイン名の SSL/TLS 証明書を生成してください。メールアドレスとドメイン名を自分の情報に変更することを忘れないでください。

sudo certbot --apache --agree-tos --no-eff-email  --redirect --hsts --staple-ocsp --email alice@howtoforge.local -d howtoforge.local

プロセスが完了すると、あなたの仮想ホストファイルprestashop.confは自動的にHTTPSで設定され、SSL/TLS証明書は/etc/letsencrypt/live/howtoforge.localディレクトリに利用可能になります。

コマンドラインを使用してPrestaShopをインストールする

この時点で、Web UIまたはコマンドラインを通じてPrestaShopのインストールを完了できます。この例では、コマンドラインを使ってPrestaShopのインストールを完了します。

PrestaShopのインストールディレクトリ/var/www/prestashop/installに移動してください。

cd /var/www/prestashop/install

コマンドラインからPrestaShopのインストールを開始するには、次のようにindex_cli.phpスクリプトを実行してください。 ドメイン名、MariaDBデータベースのホスト名、名前、ユーザー名、およびパスワードの詳細を必ず変更してください。また、PrestaShopの管理用に使用するメールアドレスとパスワードも必ず変更してください。

sudo -u www-data php index_cli.php --domain=howtoforge.local --db_server=127.0.0.1 --db_name=prestashopdb --db_user=prestashop --db_password=password --prefix=myps_ --email=alice@howtoforge.local --password=Passw0rd

インストールが完了すると、以下のように「インストール成功」という出力が表示されます。

次に、いくつかのPrestaShopディレクトリに適切な権限を設定するために、以下のコマンドを実行します。これにより、www-dataが所有者として対象のディレクトリを読み書きできるようになります。

sudo chmod u+rw /var/www/prestashop/var/cache
sudo chmod u+rw /var/www/prestashop/var/logs
sudo chmod u+rw /var/www/prestashop/img
sudo chmod u+rw /var/www/prestashop/mails
sudo chmod u+rw /var/www/prestashop/modules
sudo chmod u+rw /var/www/prestashop/translations
sudo chmod u+rw /var/www/prestashop/upload
sudo chmod u+rw /var/www/prestashop/download
sudo chmod u+rw /var/www/prestashop/app/config
sudo chmod u+rw /var/www/prestashop/app/Resources/translations

以下のコマンドを実行して、/var/www/prestashop/install ディレクトリを削除し、PrestaShop のインストールを保護してください。

sudo rm -rf /var/www/prestashop/install

次に、ウェブブラウザを開いて、http://howtoforge.local/ のようなあなたのPrestaShopドメイン名にアクセスします。インストールが成功すると、安全なHTTPS接続にリダイレクトされ、あなたのPrestaShopインストレーションのデフォルトのホームページが表示されるはずです。

次に、プレスタショップのドメイン名に管理パスを続けて訪れてください。例えば、https://howtoforge.local/admin/ のようになります。すべてがうまくいけば、プレスタショップのログインページにリダイレクトされるはずです。また、プレスタショップのデフォルトのURLパスがadmin051rgjztgtkvgcie6dpに変更されているのがわかります。

管理者ユーザー名とパスワードを入力し、次にログインをクリックしてください。

適切な管理者ユーザー名とパスワードを持っている場合、PrestaShopの管理ダッシュボードが表示されるはずです。

もう一つの考慮事項として、次のコマンドを実行してPrestaShopの管理者ログインを確認できます。

ls /var/www/prestashop

以下の出力は、PrestaShopの管理ページがadmin051rgjztgtkvgcie6dpで利用可能であることを示しています。

結論

最後に、Debian 12 に PrestaShop をステップバイステップで成功裏にインストールしました。LAMP スタック(Apache2、MariaDB、PHP)を使用して PrestaShop 8 をインストールし、SSL/TLS 証明書で PrestaShop のインストールを保護しました。さらに、コマンドラインから PrestaShop のインストールを開始する方法も学びました。これで、新しいテーマや追加の拡張機能を追加して PrestaShop のインストールを拡張できます。

関連記事: