1***@qq.com
1***@qq.com
  • 发布:2021-02-13 23:43
  • 更新:2021-02-13 23:43
  • 阅读:2387

miniprogram-ci在linux的安装及php调用命令行遇到的坑

分类:uni-app

1.安装node
https://nodejs.org/dist/,下载,或者

wget https://nodejs.org/dist/v14.15.5/node-v14.15.5-linux-x64.tar.xz

这个文件需要你执行解压

tar -xvJf node-v14.15.5-linux-x64.tar.xz1

解压后建议放到/user/local/src
并修改文件名称为nodejs(也可不修改,主要方便输入和调用目录路劲等)
2.设置环境变量

vi /etc/profile
在最后面追加
export PATH=$PATH:/node存放路径/bin
立即生效
source /etc/profile

3.查看nodejs是否生效
node -v
npm -v
npm是安装nodejs自带的

4.安装微信miniprogram-ci
详见官网:https://developers.weixin.qq.com/miniprogram/dev/devtools/ci.html
npm install -g miniprogram-ci (-g为全局安装,这里的全局安装其实对于php调用miniprogram-ci命令没啥鸟用)

直接ssh控制台执行上传命令
miniprogram-ci upload --pp /www/wwwroot/xxx.xxx.com/miniwx/wxapp --pkp /www/wwwroot/xxx.xxx.com/miniwx/1/30/key/private.wx4e0000000000.key --appid wx4e0000000000--uv 1.2.11 -r 1 --enable-es6 true --enable-minify

注意这里的miniprogram-ci是全局安装 root权限可以直接使用该命令 php 下需要带上完整路劲 先测试是否能执行

5.php 调用

<?php
$command ="/usr/local/src/nodejs/bin/miniprogram-ci upload --pp /www/wwwroot/xxx.xxx.com/miniwx/wxapp --pkp /www/wwwroot/xxx.xxx.com/miniwx/1/30/key/private.wx4e0000000000.key --appid wx4e0000000000--uv 1.2.11 -r 1 --enable-es6 true --enable-minify";
exec($command.' 2>&1',$output,$status);
print_r($outpu);
print_r($status);

$status代表本次命令是否执行 执行了返回0
$outpu 代表命令行执行结果 例如有肯能返回miniprogram-ci:command not found

6.解决命令返回的各种错误

status 返回非0数字

126代表php无权限执行命令或没有文件操作权限 此时检查miniprogram-ci www用户组是否有权限 返回127代表没找到miniprogram-ci命令一般要求是必须写上miniprogram-ci的完整路径然后执行上传命令

outpu返回miniprogram-ci:command not found 没有权限

报错:/usr/bin/env: node: No such file or directory 如上述自行命令路径正确这代表php无法执行这个命令 原因是node需要使用软连接
命令:ln -s /usr/local/src/nodejs/bin/npm /usr/local/bin
命令:ln -s /usr/local/src/nodejs/bin/node /usr/local/bin
命令:ln -s /usr/local/src/nodejs/bin/npm /usr/bin/node

我想大概usr目录的命令需在/usr/bin下面调用 所有需要使用软连接调用

7.基本上述坑解决了就来到一个终极坑了,miniprogram-ci占用CPU的问题 只要启用minfiy的任何一种压缩就会超级吃CPU,如果不启用还会造成代码上传报错,无法成功上传 为此,官方有一个帖子,至今没有很好的解决此问题

希望这个帖子能帮助更多的人

0 关注 分享

要回复文章请先登录注册