多版本PHP使用composer时安装的推荐方式

COMPOSER是PHP的依赖管理工具,有多个版本,并且都支持PHP5.3.2+版本。

官方网址:https://getcomposer.org/

 

 

COMPOSER安装:

有几种方式可以进行COMPOSER安装:

 

1。下载 https://getcomposer.org/Composer-Setup.exe 安装程序,点击后开始安装。

      这种EXE的安装包,只有WINDOWS可以使用,它会安装最新版的COMPOSER

       安装时可以选择安装目录,会要求定位查找某个PHP所在目录,安装过程会使用到该版本PHP并且进行一些必要的检查。

      安装完成后会自动生成composer.batcomposer.phar文件。

 

 

2。下载https://getcomposer.org/installer  保存为任意名称的PHP文件(通常取名为composer-set.php)。

     然后通过某版本的PHP命令行进行执行该PHP文件

  (命令如:某版本php可执行文件  composer-setup.php  。在LINUX中下载和执行还可以一步完成:curl -sS https://getcomposer.org/installer | 某版本php可执行文件 。如果已经配置了默认版本PHP的环境变量,“某版本php可执行文件" 就直接换成"php")

 

     安装时可以指定安装目录(通过--install-dir=  来指定其它位置,否则默认会安装在命令行定位的当前工作目录),安装过程会使用该版本的PHP,并进行一些必要的检查。

     安装完成后会自动生成composer.phar文件。

 

     bug:    注意如果此时要安装非最新版本(即指定了--version,但不是最新版本),可能会出现下载卡住或404出错,这是因为最新的composer-set.php文件里指定了各版本会从install.phpcomposer.com下载,除了最新版下载文件在该域名下,而旧版本文件还没有转移过去,不在该域名下,而是在getcomposer.org域名下(它还包含最新版)。

     此时可以对composer-set.php作如下修改: 

       //$this->baseUrl = $uriScheme.'://install.phpcomposer.com';
       $this->baseUrl = $uriScheme.'://getcomposer.org';

     

 

3。 直接下载某版本(或各版本)的PHAR文件。

       如下载最新版的:https://getcomposer.org/composer-stable.phar

         windows命令行:   explorer https://getcomposer.org/composer-stable.phar

         linux命令行:          curl  https://getcomposer.org/composer-stable.phar

 

 

       其它版本的:

       V2.0.7: https://getcomposer.org/download/2.0.7/composer.phar

       V2.0.6: https://getcomposer.org/download/2.0.6/composer.phar

       V2.0.5: https://getcomposer.org/download/2.0.5/composer.phar

       ......

 

      将直接下载保存到指定的目录。这种安装不需要指定某版本的PHP,而且暂时不会进行必要的检查(通常在后期使用的时候根据出错情况再在PHP.INI配置就可以)。

 

 

三种安装方式最终都会有composer.phar文件,这个才代表的最终的COMPOSER。

所以推荐使用第三种直接下载的形式,它可以暂时免去必要的检查,防止前两种的安装过程中出现的错误(一旦出错就生成不了composer.phar

 

PHAR文件是一种PHP的归档文件(类似于JAVA的JAR),所以是可以通过PHP直接执行的。所以我们说的使用COMPOSER,其代表的意思就是:

通过PHP命令行执行composer.phar文件,其形式命令行代码如:   

             某版本的php可执行文件   某版本的composer.phar   ....

                例子:

                            (WINDOWS下  .exe可以省略)

                             d:/wamp/php/5.4.0/bin/php  d:/composer/composer2.0.6.phar  ...   

                             d:/wamp/php/5.5.1/bin/php  d:/composer/composer2.0.6.phar  ... 

                             d:/wamp/php/7.0.2/bin/php  d:/composer/composer2.0.7.phar  ...

 

                             (LINUX下,.sh,    .phar也可以省略)

                             /usr/lamp/php/5.4.0/bin/php  /usr/composer/composer2.0.6  ... 

                             /usr/lamp/php/5.5.1/bin/php  /usr/composer/composer2.0.6  ... 

                             /usr/lamp/php/7.0.2/bin/php  /usr/composer/composer2.0.7  ...    

                

 

接下来就是如何简化上述形式了,我们可以使用批处理或SHELL脚本。

首先,由于composer的任何版本针对PHP5.3.2或上以版本都是可行的,所以只需要使用一个版本的COMPOSER即可(推荐使用最新版本),不需要使用多版本的composer.phar。

 

WINDOWS下利用bat或cmd处理命令:

 假设:  d:/composer/为composer安装(或存放)目录。目录里有composer.phar为最新版(或某个旧版)

1)首先将composer.phar所在目录(d:/composer/)添加到环境变量。

 composer.phar同目录下创建:  composer540.bat  内容为:

                                                           @echo off

                                                           "d:/wamp/php/5.4.0/bin/php"  "d:/composer/composer.phar"  %*

 composer.phar同目录下创建:  composer551.bat  内容为:

                                                          @echo off

                                                          "d:/wamp/php/5.5.1/bin/php"  "d:/composer/composer.phar" %* 

 composer.phar同目录下创建:  composer702.bat  内容为:

                                                          @echo off

                                                          "d:/wamp/php/7.0.2/bin/php"  "d:/composer/composer.phar " %*

 

多个版本就复制多份批处理,修改内容当中的PHP相应版本的路径后,保存为不同名称的BAT文件。

使用简化后的命令:

         composer540 ...   

         composer551 ...   

         composer702 ...

嫌名称太长的话可以更进一步,将批处理文件命名短点:  c540.bat/c551.bat/c702.bat   那命令就缩短为:

         c540 ... 

         c551 ... 

         c702 ... 

              

LINUX下是同理的,只不过其可执行脚本为SHELL脚本

 

 

多版本PHP可用的COMPOSER安装的最终推荐的方式(以WINDOWS为例,LINUX类似):

采用形式:不在项目里局部安装,不在各版本PHP目录里安装,只在独立的目录里安装

 

第一步:    下载最新composer.phar: https://getcomposer.org/composer-stable.phar   保存为  f:\composer\composer.phar。将所在目录添加到环境变量(将f:\composer添加到环境变量)

第二步:  在composer.phar保存的目录里新建composer.bat文件,内容编写如:

               @echo OFF

               "默认使用的PHP版本安装目录/bin/php"   "f:/composer/composer.phar" %*

 

               如果有多个版本PHP,直接再复制composer.bat,并重新命名(如composer540.bat,有几个版本就复制几份),修改bat文件内容如:

               @echo OFF

              " c:/wamp/php/5.4.0/bin/php"   "f:/composer/composer.phar" %*

               

              

第三步:使用命令:

              使用默认版本:  composer ....

              使用PHP5.4.0版本 :  composer540 ...   

 

              命令出错就根据信息修改(由于采用直接下载phar文件,忽略安装过程,所以根据出错信息修改相应的php.ini。)

              另外如果提示PHP版本过低的情况,这个跟使用COMPOSER的版本没有关系,除非你使用了PHP5.3.2以下版本。这种情况跟依赖管理的提供方有关,即提供方的类库(框架)不支持低版本PHP。

 

 

TIPS: 

1。不知道(或忘记)版本:

           composer -V  

2。不知道(或忘记)COMPOSER安装在哪里:

           composer -h   

           最后的信息部分,会出现类如:

                            The help command displays help for a given command:

                            php f:\composer\composer.phar help list

           就可以知道路径。

3。更新到最新的COMPOSER版本:

          composer self-update 

          或者:下载最新composer.phar: https://getcomposer.org/composer-stable.phar  然后放到原安装目录,覆盖原来的就行(这种可以在self-update出错的情况下使用)

 

上一篇:PHP Laravel 创建项目到服务器(nginx、apache)运行(附带目录结构)


下一篇:linux + 宝塔 + thinkphp5.0 搭建后端api各种问题集合