【问题标题】:Composer on Amazon Server ec2 - autoload not workingAmazon Server ec2 上的 Composer - 自动加载不起作用
【发布时间】:2016-05-14 22:23:15
【问题描述】:

我配置了一个亚马逊云服务器,安装了 php、apache 等。然后安装了 composer 并运行 $php composer.phar 并运行它。

但是当我尝试包含 vendor/autoload.php 文件(我可以在服务器上清楚地看到)时,我收到了这个警告和致命错误,因为它似乎找不到文件:

警告:要求(/home/ec2-user/vendor/autoload.php):无法打开流:第 12 行 /var/www/html/index.php 中的权限被拒绝

致命错误:require():在 / 中打开所需的 '/home/ec2-user/vendor/autoload.php' (include_path='.:/usr/share/pear:/usr/share/php') 失败var/www/html/index.php 第 12 行

第 12 行很简单:

require "/home/ec2-user/vendor/autoload.php";

有没有人知道是什么导致了这个错误或任何有助于消除错误的东西?谢谢。

【问题讨论】:

  • 转到您的 laravel 项目的根目录并使用 composer.phar update 更新您的作曲家。
  • 谢谢..我没有运行 laravel 项目(当然,我可能不知道那是什么意思)。换句话说,只有当调用 autoload 的文件在某个文件夹中时,composer 才会起作用?
  • Ok.. 这个错误表明 autoload.php 文件在 require 路径中不可用。该文件依赖于框架,将自动生成。这也取决于框架。你能告诉我你使用的是哪个框架吗?
  • 我试图使用他们说你可以通过作曲家获得的 dompdf。谢谢
  • 只需检查您的 autoload.php 文件是否存在于/home/ec2-user/vendor/autoload.php 中。还要检查您对该文件的权限。 Apache 应该能够在您的 /home 目录中读取它。

标签: php amazon-ec2 composer-php


【解决方案1】:

我遇到了同样的问题,下面是我解决它的步骤:

  1. 安装 composer,如:https://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/installation.html
  2. 复制www根目录下的所有composer组件
  3. 将 composer 组件的所有权更改为 apache
  4. 如果您将 ini 文件用于 AWS 凭证,请将其放在 /.aws 下(根文件夹下)

步骤如下:

cd ~
mkdir composer
cd composer
curl -sS https://getcomposer.org/installer | php
php composer.phar require aws/aws-sdk-php
sudo cp -r ~/composer /var/www/html
sudo chown -R apache:apache /var/www/html/composer
sudo mkdir /.aws

不要忘记将凭证文件复制到 ./aws。 您还可以将凭证文件的读取权限限制为仅限于快速:

sudo chown apahce:apache ./aws/credentials
sudo chmod 440 ./aws/credentials

最后,更新 php 文件中所需的语句。在上面的示例中,我将作曲家放在它自己的文件夹中,因此参考将是:

require 'composer/vendor/autoload.php';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-26
    • 2015-04-09
    • 2022-11-12
    • 2013-04-04
    • 2018-06-23
    • 2012-05-29
    • 2017-01-05
    • 2014-10-25
    相关资源
    最近更新 更多