1.通过安装器 symfony.phar 安装-出现问题
参考:
环境变量添加 PHP 命令解析器
指导:把 PHP 命令解析器添加到系统环境变量,建议PHP版本是5.4或更高版本。
操作:本地已安装 PHPStudy,找到 PHP 扩展路径,添加 php5.5.9 路径到系统环境变量。
下载安装器 symfony.phar
操作:执行命令 php -r "readfile('https://symfony.com/installer');" > symfony
,成功执行将下载 symfony 文件到当前目录。新建 Symfony 目录,剪切 symfony 到该目录,并把路径添加到系统环境变量。
访问 https://symfony.com/installer 发现页面404了,无法通过此方法安装 Symfony。
安装 Symfony
https://symfony.com/installer 页面404了,此时 symfony 文件内容也是如下报错内容。
创建 demo 应用程序
无
2.官网下载-只找到最新版本下载方式
3.Composer 安装 Symfony
参考:
安装 Composer
参考教程即可
安装 Symfony 2.2
执行命令 :composer create-project symfony/framework-standard-edition Symfony-demo “2.2.*”。
有一个异常错误:报错函数 ScriptHandler::buildBootstrap(),暂时没找到原因
[ErrorException]
Argument 1 passed to Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap() must be an instance
of Composer\Script\CommandEvent, instance of Composer\Script\Event given, called in phar://C:/ProgramData/ComposerS
etup/bin/composer.phar/src/Composer/EventDispatcher/EventDispatcher.php on line 377 and defined
生成的目录结构如下
继续执行命令,发生报错
cd Symfony-demo
php app/console server:run
发生报错
Warning: require_once(D:\Symfony\Symfony-demo\app/bootstrap.php.cache): failed to open stream: No such file or directory in D:\Symfony\Symfony-demo\app\console on line 10
Fatal error: require_once(): Failed opening required 'D:\Symfony\Symfony-demo\app/bootstrap.php.cache' (include_path='.;C:\php\pear') in D:\Symfony\Symfony-demo\app\console on line 10
尝试 Symfony 2.3 - 同样报错
与参考文章下载相同版本的 Symfony,仍有同样的错误
composer create-project symfony/framework-standard-edition Symfony-demo "2.3.*"
cd Symfony-demo
php app/console server:run
修改 composer.json - 同样报错
参考:app/bootstrap.php.cache : failed to open stream: No such file or directory
打开项目根目录下的 composer.json,找到数组 post-update-cmd。原数组如下:
"post-install-cmd": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
修改为如下内容,再执行 composer install ,发现仍然有相同报错。
"post-install-cmd": [
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap"
]
查看 composer 版本 - 非影响因素
根据执行命令,可以看到是使用 composer 创建 Symfony 项目时抛出了异常。
访问composer 官网,当前最新版本是 2.1.9,本机安装的是最新版本。
尝试 Symfony 3.0 - 安装成功!
参考:Wondows 使用composer搭建symfony框架过程
执行命令,安装成功:composer create-project symfony/framework-standard-edition Symfony-demo “3.0.*”
进入项目根目录,执行命令,启动成功:php bin/console server:run
composer.json 部分字典内容:
"scripts": {
"post-install-cmd": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
],
"post-update-cmd": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
]
},
再次尝试 Symfony 2.2 - 仍然报错
与安装 Symfony 3.0.* 执行相似的命令,还是报错。
尝试使用 Symfony 3.0 的 composer.json 的 scripts
字典替换 Symfony 2.2 项目的字典,仍然报错。
根据报错信息,尝试把 composer.json 中的报错函数行逐一删除,发现还是不行。
尝试 PHP 7.1.9 - 不可行
设置 PHP 7.1.9 的环境变量。
创建项目仍是相同报错,应该传入 Composer\Script\CommandEvent 的实例对象,而不是 Composer\Script\Event 的实例对象,所以应该是 composer 版本过新的问题。
更换 Composer 版本 - 安装 Symfony 2.2 成功 !!
替换 Composer.pha :找到 Composer 官网,下载 Composer.phar 1.0.1 版本。本地访问 C:/ProgramData/ComposerSetup/bin/,替换 composer.phar。尝试创建项目,发现证书报错。
回滚 Composer :cmd 打开命令行执行命令 composer self-update --1
,奇怪的是已经使用管理员了还要求必须是管理员并且 Access Denied。打开 Powershell ,成功执行该命令。
创建项目:composer create-project symfony/framework-standard-edition Symfony-demo4 “2.2.*” -vvv(没有报错)
成功启动项目:php app/console server:run
总结
目前按照网上教程安装 Symfony 2,不成功可能是因为 Composer 的版本过新,回滚到 Composer 1.x 版本即可。
按照网上教程安装 Symfony 3 很快就能安装成功。