composerを使っていて何やかんやメモしたくなることがある。
composerを使うための準備
同じWindows上で使うにしても、使う状況により準備が違う。
検索してて出てくる情報って、Linuxで操作することを想定したものが多いから、WSL(Windows Subsystem for Linux)を介するほうを自分はオススメする。
Windowsで直接composer使う準備
WSLの仮想環境下でcomposer使う準備
プロジェクト専用composer作る
curl -sS https://getcomposer.org/installer | php
または
php -r "readfile('https://getcomposer.org/installer');" | php
基本的には通常のcomposerインストールと一緒。
パス通すとこに置かないだけの話。
Windowsで使う場合は『php -r』の方を使う。
"https"のPHPエラーで、composerを入れられない!
PHPのエラーで、インストール実行出来ない場合は、php.iniの見直しが必要。
Warning: readfile(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in Command line code on line 1 Warning: readfile(https://getcomposer.org/installer): failed to open stream: No such file or directory in Command line code on line 1
php.iniの設定で『httpsが実行できない状態』になっている。
『php.ini』にて、opensslのextensionを探して、有効化する。
;extension=openssl
※前は『php_openssl.**』だった。『**』は実行環境にもよる拡張子。winなら.dll、linuxなら.so
先頭にある『;』が『コメントアウトの文字』なので、消す。
結果、こんな感じになる。
extension=openssl
これでhttpsアクセス云々のエラーは出ないハズなので、再度先程の『php -r 云々』実行する。
『php.ini』の場所が解らない場合、コマンドツールから『php --ini』と打ち込む。
▼こんな感じで、この場合は『c:\windows』が置く場所。
> php --ini Configuration File (php.ini) Path: C:\WINDOWS Loaded Configuration File: (none) Scan for additional .ini files in: (none) Additional .ini files parsed: (none)
※php.iniがない場合『php.ini-development』をコピーし、名前を『php.ini』にする。『php.ini-development』の場所はphp.exeある場所。
php.iniから上記に該当するextensionを探して、有効化する。
プロジェクトを作る
パッケージをインストールする場合(※以下はlaravelの場合)
composer create-project --prefer-dist laravel/laravel xxx
特にパッケージ云々なく空プロジェクトを用意する場合
composer init
質問に答えていけば出来る。英語だけど。
貰ったプロジェクトをインストールする
composr.jsonある場所で、下記コマンドを実行。
composer update
これで環境は整う、
ライブラリやパッケージをインストール
主に配布サイトで指定がある場合は
composer require <package>[:<tag>]
もしくは『composer.json』を書き換えて
composer install
または
composer update
バージョン指定で『チルダ(~)』と『キャレット(^)』と『アスタリスク(*)』
- 1.*
- 1系全部
- ~1.1
- 1.1.0以上、2.0.0未満
- ^1.1
- 1.1.0以上、2.0.0未満
- ~1.1.5
- 1.1.5以上、1.2.0未満
- ^1.1.5
- 1.1.5以上、2.0.0未満
- ~0.3
- 0.3.0以上、1.0.0未満
- ^0.3
- 0.3.0以上、0.4.0未満
インストーラパスは絶対ではない
ものによってはインストーラパスが使えない様子。
"require": { "fortawesome/font-awesome": "*" },
を
"extra": { "installer-paths": { "public/vendor/{$name}/": [ "fortawesome/font-awesome" ] } }
こうしても動かないものは動かない
インストーラーパスは無視されます・Issue#206・作曲家/インストーラー・GitHub
コメント