composer部署Yii2框架(linux)遇到问题及解决思路总结

103 篇文章 2 订阅
20 篇文章 0 订阅

初次接触用composer安装php框架会遇到很多不明白的概念和流程,安装的过程也是一种学习的过程,不过有很多时候出错不一定是设置或命令错误,仅仅因为网络或者..墙的关系,不过这些不确定因素和陌生的模式,足以让部分初学者望而却步,另外包括很多解决问题的方法都是英文,在此也可以看出英语对程序员提升也很关键.

当然,yii框架并没有严格要求使用composer安装,所以也可以到官网下载相关程序包,解压使用(可能要有一些本地配置).

yii网址  : http://www.yiiframework.com/download/

composer网址  : http://www.phpcomposer.com/

一,安装composer

因为windows安装方式偏人性化(下一步..),一般也遇不到太大问题,如果遇到(请重启...)可以百度相关问题,也可以参考另一篇博文:http://blog.csdn.net/h330531987/article/details/76184087

windows安装包下载:https://getcomposer.org/Composer-Setup.exe

下面说linux下遇到的问题:

1.1 提示 "If possible you should enable it or recompile php with --with-openssl"

错误原因 这样的错误, 从最后一行可以看出,就是在编译 php 的时候,没有把 --witch-openssl 加上

解决方案 php无需重新编译安装openssl扩展

注:并不需要重启,添加扩展就可以使用

1.2 运行composer提示 -bash: php: command not found

错误原因 :  未全局安装或未配置环境变量

解决方案 :

在composer.phar目录下(我觉得cp要好些)
sudo mv composer.phar /usr/local/bin/composer
然后配置环境变量(如果出现'command not found ',则考虑环境变量)

vi /etc/profile
export PATH="$PATH:/usr/local/bin"
#保存后别忘执行source /etc/profile

1.3  root用户执行composer提示"Do not run Composer as root/super user"

错误原因 : composer为了防止非法脚本在root下执行,避免第三方使用root权限

解决方案:

因为是本地使用,所以我用root权限创建了一个user0用户,用户组为game,然后将composer权限修改,用su user0切换用户,通过user0运行
下面大致写下创建用户和用户组

groupadd game

useradd -g game user0
passwd user0     --设置密码
在用user0运行时可能需要用到sudo命令,此时需要root用户授权,授权配置在
vi /etc/sudoers

找到 'root ALL=(ALL)   ALL '  在下面添加一行
user0  ALL=(ALL)   ALL

然后还要设置composer文件权限
chmod 777 /usr/local/bin/composer

注:任意目录下执行      composer  -V          如果显示版本号和日期则安装就完成了

二,部署Yii2框架

一般安装都先看下官方文档,里面有很详细的说明和命令提示.
这里再说一下,可以将命令分步执行,这样出问题才能最快定位解决,
#安装composer管理前端资源(bootstrap, jquery)的插件
composer global require "fxp/composer-asset-plugin"
#再创建yii项目
composer create-project --prefer-dist yiisoft/yii2-app-basic basic
#上面为基础版,下面为高级版
composer create-project --prefer-dist yiisoft/yii2-app-advanced advanced

2.1 安装前端资源管理插件时,错误提示;"Changed current directory /home/user0/.composer"

错误原因: 

推测在运行全局composer命令前,使用了php composer.phar 局部命令,导致全局和局部出现交叉错乱

解决方案:

删除错误提示目录下的vendor/fxp目录

sudo rm -rf  /home/user1/.composer/vendor/fxp
重新执行
composer global require "fxp/composer-asset-plugin"

2.2 最让我纠结的''composer Failed to decode response: zlib_decode(): data error''

错误原因 : 

这个问题,有人说是composer版本问题,要么高,要么低(未验证) ; 也有人说是设置问题,确实有设置,但是设置以后依然没什么鸾用; 还有人说是网络问题(怀疑被墙了)??

解决方案 :

原因大致就这么几个,后来也不知道是哪个的问题,反正一套下来问题是解决了
1.升级composer
在composer文件目录下运行( /usr/local/bin )
composer self-update

2.设置/usr/local/php/lib/php.ini
 zlib.output_compression = On

 zlib.output_compression_level = 5

3.翻墙?还是推荐使用镜像吧

推荐一个网站 : https://pkg.phpcomposer.com/ 中国全量镜像,可以募捐,个人捐款50元就能挂头像

在指定项目的composer.json所在目录执行
composer config repo.packagist composer https://packagist.phpcomposer.com
如果还是不行就修改全局配置(官方推荐)

composer config -g repo.packagist composer https://packagist.phpcomposer.com

2.3  Your configuration does not allow connections to http://packagist.phpcomposer.com/packages.json. See https://getcomposer.org/doc/06-config.md#secure-http for details.

错误原因 :

使用composer链接http时候,由于composer.json设置不允许连接非ssl网址,所以出错

解决方案:

修改composer.json配置,添加一条

"config": {
        "secure-http": false
}

2.4 composer升级和更新yii


composer自己升级:

composer self-update

composer升级yii:

进入框架根目录,然后执行
composer update

2.5 关于GitHub,安装时要求输入Token (hidden):输入在官网生成的秘钥回车即可

一般会给一个github网址,需要复制后访问,如下:
Could not fetch https://api.github.com/repos/RobinHerbots/jquery.inputmask/contents/bower.json?ref=03e65a2d28159e885e18acee9cae53ac6318372b, please create a GitHub OAuth token to go over the API rate limit
Head to https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+localhost+2017-08-03+1904
to retrieve a token. It will be stored in "/home/vagrant/.composer/auth.json" for future use by Composer.
Token (hidden): 
使用github账号登录
点击 「Generate new token」 新建一个 Token,输入即可(此处是隐藏口令,输入时候并不能看到)



暂时就总结到这里,如果有不对的地方望留言指正.
转载请注明出处 : 一株马蹄莲--http://blog.csdn.net/h330531987/article/details/76690574

刚才装Laravel的时候遇到了一个小问题,顺便加在后面
错误提示:
Installing laravel/laravel (v5.2.31)
    Failed to download laravel/laravel from dist: The zip extension and unzip command are both missing, skipping.
The php.ini used by your command-line PHP is: /usr/local/php/lib/php.ini
    Now trying to download from source
  - Installing laravel/laravel (v5.2.31): Cloning 76b8ef7204

原因分析:
由于没有安装 zip unzip 包的问题,之前安装了yum,所以直接用yum安装
yum install -y zip unzip
顺便把curl也装了
yum install curl
如果是用 ubuntu系统,可以使用apt-get
apt-get install curl

apt-get install  zip unzip









.小尾

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值