Cloud9 で Laravel(v5.5.0) をインストールして Dusk を動かす方法

■Cloud9
https://c9.io/

(1)ワークスペース作成
Blankで、ワークスペース作成
README.mdは削除

(2)php7.1のインストール

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install libapache2-mod-php7.1
sudo a2dismod php5
sudo a2enmod php7.1
sudo apt-get install php7.1-dom php7.1-mbstring php7.1-zip php7.1-mysql php7.1-sqlite
service apache2 restart

(3)Laravel(v5.5.0)のインストール

sudo composer self-update
sudo composer create-project --prefer-dist laravel/laravel ./laravel
shopt -s dotglob
sudo chown ubuntu:ubuntu * -hR
mv laravel/* ./
rm -rf laravel

(4)Apacheのセットアップ

sudo vim /etc/apache2/sites-enabled/001-cloud9.conf
DocumentRoot /home/ubuntu/workspace
↓
DocumentRoot /home/ubuntu/workspace/backend/public
sudo composer update

(5)Laravel Duskの インストール

composer require --dev laravel/dusk
php artisan dusk:install

(6).envの修正
APP_URL=http://127.0.0.1:8000

(7)エラー対策01

【問題】
php artisan serve & php artisan dusk
を実行すると、この時点では、
Error: Call to undefined function Facebook\WebDriver\Remote\curl_init()
が出る。

【原因】
Facebook\WebDriverのバージョンが、古い(v1.1.1)ため。

【対策】
Facebook\WebDriverのバージョンを最新(v1.4.1)に変更する。

■Packagist – facebook/webdriver
https://packagist.org/packages/facebook/webdriver#1.4.1

(i) curlのインストール
1.1.2から requires に ext-curl: * が追加されているので、
curlをインストールする。

sudo apt-get install php7.1-curl

(ii)composer update

composer update

で、v1.4.1に上がりました。

(8)エラー対策02

【問題】
php artisan serve & php artisan dusk
を実行すると、今度は
Facebook\WebDriver\Exception\UnknownServerException: unknown error: cannot find Chrome binary
が出る。

【原因】
クロームバイナリが見つからない。

【対策】
クロームをインストールする。

sudo wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
sudo apt-get update
sudo apt-get install google-chrome-stable
google-chrome-stable --headless --disable-gpu --remote-debugging-port=9222 http://localhost & php artisan serve & php artisan dusk

で、無事成功!!

1回実行すると、Chrome と artisan serveのプロセスは残り続けるので、次回からは、

php artisan dusk

だけで、実行可能です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です