Ubuntuローカル環境へのZen CartインストールとSSL設定

Ubuntu10.10のローカル環境にZen Cartをインストールしたら、文字化けを起こして管理画面にも入れない状態となった。文字化けに関しては、Zen Cartのフォーラムに「文字化け」に関しての質問というトピックにヒントがあった。

トピックで指摘されている通り、phpMyAdminでデータベースを作成するとき、照会順序をutf-8_general_ciにしてやると、文字化けはあっさり解決した。ただし、管理画面の方は、相変わらず真っ白のままで、ログインできない状態。

ブラウザをFirefoxからGoogle Chromeに切り替えてみると、この真っ白な状態が500 internal server errorであることが分かって、.htaccessの設定など弄ってみたが、結局、問題は解決しなかった。

まあ、無理にローカル環境にZen Cartをインストールしなくても、レンタルサーバー上にお試し環境を作っても構わないのだが、それじゃ何だかすっきりしない。そこで「これはSSLを設定していないからではないか」という根拠のない直感を信じて、UbuntuにSSLの設定を行ってみた。

自己署名証明書の発行手順

今回はあくまでもZen Cartのお試し環境を構築するためだけのSSL設定なので、自己署名証明書の発行ということになる。発行手順は、Ubuntuのフォーラムにもあるのだが、この記事はバージョンが古いということもあって、この手順どおりでは、SSLの設定はできなかった。

そこで、以下のとおりトピックをリメイクしてみた。apache2 php5 mysql-serverはすでにインストールされているものとして話を進めている。

  1. 先ずはコマンドライン端末から次のコマンドを打ち込む。($はプロンプト)
    $ sudo a2enmod ssl
  2. 続いて、コマンドライン端末から次のコマンドを打ち込む。
    $ sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

    端末に次のようなエラーメッセージが表示されたら、/etc/apache2以下にsslという名でフォルダを作成。もう一度コマンドを打ち込む。/etc/apache2/以下に apache.pem と XXXXXX(ランダムな文字列) ができる。

    Could not create certificate. Openssl output was:
    Generating a 1024 bit RSA private key
    ….++++++
    ……………………..++++++
    writing new private key to ‘/etc/apache2/ssl/apache.pem’
    /etc/apache2/ssl/apache.pem: No such file or directory
    3608:error:02001002:system library:fopen:No such file or directory:bss_file.c:356:fopen(‘/etc/apache2/ssl/apache.pem’,’w’)
    3608:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:358:

  3. /usr/share/doc/apache2.2-common/examples/apache2/extraのなかのhttpd-ssl.conf.gzを/etc/apache2/sites-available/にコピーして、そこで解凍してファイル名をsslに変更。
    $ sudo cp /usr/share/doc/apache2.2-common/examples/apache2/extra/httpd-ssl.conf.gz /etc/apache2/sites-available/

    $ cd /etc/apache2/sites-available/

    $ sudo gzip -d httpd-ssl.conf.gz

    $ sudo mv httpd-ssl.conf ssl

  4. 次に、sslをテキストエディタで開いて、次のように変更する。

    #Listen 443 ←コメントアウト

    NameVirtualHost *:443 ←追加
    <VirtualHost *:443>DocumentRoot “/var/www” ←変更
    ServerName localhost ←変更

    SSLCertificateFile /etc/apache2/apache.pem ←変更

    SSLCertificateKeyFile /etc/apache2/XXXXX ←変更(XXXXXはランダムな文字列)

  5. 最後にコマンドライン端末から次の2つのコマンドを実行して完了。
    $ sudo a2ensite ssl

    $ sudo /etc/init.d/apache2 restart

Zen Cartの再インストールとドメインキング

SSLが設定されていることを確認した後、Zen Cartを再インストールしてみたが、相変わらず管理画面にログインできないという状態が続いている。どうもこの問題、SSLの設定とは関係なかったようだ。

そこで、この問題については、後日、別のLinuxディストリビューションでも検証してみるということにして、取り敢えずドメインキングにZen Cartのお試し環境を作ってみた。こちらはインストールガイドに従えば簡単にインストールできて、今のところ問題なく動作している。

なお、ドメインキングには、EC CUBEやMagentoなどのインストールも試みたが、MagentoはPHPのバージョンが5.2以上でなければならないために門前払い、EC CUBEの場合は、ドメインキング側が公開フォルダ以外にフォルダを作れないという仕様となっているため、デフォルトのままではルートディレクトリにインストールすることはできなかった。

さらに、Live Commerceも検討してみたが、こちらはドメインキングというより、そもそも共用サーバーにインストールしようとすること自体が無理だった。

こうして見てみると、管理画面などはお世辞にもユーザーフレンドリーとはいえないが、インストールに求められるサーバー要件に関しては、Zen Cartの敷居の低さは特筆ものかもしれない。