Apache httpd安装后缺少var目录

时间:2012-01-05 03:52:59

标签: apache

我在我的linux vm上安装了apache httpd并希望启动它的服务。 BUt我收到错误(13)Permission denied. Error retrieving pid file run/httpd.pid我意识到我没有这个文件。甚至不是var目录。对此有何解决方案?对不起,这是我第一次接触服务器。

我安装了这样的apache:

gzip -d httpd-2.2.21.tar.gz

tar xvf httpd-2.2.21.tar

./configure --prefix=/home/Hend/Desktop/Server

make

make install

2 个答案:

答案 0 :(得分:3)

你有几种选择:

在用户目录中安装apache,以非root用户身份运行

这是你开始这样做的方式。但是你必须:

  • 向启动脚本添加一些自定义项,或至少传递足够的环境变量以告诉他配置/ pidfile /等在哪里
  • 修改整个apache配置,因为默认使用您无权访问的目录。例如,您应该将DocumentRoot放在其他地方/var/www
  • 在非标准端口上运行服务器。由于非特权用户无法在低于1024的端口上运行服务,因此必须在另一个端口上运行apache,例如8000而不是80。但这样,您的所有网址都将显示为http://example.com:8000,而不是http://example.com

从源安装apache到/usr/local

您可以在默认路径中为非声部发布内容安装apache,即/usr/local而不是/usr/。也就是说,在运行--prefix=/usr/local/时使用configure。 这样,事情应该简单得多。在任何情况下,您都必须从root运行Web服务器,并将其配置为仅在打开套接字后更改用户。

从源安装apache到/usr/

您还可以在其默认位置usint --prefix=/usr/中安装apache。这样事情应该简单得多,它应该在通常位置/etc/init.d/apache2/etc/init.d/httpd/etc/apache2中的配置等安装init脚本。 请注意,执行此操作时,所有安装的apache文件都会与您的Linux发行版提供的版本冲突!

从分发包管理器

安装apache

您想要特定设置(例如非标准补丁)的情况下的部分,特别是非打包版本(不推荐,因为通常版本打包与发行版一起保证稳定,其他版本不保证)。

这样做的好处:

  • 避免大量设置+配置过程以使其正常工作
  • 发行版中的版本应该“保证”稳定并与其附带的所有其他程序一起测试。并不总是最新版本更好。
  • 每次更新新版本时(或者更重要的是,有安全更新),您可以通过运行单个升级命令半自动升级它,而无需担心更新期间出现问题。
  • 这样整个安装只需要几个命令。

例如,关于debian:

apt-get install apache2

关于fedora:

yum install httpd

然后,如果包管理器尚未启动该服务,则可以使用

启动它
/etc/init.d/apache2 start

/etc/init.d/httpd start

完成工作。现在只需将内容放入/var/www/(或等效目录,取决于发行版)并通过您的Web服务器查看。

答案 1 :(得分:1)

你必须以root身份启动apache

您是否阅读了源代码发布中的文档?

即INSTALL

less INSTALL

  For complete installation documentation, see [ht]docs/manual/install.html or
  http://httpd.apache.org/docs/2.2/install.html

     $ ./configure --prefix=PREFIX
     $ make
     $ make install
     $ PREFIX/bin/apachectl start