无需 root 权限即可安装 Web 服务器

无需 root 权限即可安装 Web 服务器

我有一台 centOS 服务器。我无法访问当前的 Web 服务器,因此我想安装 apache 之类的东西,以便可以更改配置。有没有办法在 Linux 中执行此操作?

答案1

您可以在主目录中编译源代码并从那里运行它。但是,您将受到用户 ( ulimit -a) 的限制,并且无法绑定到小于 1024 的端口。

答案2

您可以手动将 Apache(或类似)Web 服务器安装到您有权限的目录中。但是,由于您不是特权用户,因此无法在端口 80/443(HTTP/HTTPS 的默认端口)上运行它。相反,您必须在大于 1024 的非特权端口上运行它。非特权 Web 服务器的常用端口分别为 HTTP 和 HTTPS 的 8080 和 8443。

采取这种方式会很困难,特别是如果你是一个没有经验的 Linux 用户,并且你无法使用 Centos 包管理器 (yum) 来安装 Apache。如果它是一个可公开访问的 Web 服务器,而你错误地安装或配置它,那么在最好的情况下,你会严重惹恼服务器管理员,在最坏的情况下,你会危及服务器本身。

简而言之,是的,这是可以做到的,但如果你不知道自己在做什么(在这里问这个问题强烈表明你不知道)——那就不要去做。

答案3

是的,您可能可以将其安装在您的 ~/ 文件夹中,但您无法让它监听端口 80。为了做到这一点,该过程需要由 root 启动。

答案4

如果系统管理员/网站管理员很友好,您可以要求他们允许您在虚拟主机配置中包含一个文件。

例如,他们定义一个 VirtualHost 如下:

ServerName www.somedomain.com DocumentRoot /path/to/a/dir 包括 /path/to/your/config

其中 /path/to/your/config 是您控制并可以写入的文件。

那么唯一的问题就是当您编辑配置文件时重新加载配置的能力,这可以通过 sudo 访问来克服,以便您运行 apache reload 和 configtest 或定期 apache 配置重新加载,例如 cronjob。

在工作中,我们会使用这种方案,因为有些服务器的主机上只有一个客户端,但是我们不想给他们 root 权限,因为他们会不断破坏机器(不仅仅是 apache 安装)

如上所述,您还可以尝试使用 .htaccess 文件,这些文件允许某些配置覆盖,具体取决于 Web 服务器的配置或在非特权端口选项上安装和运行。如果您选择非特权端口选项,您可能能够使用 URL 重定向服务,例如某些 DNS 托管服务提供的服务,以使非标准端口对最终用户“更透明”。即,他们第一次访问您的网站时无需将端口号附加到 URL 中。

相关内容