问题标签 [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 回答
211 浏览

php - smarty 和 suphp 权限 - 保存为不同的用户

现在我必须为保存文件的目录授予 777 权限,而不是将其保存为“user1”,而是将其保存为 apache

-rwxrwxrwx 1 apache apache 6865 Aug 30 17:20 homepage.tpl.php

如何将文件保存为 user1 并且在我的 docroot 之外没有 777 权限,即 home/user1/public_html/

让我们说 /home/user1/private/homepage.tpl.php

我使用带有 suPHP 的 Centos LAMP。

提前致谢。

0 投票
1 回答
14513 浏览

apache - 如何在共享主机的 php.ini 中启用 mod_rewrite

我最近将我的网站托管在共享托管网站 mod_rewrite 不起作用。我必须在 php.ini 文件中添加任何内容以启用 php.ini 文件中的 mod_rewrite 选项。

0 投票
2 回答
5490 浏览

php - 如何检查我的共享主机是否有 suexec 或 suphp

我需要检查我的共享主机是否有 suexec 或 suphp。我找到了这个文档: http ://www.alain.knaff.lu/howto/PhpSuexec/

在本文档的最后有一个测试。当我运行测试时,它说:

警告:出于安全原因,system() 已在 /home 中禁用...........第 3 行

还有其他方法可以检查吗?(我有 SSH 访问权限)

0 投票
1 回答
174 浏览

linux - 需要 Apache 忽略 .htaccess 中的选项

我在我们的学院为学生提供托管服务。我们使用 suPHP 运行 PHP,为了安全起见,我们需要将符号链接设置为“SymLinksIfOwnerMatch”。

这有一个非常不幸的错误,如果人们有 htaccess “Options FollowSymLinks”或“Options None”,他们将收到内部服务器错误。

这是一个巨大的问题,因为大多数用于 PHP 的 OSS 软件分布都默认包含在其 htaccess 中(Wordpress、Drupal、Joomla 和许多其他),并且 htaccess-rules 中的大多数指南总是推荐“FollowSymLinks”,因为它是 mod_rewrite 所必需的- 它与 SymLinksIfOwnerMatch 一样有效。

有没有人有同样的问题,有没有人知道如何克服它?我希望让 Apache 完全忽略 Options。我们的默认设置就足够了。

0 投票
2 回答
15438 浏览

php - fopen() 失败时获取有意义的信息 (PHP/suPHP)

当我无法打开文件时,如何获得比“FALSE”更有意义的东西。

当我使用die语句时,can't open file返回给客户端,几乎没用。如果我删除它,则不会引发错误。如果我返回$fh它是FALSE. 我尝试了本地文件名和绝对文件名。我index.html的文件位于我的孔文件夹的子文件夹之一中。此外,我正在将 suPHP 与我试图写入的文件夹一起使用0755(suPHP 要求所有文件夹都具有此权限)。

我如何找出问题的原因,或者至少在尝试打开文件之前查询它。

0 投票
1 回答
91 浏览

php - 是否可以将所有服务器请求限制为一个 php 脚本

目前假设我可以访问自己的服务器,这样我就可以编写任何我想要的 index.html 文件。是否可以只允许自己在服务器上调用一个 php 脚本。例如,如果我在/var/www/目录中有以下脚本:

我想要它,这样我就可以做到

但不是

注意:这不是特定于POST,它可能是GETxmlhttprequest

我需要这个的原因是因为我正在建立一个网站,客户将他们的 index.html 页面和 php 脚本存储在他们自己的 unix 帐户(在服务器上)。为了让他们以自己的权限执行 php 脚本,我使用的是 suPHP。我试图避免 user1 从他们的 index.html 页面中发出以下内容的情况

他们执行别人的功能。如果所有请求都通过logn.php,我可以检查用户的帐户名/用户 ID,并确保仅在他们确实是该脚本的所有者时才调用他们的脚本。

0 投票
1 回答
364 浏览

php - 与 suPHP 一起实现登录

如何将类似登录功能设计为使用 suPHP 的文件权限。例如,如果我有一个网站,www.example.com以下两个用户有自己的主目录,每个用户都有一个 php script test.php,以及一个validateUser.php属于目录中另一个用户(root、www-data、apache ...)的脚本/home

user1可以user2's通过访问来访问脚本www.example.com/user2/test.php,反之亦然。相反,我想要的是使用mod_rewrite 之类的东西将所有传入请求引导到validateUser.php. 但是,这样做会导致以所有者身份执行所有脚本validateUser.php,而不是目标test.php脚本。

无论如何在 suPHP 启动之前调用 php 脚本,然后允许 suPHP 继续,或完全中止。


编辑这是我提出的第二个赏金。我第一次给古斯塔夫 b/c 他给出了一个很好的部分答案。我会提到到目前为止我所做的尝试,以及为什么它们都不适合我。

1)我尝试使用mod_rewrite将 URL 重定向validateUser.php到登录用户或调用他们想要调用的任何脚本。问题是我已经设置了我的虚拟主机,以便每个用户都有自己的虚拟站点(即www.user1.example.comwww.user2.example.com......如果这是一种糟糕的设计方法,请随意粗鲁地指出)。因此,虽然OS看到文件结构如上,但在网上,根目录是这样设置的

