Windows 安装 Symfony 2.2 框架 - 安装成功 !!

Posted 南瓜__pumpkin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows 安装 Symfony 2.2 框架 - 安装成功 !!相关的知识,希望对你有一定的参考价值。

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

以上是关于Windows 安装 Symfony 2.2 框架 - 安装成功 !!的主要内容,如果未能解决你的问题,请参考以下文章

安装 symfony 框架

无法在 Windows 上安装 symfony

swoole不能在windows下直接安装吗

Symfony框架

安装运行symfony框架编写的edusoho开源程序

在window环境下安装symfony2框架注意事项