Windows 安装 Symfony 2.2 框架 - 安装成功 !!(实验文)

博主在Windows环境下尝试通过多种方式安装Symfony2框架,遇到Composer版本过高导致的错误。通过回滚Composer版本至1.0.1成功安装了Symfony2.2。总结经验指出,安装旧版Symfony时可能需要匹配较低版本的Composer。
摘要由CSDN通过智能技术生成

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

替换 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 很快就能安装成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值