问题标签 [suphp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
80 浏览

php - 是否可以使用 suPHP 返回整个 HTML 文件?

为了争论,让我们假设我不能更改我的文件权限。此外,假设我的所有.html文件都具有这样的权限0700

因此,我无法通过在浏览器中index.html输入来访问我的文件。www.example.com/index.html但是,我可以做的是require.php在主 Web 文件夹中设置一个文件并将其权限设置为0755. 假设此require.php文件找到指定的.html文件并返回其完整内容。还假设我正在运行 suPHP。然后我可以调用require.php--as owner of require.php-- 获取例如 的内容,index.html并将其传递给调用浏览器。我知道require.php能够在服务器端获取文件内容。我想知道的是它是否可以将内容作为html文件返回供浏览器加载?

0 投票
2 回答
389 浏览

php - 使用 PHP 加载 html 页面禁止任何使用最新 css 文件的尝试

我对我的.html文件拥有除0744. 他们实际上设置为0700这样来解决这个问题,我设置了 suPHP,我使用一个load.php文件来访问和加载所有文件。有问题的文件是一个简单的 . html像这样的文件:

test.html (0700)

test.css(0744)

加载.php(0744)

注意:出于调试目的,我已将 css 文件设置为正常 0744 权限。

如果我键入http://www.example.com/load.php?page=test.html页面加载找到。但是,我怀疑 css 文件是从缓存中使用的,因为没有test.csstest.html. 如果我删除线

当背景再次变为白色时,就会反映出这种变化。但是,如果我将css文件移动到,例如test2.css,并更改样式(即不同的颜色)并链接到该文件,则令人惊讶的是,这些更改并未应用。如果我在不链接新名称的情况下移动test.csstest2.css(类似于删除文件),css效果仍然适用!同样,如果我chmod test.css设置为 0000 它仍然使用样式表。我也知道.css文件没有损坏,因为我test.html在我的机器上本地打开。

有没有人知道发生了什么,因为我没有最起雾的。

根据下面 Murray McDonald 的回答进行编辑,我将问题归结为与 304: Not Modified 状态代码有关。为什么在文件明显更改时返回?

0 投票
2 回答
9162 浏览

suphp - suPHP 将用户/组设置为虚拟主机并使用 docroot

我正在尝试使 suPHP 正常工作,我按照教程进行操作,并且似乎已正确安装它。

现在我的问题是这个

1)我docrootsuphp.conf文件中设置,但/var/www默认设置为。我遇到的问题是我的域也存储在另一个目录下。因此,例如,我将子域放在一个目录中,将常规域放在另一个目录中。因此,我的浏览器收到一个错误,告诉我域正在解析到不在配置中的目录。

2) 我想知道如何suPHP_UserGroup在我的 VirtualHost 配置下设置特定域的用户/组。

这是一个示例 VirtualHost,我必须更好地展示我的问题。

当我重新加载 apache 时出现错误:

我配置suPHP了这个:

0 投票
0 回答
600 浏览

suphp - 正确安装和使用suPHP

我刚刚安装了 suPHP,现在需要一些帮助来设置一些环境变量以使其适用于我的 Web 目录结构。

suPHP.conf我有一个标准的全局选项数组中,我真正关心的是这一行:

我将默认值替换/var/www${HOME}希望它做某事。

我知道suPHP正在运行,因为当我使用docroot路径时,我会收到一条错误消息,告诉我网站的 Documentroot 未在 suPHP 配置中指定。

在我的 VirtualHost 指令中,我放置了:

现在,我php.ini在我的 VirtualHost 的文档根目录中放置了一个,并做了一些简单的事情,比如display_errors = On并回显一个未声明的变量来测试它。但我没有看到弹出错误(是的,我将错误级别设置为 E_STRICT 和 E_ALL)。

此外,我似乎无法开始su_PHP_UserGroup工作,在重新加载 apache 时我收到一条错误消息,说我在该行有语法错误。

0 投票
0 回答
840 浏览

.htaccess - htaccess、Suphp 和 mod_rewrite 问题

我买了一个叫做 fastAmazon 的脚本。开发人员使用 mod_rewrite 为传统的服务器配置编写了它。

我的主机 (site5) 使用 SuPHP,我了解到要求 php 配置规则超出 htaccess 并进入 php.ini 文件。好吧,很简单,注释掉 php_flag 并最终加载。问题是,一旦我尝试转到任何其他页面,我就会收到 500 错误。此配置中的某些内容不允许重写其他页面,我无法弄清楚!

