标签: apache-httpd

以root用户身份从php执行shell脚本?

需要从 PHP 执行以下行:

$res = shell_exec('sudo sh /home/nicklas/cronjobs/make_account.sh 用户名密码');

问题是执行时什么也没有发生。如果我尝试 echo $res ,它会出现空白。我也试过使用 system() ,结果相同。我猜它不起作用,因为我需要以 root 访问权限运行脚本,而 www-data 用户默认情况下没有。我将以下行添加到 /etc/sudoers 以希望获得访问权限:

www-data ALL=(ALL:ALL) NOPASSWD:/home/nicklas/cronjobs/make_account.sh

但没有成功。我试过在两者之间重新启动 apache,没有任何改变。

我错过了什么吗?

shell scripting sudo php apache-httpd

5
推荐指数
2
解决办法
3万
查看次数

第一次运行后 ikiwiki 变慢

我的笔记本上有本地ikiwiki(使用 apache 作为本地网络服务器)。当我在启动和登录后第一次保存编辑时,保存很慢(但第二次保存以正常速度)。知道如何解决这个问题吗?

编辑:

第一次点击编辑:~ 30 Sek。(上面写着“waiting for localhost”)
点击 save the first time:~1 min 30 Sek(上面写着“waiting for localhost”)

第二次点击编辑:<3 Sek。
第二次点击保存:~4 Sek。

问题与是否在线无关。

我使用 git 作为后端。

ikiwiki apache-httpd

5
推荐指数
1
解决办法
145
查看次数

配置 Apache 以要求客户端证书

我想与 apache 网络服务器实现相互身份验证(双向)。

参考
1.无法使用 CA 根密钥签署 CSR
2.添加 CA 签署的客户端证书时 Firefox 错误消息

经过许多步骤:

  1. 通过编辑 ssl.conf 将 Apache 2.0 SSL 配置为接受 https。
  2. 使用 OpenSSL 创建证书颁发机构并将其导入 Web 浏览器[链接]
  3. 创建 Web 服务器证书并由 CA 签名并将其作为 apache 证书。[关联]
  4. 创建客户端证书并由 CA 对其进行签名并将其导出为 PKCS#12 格式[link]并将其导入到 Web 浏览器

我现在可以使用 https 访问服务器,但对于所有用户。
我只希望获得 CA 签名证书的授权用户能够访问我服务器上的网页。我需要/etc/httpd/conf.d/ssl.conf 按照本教程编辑 ssl.conf ,我对 ssl.conf 做了这个:

SSLVerifyClient require
SSLVerifyDepth 2
Run Code Online (Sandbox Code Playgroud)

更新#1:

当然,我已将证书设置为由 CA 签名的证书:

#   Server Certificate:
#SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /var/www/sslConf/server.crt
#   Server Private …
Run Code Online (Sandbox Code Playgroud)

authentication certificates apache-httpd

5
推荐指数
1
解决办法
2195
查看次数

我可以在新的 Linux 安装中复制我的 Apache 服务器设置吗?

我在我的计算机上设置了一个 Apache 2 服务器,用于本地测试。需要明确的是,它不是在互联网上托管网站。它仅用于本地调试和设计。

我使用的是 Ubuntu Linux,但现在我有一台使用 Linux Mint 的新计算机。我想要做的是获取我在旧 Ubuntu 机器上拥有的所有 Apache 站点和设置,并在新的 Linux Mint 机器上复制它们。

我只知道如何手动执行此操作,一次一个站点,从头开始。为目录中的每个站点创建一个文件sites-available并使用a2ensite. 然后对任何配置文件进行编辑,例如在我的php.ini文件中添加一些行以启用 Xdebug,并希望我没有遗漏任何内容。

我确信我这样做的效率很低,而且很容易出现人为错误。

是否不可能以某种方式在我的 Ubuntu 机器上复制整个 Apache 2 设置和站点,然后一次性将它们放在我的 Linux Mint 机器上?或者至少,以最少的步骤重新创建每个站点并从头开始设置?

请注意,我更像是一名设计师而不是管理员,所以请假设我对 Linux 命令和服务器设置的了解很少。

configuration cloning apache-httpd

5
推荐指数
1
解决办法
2万
查看次数

我在哪里设置 FollowSymLinks?

我刚刚在新的 Linux Mint 安装上设置了一个 Apache 2.2 服务器。我正在重新创建以前在旧 Ubuntu 机器上的设置。

在我以前的计算机上,我必须启用FollowSymLinksin httpd.conf,因为我将我的网站 HTML 文件存储在我的主目录中,并从/var/www.

在我的新服务器上,我找不到任何httpd.conf地方,所以我似乎无法设置跟随符号链接的选项。结果,我收到了一个403 Forbidden: You don't have permission to access / on this server错误。

另外,在我的错误日志中,它说:

