为了在Linux服务器上安装Escaas代码开发文档—doxygen,我打算在服务器上搭建个网站,于是选用Apache,结果安装的过程却不太顺利,走了不少弯路,浪费许多时间,此以为记,便于日后参考。

安装步骤

  1. 下载 apache,例如:httpd-2.2.34.tar.gz

  2. 解压httpd-2.2.34.tar.gz

    1
    tar -xzvf httpd-2.2.34.tar.gz
  3. 进入解压后的目录httpd-2.2.34,进行安装,关于linux下的压缩文件

    1
    2
    3
    4
    5
    cd httpd-2.2.34
    ./configure
    make
    make install
    make clean

    在上述中,如果./configure后不添加参数则按默认路径安装,如果需要指定路径可以采用:./configure –prefix=/home/software/httpd-2.2.34 指定路径的方式进行安装。

    在本例中采用的是默认路径,因此安装程序会自动在/usr/local中创建 apache2 目录,Apache服务器软件的所有配置文件和可执行文件就都保存在这里。如果要卸载,只需将 apache2 目录删除即可。

  4. 接下来要修改配置文件/usr/local/apache2/conf/httpd.conf,要修改的有如下几项:

    • Listen

      1
      2
      3
      修改Listen行,确定服务的IP地址和端口号:
      Listen 192.168.3.33:80
      说明:192.168.3.33是当前计算机的IP地址,通过80端口提供Web服务。 此项不特意设也可,默认端口就80
    • ServerName

      1
      2
      3
      ServerName localhost
      或者
      ServerName 192.168.3.33:80
    • DocumentRoot

      1
      2
      修改DocumentRoot ,根据需要自行设定主页所在的根目录。
      DocumentRoot "/var/www/html/doxygen_doc/developer"
    • 1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      <Directory "/var/www/html/doxygen_doc/developer">
      #
      # Possible values for the Options directive are "None", "All",
      # or any combination of:
      # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
      #
      # Note that "MultiViews" must be named *explicitly* --- "Options All"
      # doesn't give it to you.
      #
      # The Options directive is both complicated and important. Please see
      # http://httpd.apache.org/docs/2.2/mod/core.html#options
      # for more information.
      #
      Options Indexes FollowSymLinks

      #
      # AllowOverride controls what directives may be placed in .htaccess files.
      # It can be "All", "None", or any combination of the keywords:
      # Options FileInfo AuthConfig Limit
      #
      AllowOverride None

      #
      # Controls who can get stuff from this server.
      #
      Order allow,deny
      Allow from all

      </Directory>
    • DirectoryIndex

      1
      2
      3
      <IfModule dir_module>
      DirectoryIndex index.html
      </IfModule>
  5. 启动httpd服务

    1
    /usr/local/apache2/bin/apachectl start

    如果一切正常,那么现在打开浏览器,输入:http:\\localhost 或者 http:\\192.168.3.33 就应该可以打开index.html网页了,此处即是我遇到问题的地方,一开始执行./apachetl start提示ServerName不明确,也就是前面提到的要给ServerName明确的定义或者是localhost或者是指定的ip,其次又遇到80端口被占用的问题,于是换端口,换了端口也提示被占用,后面把这些端口都kill了,但是依然不行。

    1
    2
    ps -ef	//可以看到有若干个httpd,占着若干个刚刚修改的端口,把这些都kill
    kill pid //pid是通过ps -ef 看到的进程id

    无论配置文件怎么改,端口怎么设置都不行,原来是电脑没重启的缘故,昨天北配停电,今早开机就可以用了,自己电脑上装了一遍,windows服务器上装了一遍,linux服务器上装了一遍,唯独linux不行,就没想过重启一下,应该是一些服务没有生效,没有重启虽然执行./apachetl start但实际上httpd服务并没有生效,这才导致无法在浏览器上访问。

  6. 自动启动httpd服务

    上面只是当前启动了httpd服务,如果电脑重启或者关机重开时候,httpd服务是没有自动启动的,下面是一种自动启动的方式,已在服务器上设置,但还未验证:

    1
    2
    /etc/rc.d/rc.local中增加启动apache的命令,例如:/usr/local/httpd/bin/apachectl start
    chmod u+x rc.local

    总归遇到的所有问题都解决了,开心。

    by:Huming

    @2017年9月6日10:59:53