开发人员说这可能与 [L] 行结尾有关,但对 SuPHP 配置没有进一步帮助......

0 投票
1 回答
4322 浏览

security - suPHP 有什么安全性吗?

不久前我问了这个问题,尽管我提出了几个赏金,但我从来没有得到太多答案(见这里)。更一般地说,我想知道 suPHP 是否有任何安全概念?是什么阻止任何人去

或者

因为这些脚本是以用户的权限执行的,所以基本上可以保证访问。


编辑为了详细说明上述内容,我的问题是一个概念问题。假设我们有一个文件位于/home/user/test.php. 让这个文件做任何事情(rm -f -r /,获取并返回图片,重新启动计算机......)如果我将浏览器指向该文件(假设包含文件夹是 Apache 下启用的站点)我如何告诉浏览器只让该文件的所有者执行它?


编辑 2:我从未明确说明这一点,因为我认为 suPHP 仅与 apache(即 Web 浏览器)一起使用,但我说的是仅使用浏览器对 linux 用户进行身份验证。如果我们不进行身份验证,那么从技术上讲,任何人都可以访问服务器上的任何脚本(对于网站,这不是问题,因为它们总是将权限设置为0644,所以基本上全世界都可以看到。另一方面,PHP 文件有权限一般设置为0700)

0 投票
1 回答
559 浏览

php - 需要帮助在 suPHP 中实现 PHP 会话

我之前在这里问过这个问题,但用户CheekySoft指出我是在“询问如何实施我提出的解决方案”,而我应该只是“陈述我的问题并寻求解决方案的想法”。所以这里。

在 linux 服务器上,我的文件设置如下

如果我有 Apache 虚拟主机设置在

然后 [any] 用户可以转到www.example.com/user1/index.htmlwww.example.com/user2/index.html。但是,这些文件的权限是0700,因此无法通过 Web 访问它们。正是出于这个原因,我正在使用 suPHP。

为了争论,假设index.php只有以下内容

索引.php:

现在,随着 suPHP 的设置,user1 可以去 www.example.com/user1/index.php查看index.html. 同样,user2 可以去 www.example.com/user2/index.php查看index.html。但是,user1 也可以www.example.com/user2/index.php查看 user2 的index.html页面,反之亦然。

处理这个问题的自然方法是通过PHP 会话。对页面的所有请求都被重定向到主页(即www.facebook.com),用户通过数据库验证,然后被重定向到正确的页面(见下图)。

用户交互图

用户将转到一个页面(即。www.example.com/page1.html),然后将有一部分页面 1硬编码以确保存在有效会话。如果存在,则加载页面。如果它不存在,用户将被重定向到,在这种情况下,index.html. 在他们登录并建立有效会话后,他们将被重定向回原始页面。我们可以修改index.php以执行此操作:

indexValidate.php:

但是,在我的设计中,这些页面 ( page1.html, page2.html...) 位于用户自己的目录 ( index.html, index.php) 中,因此,服务器不能要求他们有这个硬编码的部分来检查有效部分。用户可以简单地编辑文件以删除此部分。当然,这对用户来说是愚蠢的,但我不希望用户必须修改他们的每一个文件才能在顶部有一个会话检查部分。我希望这是无缝的。

几点注意事项:

  1. 我可以使用 Apache 将所有请求重定向到单个validateUser.php脚本,然后验证用户,如果有效,则调用请求的原始脚本。但是,这有一个副作用,即 suPHP 现在已经切换到用户,很可能var-www
  2. 我不想使用Apache Web 登录身份验证

任何人都可以为我的问题提供解决方案吗?

0 投票
3 回答
1970 浏览

apache - Apache不允许我输入属于其他用户的文件夹

我正在尝试为 suPHP 设置 PHP 会话(请参见此处)。我需要让用户拥有我的 php 验证文件,这样当 suPHP 启动时,它会为正确的用户执行此操作。但是,我也不希望用户访问该文件,因为他们可以编辑它以仅返回 true 而不是实际检查数据库。

