准备安装一个完整纯净的YII框架,用于学习,苦恼的是不知道无法安装,看了官方的权威手册,执行命令发现报错。
现在记录完整的过程,以便于后期总结和分析。
服务器环境:Linux操作系统,Nginx,PHP 7.2, Mysql 5.6
第一步:用SSH连接自己的服务器
第二步:执行下面的命令(下载文件):
curl -sS https://getcomposer.org/installer | php
第三步:执行下面的命令(移动文件):
mv composer.phar /usr/local/bin/composer
第四步:执行安装命令(基础版),如下:
composer create-project --prefer-dist yiisoft/yii2-app-basic 具体目录
上面的“具体目录”,自己修改成为真实的网站文件目录,我的是 “/www/wwwroot/new.gongyingchuanbo.com”
所以,我需要执行的命令是如下的命令,你自己的,改掉即可
composer create-project --prefer-dist yiisoft/yii2-app-basic /www/wwwroot/new.gongyingchuanbo.com
提示: 如果你想安装 Yii 的最新开发版本,可以使用以下命令代替, 它添加了一个 stability 选项
composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic 具体目录
于是,真实的执行命令,就成了如下:
composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic /www/wwwroot/new.gongyingchuanbo.com
特别提醒:高级版安装命令略有不同
composer create-project --prefer-dist yiisoft/yii2-app-advanced 网站根目录
这个命令,会将高级应用程序安装在 你的网站根目录中。 当然,上面命令代码中的 “网站根目录” 必须更换成为你的网站真实目录,比如: /www/wwwroot/new.gongyingchuanbo.com
期间,可能会出现报错:
错误一:putenv() has been disabled for security reasons,错误(函数被禁用)解决方式
产生这个错误的原因是putenv()函数处于安全考虑被禁用了,开启这个函数就可以了。
我使用的是宝塔面板,在对应的php版本的设置中,找到禁用函数列表,删掉putenv函数,然后重启PHP 即可。
同样的道理,如果报其他的函数禁用,也同样的操作,比如最常见的,还有如下提示,一样的,PHP 管理设置里面,删除 exec 函数后重启 PHP 服务就可以了;
[ErrorException] exec() has been disabled for security reasons
错误二:不为空,自己把网站根目录下面的文件和文件夹全部删除即可解决
安装中途,需要输入一个 token,这个 token 从 GitHub.com 获取,没有帐号的话,自己注册一个
https://github.com/settings/tokens
把获取到的 token,在 SSH 中输入,它将会自动 写入到你的服务器 "/root/.config/composer/auth.json" 文件里面
0f57a6e62ddd86c2256e14a3abb28f4e6fbef976
注意哦,在SSH 中,输入或者粘贴 token,屏幕上不会显示出来,你只需要 粘贴后,回车即可!记得敲一下 回车键!
看到绿色的文字 “Token stored successfully”,表示 Token 正确,输入成功!
输入成功后,在你的 服务器目录 /root/.config/composer/auth.json 里面会写入 Token 数值,如下图:
错误三:下载 或者 安装 bower-asset/bootstrap 出错,如下图:
这个时候,需要自己下载一个 归档文件,把 bower-asset/bootstrap 目录提取出来,放到自己的网站对应的目录里面去,路径:vendor/bower-asset,执行时间,可以是在 前述“第四步”开始执行命令以后,在自己的网站根目录下面,可以看到 很多新增的文件夹以后,上传。
错误四:函数被禁用
错误代码:[ErrorException] exec() has been disabled for security reasons
解决办法:打开宝塔控制面板,PHP管理设置里面,禁用函数,删除 shell_exec 函数
如下图的操作:
总结:
整个安装过程,稍不注意就会全部失败,我是搞了好几天,一边操作,一边百度,一边记录。
还有,国外 Github 总是抽疯,始终下载不完整的朋友,可以考虑切换镜像源,如下:
一键切换国内镜像,命令为
composer config -g repo.packagist composer https://packagist.phpcomposer.com
阿里云镜像,命令为:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
阿里云原文地址:https://developer.aliyun.com/composer
切换为国外镜像,命令为:
composer config -g repo.packagist composer https://packagist.org
或者,取消镜像设置,改回到默认,用下面的命令
composer config -g --unset repos.packagist
清空缓存的命令:
composer clear-cache
查看自己设置的镜像是否成功
使用下面的命令即可
composer config -gl
如图:
还有一个非常坑爹的地方,就是安装 bower-asset/bootstrap 始终不成功!或者是 下载 bower-asset/bootstrap 失败
根据官方文档,需要把如下代码加入到 composer.json 文件里面,目录是:/root/.config/composer/composer.json
"replace": {
"bower-asset/jquery": ">=1.11.0",
"bower-asset/inputmask": ">=3.2.0",
"bower-asset/punycode": ">=1.3.0",
"bower-asset/yii2-pjax": ">=2.0.0"
}
如下图:
Linux 下,采用归档文件安装 YII 框架的方法:
https://my.oschina.net/botkenni/blog/1604244