【问题标题】:Setting up Laravel, getting PDO and permission problems设置 Laravel,获取 PDO 和权限问题
【发布时间】:2015-02-01 20:38:50
【问题描述】:

所以在我的 linux AWS 实例上,我正在尝试安装一个 laravel 应用程序,但遇到了大量的权限问题。 默认情况下,当我将项目克隆到 var/www/ 时,所有者是 Root。我将所有者更改为 apache,并将 ec2-user 添加到 apache。从我所读到的,这似乎是正确的。 从那里,我尝试运行 php composer.phar install,除非我运行 sudo,否则会导致权限错误,然后错误是“在 /var/www/Mumble/app/config/ 中找不到“类 'PDO'数据库.php”。 所以从那里,看起来 PDO 没有安装,所以我使用 yum 安装它,这让我得到了典型的 laravel 错误日志,但现在它说“找不到驱动程序”。查看 php 信息,pdo 是为 mysqli 配置的。这可能是我的问题吗?有人知道我可以寻找资源的地方吗?

【问题讨论】:

    标签: php mysql laravel amazon-web-services pdo


    【解决方案1】:

    首先,laravel 最新版本是 4.3,兼容 PHP >= 5.4(来源:Laravel Installation)。

    坏消息是,AWS 上的 apache 的 yum 包附带 PHP 5.3。在 ssh 控制台中使用 php phpinfo() 检查您的 php 版本。

    如果您拥有正确的 PHP 版本,则必须确保 PHP 在用户 apache 下运行。

    转到/etc/php.ini 并搜索参数user=。确保上面写着 user=apachegroup=apache

    如果所有这些都检查成功,那么您的最后一步是确保您的 /app/storage 目录具有 777 权限,所有者为 apache。只有 laravel 将这些用于内部目的,所以没关系。

    【讨论】:

      【解决方案2】:

      我怀疑您需要授予访问权限,是否可以访问 /var/www 目录?

      如果不试试这个,

      sudo chmod -R 777 /var/www
      

      为了获得安全权限,目录使用 775。

      也许你需要设置权限:

                # Set group to www-data
                 sudo chgrp www-data /var/www
                # Make it writable for the group
                sudo chmod 775 /var/www
               # Set GID to www-data for all sub-folders
                sudo chmod g+s /var/www
               # Add your username to www-data group
               sudo usermod -a -G www-data username
              # Finally change ownership to username
               sudo chown username /var/www/
              # Your account shouldn't have any more permission issues  
      

      注意:在继续之前请阅读文件权限。

      【讨论】:

      • 这不是很大的安全风险吗? (我是真正管理权限的新手,我对这个项目的主要关注是应用程序的安全性)
      • 这取决于你的情况谁将能够读/写/执行权限。
      • 但如果您担心安全性,请使用 775 作为目录或文件 664
      • 好吧,我编辑了包含良好安全实践的命令,您可以查看权限问题:grymoire.com/Unix/Permissions.html
      • 我了解您在此处列出的权限更改,这里的问题是 www-data 不是一个组。 Apache 以 User=Apache、Group=Apache 的身份运行。我将 Group 更改为 www-data,但从这里我真的不知道如何正确地将其添加到 etc/group。我看到有人在某处发布了这些命令,当我运行它时,我用 apache 代替 www-data 运行它,这是我的问题吗?
      猜你喜欢
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 2021-02-02
      • 1970-01-01
      • 1970-01-01
      • 2021-09-20
      • 1970-01-01
      • 2017-12-01
      相关资源
      最近更新 更多