对于一个特定的用户,我希望能够重新启动 Apache。该用户确实具有 sudo 权限,我可以运行sudo /etc/init.d/apache2 reload,但我想将此重启脚本包含在 git post-receive 挂钩中。所以这会提示输入密码并失败。所以问题是:在不需要 sudo 的情况下,允许该用户重新启动 apache 的正确方法是什么?我想将选项限制为仅重新启动 Apache,并且仅此特定用户。
当我在浏览器的地址栏中输入 127.0.0.1 时,我得到以下结果:
Not Found
The requested URL / was not found on this server.
Apache/2.2.22 (Fedora) Server at 127.0.0.1 Port 80
Run Code Online (Sandbox Code Playgroud)
什么会导致这个问题?
谁能告诉我如何配置 apache 以不在基本 URL 的末尾显示网站文件夹名称?- 但仅适用于众多网站之一。
让我描述一下场景......
我有一个测试服务器,里面有许多网站在单独的文件夹中/var/www。因为它是一个测试服务器,所以我通过它的 IP 地址 (64.244.144.78) 访问它。所以我会通过访问一个网站64.244.144.78/a_website_folder
当我需要其中一个名为 的站点applications具有子域名applications.ourorganisation.org而不是使用上述 IP 地址格式时,麻烦就开始了。
子域是由我们的 IT 人员在我们现有的 Windows 服务器上创建的。然后他将子域指向我的Linux测试服务器的IP地址64.244.144.78(显然他无法添加通向应用程序网站的子目录信息)。
为了解决这个问题,我创建了一个index.php文件64.244.144.78/var/www并使用 PHP 代码重定向到应用程序网站文件夹。
所有这些都有效,但我现在访问时applications.ourorganisation.org,我被重定向到applications.ourcompany.org/applications.
这不是一场灾难,但我希望最后没有applications目录名称。
为什么我必须输入/etc/init.d/apache2 (args)才能运行 apache?
就没有办法apache2 args吗??
在我的 Ubuntu 服务器中安装了 apache 2,我使用了许多 Web 应用程序,如 osc、glpi。
要浏览这些应用程序,我必须在浏览器中编写 @ip/glpi。我的目的是使用 servername 而不是 ip 地址。
做这个动作的方法是什么
系统信息:
Ubuntu 11.10
PHP 5.3.6
阿帕奇 2.2.20
MySQL 5.1.67
我在这里问这个是因为我很确定这是一个 Linux 问题。
我在 Ubuntu Server 12.10 上本地运行 Apache 服务器,它在 Windows 7 上的虚拟机 (VirtualBox) 内运行。“www”目录在 Ubuntu VM 和我的 Windows 操作系统之间共享,使用 VirtualBox 的“共享文件夹”工具。
注意:它基本上是 Windows 中的本地目录。在 Ubuntu 中,它会在启动时自动挂载。
服务器也可以通过像http://192.168.56.101/website1.
问题是来自该 URL 的图像似乎已被缓存,直到我重新启动虚拟机。
例如:
http://192.168.56.101/website1/images/bg.png在 Ubuntu 上运行的 Apache 服务器上的 URL指向c:\www\website1\images\bg.pngWindows 共享上的这个文件。在 Ubuntu VM 中,它存在于/var/www/website1/images/bg.png.
如果我在 Windows 主机中的 Photoshop 中修改此文件,则在 Ubuntu 服务器中看不到更改。我怀疑 Linux 缓存了文件什么的,因为在重新启动 VM 后我会看到更新的图像。
有什么办法可以禁用/var/www目录下任何内容的缓存吗?这会降低性能还是什么?
我在 dba.se 上问了一个问题,关于如何为我的 Perl CGI 脚本提供访问它需要查询的 MySQL 数据库所需的密码。我只收到了一个答案,但那个答案建议我将密码保存为环境变量。
好的,按照apache2运行,用户是:www-data/etc/passwd$HOME/var/www
$ grep www /etc/passwd
www-data:x:33:33:www-data:/var/www:/bin/sh
Run Code Online (Sandbox Code Playgroud)
我尝试/var/www/.profile用这条线创建
export db_pass="password"
Run Code Online (Sandbox Code Playgroud)
然后让我的 Perl 脚本打印$ENV{"db_pass"}但失败了,变量是空的。我检查了一下,$ENV{PATH}并按预期打印。
那么,如何为该用户设置任意环境变量?
该服务器是在 VM 上运行的 Ubuntu 服务器(在 Windows 上运行,不是我的选择,不要问)。
$ apache2 -version
Server version: Apache/2.2.14 (Ubuntu)
Server built: Feb 14 2012 16:42:25
Run Code Online (Sandbox Code Playgroud) 在我httpd.conf所在的地方/etc/httpd/conf/httpd.conf有一行:
ErrorLog logs/error_log
Run Code Online (Sandbox Code Playgroud)
但是日志文件的路径是: /var/log/httpd/error_log
Apache Webserver 如何解析 error_log 文件的路径?
我不确定这是否与 Unix 相关,但我真的看不出它会是什么,如果它与 Unix 无关。我正在运行 Ubuntu 服务器,当有人按下按钮时,我试图在我的网站上执行 .php 脚本。虽然,当它触发脚本时,它只显示脚本代码,并没有实际运行它。我是否需要安装一些东西才能使这项工作?我可以确认这适用于实际的网络空间。我很感激我能得到的任何帮助!
在设置 LAMP(在 Debian 上)然后查看 /var/www/html 的权限后,我很惊讶它只能由 root ( drwxr-xr-x 1 root root)写入。
据推测,PHP 脚本可以在 /var/www/html 中创建文件,但是 PHP 脚本(或其解释器)肯定不会以 root 的名义运行?任何人都可以帮助我理解我的误解吗?
编辑:
我安装了 PHP apt-get install php5-common libapache2-mod-php5 php5-mysql php5-cli
apache-httpd ×10
ubuntu ×4
permissions ×2
cache ×1
debian ×1
fedora ×1
git ×1
hostname ×1
init-script ×1
logs ×1
php ×1
root ×1
virtualbox ×1
web ×1