序章

Magentoは、eコマースWebサイトで最も人気のあるコンテンツ管理システムです。 これは、中小企業と大企業の両方で使用されており、何千もの拡張機能とテーマによって拡張できます。 Magentoは、MySQLデータベースシステム、PHPプログラミング言語、およびZendFrameworkの一部を使用します。

このチュートリアルでは、Ubuntu14.04にApacheWebサーバーを使用してMagentoをインストールする方法について説明します。これには、一般的なパフォーマンスとセキュリティの構成も含まれます。

前提条件

このガイドを開始する前に、最初に完了する必要のあるいくつかの手順があります。

Magentoの操作を処理する必要があるため、2GB以上のRAMを搭載したVPSにMagentoをインストールすることをお勧めします。 これにより、ストアの管理に関係するすべてのソフトウェアに、動作するのに十分なメモリが確保されます。

sudo権限を持つroot以外のユーザーにアクセスする必要があります。 まだこれを行っていない場合は、Ubuntu14.04初期サーバーセットアップガイドを実行してこのアカウントを作成できます。

さらに、VPSインスタンスにLAMP(Linux、Apache、MySQL、およびPHP)スタックをインストールする必要があります。 これらのコンポーネントがまだインストールおよび構成されていない場合は、このガイドを使用して、 Ubuntu14.04にLAMPをインストールする方法を学ぶことができます。

これらの手順が完了したら、root以外のユーザーとしてUbuntuサーバーに接続し、Magentoのインストールを続行できます。

ステップ1—ApacheとPHPを構成する

Magentoをダウンロードしてインストールする前に、Magentoのトラフィックとコンピューティングタスクを適切に処理するようにApacheとPHPを構成する必要があります。また、いくつかの追加モジュールをインストールしてアクティブ化する必要があります。

Apache仮想ホスト

まず、ApacheがMagentoサイトを正しく管理する方法を認識できるように、仮想ホストファイルを構成する必要があります。 テキストエディタを使用して、/etc/apache2/sites-available/に新しい仮想ホストファイルを作成できます。 この例では、仮想ホストの名前はmagentoですが、必要に応じて別の名前を付けることができます。

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

Magentoの仮想ホストのニーズはかなり単純です。 標準のHTTPポートであるポート80からのすべてのトラフィックをリッスンする<VirtualHost>タグから始めます。 次に、DocumentRootディレクティブを使用してサイトのファイルを見つける場所をApacheに指示する行を追加します。

<VirtualHost *:80>
    DocumentRoot /var/www/html
</VirtualHost>

Magentoが正しく機能するためには、いくつかのパラメーターを追加する必要があります。 ドキュメントルートを指す<Directory>タグ内に、Apacheのディレクトリインデックス作成、シンボリックリンクサポート、および多言語サポートのオプションを入力します。 また、.htaccessファイルがApache設定をオーバーライドできるようにする行を追加します。これにより、個々のフォルダーをよりきめ細かく制御できます。

. . .
    <Directory /var/www/html/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
    </Directory>
. . .

これらのコンポーネントがすべて配置されると、仮想ホストファイルは次のようになります。

<VirtualHost *:80>
    DocumentRoot /var/www/html
    <Directory /var/www/html/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
    </Directory>
</VirtualHost>

サーバーブロックの作成が終了したら、ファイルを保存して閉じます。 Apacheで新しいサイトを有効にするには、a2ensiteコマンドを使用します。

sudo a2ensite magento.conf

また、Apacheに付属しているデフォルトの仮想ホストを無効にします。これは、新しい仮想ホストと競合するためです。 Apacheでサイトを無効にするには、a2dissiteコマンドを使用します。

sudo a2dissite 000-default.conf

PHP設定

次に、ApacheがPHPプロセスに付与するメモリの量を変更する必要があります。 Magentoはほとんどすべての作業にPHPを使用しており、製品やカテゴリのインデックス作成などの複雑な操作にはかなりの量のメモリが必要です。 デフォルトでは、PHPはApacheで実行されている各スクリプトに最大128MBのメモリを割り当てます。 Magentoのスクリプトがメモリ不足になり、スクリプトがクラッシュしないようにするには、その制限を妥当な量まで引き上げる必要があります。

テキストエディタとroot権限でApacheのPHP設定ファイルを開きます。

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

PHPスクリプトごとのメモリ制限を宣言している次の行を見つけます。

memory_limit = 128M

その行を変更して、制限が512MBに引き上げられるようにします。 カタログ内の製品の数と毎日受け取る訪問者の数によっては、ストアのメモリニーズが高くなる場合があります。 一部の大規模なストアでは、メモリ制限を2GB以上に設定する必要がありますが、現時点では512MBで十分です。