我的第一次尝试是这样的(Apache 以用户身份运行www-data

然后让网页重定向到验证页面,验证页面,然后返回/var/www/user1/index.html

但是 suPHP 抱怨说我正在访问我的 docroot ( /var/www/user1) 之外的东西。我不想将 docroot 设置为/和更新suphp.conf文件,这样check_vhost_docroot=false就不会修复(而且我不是要修复这个问题)。因此,我就这样搬进/etc/validate来了/var/www(我知道这有点乱)

所以现在验证文件是

  1. 在 docroot 内
  2. 由用户 1 拥有
  3. user1 不可编辑

但是现在如果我尝试加载页面,我会收到以下错误

在这一点上,我失去了耐心,所以我只是将另一个虚拟文件夹放在那里,所以文件结构看起来像这样

现在,当我尝试加载页面时,Apache 告诉我“您无权访问此服务器上的 xyz。” xyz我的域名后面的内容在哪里。我不知道为什么 Apache 会告诉我,因为我没有尝试将尾随值作为文件/文件夹访问。我认为,重定向失败,Apache 只是假设它是失败的硬链接。

谁能告诉我我做错了什么或提供一种替代方法来阻止用户编辑他们的文件。它无法进入目录dummy,因为它的权限是rwx------并且只能user1进入cd它。当我将权限从 更改0700为 时0755,它又回到了 suPHP 错误。所以现在的问题变成了:当 suPHP 的后台目录之一被其他人拥有时,我如何让 suPHP 执行脚本?


编辑:我现在明白为什么 Apache 抱怨了。进不去

0 投票
1 回答
4764 浏览

performance - 使用 PHP 作为 DSO、FCGID 或 SuPHP 和 xCache 的内存和性能

这个问题可能有点冗长和具体,但我已经尝试找到以下问题的结论性答案大约一个月了,我还没有找到决定性的信息。像这样具体的问题很难一概而论,如果我遇到类似的问题,即使特定的服务器配置与我的不同,它也会提供有用的信息。

我的服务器是运行 cPanel (WHM) 的 VPS,PHP 模式是 SuPHP。该服务器有 768MB 的 RAM 并托管大约 12 个网站。有些非常占用内存,而另一些则几乎不使用任何内存或 CPU。

我最近为我的一位客户安装了一个 Magento 商店,并且一直在尝试不同的设置以实现性能提升。在我安装 xCache 并将 PHP 配置为作为 FCGID 或 DSO 运行(因为 xCache 不适用于 SuPHP)之前,没有任何帮助。这种配置将性能提高了 2/3(意味着页面加载速度提高了大约 3 倍)。

唯一的挫折是几分钟后,服务器内存不足,我不得不硬重置它。所以现在我回到了 SuPHP,一切都很好。

即使我禁用了 xCache 并且只离开了 FCGID 或 DSO 模式而不是 SuPHP,服务器也会在大约 30 分钟左右的时间内耗尽内存。因此,罪魁祸首似乎是 PHP 像 SuPHP 之外的其他任何东西一样运行。

我还注意到,当我从不同的 WHM 定义的用户打开一个新的前端 URL 时,我的内存使用量大幅增加,但当我从同一个 WHM 用户帐户打开多个 URL 时,使用量似乎保持相当稳定。

到此为止:

  • 如何确保 PHP + xCache 保持稳定运行?还是我只需要购买更多内存?
  • SuPHP、DSO和FCGID在内存使用上有什么区别?是否可以通过更改一些 php.ini 变量来调整它?

此外,我正在考虑更新我的一些其他服务器以使用 xCache。您会为以下服务器推荐什么设置和 PHP 模式(SuPHP、DSO 或 FCGI)和 xCache 配置?

  • 四核 @ 2.4Ghz,4GB RAM 专用服务器,带有 1 个大型 Magento 存储,带有 cPanel 和 WHM
  • 四核 @ 2.4Ghz,8GB RAM 服务器,带有大约 20 个大型 Magento 存储,带有 cPanel 和 WHM
  • 四核 @ 2.66Ghz,8GB RAM 服务器,带有 100 多个类似 Joomla 的网站,带有 cPanel 和 WHM,还可以作为启用 mailman 的电子邮件服务器等。
0 投票
2 回答
798 浏览

macos - 如何强制 Git 使用封闭文件夹的所有者和权限?

我一直注意到,当我将更改拉到我的服务器时,它会自动添加对已更改文件的组写访问权限。但是,由于我使用的 suPHP 会导致 500 错误,因此我需要忽略 Git 存储库可能拥有的任何权限和所有权,并将其替换为文件夹本身具有的适当权限。

编辑: suphp 要求文件的最大权限为 644,目录的最大权限为 755,以帮助保护用户的文件不被修改。这是一个适用于 Suhosin 的 PHP 补丁。

我使用 localhost 环境,推送到登台,这就是我收到错误的时候,因为登台是生产环境的克隆。