Osclassを検討して撤退を決めたまでの記録

[Osclass](https://github.com/osclass/Osclass)は、クラシファイドサービス（とかマッチングとか出会い系）サイトが作れるPHP製のCMS。
これを使って楽がしたかったんだ。

# 概要
* 2019年9月に開発終了　→　[forkされて](https://github.com/navjottomer/Osclass)続いてはいる
* テーマとプラグインのマーケットも終了
 * 代替マーケットも活気がない
* 広告商品のカテゴリ毎にページデザインを変更できない？
* できることがよくわからない
 * Show caseの情報が少ない
 * テーマ自作の詳細な解説が見付からない
 * マーケットが死んでいるので、実際のテーマやプラグインからアイデアが得られない
 * →コードを見るしかない
* →撤退しました

# 調査
## とりあえず動かしてみよう！
インストールガイド：https://osclass.gitbook.io/osclass-docs/beginners/install
…じょ、情報量が少ない…

ので、とりあえず遊びたい方々のために「VagrantでCentOS7を作ってOsclassを起動するスクリプト」をご用意しました。

### ファイル

```ruby:Vagrantfile
Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.network "forwarded_port", guest: 80, host: 8080
  config.vm.provision :shell, path: './setting.sh', privileged: true
end
```

必須じゃないもの入りまくってると思います。

```sh:setting.sh
#!/bin/sh
yum update
yum install vim
echo "set number" >> ~/.vimrc
yum -y install https://centos7.iuscommunity.org/ius-release.rpm
yum -y install git2u yum-utils
yum-config-manager --disable ius
yum -y install zlib zlib-devel openssl-devel sqlite-devel gcc-c++ glibc-headers libyaml-devel readline readline-devel libffi-devel curl
yum -y remove mariadb-libs
rm -rf /var/lib/mysql
rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
yum -y install mysql mysql-devel mysql-server
systemctl start mysqld.service
systemctl enable mysqld.service
mysql_root_path=`cat /var/log/mysqld.log | grep root@localhost | awk '{ print $11 }'`
echo "export OSCLASS_DATABASE_PASSWORD=\"${mysql_root_path}\"" >> ~/.bashrc
mysql -uroot -p${mysql_root_path} --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '${mysql_root_path}'; flush privileges;"
mysql -uroot -p${mysql_root_path} -e "GRANT ALL PRIVILEGES ON osclass.* TO osclassuser@localhost IDENTIFIED BY '${mysql_root_path}' WITH GRANT OPTION;"
mysql -uroot -p${mysql_root_path} -e "FLUSH PRIVILEGES;"
mysql -uroot -p${mysql_root_path} -e "CREATE DATABASE osclass;"
yum -y install httpd httpd-tools httpd-devel httpd-manual
yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum -y install --enablerepo=remi,remi-php73 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql
curl -LO https://github.com/navjottomer/Osclass/releases/download/v3.9.0/osclass-v3.9.0.zip
yum -y install unzip
unzip osclass-v3.9.0.zip
cp -r osclass/* /var/www/html
rm -rf osclass
rm -f osclass-v3.9.0.zip
chown apache:apache /var/www/html
chown -R apache:apache /var/www/html/oc-content/{uploads,downloads,languages}
chcon -t httpd_sys_script_rw_t /var/www/html
chcon -R -t httpd_sys_script_rw_t /var/www/html/oc-content/{uploads,downloads,languages}
/usr/sbin/setsebool -P httpd_can_network_connect=1
systemctl start httpd.service
systemctl enable httpd.service

ssh-keygen -t rsa -b 4096 -N "" -f ~vagrant/.ssh/id_rsa
eval "$(ssh-agent -s)"
ssh-add ~vagrant/.ssh/id_rsa
cat ~vagrant/.ssh/id_rsa.pub
echo "database name: osclass"
echo "database username: osclassuser"
echo "database password: ${mysql_root_path}"
```

参考：[マッチングサイト向けCMS osclass - Qiita](https://qiita.com/bezeklik/items/13b512e23a62d6984527)

### 使い方
[1] 好きなところに置く

```bash
$ ls
Vagrantfile	setting.sh
```
[2] vagrant upする

```bash
$ vagrant up
```

[3] 接続情報が出る

```bash
    default: ssh-rsa { git用ssh公開鍵 }
    default: database name: osclass # mysql DB name
    default: database username: osclassuser # mysql username
    default: database password: { mysql password }
```

[4] localhost:8080/index.phpに繋ぎ、mysqlデータベースの接続情報と管理者アカウントの設定を済ませる。

[5] ログインするとダッシュボードに入れた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/272677/e9f5f020-90f6-56bd-4e93-493f51701509.png)



## 基礎調査
### リポジトリ
#### 大元での開発が終了している
ここ：https://github.com/osclass/Osclass
…が、開発が終了している。

fork後のリポジトリはここ：https://github.com/navjottomer/Osclass
現在もそれなりの頻度で開発は進められている。

### マーケット
#### 公式マーケットが潰れている
なんと公式マーケットがメニューにない！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/272677/c821219a-5641-bbe3-909c-9550d039893c.png)
2019/09/05に終了していたらしい。よってメニューからも消えた。
[「osclass market」のサービスが2019年9月5日に終了！！影響と今後の対策 - 月収20万アフィリエイターの作業ログ。](https://osclassfrom0.hatenablog.com/entry/osclass-market-closure)

これについての外部マーケットさんのコメントがこちら。
[Osclass Market has been closed! OsclassPoint.com became most popular osclass market! - OsclassPoint](https://osclasspoint.com/blog/osclass-market-will-be-shut-down-osclasspointcom-became-biggest-osclass-market-b19)

#### 代替マーケットも活気がない
https://osclasspoint.com/search
https://osclass.market/products
https://market.osclasscommunity.com/themes

商品は1〜2桁、ダウンロードも1〜2桁くらい。
潰れた公式マーケットから流れたものも入っていると考えると、新作テーマ・プラグインの開発はほぼ行われていないと思われる。

### 事例
公式のshowcaseページも運営終了
https://osclass.org/showcase

この辺のサイトがOsclassらしい
https://jmty.jp/
https://www.perdiomeu.com.br/
https://www.aloha-street.com/classified/
https://search-lesson.com/
ジモティーは今はOsclassではないと小耳に挟んだりもした。だとすると夢がない。

参考：
[オープンソースでマッチングサイトが構築できるOsclassを導入してみた - はてな村定点観測所](https://hatebu.me/entry/2017/08/08/165952)
[Osclassで構築されたサイト事例 - 日本語で作る無料マッチングサイトOsclass](http://archism.jp/osclass/osclass%E3%81%A7%E6%A7%8B%E7%AF%89%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B5%E3%82%A4%E3%83%88%E4%BA%8B%E4%BE%8B/)

## そのまま使ってみる
### 設定項目
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/272677/2380b018-ba71-1b19-11a6-3bbe5e97b72e.png)

### カテゴリ
カテゴリ別のページデザインにはできない…！？
静的ページを使えってことかな？
項目の「有無」はうまくやればできそう。それ以上のカスタマイズがどれくらい面倒かは不明。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/272677/a29dc8f1-6a21-45b9-3990-9abb5cd2ceb1.png)

### 静的なページ
普通。ソース直書きもできる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/272677/cdb173b8-84df-2ff4-71fc-612658847beb.png)

画像や動画の挿入も普通。特に変な装飾はされない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/272677/4d8acab4-7741-4583-3b19-080232f0d819.png)
出典：[【公式】アニメ「ポケットモンスター」第1話「ピカチュウ誕生！」](https://www.youtube.com/watch?v=NCJZgcvh_Xs)
### 連絡手段
基本的にはボタン押したらメール。
[くらしのマーケット](https://curama.jp/)が提供しているような「チャットっぽい」機能はない。
「カレンダーから予約する」的な機能（実際はそういうメール）はフォームというかテーマのカスタマイズで実装できそう。

## テーマを作る・探す
### 開発者用ガイドを見る
https://osclass.gitbook.io/osclass-docs/developers/plugins-themes
…ごめんなさい、よくわかりません。

### 既存テーマを探す
こういう時は既存のテーマからインスピレーションを得よう！

…が、前述の通りマーケットが死んでいるので無料テーマが全然試せない。
そのためだけに外部マーケットにユーザ登録するのもちょっと嫌ですね。活気ないし。
1つ試してみたが、レスポンシブでなく（デフォルトテーマと）機能上の違いもなさそうだった。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/272677/63fab6a3-1448-3240-af24-8ef567a27312.png)


# Wordpressでもできる？
Wordpressにはクラシファイドサービス用のテーマもいくつかあるらしい。今度触ってみよう。
[マッチングサイトができるWordPressテーマ10選 - YELLOW GLASSES](https://yellowglasses.jp/web/matching/)

# まとめ
辛かったので今日のところは撤退します。