Loading...
LaravelPHP

Cloud9でLaravel-echo-serverを動かす。

はじめに

まず最初に、前回の記事Cloud9でLaravel構築の環境構築を前提に書いている。

ブロードキャストSocket.Ioをまずはじめに目を通しておくこと。

Apache

sudo vim /etc/apache2/ports.conf
その後、Listen 8082を追加し保存する。
Listen 8082

supervisorのインストール

既にインストール済みの場合は無視する。
cd ~/workspace/laravel
sudo apt-get install supervisor
sudo sysv-rc-conf supervisord on
sudo service supervisord start

apache

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo service restart apache2
sudo vim /etc/apache2/sites-enabled/001-cloud9.conf
その後、下記の内容を追加する。
# laravel-echo
<VirtualHost *:8082>
    ServerName https://${C9_HOSTNAME}:443
    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:6001/
    ProxyPassReverse / http://127.0.0.1:6001/
</VirtualHost>

laravel-echo & laravel-echo-serverのインストール

cd ~/workspace/laravel
npm install laravel-echo
npm install -g laravel-echo-server
詳しくは→laravel-echo-server

CLIツールで初期化

cd ~/workspace/laravel
$ laravel-echo-server init
? Do you want to run this server in development mode? Yes
? Which port would you like to serve from? 6001
? Which database would you like to use to store presence channel members? redis
? Enter the host of your Laravel authentication server. http://localhost
? Will you be serving on http or https? http
? Do you want to generate a client ID/Key for HTTP API? Yes
appId: 任意のIDが作られる
key: 任意のキーが作られる
Configuration file saved. Run laravel-echo-server start to run server.
その後、以下の内容のlaravel-echo-server.jsonが作られる。
{
    "authHost": "http://localhost",
    "authEndpoint": "/broadcasting/auth",
    "clients": [
        {
            "appId": "任意のIDが作られる",
            "key": "任意のキーが作られる"
        }
    ],
    "database": "redis",
    "databaseConfig": {
        "redis": {},
        "sqlite": {
            "databasePath": "/database/laravel-echo-server.sqlite"
        }
    },
    "devMode": true,
    "host": null,
    "port": "6001",
    "protocol": "http",
    "socketio": {},
    "sslCertPath": "",
    "sslKeyPath": ""
}

supervisorコンフィグファイルの作成

sudo vim /etc/supervisor/conf.d/laravel-echo.conf 
[program:laravel-echo]
directory=/home/ubuntu/workspace/laravel/
process_name=%(program_name)s_%(process_num)02d
command=/home/ubuntu/.nvm/versions/node/v7.10.0/bin/laravel-echo-server start
autostart=true
autorestart=true
user=ubuntu
numprocs=1
redirect_stderr=true
stdout_logfile=/home/ubuntu/workspace/laravel/echo.log
stderr_logfile=/home/ubuntu/workspace/laravel/echo_error.log
environment=PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ubuntu/.nvm/versions/node/v7.10.0/bin
その後保存。
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-echo:*
sudo service restart apache2
この時点で、https://laravel-template-XXXX.c9users.io:8082/にアクセスすると、Cannot GET /と出力されれば成功。
ブロードキャスト:Socket.IOをみると、ポート番号が6001となっているが、Cloud9の仕様上8082に書き換えて使用すること。

コメントを残す

%d人のブロガーが「いいね」をつけました。