仕事でとある企業のHPをPHPで作成する事になりました。
自分は今まで、Windowsプログラム(C#, Delphi)でのシステム構築が主で
PHPは基本的な事(GET, POST)ぐらいしか分かりません。
以下のような要件が出ており、どのように作成していったよいか分からず
困っております。
・トップページに会員ID,パスワードの入力欄を設けて会員がログインすると
会員専用のポータルサイトが見れる。
・会員専用ポータルサイトからは会員限定のブログと会員限定の動作が見れる。
また会員限定のオンラインショップで買い物ができる。
自分で調査した範囲では、ブログはWORLDPRESSを使用する、
オンラインショップではEC-CUBEなどのパッケージを使用すればできそうな
感じですが、どのように作成していったら良い分からず困っております。
抽象的な質問ですが、よろしくお願いします。
まとまりのない文章ですが、以下の通り質問に回答します。
1.CMSについて
Webサイトは、本サイトをMODx Evolution(以下)、会員専用サイトをNetCommonsで構築するのが良いと思います。
MODxは静的なWebサイト(HTML,CSS,画像ファイルで構成された、CMSを使わないWebサイト)の構築を行った経験があれば、CMSを用いたWebサイトを簡単に構築することができます。
また、実行可能なPHPコードを部品化できる「スニペット」やHTMLやCSS等を部品化できる「チャンク」といった機能、そしてMODxの機能にPHPでアクセス可能なAPIが用意されていますので、これらを駆使することで高度なWebサイトを構築することもできます。
他のCMSと比べて自由度は高く、また圧倒的に学習コストは低いといえます。
なお、会員管理機能はありませんので、会員向けコンテンツに関する機能は、自分で実装するか、後述するNetCommons等の会員管理機能を有する(あるいはプラグインで実装可能な)CMSを利用する必要があります。認証情報は共通で良いと言う場合は、簡単なPHPスクリプトあるいはhtaccess等でBasic認証を実装する程度でも良いかもしれません。
NetCommonsは標準で高機能な会員管理機能を持ち、細かなロールを設定することが可能ですので、会員専用サイトの構築に適しています。もちろん、NetCommonsだけでWebサイト一式を作成することもできます。また、極端ですがHTML,CSS,PHPを理解していなくても、NetCommonsであればデザインはともかくCMSを使ったWebサイトを簡単に構築できます。(NetCommons自体、文教をターゲットとしたCMSですので、小中高校のWord,Excelが使える程度の先生でも使えるような操作性となっていますので、操作は非常に直感的かつ簡単です)
Wordpressをお勧めできない理由は、テーマ(テンプレート)を構築するための技術習得にコストがかかるためです。Wordpressに用意されている標準テーマでは、基本的にはBlogサイトの構築しかできません。したがって、自分でテーマファイルを作成するか、BizVektor(https://bizvektor.com/)等のテーマををカスタマイズして対応するかという感じになります。ただし、それでもHTML,CSS,PHPを理解していることは当然として、Wordpress独自の関数等をある程度理解しておく必要はありますので、これらの理解が浅い状態でWordpressによるWebサイト構築は無謀であるといえます。
なお、どうしてもWordpressで構築されたいという場合(勉強を兼ねて進められたい場合)は、以下の書籍を参考に進められるのが良いでしょう。
WordPressユーザーのためのPHP入門 はじめから、ていねいに。
それから、会員情報を扱うサイトを構築される場合は、WebサイトのHTTPS(SSL)対応は必ず行ってください。HTTPはデータが平文でやりとりされるため、IDやパスワード、個人情報等が経路上で盗聴される可能性があります。Facebook等のSNSやAmazon等のECサイトを見ていただければ、全体あるいは一部(認証時等)HTTPSであることが分かると思います。
なお、証明書は以下のサイトで購入可能です。とりあえずWebサイトを暗号化したいという目的であれば990円/年の証明書で十分です。
2.オンラインショップ(EC)の構築
オンラインショップについては、カラーミーショップ等の外部サービスを利用した方が良いです。カラーミーショップであれば、ご所望の会員制のオンラインショップを構築できます。
カラーミーショップ - ネットショップ運営サービス
外部サービスを利用することで、また、クレジットカード番号や会員情報等のセンシティブな情報の管理、SSL接続(暗号化接続)、OSのセキュリティパッチ適用やシステムに不具合や脆弱性があった場合の修正、サーバ管理(死活監視等)等々、オンラインショップの運営に掛かる手間を大幅に軽減することができます。
EC-CUBE等をサーバにインストールして管理することについては、セキュリティ対応やサーバのメンテナンスをしっかり行える自信がなければお勧めできません。また、セキュリティ対策には結構コストがかかります。
基本的な対策の1つとして、WAF(Webアプリケーションファイアウォール)の導入が挙げられますが、商用製品で定評のあるJP-SecureのSiteGuardLite(http://www.jp-secure.com/cont/products/siteguardlite/index.html)は、導入時費用が252,000 円(税別)です。これが高いと感じる(セキュリティに金をかけられない)場合は、自前での運用はおすすめしません。
Webシステムの怖いところは、システムの利用者全員が善意の利用者でないということです。システムの脆弱性を突いて会員情報やクレジットカード番号等を窃取しようと試みるような悪意のあるアクセスもあり、それはあなたが思っている以上に多いものと考えてください。
また、もしシステムの脆弱性を突かれて情報が漏洩した際には必ず責任問題が発生します。最悪の場合、損害賠償請求されることもあります。反面、外部サービスを利用すればそのような問題を回避できる(外部サービス運営側の責任とすることができる)、あるいは自力で管理する場合と比べて軽減できるでしょう。そのようなリスクを冒してまで、また高いコストをかけて自力でオンラインショップを管理するのが適当であるか考えてみてください。
3.Webサーバーについて
Webサーバについては、共有サーバや専有型のマネージドサーバを利用するのが良いでしょう。
専用サーバやVPS等はサーバ管理が必要になりますので、自分でサーバを管理できる自信がなければお勧めしません。(CMSやPHPのスキルとは別に、RHEL,CentOSあるいはUbuntu等のLinuxサーバのスキル、LAMP環境の構築および運用に関するスキルが必要になります)また、サーバ管理にかけられるメンテナンス費用を確保できない場合は、専用サーバやVPSは選択肢から外れるでしょう。
4.Webサイトの運用について
当該案件ですが、クライアントとのメンテナンス契約はどのようになっていますか?
クライアントにも理解してもらう必要はありますが、CMSはインストールして終わりではありません。継続的なCMSのバージョンアップやPHPのバージョンアップによってCMSが正常動作しなくなった際の調整作業のためのメンテナンスが必要になります。健全にWebサイトを運用していくうえで、メンテナンス契約を結ぶことは非常に重要なことです。
CMSはバージョンアップしなくても一応動作しますが、バージョンアップ=脆弱性対応という場合が殆どですので、バージョンアップせずに利用することはセキュリティリスクになります。
クライアントが自力で対応可能である場合はクライアントに任せるということもありますが、そのようなクライアントの場合は人に頼まず内製でCMSを用いたWebサイトを作成するはずですので、それができないからあなたに仕事を発注されたのだと思います。
もし、本件にメンテナンスが含まれていない場合は含めるべきでしょう。もしメンテナンスを含めることが出来ない場合は、本案件を受けるべきで無いといえます。
なお、Linuxサーバの構築経験が無い、LAMP環境の構築経験が無い、CMSのインストール無い、PHPの知識が薄いという場合は、メンテナンス出来ないと思いますので、この案件受けるべきでないですが、あなたのスキルがどの程度かはわかりませんが、そのあたりはいかがですか?
5.その他
スキル面で対応が難しい場合や、メンテナンス費用を確保できないがWebサイトは構築したいという場合は、JimdoやWiX,Weebly、ネットコモンズクラウド等のSaaS型のCMSを利用するのが良いでしょう。
私自身、メンテナンス費用を払えないクライアント向けの案件はこれらのサービスを利用しています。
回答内容では、会員情報は各システムでそれぞれ持つことを想定しています。
2016/02/25 02:57:16会員情報の統合は出来ないことはありませんが、CMSのカスタマイズ(プラグイン、モジュール開発等)が必要になります。
PHPやWeb系の開発に不慣れであるように見受けられましたので、会員情報は分けたままとする(カスタマイズしない)のが現実的な判断になるものと思われます。
会員情報を統合したいという思いもあるかもしれませんが、まずは標準機能でリリースして、運営していくうちに会員情報の統合を含め必要な機能を再検討されるのが宜しいと思います。
そうですね、どのCMSを見ても自システム内にDBがあるので別になりそうですね。
2016/02/26 21:32:56Web系は不慣れで一般的なWEBサイト構築はまだまだ勉強する必要がありそうです。ここ数日色々調査してみて思ったのがCMSなどのツールを使用するのは
また別のスキルが必要だなと思いました。 上記の方法を軸に再度考えてみたいと思います。この度はありがとうございました。