改变php.ini - 亚马逊EC2。权限问题

时间:2016-06-02 11:22:36

标签: php apache amazon-ec2

我没有太多使用过服务器的经验,但我已经尝试过做某事;) 我在亚马逊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:无法初始化政策插件"

我该怎么办?

6 个答案:

答案 0 :(得分:2)

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

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

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

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

此外,我建议您使用apache作为Wordpress服务器,而不是使用UbuntuCentos Flavor of Linux。

答案 1 :(得分:1)

以ec2-user

登录putty
sudo su

[root @ ip-yoursite- home]

现在用于php 5.0 sudo vim /etc/php.ini

for 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

答案 2 :(得分:0)

您可以选择两个选项。

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

    cd /etc
    ls -lrt

  2. 这应该给出这样的结果

    -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
    

    逐个设置旧EC2 实例的相同权限。

    示例

    chown -R root:root netscsid.conf

    1. 您可以创建新的设置。
    2. PS:将来,您可以使用此命令更改php.ini文件,而不是更改所有者或权限。

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

答案 3 :(得分:0)

简短的回答是chown -R是递归的,并且各种操作需要大量实用程序和其他文件和程序,包括sudosuRootuid 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

答案 4 :(得分:0)

想象一下,你有一系列的盒子,里面各有两个数字。这些数字大多为0:0,但可以是任何整数,最多为2 ^ 31-2。

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

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

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

ls -n 

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

答案 5 :(得分:-3)

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

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

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

<强> 步骤:

  1. 通过'Putty'
  2. 登录ec2实例
  3. 导航到包含php.ini文件的文件夹 例如:

      

    cd ../

  4. 使用:

      

    ls -l <​​/ p>

    列出具有权限的文件和文件夹

  5. 查找显示包含php.ini文件的文件夹的行 像这样的somthinng:

      

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

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

      

    sudo chmod 777等

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

  7. 使用:

      

    ls -l <​​/ p>

    查看更改

  8. 重启Apache:

      

    sudo service httpd restart

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

    一分钟后检查您的网站(有错误的页面),将显示错误。