奇妙な設定のビットですが、プロジェクトを開始するためにComposerがローカル環境で使用されているプロジェクトがあります。オリジナルの開発者はプロダクションサーバーへのsshアクセス権を持っていなかったため、ローカルでComposerを使用し、FTPを使用してデスクトップからサーバーに 'vendor'ディレクトリをアップロードしました。行うこれらのComposerをローカルで使用してからFTP経由でファイルをアップロードする
Desktop/composer.json
Desktop/composer.lock
Desktop/vendor/autoload.php
Desktop/vendor/composer/*
Desktop/vendor/phpmailer/*
:
cd Desktop/
composer require phpmailer/phpmailer
これは私のデスクトップに次のような構造を作成しました:私は今では私のMac上でローカルに次のことを行っているPHPMailerパッケージを追加する必要が
私はFTP経由でアップロードする必要がありますか?私はvendor/phpmailer/*
が私が欲しいパッケージだと気付くので、アップロードが必要です。
他はどうなりますか?すでにオートローダが設定されているので、ここではvendor/autoload.php
を推測する必要はありませんか?
composer.json
私は既にそこにあるものにパッケージを追加できます。
"require": {
*other packages here*
"phpmailer/phpmailer": "^5.2"
}
しかし、それは必要だ場合、私はすべての更新プログラムを実行するために、サーバー上のssh /作曲を使用するつもりはないので、私は確認されませんでしたか?
phpmailerに必要なものによって異なります。空のプロジェクトを作成し、作曲家にphpmailerだけを要求してみてください。どのパッケージが正常に動作し、FTPクライアント経由でアップロードする必要があるかを確認するだけです。 –
あなたは 'vendor'に何もアップロードしません。 'composer.lock'をサーバにアップロードし、サーバ上で' composer install'を実行します。 – ceejayoz
@ceejayozは投稿を再読しました - コンポーザーコマンドを実行するためのサーバーへのアクセス権はありません! – Andy