转自:http://peterwei.iteye.com/blog/975122
我是用非root登录,所以要sudo,要不然很多命令没法执行。 下载httpd-2.2.16.tar.gz,解压并编译安装
Java代码 tar –zxvf httpd-2.2.16.tar.gz cd httpd-2.2.16 ./configure --prefix=/usr/local/apache2.2.16 make //现在可以在PREFIX目录(参见上述的 --prefix 参数)下安装了,执行: sudo make install //如果是升级,安装程序不会覆盖你的配置文件和文档。 接着,通过修改PREFIX/conf/目录下的配置文件,来配置Apache HTTP服务器。可以先不管,采用默认的就行。这一步暂可省略。 Java代码 sudo gedit /usr/local/apache2.2.16/conf/httpd.conf 启动测试 现在,可以执行下述命令立即启动你的Apache HTTP服务器: Java代码 /usr/local/apache2.2.16/bin/apachectl -k start 你应该可以用http://localhost/来请求你的第一个网页了,这个网页位于DocumentRoot目录下,通常是PREFIX/htdocs/ 。随后,可以这样停止服务器: Java代码 $ PREFIX/bin/apachectl -k stop 常见问题解决 80端口已占用 guangbo@guangbo-laptop:/usr/local/apache2.2.16$ sudo ./bin/apachectl -k start httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs 解决方法:查看占用80端口程序,用最后一个命令就行 Java代码 ps auxw netstat –ln sudo netstat -lnp|grep 80 可以看到nginx占用80端口 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 762/nginx tcp6 0 0 :::8080 :::* LISTEN 995/java 查看并kill掉nginx Java代码 ps 762 PID TTY STAT TIME COMMAND 762 ? Ss 0:00 nginx: master process /usr/sbin/nginx sudo kill -9 762 再次启动apache,如果启动再次有占用情况,再杀一次。我杀了两次才杀掉 Java代码 sudo /usr/local/apache2.2.16/bin/apachectl -k start ServerName问题 httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName 这是一个 warning,出现在apache2启动或重起时。主要是因为在配置 apache2 时,没有指定相应的主机名,即 ServerName。修改 /usr/local/apache2.2.16/httpd.conf。 Java代码 sudo gedit /usr/local/apache2.2.16/conf/httpd.conf 在最前加入 ServerName localhost:80 即可。 Java代码 sudo /usr/local/apache2.2.16/bin/apachectl -k stop sudo /usr/local/apache2.2.16/bin/apachectl -k start 浏览器输入:http://127.0.0.1/ It works!. 成功。