15回にわたり、ECサイトのフルスクラッチ開発をまとめてきました。↓
今回はそれを外部へ公開する方法をまとめようかと思います。
外部公開は大きく分けて
①オンラインサーバーを利用
②自宅にサーバーを置く
の2つがありますが、自宅のサーバーを公開するのはルーターのポート開放、サーバーへのフォワーディング等が必須なので、少々面倒なうえにセキュリティも最新の注意が必要になります。
したがって比較的簡単かつ安全に公開できるオンラインサーバーを利用する方法でまとめようかと思います。
今回は、「XREA」という無料レンタルサーバーでの、PHPファイル公開方法になります。
ここのサーバーは、なんといっても無料プランでもSSLが使えるメリットがあります。他では無い(多分)と思います。
目次
XREA
GMO提供のレンタルサーバー
有料、無料のプランがありますが、有料でも月額が191円と非常に安いです。ただし、マルチコアCPUや大容量のSSDやメモリでサーバーの高速処理を謳っているのはいいですが、ストレージが100GBと少ないです。ファイルサーバーの操作にもかなりクセがあります。
したがって、公開するサービスにもよるでしょうが、本格的な内容のものであれば他の有料サーバーのほうが良いでしょう。
ですので、軽いノリで更新もしないようなサービスを公開したいなら、ちょうどいいかもしれませんね。191円は安いです。もちろん広告は出ません。
しかし、個人的にこのサーバーで魅力的なのは、「無料プラン」になります。
無料プランでもSSLが使える!
http通信の暗号化、つまり「SSL化(https)」がなんと無料で利用出来ます。基本無料では利用できないんですけどね。ここがでかいと思います。
他の部分(容量1GB、広告あり、ドメインは.shop、など)は残念ですが、今回のように、テストでサービスを公開したい場合には最適です。
というのも、今ではSSL通信は「あたりまえ」であるからですね。みんなに見て欲しくても、httpの暗号化されてないリンクだとその時点でクリックしてくれないからです。
したがって、今回はXREA Free のサーバーでテスト用のサービスを公開する事にしました。
契約までの流れは、ただアカウントを作成するだけですので割愛します。以下にリンクだけ貼っておきます。
注意点として、XREA Free は、ドメインが「shop」になりますが、これが「1年」の間しか無料で利用できないそうです。更新するなら有料となるそうですので、それがいやなら1年後には別のアカウントで登録しなおす事になります。
データベースの設定
MySQL設定
まず、XREAにログイン後、MySQLでデータベース名、ユーザー名、パスワード、ホスト名を登録。
phpmyadminでデータベース、テーブルの作成を行います。
この辺りもphpやってる人からすれば無駄な説明になるので詳細は割愛します。
ローカル時のデータベース名、ユーザー名、パスワード、ホスト名、が変わるかと思いますので、ここを控えて置き、後でアップローでするファイルの内容を書き換えておきましょう。
PHPファイルのアップロード
FTPサーバーを利用する
XREA Freeと契約後(ドメインも設定しておく)、サーバーに公開するPHPファイルをアップロードします。
方法は「サーバーのFTPソフト」を使うのと、「クライアントのFTPソフト」を使う方法があります。
比較的アップロードするファイルが多いのであれば、一括で転送できるクライアントソフトの方が便利ですが、ここではサーバー側のFTPソフトを利用した方法をまとめます。
※クライアントFTPソフトについてはこちらの記事でまとめています。↓
ダッシュボードから、公開用のサイトをクリックします。
FTPファイルマネジャーをクリック。
WEBサーバーのファイルマネジャー画面に移動するので、ここからファイルをアップロードしていきます。
ちなみに、初期画面はドキュメントルートの階層だと思いますので、その点を踏まえてファイル構成を考えて下さい。(今回の場合は、ドキュメントルートの変更などやっていないので、ファイル構成上https://hellnear.shop/shop/shop_list.php が公開ページのトップ画面になります。)
FTPの操作については言うまでもないので割愛します。
それでは当サイトで作成したECサイトのファイル一式(データベース名などは修正したもの)をそのままアップロードします。
以上で終わりです。
公開確認
URL入力してブラウザで確認
最後に登録したドメイン(トップページがドキュメントルートになければドメイン/トップページの格納場所)をブラウザで入力して、エラーが無いか確認します。
今回の場合であれば、エラーが出るなら「MySQLホスト名」「ユーザー名」「PASS」のphpファイル辺りか、DB、テーブルの設定がおかしくなっているかもしれませんので、見直してみてください。
※公開したECサイトはこちらです。↓