安装Web服务器,无需root权限

我有一个centOS服务器。 我没有访问当前的Web服务器,所以我想安装Apache或其他东西,以便我可以对configuration进行更改。 有没有办法在Linux中做到这一点?

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

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

走这条路线将是困难的,特别是如果你是一个没有经验的Linux用户,你将无法使用Centos软件包pipe理器(YUM)来安装Apache。 如果它是一个可公开访问的Web服务器,并且您不正确地安装或configuration它,那么充其量你就会严重地惹恼服务器pipe理员,并且更糟的是危及服务器本身。

所以总之,是的,这是可以做到的,但如果你不知道你在做什么(问这里的问题是一个强烈的迹象,你不) – 那么不要这样做。

是的,你可以把它安装到你的〜/文件夹中,但是你不能在80端口上监听它。为了做到这一点,这个过程需要由root启动。

如果系统pipe理员/网站pipe理员友好,则可以要求他们允许您在虚拟主机configuration中包含文件。

例如,他们定义了一个VirtualHost,比如:

ServerName http://www.somedomain.com DocumentRoot / path / to / a / dir Include / path / to / your / config

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

唯一的问题就是当你编辑你的configuration文件的时候重新加载configuration的能力,这可以通过你的sudo访问来运行apache reload和configtest或者周期性的apacheconfiguration重载(例如cronjob)来克服。

我们在一些主机上只有一个客户端的服务器上使用这个场景,但是我们不想给他们根目录,因为他们一直在打破这个框(不仅仅是apache安装)

如上所述,您还可以尝试使用.htaccess文件,这些文件允许一些configuration覆盖,具体取决于Web服务器的configuration或安装,并在非特权端口选项上运行。 如果使用非priv端口选项,则可以使用URLredirect服务,例如某些DNS托pipe服务提供的function,使非标准端口对最终用户“更加透明”。 也就是说,他们将不需要将端口号追加到url的第一次访问您的网站。