memory_limit = 512M

注:メモリ番号の末尾には必ず「M」を使用してください。

この変更が完了したら、ファイルを保存して閉じます。 次にApacheを再起動すると、メモリ制限の変更が有効になります。

Magentoには、PHPに付属しているモジュールに加えて、いくつかのPHPモジュールが必要です。 ローカルパッケージインデックスを更新した後、Ubuntuのデフォルトリポジトリからこれらを直接取得できます。

sudo apt-get update
sudo apt-get install libcurl3 php5-curl php5-gd php5-mcrypt

これらの拡張機能により、MagentoはHTTPリクエスト、画像のサムネイル、データの暗号化を適切に処理できるようになります。 必要なパッケージがすべて揃ったので、ApacheのURL書き換えサポートとPHPの暗号化サポートを有効にできます。

sudo a2enmod rewrite
sudo php5enmod mcrypt

これらの構成と拡張機能の変更がすべて行われたら、変更が適用されるようにApacheサーバーインスタンスを再起動します。

sudo service apache2 restart

ステップ2—MySQLデータベースとユーザーを作成する

Magentoは、MySQLデータベースを使用して、製品や注文情報などのサイトデータを管理します。 MySQLをインストールして構成しましたが、Magentoを使用するためのデータベースとユーザーを作成する必要があります。

MySQLルートアカウントにログインすることから始めます。

mysql -u root -p

MySQLのインストール時に設定したMySQLのrootアカウントのパスワードの入力を求められます。 正しいパスワードが送信されると、MySQLコマンドプロンプトが表示されます。

まず、Magentoがデータを書き込めるデータベースを作成します。 この例では、データベースの名前はmagentoになりますが、任意の名前を付けることができます。

CREATE DATABASE magento;

注:すべてのMySQLステートメントはセミコロン(;)で終了する必要があるため、問題が発生した場合は、それが含まれていることを確認してください。

次に、新しいデータベースを操作するためだけに使用される新しいMySQLユーザーアカウントを作成します。 1つの機能を持つデータベースとアカウントを作成すると、アクセス許可やその他のセキュリティニーズをより適切に制御できるため、良いアイデアです。

新しいアカウントmagento_userに電話し、passwordのパスワードを割り当てます。 これらの例はあまり安全ではないため、必ず別のユーザー名とパスワードを使用する必要があります。

CREATE USER magento_user@localhost IDENTIFIED BY 'password';

この時点で、それぞれがMagento用に特別に作成されたデータベースとユーザーアカウントがあります。 ただし、ユーザーにはデータベースへのアクセス権がありません。 データベースへのユーザーアクセス権限を付与して、2つのコンポーネントをリンクする必要があります。

GRANT ALL PRIVILEGES ON magento.* TO magento_user@localhost IDENTIFIED BY 'password';

ユーザーがデータベースにアクセスできるようになったので、MySQLが最近行った特権の変更を認識できるように、特権をフラッシュする必要があります。 それが完了したら、MySQLコマンドプロンプトを終了できます。

FLUSH PRIVILEGES;
exit

これで、通常のSSHコマンドプロンプトに戻るはずです。

ステップ3—Magentoファイルをダウンロードして設定する

これで、Magentoをダウンロードしてインストールする準備が整いました。 Magento Community Editionの最新の安定バージョンを確認するには、コミュニティダウンロードページにアクセスしてください。 この例では、現在のリリース番号は1.9.0.1でしたが、利用可能な最新のリリースの代わりにその番号を使用する必要があります。 新しいリリースには、新機能や改善された機能に加えて重要なセキュリティ更新が含まれていることが多いため、常に最新バージョンのMagentoを使用することをお勧めします。

wgetを使用して、Magentoファイルアーカイブをホームディレクトリにダウンロードします。

cd ~
wget http://www.magentocommerce.com/downloads/assets/1.9.0.1/magento-1.9.0.1.tar.gz

アーカイブされたファイルを抽出して、tarでMagentoディレクトリを再構築できます。

tar xzvf magento-1.9.0.1.tar.gz

これで、ホームディレクトリにmagentoというディレクトリが作成されます。 解凍したファイルをApacheのドキュメントルートに移動する必要があります。このルートで、Webサイトの訪問者にファイルを提供できます。 rsyncには.htaccessなどの重要な隠しファイルが含まれるため、rsyncを使用してMagentoファイルを転送します。 転送が完了したら、magentoフォルダーを削除してホームディレクトリをクリーンアップし、そこにアーカイブできます。

