2016年1月25日月曜日

作戦変更 -自分で作る-

s2Memberの支払いで無料版だとpaypalに登録していないといけないことが判明したので作戦変更。(テストするのが面倒)

やっぱりwordpress経由じゃなくて一から作ってみますか。
そんなに難しそうじゃないし。

データベースはWordPressが使ってたって理由でMySQLで。
MySQLはちゃんと扱ったことなかったのでお勉強。
http://se-java-school.com/itstudy/database/intro_db_jdbc/intro.php
ふむふむ。画像の扱いは?
http://hijiriworld.com/web/mysql-img-binary/
ふむふむ。元dataの他にmineタイプを記録していた方がbetterと。
blobでなく、binaryとかでもいいのかな。

設計はどうするか。
https://thinkit.co.jp/article/1210/1
ふむふむ。http通信でやれば良いと。
get, postでリクエストして、xmlで返す。
(iPhoneでなくてもこの設計で応用できるな)

xmlで画像データ送りたいんだけど。
http://astel-labs.net/blog/diary/2010/07/100721-1.html
ふむふむ。Base64を使ってできると。

というわけで基本設計はこうします。


システムの中心はデータベースですね。
EC2のボリューム内にMySQL作ってしまうか、AWS RDS使うか迷ったけど、
とりあえずお試しだし、サーバープログラムのデータベース接続先いじればいいし、WordPressインストールしたときに既にMySQLインストールしてあるので、RDSは使わない方向で。

なんかできそうな気がスル!
PHPからMySQLにアクセスする方法と、UI(クライアントプログラム)ですかね。
あとwebpayでの支払い処理。
PHPは慣れてない。お勉強はつづく。

2016/3/28追記
このサイトにこんな記述が!
これまでのWebサービスでは、サーバ側で画面(HTML/DOM)を生成していたのに対し、最近のWebサービスでは、サーバ側はDB操作のみを処理し、クライアント-サーバ間をAjaxでJSON交換し、画面(HTML/DOM)はクライアント側で生成する方式が増えてきました。AngularJSは、クライアント側 JavaScript のコントローラでデータモデルを管理し、画面(ビュー)とリアルタイムにデータを交換するのに適したフレームワークです。
自分の設計は間違っていなかった!(笑) 

s2Memberの使い方

WordPressを会員制にする+BuddyPressとの相性がいいプラグインs2Memberの使い方がよくわからなかった(日本語解説がほぼなかった)ので備忘録。
これだけでも十分なのですが、さらに機能(支払いが主?)が充実したPro版もあるです。

最初にやること
Login Welcome PageとMembership Option Page(ブランクの固定ページ)を作って、s2Member > General Optionsで関連付けする。


s2Memberは基本的にLoginの前にPayPalでの支払い設定を求めるらしいのでその設定。

PayPalでの操作
PayPalアカウントの作成、ビジネスアカウントへのアップグレード、API証明書の請求
この辺は他で手順解説サイトがあると思うので割愛。
ビジネスアカウントへのアップグレードは郵送手続きとかも噛むので結構時間かかります。

支払い管理
上記で登録した内容をs2Member → PayPal options → PayPal Account Detailsに記入。
s2Member → PayPal ButtonsでSubscribers Levelを選んでShortcodeを作成。それをMembership Options Pageに設定した固定ページ(テキスト部分)に貼り付け。

