日期:2014-05-17  浏览次数:20684 次

Ubuntu10下Apache-2.2安装
虽说已经装有了nginx,但是apache也是不错的,所以装备上也要有。
我是用非root登录,所以要sudo,要不然很多命令没法执行。

下载httpd-2.2.16.tar.gz,解压并编译安装

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服务器。可以先不管,采用默认的就行。这一步暂可省略。
sudo gedit /usr/local/apache2.2.16/conf/httpd.conf


启动测试
现在,可以执行下述命令立即启动你的Apache HTTP服务器:
/usr/local/apache2.2.16/bin/apachectl -k start

你应该可以用http://localhost/来请求你的第一个网页了,这个网页位于DocumentRoot目录下,通常是PREFIX/htdocs/ 。随后,可以这样停止服务器:
$ 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端口程序,用最后一个命令就行

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
ps 762
  PID TTY      STAT   TIME COMMAND
  762 ?        Ss     0:00 nginx: master process /usr/sbin/nginx
sudo kill -9 762

再次启动apache,如果启动再次有占用情况,再杀一次。我杀了两次才杀掉
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。
sudo gedit /usr/local/apache2.2.16/conf/httpd.conf

在最前加入 ServerName localhost:80 即可。
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!.
成功。