[Sun May 05 02:12:17 2013] [error] [client 127.0.0.1] Symbolic link not allowed or link target not accessible: /var/www/Websites
Run Code Online (Sandbox Code Playgroud)

允许符号链接的方式有什么改变吗?还是我的设置有误httpd.conf?无论如何,如何让我的新 Apache 遵循符号链接?


更新:根据下面的答案,我检查了文件/etc/apache2/sites-enabled/000-default/etc/apache2/sites-available/default,它们都有FollowSymLinks选项。我可能会收到上述错误,还有其他原因吗?

DocumentRoot /var/www
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /var/www/>
    Options Indexes FollowSymLinks …
Run Code Online (Sandbox Code Playgroud)

apache-httpd

5
推荐指数
1
解决办法
2万
查看次数

当端口被命中时,如何找出 Apache 正在服务的文件?

我正在使用其他人设置的服务器。服务器是运行 Apache/2.0.59 (httpd) 的 CentOS 4.6。他们在端口 8443 上设置了更新服务。我知道它正在工作,但我需要找出当有人访问该端口时 Apache 正在提供哪些文件。

我查看了 httpd.conf 文件,看看里面是否有任何东西,但什么也没有。我也尝试使用,nmap但只显示了当前打开的端口。的输出nmap是:

8443/tcp open https-alt
Run Code Online (Sandbox Code Playgroud)

那么,当有人连接到该端口时,我如何才能找出所提供的文件呢?

linux centos tcp apache-httpd

5
推荐指数
1
解决办法
2万
查看次数

Apache 请求正好挂起 2 分钟

我在使用 apache 时遇到了一些奇怪的行为。我有刚好挂起两分钟的请求。请求可能一次是一个文件,然后是另一次完全不同的文件。

这是我的网络检查器的几个屏幕截图。

党卫军#1 原文地址:http : //tiny-img.com/image.php?di=QNKO

党卫军#2 原文地址:http : //tiny-img.com/image.php?di=3BFS

SS #3 原文地址:http : //tiny-img.com/image.php?di=49VN

我不知道如何解决这个问题,日志中没有错误,而且我在网上找不到任何涉及类似问题的内容。

关于我如何解决这个问题的任何想法,和/或如果您知道发生了什么,我将不胜感激,我可以做些什么来纠正这个问题。

networking dns apache-httpd

5
推荐指数
1
解决办法
2458
查看次数

如何使用密码保护的 SSL 密钥在 Arch Linux w/systemd 上启动 Apache?

我对使用 Arch Linux 还比较陌生,我认为我一定错过了正确执行此操作的明显方法,但是 - 没有自己启动守护程序 - 我无法弄清楚如何在启动时解锁受密码保护的 SSL 密钥服务正常。使用不受保护的密钥或没有 SSL 配置,Apache 会使用 systemd 服务正常启动。一旦我尝试使用受保护的密钥,我就会得到如下信息:

$ sudo systemctl start httpd
Job for httpd.service failed.

$ sudo systemctl status httpd
httpd.service - Apache Web Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled)
   Active: failed (Result: exit-code) since Mon 2014-02-10 11:47:07 UTC; 13ms ago
  Process: 26035 ExecStop=/usr/bin/apachectl graceful-stop (code=exited, status=0/SUCCESS)
  Process: 26042 ExecStart=/usr/bin/apachectl start (code=exited, status=1/FAILURE)
 Main PID: 25500 (code=exited, status=0/SUCCESS)

systemd[1]: Starting Apache Web Server...
apachectl[26042]: Apache/2.2.26 mod_ssl/2.2.26 (Pass Phrase Dialog)
apachectl[26042]: Some of …
Run Code Online (Sandbox Code Playgroud)

startup arch-linux ssl systemd apache-httpd

5
推荐指数
1
解决办法
9296
查看次数

如何使用fail2ban禁止所有php和cgi-bin请求

每天我都会看到 Apache 日志中充满了由不同漏洞扫描器应用程序发起的请求。来自通常相同 IP 地址的数百个请求不仅使日志变脏,而且还使用了一些服务器资源。

由于我的 Apache 上没有任何 PHP 或 CGI-BIN 脚本,因此我想使用 fail2ban 在第一次请求时禁止所有这些 IP 地址一段时间。

有没有人有这种现成的fail2ban配置?

fail2ban apache-httpd

5
推荐指数
1
解决办法
5263
查看次数

检查 Apache 是否需要 SSL 密码

我正在考虑重新启动客户端的 Apache 服务器,但我不愿意这样做,因为我知道他当前正在运行 HTTPS,而且我不想被服务器提示我输入 SSL 密码(我不知道)有,但他不确定是否有)。

有没有一种快速/简单的方法来检查 Apache重新启动之前是否需要 SSL 密码?

configuration openssl apache-httpd

5
推荐指数
1
解决办法
3032
查看次数