自然,我只是将副本移动validateUser.php到每个用户的目录中。问题是现在用户可以删除该文件并将他们想要的任何内容放在那里,就像根本不需要登录一样。解决此问题的一种方法是使主文件夹具有粘性(我不建议对主文件夹执行此操作)并使其validateUser.php归根目录所有。但现在它会以 root 身份执行,因为这是 suPHP。那是我放弃的地方。

2)我可以使用古斯塔夫的mod_auth建议,但我不喜欢它要求预先输入密码(就像旧学校的网站一样)。

3) 如果我可以在虚拟主机之间重定向,我已经考虑过 1) 的变体。例如,像这样重组虚拟主机

然后使用 mod_rewrite 将用户的所有流量重定向到www.admin.example.com/validateUser.php,如果用户已登录(或登录成功),则用户将被重定向回他们最初尝试登录的站点。这样做的好处是,如果可能的话,suPHP 不会启动,直到用户被引导回他们自己的虚拟主机。

0 投票
1 回答
184 浏览

logging - 查找 suPHP 变量的值(即 ${HOME}、${USERNAME}、${GROUPNAME}...)

我不断收到 500(内部服务器错误),我怀疑这是因为我将 docroot 设置为docroot=${HOME}*. 我想“窥探”,因为我怀疑${HOME}是导致问题的原因。我该如何做到这一点,或者至少在出现问题时将所有变量写入日志。

编辑我正在使用 suPHP 版本 0.7.1-1,它支持变量docroot

编辑我尝试通过将${HOME}变量附加到日志文件名来作弊。为简单起见,我使用了该${UID}变量,因为其中${HOME}可能包含正斜杠。我更新了/etc/suphp/suphp.conf文件中的以下行

我得到以下文件

就好像这个${UID}变量甚至不存在一样。

0 投票
1 回答
274 浏览

apache2 - 为多个用户设置网络服务器并使 PHP 脚本在他们的帐户下运行(使用他们的权限)

我正在为多个用户(具有“开发人员”配置文件)设置一个 Apache 2.2 网络服务器。他们需要执行 PHP 脚本/应用程序(包括自制的和获得的)并运行

我尝试使用 *mod_userdir* 但问题是 Apache(因此是脚本)在“www-data”下运行(我使用的是 GNU/Debian OS)。

所以我查看了 suPHP,但它不支持 *php_admin_value* Apache 指令。

我还看到提到了 apache2-mpm-itk,但它使用虚拟主机,它本身需要 DNS。我想如果我要在通过委托管理子域的网络服务器上安装 DNS 服务器(例如,我的网络服务器的 FQDN 是“ testsrv.mycompany.tld ”并且用户的虚拟主机的FQDN 是“ user1.testsrv ”,我想我可以看到一些解决方法.mycompany.tld ”、“ user2.testsrv.mycompany.tld ”)。但这可能有点“太多”了,不是吗?

0 投票
2 回答
3717 浏览

php - 如何在 ubuntu 10.04 服务器上禁用 suphp

我已经将一个带有 apache2 和 php 的小型 ubuntu 10.04 服务器放在一起,仅用于测试目的。我发现 suphp 一直妨碍我。毫无疑问,这是一个有用的安全工具,但现在,因为这只是一个本地测试场,我想禁用它以防止它不断抛出与文件所有权等相关的错误。

所以,正如标题所说:如何在 ubuntu 服务器 10.04 上禁用 suphp。

谢谢