我在我的网络服务器上运行 2 个 magento 应用程序,我不小心从服务器的根目录设置了“chown -R www-data:www-data *”。意思是,所有文件都归用户 root 所有。
这立即在 magento 网站上引发了问题,即:mysql 没有连接,因为它应该使用“mysql”用户。
我已经修复了这个问题,并将网页文件设置为 www-data 拥有。
这些网站现在运行良好,但当我尝试完成订单时,它会在超时前挂起一分钟。订单在后台注册,但它没有按预期显示“订单成功页面”。
我正在运行 nginx 和 php-fpm,php-fpm 日志显示为:
[22-Mar-2013 13:31:24] WARNING: [pool www] child 1791, script '/var/www/website.com/index.php' (request: "POST /index.php") execution timed out (1436.378897 sec), terminating
[22-Mar-2013 13:31:24] WARNING: [pool www] child 1791 exited on signal 15 (SIGTERM) after 1600.011818 seconds from start
[22-Mar-2013 13:31:24] NOTICE: [pool www] child 2717 started
发生了什么?发生这种情况是因为某些文件不属于其正确所有者吗?如果是这样,那些是哪些文件/文件夹以及它应该拥有什么所有者?
编辑:它一定与后缀有关。回显“Hello World”的普通 php 脚本呈现得很好,当我将 mail() 函数放在那里时它挂起。
假设您在执行此操作时是 root,并且它完成了 chown(并且没有用 CTRL-C 快速取消)。
当我听到类似这样的消息——chown 或 chmod(或 rm -rf)对整个文件系统递归完成时,我倾向于建议是时候重新开始了。您将永远追查问题。这对 Linux 机器来说是极其具有破坏性的事情,并且许多后续问题对于问题的出处并不明显(特别是如果其他人不知道 chown -R 出现并试图解决问题)。
根据您的 Linux 发行版,有些发行版会在其打包系统中保留有关原始所有权和文件权限的信息。可以将权限“重置”为包管理器安装它们时的状态。例如,此链接讲述了如何在基于 RPM 的发行版上执行此操作:http ://www.cyberciti.biz/tips/reset-rhel-centos-fedora-package-file-permission.html
不过,归根结底,如果可以的话,我真的有点建议重新开始。* 上的 'chown -R' 比 'rm -rf *' 更上一层楼,但最终结果可能是一样的——更容易重新开始。
如果您在 / 上运行该命令,则所有文件都归您的网络服务器 (www-data) 用户所有,而不是根用户。如果没有进一步了解您的系统,我想您的应用程序的连接系统无法写入其文件。postfix 启动了吗?
您可能不喜欢这个答案,但最好的解决方案是重新制作系统,重新安装应用程序并将其指向同一个数据库。
整个 Linux 系统中有许多重要的权限,仅修复最低限度以使您的应用程序正常运行可能会留下严重的安全问题。例如,现在您的网络服务器可以写入您的 /etc/shadow 文件。