【问题标题】:Change php.ini - amazon EC2. Problems with permissions更改 php.ini - 亚马逊 EC2。权限问题
【发布时间】:2016-10-02 02:33:11
【问题描述】:

我在服务器方面没有太多经验,但我尝试过做一些事情;) 我在亚马逊 EC2 上有我的 WP 网页和 我想通过filezilla(sftp)编辑php.ini中的一些设置但我必须为我的用户设置权限:

sudo chown -R ec2-user:ec2-user /etc

但现在我什至无法重新启动 apache 或将权限设置回 root 如果我尝试做这样的事情:

sudo chown -R root:root /etc

sudo systemctl restart apache2.service

我看到以下信息: “sudo:/etc/sudo.conf 归 uid 500 所有,应为 0 sudo:/etc/sudoers 归 uid 500 所有,应为 0 sudo:找不到有效的 sudoers 源,退出 sudo:无法初始化策略插件”

我能做什么?

【问题讨论】:

  • 你这样做很可能破坏了服务器。

标签: php apache amazon-ec2


【解决方案1】:

有两种选择。

  1. 在亚马逊上创建一个新实例。检查新机器上的文件权限。

cd /etc
ls -lrt

这应该给出这样的结果

-rw-r--r--  1 root root      2064 Nov 24  2006 netscsid.conf
-rw-r--r--  1 root root      1343 Jan 10  2007 wodim.conf
-rw-r--r--  1 root root       624 Aug  8  2007 mtools.conf
-rw-r--r--  1 root root      2570 Aug  5  2010 locale.alias
-rw-r--r--  1 root root       356 Jan  2  2012 bindresvport.blacklist
-rw-r--r--  1 root root       349 Jun 26  2012 zsh_command_not_found

old EC2实例上一一设置相同的权限。

示例

chown -R root:root netscsid.conf

  1. 您可以创建一个新设置。

PS: 以后,您可以使用此命令更改 php.ini 文件,而不是更改所有者或权限。

sudo vim /etc/php5/apache2/php.ini

【讨论】:

【解决方案2】:

无需更改包含 php.ini 文件的文件夹的所有权。

目标:授予用户“ec2-user”权限,以便 FileZilla 可以写入包含 php.ini 文件的 /etc 文件夹。

这样做,我们可以重命名原始 php.ini 文件并用修改后的副本替换 php.ini 文件。

步骤:

  1. 通过“Putty”登录到 ec2 实例
  2. 导航到包含 php.ini 文件的文件夹 示例:

    cd ../

  3. 用途:

    ls -l

    列出文件和文件夹及其权限

  4. 查找显示包含 php.ini 文件的文件夹的行 像这样的东西:

    drwxr-xr-x 80 root root 4096 Jul 11​​ 08:15 etc

  5. 更改此文件夹的权限:

    sudo chmod 777 等

    注意:稍后将其更改回原始权限

  6. 用途:

    ls -l

    查看变化

  7. 重启 Apache:

    sudo 服务 httpd 重启

现在 FileZilla 将拥有该文件夹的权限, 重命名原始 php.ini 文件以在将来恢复 用修改后的副本替换 php.ini 文件

一分钟后检查你的网站(有错误的页面),错误会显示出来。

【讨论】:

  • chmodding /etc 到 777 会破坏各种东西,而且非常不安全。
【解决方案3】:

你不应该这样做sudo chown -R ec2-user:ec2-user /etc。您已修改整个 /etc 目录的权限设置。

/etc 对您的操作系统来说是一个非常重要的文件夹,这就是您收到错误的原因。

启动一个新实例并从之前的实例中备份您的源代码,然后重新上传代码。如果您有任何问题,请告诉我。

我不明白为什么你不能修改你的php.ini 文件?您需要 ssh 进入服务器并编辑文件。如果不能这样做,则需要将文件移动到允许的 ftp 文件夹,修改文件并将文件放回原来的位置并重新启动apache

此外,我建议您将Ubuntu 用于您的Wordpress 服务器,而不是使用Linux 的CentosAmazon Flavor。

【讨论】:

    【解决方案4】:

    简短的回答是chown -R 是递归的,并且有许多实用程序以及各种操作所需的其他文件和程序,包括sudosuRoot 是具有uid 0 的特殊用户,该用户具有更大的权限,并且能够执行某些操作,而ec2-user 则不能。这意味着撤消您所做的事情并不简单或直接。

    这就是为什么到目前为止提供的答案都集中在重新安装操作系统上,我也建议这样做。它可能更快。

    这个答案的另一部分是不要尝试使用 sftp 进入服务器来更改核心文件。它需要在根(或 /etc)目录中有一个 sftp 登录登陆,这不是常见的配置。

    相反,使用 sftp 或 scp 将更改的文件复制到用户目录,然后从命令提示符(ssh/bash shell)中移动它们。对于简单的文本文件编辑,使用命令行文本编辑器(例如 nano)会更容易,它比一些旧版编辑器更加用户友好。

    同样,文件本身不会也不应该更改其权限,而是在登录后使用sudosu 执行操作。示例:

    ssh ec2-user@host.domain.tld 
    sudo su 
    nano /etc/php.ini
    

    【讨论】:

      【解决方案5】:

      以 ec2-user 身份登录 putty

      sudo su
      

      [root@ip-yoursite-home]

      现在为 php 5.0 sudo vim /etc/php.ini

      对于 php 7.0 使用 sudo vim /etc/php-7.0.ini

      按 i,现在搜索 upload_max_filesize =100M , post_max_size=100M (根据您的要求更改)

      按 esc ,现在保存并退出使用此命令:wq

      重启你的apache服务器 sudo service httpd restart

      【讨论】:

      • 为什么在搜索前按i?他们当然应该按 /upload_max 进行搜索。另外,这如何修复他们破坏的权限?
      【解决方案6】:

      想象你有一系列的盒子,每个盒子里面有两个数字。这些数字大多是 0:0,但也可以是不超过 2^31-2 的任何整数。

      数字是独立的,所以 0:0 和 0:42 都是可能的。您的 -R 标志递归地将 all 框中的所有这些数字更改为 same 对。

      这会丢失信息。 (没有备份)在运行命令之前,没有简单的方法可以知道框中的数字是什么。

      如果您有匹配的(或非常相似的)服务器,您可以使用 rsync 恢复大部分权限,或者使用脚本将工作服务器上每个文件的 uid:gid 记录到日志文件中,然后然后使用它来更正损坏服务器上的权限。

      ls -n 
      

      将显示 uid 和 gid 的数值(我的 linux 服务器上的第 3 和第 4 列。)

      【讨论】:

        猜你喜欢
        • 2015-10-15
        • 2010-10-20
        • 1970-01-01
        • 2013-11-24
        • 1970-01-01
        • 2013-07-11
        • 2011-06-22
        • 2013-08-23
        相关资源
        最近更新 更多