質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Stripe

Stripeとは、米国のオンライン決済システム提供企業、及び同社が提供する決裁システムを指します。Webサイトやモバイルアプリにコードを組み込むことでクレジットカードなどの決済サービスが簡潔に追加できます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

composer

Composerとは、PHP5.3.2以上で使用可能なパッケージ管理ツールです。指定ディレクトリ内だけでパッケージ管理します。

Q&A

解決済

2回答

713閲覧

composerによるライブラリのインストール autoloadに失敗する。

okubyou

総合スコア6

Stripe

Stripeとは、米国のオンライン決済システム提供企業、及び同社が提供する決裁システムを指します。Webサイトやモバイルアプリにコードを組み込むことでクレジットカードなどの決済サービスが簡潔に追加できます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

composer

Composerとは、PHP5.3.2以上で使用可能なパッケージ管理ツールです。指定ディレクトリ内だけでパッケージ管理します。

0グッド

0クリップ

投稿2018/08/13 17:36

composerによるライブラリのインストールを正常におこなえません

composerを利用した、決済サービスStripeのライブラリのインストールに苦戦しています
Stripeのドキュメントを参考にcomposer.jsonに要素を追加し、

php composer.phar install

を行い、phpでautoloadしたのですが、phpで記述されたページを読み込むと、目標のライブラリをautoloadできておらずErrorを吐きます。

Fatal error: Uncaught Error: Class 'Stripe\Stripe' not found in /var/www/html/chechoutCheck.php:9 Stack trace: #0 {main} thrown in /var/www/html/chechoutCheck.php on line 9

composerによるinstallのどこかの段階でミスを犯していると思うのですが、自力での調査で手詰まりを感じ始めました。
ご助力をお願いします。

composer.json

{ "require" : { "phpmailer/phpmailer":"~5.2", "stripe/stripe-php":"^6.15" } }

読み込むページ
Stripeのドキュメントのステップ2の部分を参考にしたもの

<?php require '../inc/vendor/autoload.php'; ini_set("display_errors", 1); error_reporting(E_ALL); // Set your secret key: remember to change this to your live secret key in production // See your keys here: https://dashboard.stripe.com/account/apikeys \Stripe\Stripe::setApiKey("sk_test_XXXXXXXXXXXXXXXXXXXX"); // Token is created using Checkout or Elements! // Get the payment token ID submitted by the form: $token = $_POST['stripeToken']; $charge = \Stripe\Charge::create([ 'amount' => 1000, 'currency' => 'jpy', 'description' => 'Example charge', 'source' => $token, ]); ?>

試したこと

Composerでインストールしているパッケージのバージョンを確認するを参考にパッケージを確認するとstripeのライブラリは確認できました。

$ php composer.phar show -i You are using the deprecated option "installed". Only installed packages are shown by default now. The --all option can be used to show all packages. phpmailer/phpmailer v5.2.26 PHPMailer is a full-featured email creation and transfer class for PHP stripe/stripe-php v6.15.0 Stripe PHP Library

venderディレクトリを確認すると以前composerでインストールしたphpmailerのディレクトリが存在し、今回インストールしたいstripeのライブラリ(stripe-php)が存在しないので、composerによるインストール自体がどこかの段階で失敗しているような気がします。

$ ls -al /var/www/inc/vendor/ total 4 drwxrwsr-x 4 user apache 59 Aug 13 09:10 . drwxrwsr-x 3 user apache 75 Jul 12 09:57 .. -rw-rw-r-- 1 user apache 178 Jul 12 09:30 autoload.php drwxrwsr-x 2 user apache 203 Jul 12 09:30 composer drwxrwsr-x 3 user apache 23 Jul 12 09:30 phpmailer

[PHP]ComposerでAutoload出来ない時の確認方法
上のページを参考にデバッグを試みた結果コード側でstripe-phpのautoloadに失敗していることは確認できました。

補足情報

PHP: 7.2.5
OS: Amazon Linux release 2 (2017.12)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

venderディレクトリを確認すると以前composerでインストールしたphpmailerのディレクトリが存在し、今回インストールしたいstripeのライブラリ(stripe-php)が存在しないので、composerによるインストール自体がどこかの段階で失敗しているような気がします。

一度インストールした composer.json を書き換えたのであれば composer install ではなく composer update を行ってください。

投稿2018/08/13 18:59

編集2018/08/13 19:02
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

okubyou

2018/08/15 05:01 編集

回答有り難うございます。 updateを試しましたが読み込みは成功せず、vender以下にファイルは生成されませんでした。 $ php composer.phar update Loading composer repositories with package information Updating dependencies (including require-dev) Nothing to install or update Generating autoload files $ ls -al /var/www/inc/vendor/ total 4 drwxrwsr-x 4 ec2-user apache 59 Aug 13 09:10 . drwxrwsr-x 3 ec2-user apache 75 Jul 12 09:57 .. -rw-rw-r-- 1 ec2-user apache 178 Jul 12 09:30 autoload.php drwxrwsr-x 2 ec2-user apache 203 Jul 12 09:30 composer drwxrwsr-x 3 ec2-user apache 23 Jul 12 09:30 phpmailer
guest

0

自己解決

自己解決しました。
正しいvenderディレクトリがワークディレクトリに生成されていましたが、
/var/www/inc/venderに上書きするのを忘れていました。
回答ありがとうございました。

投稿2018/08/17 08:01

okubyou

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問