【问题标题】:setting up server on bluehost for laravel application and having issue with php -v在 bluehost 上为 laravel 应用程序设置服务器并遇到 php -v 问题
【发布时间】:2016-04-25 06:21:56
【问题描述】:

我正在为 laravel 应用程序设置一个新服务器。我已经安装了 composer 并从我的 cpanel 中选择了 php5.6.15。但是当我在终端中运行 php -v 命令时,它显示我当前的版本为 php5.2.19。

这是我服务器上的 php.ini 文件,它显示 5.6 版本

我已经使用 git 将我的代码上传到服务器。当我运行命令 composer install 它给我这个错误。

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - laravel/framework v5.1.28 requires php >=5.5.9 -> your PHP version (5.4.43) or value of "config.platform.php" in composer.json does not satisfy that requirement.
    - laravel/framework v5.1.28 requires php >=5.5.9 -> your PHP version (5.4.43) or value of "config.platform.php" in composer.json does not satisfy that requirement.
    - Installation request for laravel/framework v5.1.28 -> satisfiable by laravel/framework[v5.1.28].

我正在使用 laravel 5.1。如果我将它降级到 5.0,它会给其他包带来依赖错误。这是我的 composer.json 文件。

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.4.43",
        "laravel/framework": "5.1.*",
        "bestmomo/scafold": "dev-master",
        "illuminate/html": "5.*",
        "barryvdh/laravel-debugbar": "^2.0",
        "intervention/image": "^2.3",
        "doctrine/dbal": "^2.5",
        "davejamesmiller/laravel-breadcrumbs": "^3.0",
        "yajra/laravel-datatables-oracle": "^5.11",
        "zizaco/entrust": "dev-laravel-5"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~4.0",
        "phpspec/phpspec": "~2.1"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "pre-update-cmd": [
            "php artisan clear-compiled"
        ],
        "post-update-cmd": [
            "php artisan optimize"
        ],
        "post-root-package-install": [
            "php -r \"copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist",
    }
}

我在 /usr/php/php56 下有 php56,我可以通过为其设置别名或输入完整路径来运行它。我还给它起了一个别名,然后php -v 显示我5.6.15 但是当我运行时 composer install 它仍然提供与上述相同的输出。

我可能无法将 php cli 的默认版本设置为 5.6,或者它与 bluehost 服务器上的 laravel 框架支持有关。我认为 bluehost 支持不太重要,因为我有可以做其余工作的作曲家。非常感谢您帮助解决这个问题。

【问题讨论】:

  • 您确定要在远程(可能是生产环境)上构建和下载依赖项吗?这听起来像是一个不好的做法。最好为您的项目创建一个包(甚至是一个 zip )并将其部署到删除服务器,而不是在那里构建它(带有依赖项)
  • @mikibrv 你建议我应该从我的本地机器部署我的完整源代码并安装所有作曲家包在vendor/ 目录下??
  • 是的。我想这是部署 Web 应用程序(php - java - 不管)的最安全和最好的方法。这是一个你已经构建和测试过的包,你知道它在那里(有点类似于 GIT TAG)。大多数时候,您甚至不需要上传供应商目录(但是您必须使用一些版本控制,例如 GIT)。我给自己做了一个脚本,它只是从应用程序-引导程序-公共-供应商目录和 .htaccess 文件创建一个 zip
  • @mikibrv 你应该镜像本地和生产环境,这就是配置的目的。这样,开发人员可以在相同的环境中工作。永远不要上传供应商目录,您必须在生产或测试中运行 composer install,在开发中运行 composer update
  • 这毫无意义。如果您想在本地镜像生产,您将在每次更改时上传供应商文件夹,并确保它不会经常发生。如果您在生产环境中执行 composer install,首先您将在此过程中停机,如果发生意外情况,您将无法调试。

标签: php laravel server composer-php shared-hosting


【解决方案1】:

你应该像下面这样执行它:

/usr/php/php56 composer.phar

我必须在HostGator 做类似的事情才能让composer 工作。

要获取composer.phar,只需运行php -r "readfile('https://getcomposer.org/installer');" | php

【讨论】:

  • 我遇到了和 OP 完全相同的问题。我将 php-5.6.17 上传到服务器的根文件夹。当我运行命令 /php-5.6.17 composer.phar 时,我只是得到“php-5.6.17 是一个目录”作为响应。如果我执行命令“/usr/php/56 composer.phar”也是如此,因为 /usr/php/php56 在我的情况下不是有效目录。显然我正在寻找一个文件而不是一个目录,但我不确定我正在寻找哪个文件。我有php56s,但没有php56。不仅如此,当我用php56执行命令时,它说我需要使用php-cli。您对我如何解决此问题有任何想法吗?谢谢。
  • 啊,明白了。我必须运行命令:/usr/php/56/bin/php composer.phar install
  • im 在 public_html 路径中.... 我该如何执行这一行 /usr/php/php56 composer.phar
  • @user2094178 我也尝试安装作曲家我得到错误drive.google.com/open?id=0ByoLPyyQ3jAjZ0ZHTmJlSExPNDQ帮我解决这个问题
  • 对于 Hostgator(共享主机)使用 /opt/php56/bin/php composer.phar
猜你喜欢
  • 1970-01-01
  • 2020-06-12
  • 2017-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-12
相关资源
最近更新 更多