Ubuntu 14.04にMagentoをインストールして設定する方法

前書き

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

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

前提条件

このガイドを始める前に、最初に完了する必要があるいくつかのステップがあります。

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

sudo権限を持つroot以外のユーザーにアクセスする必要があります。 まだこれを行っていない場合は、Ubuntu 14.04 initial server setup guideを実行してこのアカウントを作成できます。

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

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

[[step-1 -—- configure-apache-and-php]] ==ステップ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に指示する行を追加します。


    DocumentRoot /var/www/html

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

. . .
    
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
    
. . .

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


    DocumentRoot /var/www/html
    
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
    

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

sudo a2ensite magento.conf

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

sudo a2dissite 000-default.conf

PHPの設定

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

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

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

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

memory_limit = 128M

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

memory_limit = 512M

Note:メモリ番号の末尾には必ず「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

[[step-2 -—- create-a-mysql-database-and-user]] ==ステップ2—MySQLデータベースとユーザーを作成します

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

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

mysql -u root -p

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

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

CREATE DATABASE magento;

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

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

新しいアカウントを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コマンドプロンプトに戻るはずです。

[[step-3 -—- download-and-set-up-magento-files]] ==ステップ3—Magentoファイルをダウンロードして設定する

これで、Magentoをダウンロードしてインストールする準備ができました。 Magento Community Editionの最新の安定バージョンを確認するには、community download pageにアクセスしてください。 この例では、現在のリリース番号は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のドキュメントルートに移動して、ウェブサイトの訪問者に提供できるようにする必要があります。 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のブラウザベースの設定インターフェースを使用してインストールプロセスを完了する準備ができました。

[[step-4 -—- completing-installation-through-the-web-interface]] ==ステップ4—Webインターフェイスを介したインストールの完了

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

http://server_domain_name_or_IP/

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

Magento Installation Wizard

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

Magento Localization Settings

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

Magento Database Connection

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

Magento Web Access Options

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

Magento Session Storage Options

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

Magento Admin Account

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

http://server_domain_name_or_IP/

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

Magento Storefront

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

http://server_domain_name_or_IP/admin/

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

Magento Admin Dashboard

結論

Magentoストアを立ち上げて実行したら、プロジェクトカタログの作成を開始して販売を開始する準備ができました。

SSL証明書を使用してサイトトラフィックを暗号化するための重要な次のステップ。 開始に役立つガイドは次のとおりです:How To Install an SSL Certificate from a Commercial Certificate Authority