我遇到以下问题:我的 Apache 和 PHP 脚本以用户 www-data 身份运行。
我想调用一个只能以 root 身份执行的脚本,因此我在 /etc/sudoers.d 中添加了一个新文件,以允许 www-data 用户执行此命令:
echo390:/var/www/html# cat /etc/sudoers.d/iptables
www-data ALL= NOPASSWD: /sbin/iptables
Run Code Online (Sandbox Code Playgroud)
我的 PHP 脚本如下所示:
<?php
$command = '"/usr/bin/sudo" "/sbin/iptables" -L -v -n | grep "220.177.198.43"';
echo 'Benutzer: '.exec('whoami').'<br/>';
echo 'Command: '.$command.'<br/>';
$result = array();
exec($command,$result);
print_r($result);
?>
Run Code Online (Sandbox Code Playgroud)
如果我通过以下方式从命令行调用脚本: sudo -u www-data /usr/bin/php test.php 一切都会按预期运行,但是当我通过 Apache 调用脚本时,我在 apache2/error 中收到以下错误。日志:
sudo: PERM_ROOT: setresuid(0, -1, -1): Operation not permitted
Run Code Online (Sandbox Code Playgroud)
我已将 Ubuntu 从 12.02 升级到 14.04 相同的脚本在 Ubuntu 12.02 中运行没有任何问题。有谁能够帮助我?这里的错误在哪里?
www-data 组:
echo390:~$ groups …
我正在尝试在我的 Ubuntu 16.10 32 位中安装 Xampp 最新版本。在Xampp网站我找不到aa 32安装程序,他们提供的只是64位安装程序版本。我最好通过终端安装。
我需要帮助。我尝试创建我的本地测试服务器。我已经安装了LAMP和DataLife Engine 11.1。它有效,但如果我想去,例如,localhost/rules.html它会返回我404(因为它显然不存在),尽管它应该使用 .htaccess 并将我重定向到localhost/index.php?do=rules
我已经从网上尝试了大量不同的解决方案(例如编辑配置和启用重写 mod)。它仍然发生。有什么建议?
PS 这是我的配置文件。
我不记得 xdebug 是如何启用的,但我发现/etc/php/7.0/mods-availablexdebug在目录中被列为xdebug.ini.
如果我转到该目录,/etc/php/7.0/apache2/conf.d则那里有一个指向 xdebug.ini 文件的符号链接,该符号链接名为20-xdebug.ini.
xdebug.ini 的内容为:
zend_extension=xdebug.so
Run Code Online (Sandbox Code Playgroud)
xdebug 正在工作,但因为我大部分时间都被它惹恼了,我想我可以把它关掉:
sudo a2dismod xdebug
Run Code Online (Sandbox Code Playgroud)
但是那个命令对我咆哮,“错误:模块 xdebug 不存在!”。我希望随时可以方便地关闭和打开 xdebug,所以我的问题是:
我知道我可以进去注释掉该行,然后重新启动 apache,但是我需要懒人的解决方案,如果有的话。
我刚刚开始了解 PHP、MySql 的全部内容,以及它与前端开发的联系。在执行此操作时,我发现我无法执行 PHP 文件,除非它位于 /var/www/html 目录中。我已经从包括 askubuntu 在内的多个来源找到了有关此解决方案的信息,但我永远找不到原因。那么这是否意味着 PHP 文件必须始终位于该特定目录中?我可以做任何事情来在里面创建一个 PHP 文件,比如我的 Documents 文件夹成功运行而不是被 Mozilla“保存”-ad?请帮忙。
我在 UBUNTU 18.0.4 中安装了 php 5.3.24,但无法显示 info.php 页面
Last login: Thu Jul 11 06:59:31 2019 from 10.10.2.194
sagar@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
sagar@ubuntu:~$
sagar@ubuntu:~$ php -v
PHP 5.3.24 (cli) (built: Jul 11 2019 07:30:40)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
sagar@ubuntu:~$
sagar@ubuntu:~$
Run Code Online (Sandbox Code Playgroud)

请给任何建议
UBUNTU 18 与 php 5.3.24 兼容吗?
我们可以直接从命令行增加 PHP 的内存限制吗?
我的 ubuntu 系统上安装了多个 PHP,并且我使用一个简单的php-switch-scripts脚本来设置和在 PHP 版本之间切换。
但我经常遇到 php.ini 配置值遇到一些问题的情况。
例如,我会在 PHP 7.2 的php.ini上将memory_limit值更新为更高的值,但在 PHP 7.4 的 php.ini 上可能不会增加它。
是的,我确实知道我可以在比写这个问题更短的时间内更新所有 php.ini 文件中的值,但如果有一种方法可以使用 shell 脚本自动执行此操作,我想这样做。以便我和我的同事将来都能利用它。
提前致谢...
我在实时网络服务器上犯了一个愚蠢的错误,需要一些帮助才能恢复。
当以 root 身份登录时(错误 #1),我对 /usr/bin/php 执行了一个文件 wget,它创建了目录 /usr/bin/php,其中包含一个文件(错误 #2)。虽然我有系统备份其中没有任何内容可以显示以前的内容,我真的不想进行完整的系统恢复或重建。
php cli 现在无法工作(也许还有其他东西?),尽管软件包列表确实显示它仍然已安装。值得庆幸的是,网站仍在运行,但 ispconfig3 控制面板变得不稳定,因为它依赖于使用 php 的 .sh 文件。
有没有办法在不让事情变得更糟的情况下恢复过来?
root@VPS:# ls -al /usr/bin/php
ls: cannot access '/usr/bin/php': No such file or directory
root@VPS:# php
Command 'php' not found, but can be installed with:
apt install php7.2-cli
apt install hhvm
root@VPS:# apt list --installed | grep php
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
libapache2-mod-php/bionic,bionic,now 1:7.2+60ubuntu1 all [installed]
libapache2-mod-php7.2/now 7.2.19-0ubuntu0.18.04.2 amd64 …Run Code Online (Sandbox Code Playgroud) 我已经在 v3.0.1 版本中安装了 xdebug,但它导致我在 php7.2 和我的 symfony 安装中出现问题。我现在无法升级 php 版本,所以我需要将 xdebug 版本降级到预览版(2.* 中的任何一个)我尝试过类似:sudo apt install php-xdebug=2.9.8-7.2-vc15-nts和其他一些组合,但没有任何效果。
如何降级 xdebug 版本?
我在 Ubuntu 11.04 上有 Xampp。.php文件被下载而不是被 Apache 解析!我如何让 Apache 解析它们?