sudo rsync -avP ~/magento/. /var/www/html/
rm -rf ~/magento*

rsyncは、解凍したディレクトリから/var/www/html/のドキュメントルートにすべてのコンテンツを安全にコピーします。 次に、ファイルとフォルダーの所有権をApacheのユーザーとグループに割り当てる必要があります。

sudo chown -R www-data:www-data /var/www/html/

この変更により、ApacheはMagentoファイルを作成および変更できるようになります。 これで、Magentoのブラウザベースの構成インターフェイスを介してインストールプロセスを完了する準備が整いました。

ステップ4—Webインターフェイスを介したインストールの完了

ブラウザでWebインターフェイスにアクセスするには、サーバーのドメイン名またはパブリックIPアドレスに移動します。

http://server_domain_name_or_IP/

前の手順が正しく実行されている場合は、Magentoのインストールウィザードが表示されます。 最初のページには使用許諾契約が表示されます。続行をクリックする前に、使用許諾契約に同意する必要があります。

Magento Installation Wizard

次のページでは、言語、タイムゾーン、通貨などのロケール設定を変更できます。 これらを製品の販売場所に最も適した設定に変更し、続行をクリックします。

Magento Localization Settings

[構成]ページは3つのセクションに分かれています。 最初のセクションでは、MagentoがMySQLデータベースに接続する方法を設定できます。 データベースタイプが「MySQL」に設定され、ホストが「localhost」に設定されていることを確認してください。 次に、データベース名ユーザー名、およびユーザーパスワードに、MySQLデータベースとユーザーアカウントを作成するときに決定した設定を入力する必要があります。ついさっき。

Magento Database Connection

[構成]ページの次のセクションでは、ストアのURLと、Apacheで制御される他のいくつかの機能を構成できます。 ベースURLがサーバーのドメイン名と一致していることを確認してください。 ドメイン名をまだ設定していない場合は、今のところサーバーのパブリックIPアドレスを使用できます。 管理者パスを「管理者」よりもわかりにくいものに変更して、誰かが管理者パネルを見つけにくくすることをお勧めします。 また、 Webサーバー(Apache)の書き換えを使用をチェックして、サイトのURLをユーザーや検索エンジンにとってより使いやすいものにすることも検討する必要があります。 この機能をサポートするために必要なApacheモジュールmod_rewriteはすでに有効になっており、使用する準備ができています。

Magento Web Access Options

構成ページの最後の部分は、セッションデータの保存方法を選択するためのものです。 Magentoには、ユーザーセッションデータを保存する2つの方法が付属しています。 ファイルシステムメソッドは、サーバー上のファイルにセッションを保存し、最初から最も簡単なメソッドです。 Database メソッドは、セッションをエントリとしてMySQLデータベースに保存し、複数のサーバーにまたがるMagentoのインストールに最適です。 今のところ、ファイルシステムメソッドを使用することができます。これは、通常、箱から出してすぐにパフォーマンスが向上するためです。

Magento Session Storage Options

構成オプションを選択して続行をクリックすると、管理者アカウントの作成ページに移動します。 ここで、Magentoストアの保守を担当する管理者アカウントを作成します。 ユーザー名とパスワードの両方が安全で推測しにくいことを確認してください。 暗号化キーフィールドは、既存のMagentoインストールからデータを移行する場合を除いて、空白のままにする必要があります。 フィールドを空白のままにすると、続行をクリックしたときにMagentoが新しい暗号化キーを生成し、次のページに表示します。 後で移行するために必要になった場合に備えて、その暗号化キーを安全な場所に保存してください。

Magento Admin Account

Webベースの構成が完了すると、Magentoのインストールを使用できるようになります。 Webブラウザでサーバーのドメイン名またはパブリックIPアドレスにアクセスして、新しいストアフロントを確認してください。

http://server_domain_name_or_IP/

すべてが正しく構成されている場合は、次のようなストアフロントが表示されます。

Magento Storefront

以前に設定したadminディレクトリに移動して、新しい管理サイトにアクセスすることもできます。

http://server_domain_name_or_IP/admin/

管理者のユーザー名とパスワードでログインして、新しいダッシュボードを表示します。

Magento Admin Dashboard

結論

Magentoストアが稼働しているので、プロジェクトカタログの作成を開始し、販売を開始する準備が整いました。

SSL証明書を使用してサイトトラフィックを暗号化するための重要な次のステップ。 開始に役立つガイドは次のとおりです。商用認証局からSSL証明書をインストールする方法