誰でも登録できるようにする
Open Registrationを設定するとPaypal支払い設定をしなくても、無料ユーザー(Subscribers Level #0)として登録可能になる。
s2Member > General Options > Open Registrationで設定可能。

2016年1月14日木曜日

便利そうなBuddyPressのプラグイン

便利そうなBuddyPressの色々プラグイン調べました。
とりあえず作っているサイトで採用するかどうかで分類しました。
参考までに。

採用
s2member
WordPressを会員制にするプラグイン。
アクセス管理とか色々機能が付いているようだ。
Paypal使って支払いまで管理できるようなので、ひとまずはこれだけでいいかも。

Buddypress Activity Plus
BuddyPressアクティビティに画像とか動画とかリンクとか貼れるようにするプラグイン(デフォルトではテキストのみ)。
EWWW Image Optimizer
上とセットで。
投稿される画像のサイズを最適化するプラグイン。
とんでもないサイズの画像対策。

BP Profile Search
プロフィール検索の拡張。サイドバーに付けられる。

Invite anyone
招待機能。ユーザーを増やそう。

Events Manager
イベント管理機能を付与するプラグイン。
出欠の管理とかもできるらしい。
入れたらすんなり入ったようなので採用。


未定
SiteGuard WP Plugin
不正アクセス対策で有名らしい。
なぜかonすると出たあとは入れなくなるので(s2membersとの相性?)、今のところ外しています。

Social Login
ソーシャルサイトのアカウントを認証に使うためのログイン。まだ試してない。

Never Let Me Go
大会ページを作成。まだ試してない。

Buddypress Message Attachment
BuddyPressメッセージ機能拡張。Debugのエラーメッセージが出るので取り合えず切っている。

BuddyPress Auto Group Join
新規ユーザーを自動的に特定のグループに加入させるプラグイン。
先々使うかもしれないので。


不採用
simple membership
s2Memberと同様にWordPressを会員制にするプラグインとして有名らしい。
s2membersの方がBuddyPressとの相性がいいみたいなのでそっちを採用。

Welcome Pack
Theme My Login
Member Only
Absolute Privacy
アクセス制限とログイン関連。
s2Memberで代用できそうなのでパス。

Advanced Custom Fields
プロフィール欄の拡張。BuddyPressのデフォルト機能で十分だったのでパス。

RS Buddypress Activity Refresh
アクティビティ自動更新用プラグイン。デバックエラー出てるし、必須ではないのでパス。



大まかにはこれで事足りそう。
しばらくはこれをいじって使えるようにするのが目標。
後は、

  1. 課金方法
  2. アバター作れない問題
  3. プロフィールのタイプごとに分岐

が解決すれば形にはなるかな。

課金はとりあえずs2MemberのPaypal機能を試して見る。
でも月で自動払込とかにしたいんだよな。
プロフィールタイプで課金方法も分けたい。

アバターが表示されない問題が発生していて、さすがにそれは解決しなければ。
BuddyPress Activity Plusは動くし、写真はアップロードは出来ているみたいなんだけど。
jQueryとか書いてあるサイトあるけど今のところ原因不明。

プロフィールタイプ(フィールド値?)ごとに閲覧制限はどうしようか。
1. そんなプラグインを探す。
または作る(どれくらい手間なんだろう?)。
2. bg_register_member_type()を使う。
3. グループに強制参加させてグループごとに閲覧制限。
とか??
とりあえず全部一緒でいいか。

2016年1月1日金曜日

BuddyPressを動かす

WordPressがうごいたのとりあえずBuddyPressをインストール
これを参考にしました。
http://ryus.co.jp/blog/bpinstall/
http://ryus.co.jp/blog/bpuser/
http://ryus.co.jp/blog/bpgroup/

問題1
そもそもインストールできない。
どうやらapacheにファイルを弄る権限を握らせなければならなかったようだ。
下記のサイトの一つ目の対策で解決した。
chown -R apache:apache (WordPressを設置したディレクトリの名称)
http://www.sandalot.com/wordpress%E6%9B%B4%E6%96%B0%E3%81%A7ftp%E5%85%A5%E5%8A%9B%E7%94%BB%E9%9D%A2%E3%81%8C%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AE%E5%AF%BE%E5%87%A6%E6%B3%95/

問題2
日本語化はまだ対応してない(?)ようなのでパス。(後日やるはず)
最悪欧米対象で作ります。
俺、英語できるし(高笑)

問題3
早速 新しいユーザーを登録しようとしたら、登録画面がでない!
これはapacheのhttpd.confをいじったら直った。
最下行に追加(パスは適宜変更)↓
<Directory "C:/pg/Apache/Apache2.2/htdocs/wordpress">
    AllowOverride All
</Directory>
http://www.adminweb.jp/wordpress/permalink/index2.html
http://qiita.com/s2maeda/items/21d9458e44f86597d1ae
あと大事なのはapacheを再起動しないといけない。

.htaccessファイルがおかしいのかもと疑ったが違った。でもまあ備忘録
http://itstudio.co/2014/10/21/3146/
http://www.cherrypieweb.com/weblog/technical/20131017121752.php

問題4
Activity, Member, Groupはまだでない。
パーマリンクになぜかindex.phpが入るようになっていたのでそれを消したら直った。
http://liginc.co.jp/web/wp/customize/148458

あー疲れた。でも楽しい。
これで一通り動くことを確認。

これでなんとかSNSっぽいのが作れた!

2015年12月31日木曜日

AWSにWordPressをインストール

有名だし、簡単に出来ることを期待したんですけど結構面倒でした。
MySQLとか権限とかApacheの設定とかとか...勉強になりました。

楽しようとして色々調べましたが、結局Amazonの解説を丁寧に追っていけばできます。
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/hosting-wordpress.html
流石です、ありがたいです、楽しようとしてすいません。

こちらのサイトもかなり参考にさせて頂きました。ありがとうございます。
http://dev.classmethod.jp/cloud/aws/aws-wordpress3-8-part1/

で、問題発生
EC2インスタンス起動してWordPressアクセスしようとしたらサイトのデザインおかしい。
最初CSSにアクセスできないのかと思ったが、どうやらAWSのEC2は起動するごとにpublic IPが変わるらしい。
で、WordPress内の設定IPと食い違うと。

まず起動するごとにpublic IP変わるのはAWSのElastic IPっていうのを使えば同じになって解決しました。

AWSのWordPressインストール解説の最後にpublic IP変わったときの対策書いてました。
ふむふむ
curl localhost | grep wp-content
で過去のpublic IP調べて、
wp-cli.phar
を(ダウンロードして)使って書き換えると。
(大分寄り道をしました。Amazonさん、すいません。)
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/hosting-wordpress.html

システム構成

お金が稼げるサイトを作ろうと思って課金SNSを作ってみます。

今更ウェブページとか時代遅れかな、スマホアプリとかの方がいいかなとか思いましたが、とりあえず作ってみます。

サーバーは今っぽくクラウドな感じでAmazon Web Service (AWS)のEC2を使ってスケーリングとかしてみたいです。(まだやり方は知れません)
http://aws.amazon.com/jp/

SNSはWordPressっていうよく聞くもの(ブログアプリ)のプラグイン使えば作れそうだし、他にもプラグインとか便利そうなのでこれ使います。
BuddyPressっていうので作れるそうです。他にはbbPressっていうのもあるみたいですが、基本機能あればいいのでどっちでもいいです。
基本PHPで書かれているみたいですね。あまり得意ではないです。
https://ja.wordpress.org/
https://buddypress.org/

支払いはWebPayっていうのに登録してみました。
WordPressのプラグインとかでも便利なのあるかもですが、とりあえず登録しました。
APIの種類が豊富だったので使えるのではないかと思いました。よく使ってるpythonとかもあったし。
https://webpay.jp/

今のところ構成はこんな感じです。必要であれば随時追加・削除・変更していきます。
よろしくお願い致します。