1 安装
1,注意,这里建立两个目录:
/usr/local/src/apache/ 为源码目录
/usr/local/apache-2.2.22/ 为安装目录
2,首先,建立并修改这两个目录权限:
#创建源包存放的目录
mkdir -p /usr/local/src/apache/
sudo mkdir /usr/local/apache-2.2.22
#改变该目录权限
sudo chmod 0777 /usr/local/src/apache/ -R
sudo chmod 0777 /usr/local/apache-2.2.22
3,在源码目录下,编译并指定安装目录,就会在安装目录下生成可执行文件
#进入源码目录
cd /usr/local/src/apache/
#下载该文件
wget http://mirror.bjtu.edu.cn/apache/httpd/httpd-2.2.22.tar.gz
#解压文件会生成httpd-2.2.22目录
tar -xzvf httpd-2.2.22.tar.gz
#定位到该文件夹
cd httpd-2.2.22/
#查看安装apache配置参数
./configure --help|more
#配置apache安装目录
./configure --prefix=/usr/local/apache-2.2.22 --enable-so
#编译apache
make
#安装apache
make install
4,在安装目录下设置ServerName[和监听端口Listen]
#编辑ServerName为ServerName localhost:80
vi /usr/local/apache-2.2.22/conf/httpd.conf
5,启动httpd服务
#注意:小于1024的端口(如80)需要sudo权限来启动apache
apache_dir/bin/apachectl [start|stop|restart]
6,其默认主页位置:
vi /usr/local/apache-2.2.22/htdocs/index.html
2 查看
ps aux | grep httpd
这样查看到如果是
[admin@r42h06016.xy2.xxx.com]$pwd
/home/admin/admin/apache/bin
[admin@r42h06016.xy2.xxx.com]$./apachectl stop
[admin@r42h06016.xy2.xxx.com]$ps aux | grep httpd
admin 1899 0.0 0.0 61156 736 pts/9 S+ 15:07 0:00 grep httpd
apache 4822 0.0 0.0 181180 2476 ? S Nov04 0:00 /usr/sbin/httpd
apache 4823 0.0 0.0 181180 2476 ? S Nov04 0:00 /usr/sbin/httpd
apache 4824 0.0 0.0 181180 2476 ? S Nov04 0:00 /usr/sbin/httpd
apache 4825 0.0 0.0 181180 2476 ? S Nov04 0:00 /usr/sbin/httpd
apache 4826 0.0 0.0 181180 2476 ? S Nov04 0:00 /usr/sbin/httpd
apache 4827 0.0 0.0 181180 2476 ? S Nov04 0:00 /usr/sbin/httpd
apache 4828 0.0 0.0 181180 2476 ? S Nov04 0:00 /usr/sbin/httpd
apache 4829 0.0 0.0 181180 2476 ? S Nov04 0:00 /usr/sbin/httpd
root 9321 0.0 0.0 181180 3920 ? Ss Oct22 0:00 /usr/sbin/httpd
admin 17986 0.0 0.0 132272 4944 ? Ssl Oct10 0:15 /apsara/KFC/kfc -c /apsara/KFC/kfc.conf -g -m httpd
[admin@r42h06016.xy2.xxx.com]$./apachectl start
[admin@r42h06016.xy2.xxx.com]$ps aux | grep httpd
admin 1908 0.0 0.0 101388 2988 ? Ss 15:08 0:00 /home/admin/admin/apache//bin/httpd -k start
admin 1909 0.0 0.0 101416 2808 ? S 15:08 0:00 /home/admin/admin/apache//bin/httpd -k start
admin 1910 0.0 0.0 101416 2808 ? S 15:08 0:00 /home/admin/admin/apache//bin/httpd -k start
admin 1911 0.0 0.0 101416 2808 ? S 15:08 0:00 /home/admin/admin/apache//bin/httpd -k start
admin 1912 0.0 0.0 101416 2808 ? S 15:08 0:00 /home/admin/admin/apache//bin/httpd -k start
admin 1913 0.0 0.0 101416 2808 ? S 15:08 0:00 /home/admin/admin/apache//bin/httpd -k start
admin 1915 0.0 0.0 61160 752 pts/9 S+ 15:08 0:00 grep httpd
apache 4822 0.0 0.0 181180 2476 ? S Nov04 0:00 /usr/sbin/httpd
apache 4823 0.0 0.0 181180 2476 ? S Nov04 0:00 /usr/sbin/httpd
apache 4824 0.0 0.0 181180 2476 ? S Nov04 0:00 /usr/sbin/httpd
apache 4825 0.0 0.0 181180 2476 ? S Nov04 0:00 /usr/sbin/httpd
apache 4826 0.0 0.0 181180 2476 ? S Nov04 0:00 /usr/sbin/httpd
apache 4827 0.0 0.0 181180 2476 ? S Nov04 0:00 /usr/sbin/httpd
apache 4828 0.0 0.0 181180 2476 ? S Nov04 0:00 /usr/sbin/httpd
apache 4829 0.0 0.0 181180 2476 ? S Nov04 0:00 /usr/sbin/httpd
root 9321 0.0 0.0 181180 3920 ? Ss Oct22 0:00 /usr/sbin/httpd
admin 17986 0.0 0.0 132272 4944 ? Ssl Oct10 0:15 /apsara/KFC/kfc -c /apsara/KFC/kfc.conf -g -m httpd
前者是系统自带的,后者才是自己起的。日志在
bin/httpd.LOG
查看是否启动该进程:
sudo netstat -tanp | grep 0.0.0.0
关闭原来系统默认的httpd:
service httpd stop
扫描端口
nmap localhost
nmap -p 10-100 localhost
3 陷阱
一个小陷阱。
如果用80启动,则由于是用sudo起起来的,而apache默认会在httpd.conf文件中创建一个为:
User daemon
Group daemon
的用户,这个我们默认没有做过更改。但是一旦是80端口,意味着必须sudo启动,如果用该一般账户,就会遇到权限问题。所以这里需要修改为:
#User daemon
User admin
#Group daemon
Group admin
这样才能正常访问。
如果本机可以访问,而其他机器不能访问,可能是防火墙问题:
sudo service iptables stop
80端口和8080端口
这两个端口都是www服务的常用端口,80端口是默认端口,输入1.2.3.4和1.2.3.4:80是一样的。但是 Linux 下非 root 用户无法使用1024以内的端口号访问,所以需要一个与 80 有点关系的端口, 8080 是一个很好的选择。这相当于一个房间的前后门,前门和后门都可以进入到房子里。
坑爹呀!!!!