oxwallというCMSを使ってSNSを秒で作る

## 概要
oxwallというCMSを使うと、SNSサービスを秒で作ることができます。
oxwallとは、SNSに必要な機能が一通り用意されているPHP製のCMSです。
ちなみに、日本語言語パックはないので、自分でカスタマイズする必要があります。

<img width="1280" alt="Screen Shot 2018-01-06 at 12.04.08.png" src="https://qiita-image-store.s3.amazonaws.com/0/105936/1ba779e0-1d5f-65db-5a8b-ed7e8e05b182.png">

- 参考：[簡単かつ無料で本格的なSNSが構築できるCMS 『Oxwall』の魅力を広めたい。](http://www.usendream.com/1272/)
- 関連記事：[HumHubというCMSを使ってSNSを秒で作る](https://qiita.com/Esfahan/items/974687234566ef6b069d)

## 環境
- CentOS 7.2
- PHP 7.0.27
- Apache 2.4.6
- Mysql 5.6.38
- oxwall-1.8.4.1


## 構成

| 項目 | 値 |
| --- | --- |
| DocumentRoot | /var/www/html/oxwall/public/ |
| DB User | oxwall |
| DB Name | oxwall_db |

## PHP, Mysql, Apacheのインストール
以下を参考にインストールしておいてください。

- [phpのインストール](https://qiita.com/Esfahan/items/e55fa83a9dcf91d89d84)
- [Mysqlのインストール](https://qiita.com/Esfahan/items/83200c64de8d826677b5)
- [Apacheのインストール](https://qiita.com/Esfahan/items/364462502b6d19dea1fe)

また、MysqlのDBとUserを、以下のように作成してください。

```sql
mysql> create database `oxwall_db` CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> GRANT ALL ON oxwall_db.* TO oxwall@'localhost' IDENTIFIED BY 'password';
```

## PHP Extensionのインストール
zipとmysqlをインストールします。

### zip

```
$ sudo yum -y --enablerepo=remi,remi-php70 install php-pecl-zip
```

### mysql

```
$ sudo yum -y --enablerepo=remi,remi-php70 install php-pecl-mysql
```

インストール後、apacheを再起動します。

```
$ sudo apachectl restart
```

## oxwallのインストール
oxwallのダウンロードページ
https://developers.oxwall.com/download

ダウンロードしたら、DocumentRootに展開してください。

```
$ cd /var/www/html/oxwall/public/
$ curl -k -L -O https://developers.oxwall.com/dl/oxwall-1.8.4.1.zip
$ unzip oxwall-1.8.4.1.zip
$ rm -f oxwall-1.8.4.1.zip
```

## 初期設定
ブラウザからTOPページへアクセスしてください。
http://192.168.33.10/

すると、以下のようなページが表示されます。

もし、必要なモジュールなどが不足してる場合は違うページが表示されるので、書いてある内容に合わせて対応してください。

まず、サイトの情報と、サイト管理者のアカウント作成を行います。

<img width="1280" alt="Screen Shot 2018-01-06 at 11.34.09.png" src="https://qiita-image-store.s3.amazonaws.com/0/105936/a1ecea14-7fe6-8182-e8cc-d18fddd0254e.png">

| name | desc |
| --- | --- |
| Title | サイト名 |
| Tagline | サイトの説明を1行で |
| URL | サイトのURL |
| Root directory | 公開ディレクトリのパス |
| Email | サイト管理者のEmail |
| Username | サイト管理者のusername |
| Password | サイト管理者のpassword |

入力したら、 `CONTINUE` をクリックしてください。

### Database情報の設定
次に、データベース情報の設定を行います。

<img width="1280" alt="Screen Shot 2018-01-06 at 11.45.48.png" src="https://qiita-image-store.s3.amazonaws.com/0/105936/d6d26e47-71a6-262b-6fc0-ac72a3415754.png">


| name | desc |
| --- | --- |
| Host | DBのhostname |
| User | DBの一般ユーザー |
| Password | DBの一般ユーザーのパスワード |
| Database Name | DB名 |
| Table prefix | テーブル名に付くprefix |

入力したら、 `CONTINUE` をクリックしてください。

### config.phpの書き換え
ow_includes/config.phpを、表示された内容に書き換えてください。

<img width="1280" alt="Screen Shot 2018-01-06 at 11.52.00.png" src="https://qiita-image-store.s3.amazonaws.com/0/105936/de4d2638-ebbd-d472-6af8-790dda2375b3.png">

```
$ vi /var/www/html/oxwall/public/ow_includes/config.php
```

### ow_installディレクトリの削除
セキュリティの観点から、ow_install ディレクトリを削除しろと言われるので消してください。

<img width="1280" alt="Screen Shot 2018-01-06 at 11.59.41.png" src="https://qiita-image-store.s3.amazonaws.com/0/105936/3a386171-eb29-e116-88aa-263584114d25.png">

```
$ rm -rf /var/www/html/oxwall/public/ow_install/
```

削除したらページをリロードしてください。

これでインストール完了です！

<img width="1280" alt="Screen Shot 2018-01-06 at 12.01.44.png" src="https://qiita-image-store.s3.amazonaws.com/0/105936/84120f65-c3ca-fa2e-523f-4480d8973514.png">

`main page` をクリックするとサービスページへ、
`admin area` をクリックすると管理画面へ飛びます。

ますは、 `admin area` へ行き、初期設定をします。

## admin area
`admin area` をクリックすると、以下のような管理画面へ飛びます。
まずは、色々設定を変更します。

<img width="1280" alt="Screen Shot 2018-01-06 at 12.05.12.png" src="https://qiita-image-store.s3.amazonaws.com/0/105936/451aa3c6-adcc-7efb-17d7-86da87161ba0.png">

### Timezoneの変更
`左メニュー SETTINGS -> General`で、Timezoneや通貨表示などの設定を日本に変更します。

<img width="1280" alt="Screen Shot 2018-01-06 at 12.09.58.png" src="https://qiita-image-store.s3.amazonaws.com/0/105936/a12567a9-2f17-da7f-1c3c-6325790abc26.png">

設定を変更したら、右下の `SAVE` をクリックして保存します。

## ユーザー表示名を本名にしたくない場合
サービスページで表示される、各ユーザーの名前を本名にしたくない場合は、以下の設定を行います。

`左メニュー -> SETTINGS -> User Settings`

`Show profile name as:` を `Username` に変更します

<img width="1280" alt="Screen Shot 2018-01-06 at 12.20.39.png" src="https://qiita-image-store.s3.amazonaws.com/0/105936/d9070d4e-a342-b07e-c90e-3aeac128a9ce.png">

設定を変更したら、右下の `SAVE` をクリックして保存します


## closedなSNSにする場合
サインインしないと閲覧できないようにする場合は、
`左メニュー -> SETTINGS -> User Settings` で、closedなSNSにすることができます

`Privacy -> Guests can view the site` を `No` にします。

<img width="1280" alt="Screen Shot 2018-01-06 at 14.31.05.png" src="https://qiita-image-store.s3.amazonaws.com/0/105936/7bd483fd-7376-e5a5-7571-b8c32f6d0381.png">


設定を変更したら、右下の `SAVE` をクリックして保存します

## Plugins
デフォルトではコミュニティを作成する機能がないため、 `Groups` というプラグインをインストールして、作成できるようにします。

`左メニュー -> PLUGINS -> Available Plugins`

<img width="1280" alt="Screen Shot 2018-01-06 at 12.27.40.png" src="https://qiita-image-store.s3.amazonaws.com/0/105936/2f07433e-a053-9982-0980-845706a6e496.png">

`Groups` にオンマウスして、右の方にある `INSATLL` をクリックします

<img width="728" alt="Screen Shot 2018-01-06 at 12.29.01.png" src="https://qiita-image-store.s3.amazonaws.com/0/105936/1399b3c7-33a5-9fc5-c48c-be1593508557.png">

プラグインの設定をする場合、 `左メニュー -> PLUGINS -> Installed Plugins` をクリックします。

`Groups` にオンマウスして、 `SETTINGS` をクリックすると、Pluginの詳細設定をすることができます。

<img width="1280" alt="Screen Shot 2018-01-06 at 12.31.18.png" src="https://qiita-image-store.s3.amazonaws.com/0/105936/8c268d1b-10e9-9aaa-1dd0-2304a382209d.png">

これでadminの最低限の設定は完了です。

## main page
`main page` をクリックすると、以下のようなサービスページに飛びます。

<img width="1280" alt="Screen Shot 2018-01-06 at 12.02.57.png" src="https://qiita-image-store.s3.amazonaws.com/0/105936/1df3faa1-69f9-78e7-91ac-92e4532690d6.png">

そうしたら管理者のプロフィールを入力してください。

すると、以下のようなページに飛び、利用開始できるようになります。

<img width="1280" alt="Screen Shot 2018-01-06 at 12.04.08.png" src="https://qiita-image-store.s3.amazonaws.com/0/105936/1ba779e0-1d5f-65db-5a8b-ed7e8e05b182.png">

## 日本語化する場合
以下の場所に、言語ファイルがあります。
ow_pluginfiles/base/

デフォルトでは、lang_1.phpが使われているので、これを修正するか、新たに日本語ファイルを作成して、読み込ませる必要があります。


## 参考
- [Plugin Structure](http://codex.oxwall.com/en/latest/plugin_structure.html)
- [Oxwall Software Documentation](https://wiki.oxwall.com/install:manual_installation)
- [Oxwallをxserverにインストールしてみた](http://laravel.hatenablog.com/entry/2014/03/15/225158)