不需要 sudo、安装和互联网的便携式 Linux Web 服务器

不需要 sudo、安装和互联网的便携式 Linux Web 服务器

我有一台没有 sudo、包管理器和互联网的企业 Red Hat 服务器。我需要一个网络服务器客户端,并尝试了 httpd 和 lighttpd 的安装程序和二进制文件,但仍然需要对 /usr/sbin/httpd 的引用。这需要sudo。无论如何,我可以让网络服务器在我的限制下运行吗?我的端口是1024以上。

我当前的解决方法是使用另一台 Windows 计算机作为 httpd 服务器,将 DNS 重定向到此 Red Hat 服务器。

答案1

python -m http.server
Python version 3: Serve current directory tree at http://$HOSTNAME:8000/

参考:马特咖喱.com

答案2

我非常怀疑您是否能够在这个 Red Hat 系统上运行网络服务器。它似乎已被“锁定”,因此除了您已经确定的问题之外,您还必须处理以下问题:

  • RH 系统默认启用 SELinux,鉴于该系统已“锁定”,我预计它仍会启用。在 SELinux 启用模式下,httpd 只能连接到 http_port_t 中指定的端口(80、81、443、488、8008、8009、8443、9000),因此您可以选择 4 > 1024。

  • RH 系统上的库存防火墙仅允许指定端口并阻止所有其他端口。您可以使用的 4 个端口中任何一个打开的可能性微乎其微,甚至不存在。

答案3

注意:我刚刚在评论中看到你甚至有一个gcc编译器。恐怕我的答案在这种情况下将毫无用处,但同样,如果没有基本的开发工具,您可能需要考虑真正的问题来自其他地方的想法......

您不需要 root 访问权限来安装网络服务器。您可以轻松地将lighttpd安装在您的主目录中,而无需访问系统上的任何受限位置。唯一的技巧是:您必须手动编译它(但是,编译 lighttpd 确实并不长)。

  1. 下载/获取lighttpd 的来源
  2. 提取它们。

$ tar -xvf lighttpd-*.tar.gz
  1. 进入刚刚解压创建的目录,并使用脚本配置构建过程configure

这里的技巧是使用不同的安装前缀,并在可用位置(您的主目录)执行安装。

$ mkdir ~/lighttpd
$ ./configure --prefix=$HOME/lighttpd
  1. 使用构建一切make并使用执行安装make install

$ make
$ make install

请注意,最后一个命令(通常需要 root 权限,因为它在 中安装文件/sbin)在这里不会失败。现在 lighttpd 已安装,请转到~/lighttpd并准备启动您的服务器。

  1. 为lighttpd 创建默认配置文件。

~/lighttpd/etc/同时在文档根目录中创建配置文件:

$ cd ~/lighttpd
$ mkdir etc www
$ emacs etc/lighttpd.conf

随意使用您最喜欢的编辑器,并在文件中编写一些默认配置:

server.document-root = "/home/you/lighttpd/www/" 
server.port = 3000

mimetype.assign = (
    ".html" => "text/html", 
    ".txt" => "text/plain",
    ".jpg" => "image/jpeg",
    ".png" => "image/png" 
)
  1. 返回sbin并检查您的配置:

$ cd ~/lighttpd/sbin
$ ./lighttpd -tf ../etc/lighttpd.conf
Syntax OK
  1. 启动你的服务器。

$ ./lighttpd -Df ../etc/lighttpd.conf

根据我们的配置,服务器应该可以在http://本地主机:3000/,其文档根位于~/lighttpd/www。想了解更多详情,请查看他们的配置教程, 要不就他们的一般文档。 lighttpd 非常容易设置,我确信您可以对其他服务器执行相同的过程(./configure --prefixmakemake install、 阅读文档)(即使它们可能需要更多时间和调整)。

关于服务器管理的注意事项:如果您所在的公司设有 IT 部门,请将 IT 问题留给他们。首先,他们应该确保您拥有所需的所有工具,如果他们不希望您编译服务器并使其侦听端口,那么他们应该相应地配置其基础设施。我在这里描述的编译过程在没有 root 权限的情况下没有理由失败,并且在高端口上运行服务器应该没有问题。当然,该服务器很可能会隐藏在本地网络上,并且从外部无法访问,但如果他们对自己的基础设施非常怀疑,以至于他们不会让任何计算机打开端口来侦听自己的 LAN,那么他们有比用户安装 lighttpd 更紧迫的事情需要处理。

答案4

您可以拥有一个网络服务器,但如果没有 root 访问权限,它就无法位于端口 80。1000 以下的任何内容都需要 root 权限。你可以有 8080,或者几乎任何高于 1000 的东西。

如果您无法使用通常的包管理器,则必须从源代码构建,我想我确实记得包管理器可以将其缓存保存在不同的位置。问题是通常的设置假定基本的根访问权限,因此您需要手动进行更多配置。

相关内容