使用composer来安装和更新PhalApi 2.x

安装Redis

若项目依赖redis,注意要在php管理器中安装redis扩展
file

下载phalapi

官方仓库https://github.com/phalapi/phalapi/tree/master-2x
下载zip压缩包并解压。
若电脑打不开文件包下载,可以尝试用手机去下载。
将phalapi-master-2x目录上传到服务器的指定目录下。
file

进入指定目录

打开宝塔SSH终端,进入欲安装的目录

cd /www/wwwroot/api.jidongyun.cn/phalapi-master-2x

安装Composer

执行如下命令,安装composer.phar

curl -sS https://getcomposer.org/installer | php

等待半分钟,可以看到目录下多了“composer.phar”文件。说明已经安装好了。
安装过程如下:

All settings correct for using Composer
Downloading...

Composer (version 1.10.1) successfully installed to: /www/wwwroot/api.jidongyun.cn/composer.phar
Use it: php composer.phar

如果运行时报错:

The installation directory "/www/wwwroot/api.goldarts.cn/phalapi-master-2x" is not writable

是因为运行目录的权限不足导致的。
需要在宝塔设置该目录的公共权限。
最好设置为777权限,以免后续出现各种“Permission denied”报错。

file

查看composer信息

php composer.phar

查询结果如下:

   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.10.1 2020-03-13 20:34:27
...

禁用函数

若使用查询命令报错,需检查php配置中‘putenv’这个含是否被禁用。禁用后可能会出现如下错误:

pi@raspberrypi:/www/wwwroot/api.goldarts.cn/phalapi-master-2x $ php composer.phar
PHP Fatal error:  Uncaught Error: Call to undefined function Composer\XdebugHandler\putenv() in phar:///www/wwwroot/api.goldarts.cn/phalapi-master-2x/composer.phar/vendor/composer/xdebug-handler/src/Process.php:160
Stack trace:
#0 phar:///www/wwwroot/api.goldarts.cn/phalapi-master-2x/composer.phar/vendor/composer/xdebug-handler/src/Status.php(47): Composer\XdebugHandler\Process::setEnv()
#1 phar:///www/wwwroot/api.goldarts.cn/phalapi-master-2x/composer.phar/vendor/composer/xdebug-handler/src/XdebugHandler.php(77): Composer\XdebugHandler\Status->__construct()
#2 phar:///www/wwwroot/api.goldarts.cn/phalapi-master-2x/composer.phar/bin/composer(16): Composer\XdebugHandler\XdebugHandler->__construct()
#3 /www/wwwroot/api.goldarts.cn/phalapi-master-2x/composer.phar(24): require('...')
#4 {main}
  thrown in phar:///www/wwwroot/api.goldarts.cn/phalapi-master-2x/composer.phar/vendor/composer/xdebug-handler/src/Process.php on line 160

file

此外,还需查询以下函数是否禁用:

 proc_open
 exec
 shell_exec

更新版本

composer selfupdate

结果如下:

Updating to version 1.10.1 (stable channel).
   Downloading (100%)         
Use composer self-update --rollback to return to version 1.9.1

查看版本号

composer --version

结果如下:

Composer version 1.10.1 2020-03-13 20:34:27

使用 Composer

确保你的项目目录下,存在“composer.json”文件。如果没有的话,按照指定格式新建一个。
然后执行install命令:

php composer.phar install

由于git仓库的文件,都保存在国外的服务器。所以同步的时间会稍长。
执行结果如下:

Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing api/jwt (dev-master 45c22a1): Cloning 45c22a1d70
Writing lock file
Generating autoload files

执行完成后,项目目录下会多出一个“composer.lock”文件。

file

也可能出现执行失败的情况,报“Content-Length mismatch”错误

[Composer\Downloader\TransportException]                                  
  Content-Length mismatch, received 1183 bytes out of the expected 1503698

查看一下当前项目的composer镜像

composer config -l

当前使用的镜像可能有问题。所以需要更换镜像
需要注意的是,更换镜像不要进行全局更换的命令,而是要针对这个项目去更换镜像
所以,要在这个项目的根目录下,也就是composer.json的路径下 
针对这个项目更换镜像。使用阿里云镜像

composer config repo.packagist composer https://mirrors.aliyun.com/composer/

更换镜像后,再执行install命令即可。

使用阿里云的镜像,也有可能出现以下报错

[Composer\Downloader\TransportException]                                                                                                                                                 
  The "https://mirrors.aliyun.com/composer/p/provider-2017%248b8b2c1627e2216d9b910bf3d8218b05804048e6ee6c09746f82e0b39532964a.json" file could not be downloaded (HTTP/1.1 404 Not Found) 

遇到阿里云镜像报错的,可以切换到腾讯云的镜像

composer config repo.packagist composer https://mirrors.cloud.tencent.com/composer/

更新目录和依赖

如果需要更新目录,可以执行如下命令:

php composer.phar update

或者

composer update

如果没有需要更新的文件,结果如下:

Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files

需要注意的是,由于依赖文件都存在国外的服务器上,更新过程有时候会出现各种莫名其妙的报错提示,甚至是无法更新。
遇到这种情况,可以多试几次,或者等待一段时间再试。
也可以换一个源,再次进行update操作。

如果是定制的插件,或者自己开发的插件,上传后需要次日才能update。
所以,如果不是致命的报错,只要能正常开发,可以忽略。
file

参考资料

https://www.likecs.com/show-307875543.html
https://baijiahao.baidu.com/s?id=1722410774183692026&wfr=spider&for=pc
https://pkg.xyz/

1. 官方交流QQ群,添加多个不批。建议使用安卓手机或电脑申请。
飞云脚本圈: 586333520飞云脚本圈
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » 使用composer来安装和更新PhalApi 2.x

企业级大数据智能营销管理系统

了解详情