PHP
Composer
stripe
laravel
cloud9

LaravelでStripeを導入しようとしたらStripe\Stripeが無いよとなる件

環境

Laravel5.3
PHP7.0.26
Cloud9

今回の闇(エラー内容)

stripe/stripe-phpを使いたくて
composer update もしくは composer require stripe/stripe-phpを実行しても
下記のエラーが出てしまう。

- stripe/stripe-php v6.28.0 requires ext-curl * -> the requested PHP extension curl is missing from your system.

ブラウザでテスト実行すると、当然下記のweb.phpの該当箇所で怒られる。

web.php
FatalThrowableError in web.php line ***:
Class 'Stripe\Stripe' not found

闇は深かったが、解決しました。

ターミナルで順番にやるべきこと

$ sudo apt-get install php7.0-curl
$ cp /usr/lib/php/20151012/curl.so ~/workspace/ext/curl.so
$ sudo service apache2 restart
$ composer require stripe/stripe-php

考察

Cloud9でLaravelを動作するために、PHPのバージョンを5から7にした為、本来extファイルにcurl.soが入る必要があったのだが、別のファイルにcurl.soが保存されてしまったと考えられる。その為、コピーしたら、composerが無事に動いてくれた。
もっと違うやり方があるのかもしれないが、一旦動いたので、他にも同じことで困っている方がいたらお試しあれ!

Special Thanks

今回、G's Academyの先輩でありデジタルハリウッド大学院の同期である酒井氏(@sakateu)に、多大なるご協力をいただきました。ありがとう!!