标签:
1、Apache的特点
功能强大、配置简单、速度快、应用广泛、性能稳定可靠,并可做代理服务器或负载均衡来使用
2、Apache的应用场合
使用Apache运行静态HTML网页、图片(处理静态小文件能力不及Nginx)。 使用Apache结合PHP引擎运行PHP、Perl、Python等程序 使用Apache结合Tomcat/Resion运行JSP,JAVA等程序 使用Apache作代理、负载均衡、rewrite规则过滤等等。
安装Apache
1、确认主机名、检查是否已经存在httpd、如果已经存在先卸载(使用rpm -e --nodeps)
[root@httpd /]# hostname httpd [root@httpd /]# rpm -qa httpd
rpm -e --nodeps 加 rpm -qa httpd 查看到的包名
rpm命令-qa参数
-q 查询的意思
-a 所有软件包
-e 移除的意思
--nodeps 不做软件间的依赖检查
更过参数使用man rpm 或 rpm --help查看
2、下载httpd软件包
[root@localhost /]# wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.31.tar.gz --2016-08-26 20:07:22-- http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.31.tar.gz Resolving mirror.bit.edu.cn... 202.204.80.77, 2001:da8:204:2001:250:56ff:fea1:22 Connecting to mirror.bit.edu.cn|202.204.80.77|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 7583841 (7.2M) [application/octet-stream] Saving to: “httpd-2.2.31.tar.gz” 100%[==================================================>] 7,583,841 1.26M/s in 5.0s 2016-08-26 20:07:27 (1.46 MB/s) - “httpd-2.2.31.tar.gz” saved [7583841/7583841]
[root@localhost /]# ll httpd-2.2.31.tar.gz
-rw-r--r--. 1 root root 7583841 Aug 26 20:10 httpd-2.2.31.tar.gz
3、解压
[root@localhost httpd-2.2.31]# tar zxvf httpd-2.2.31.tar.gz [root@localhost /]# cd httpd-2.2.31 [root@localhost httpd-2.2.31]# ls ABOUT_APACHE CHANGES httpd.dsp libhttpd.dep NOTICE server acinclude.m4 config.layout httpd.mak libhttpd.dsp NWGNUmakefile srclib Apache.dsw configure httpd.spec libhttpd.mak os support build configure.in include LICENSE README test BuildAll.dsp docs INSTALL Makefile.in README.platforms VERSIONING BuildBin.dsp emacs-style InstallBin.dsp Makefile.win README-win32.txt buildconf httpd.dep LAYOUT modules ROADMAP [root@localhost httpd-2.2.31]# ls INSTALL README #遇到不熟悉的软件是可参考这两个文件 INSTALL README [root@localhost httpd-2.2.31]# less INSTALL APACHE INSTALLATION OVERVIEW Quick Start - Unix ------------------ 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 NOTES: * Replace PREFIX with the filesystem path under which Apache should be installed. A typical installation might use "/usr/local/apache2" for PREFIX (without the quotes). * If you are a developer who will be linking your code with Apache or using a debugger to step through server code, ./configure‘s --with-included-apr option may be advantageous, as it removes the possibility of version or compile-option mismatches with APR and APR-util code. (Many OSes now include their own version of APR and APR-util.) * If you are a developer building Apache directly from Subversion, you will need to run ./buildconf before running configure. This script bootstraps the build environment and requires Python as well as GNU autoconf and libtool. If you build Apache from a release tarball, you don‘t have to run buildconf. [root@localhost httpd-2.2.31]# less README Apache HTTP Server What is it? ----------- The Apache HTTP Server is a powerful and flexible HTTP/1.1 compliant web server. Originally designed as a replacement for the NCSA HTTP Server, it has grown to be the most popular web server on the Internet. As a project of the Apache Software Foundation, the developers aim to collaboratively develop and maintain a robust, commercial-grade, standards-based server with freely available source code. The Latest Version ------------------ Details of the latest version can be found on the Apache HTTP server project page under <http://httpd.apache.org/>. Documentation -------------
4、编译、安装
[root@localhost httpd-2.2.31]# yum -y install gcc [root@localhost httpd-2.2.31]# ./configure --prefix=/usr/local/httpd-2.2.31 --enable-deflate --enable-expires --enable-headers --enable-modules=most --enable-so --with-mpm=worker --enable-rewrite
checking for zlib location... not found checking whether to enable mod_deflate... configure: error: mod_deflate has been requested but can not be built due to prerequisite failures 解决 [root@localhost httpd-2.2.31]# yum -y install zlib zlib-devel 重新 [root@localhost httpd-2.2.31]# ./configure --prefix=/usr/local/httpd-2.2.31 --enable-deflate --enable-expires --enable-headers --enable-modules=most --enable-so --with-mpm=worker --enable-rewrite [root@localhost httpd-2.2.31]# echo $? 0
[root@localhost httpd-2.2.31]# make
[root@localhost httpd-2.2.31]# make install
[root@localhost httpd-2.2.31]# echo $?
0
5、优化路径
[root@localhost httpd-2.2.31]# ln -s /usr/local/httpd-2.2.31/bin/* /usr/local/bin/
6、检查
[root@localhost httpd-2.2.31]# /usr/local/bin/apachectl -t httpd: Could not reliably determine the server‘s fully qualified domain name, using localhost.localdomain for ServerName Syntax OK
7、启动服务
[root@localhost httpd-2.2.31]# /usr/local/bin/apachectl start httpd: Could not reliably determine the server‘s fully qualified domain name, using localhost.localdomain for ServerName [root@localhost httpd-2.2.31]# lsof -i :80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME httpd 14904 root 4u IPv6 80734 0t0 TCP *:http (LISTEN) httpd 14906 daemon 4u IPv6 80734 0t0 TCP *:http (LISTEN) httpd 14907 daemon 4u IPv6 80734 0t0 TCP *:http (LISTEN) httpd 14908 daemon 4u IPv6 80734 0t0 TCP *:http (LISTEN) [root@localhost httpd-2.2.31]# ps -ef | grep httpd root 14904 1 0 21:00 ? 00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start daemon 14905 14904 0 21:00 ? 00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start daemon 14906 14904 0 21:00 ? 00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start daemon 14907 14904 0 21:00 ? 00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start daemon 14908 14904 0 21:00 ? 00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start root 15006 1098 0 21:01 pts/0 00:00:00 grep httpd
8、测试
检查防火墙是否关闭
[root@localhost httpd-2.2.31]# /etc/init.d/iptables stop iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: [ OK ]
打开浏览器访问http://192.168.161.131/
如果访问不了It works 页面、排查
1、iptables防火墙和selinux是否关闭(在生产环境中允许80端口访问,而不是关闭防火墙)
[root@localhost httpd-2.2.31]# /etc/init.d/iptables stop root@localhost httpd-2.2.31]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
关闭selinux
[root@localhost httpd-2.2.31]# setenforce 0 #临时关闭
[root@localhost httpd-2.2.31]# cat /etc/selinux/config | grep SELINUX=enforcing SELINUX=enforcing [root@localhost httpd-2.2.31]# sed -i ‘s#SELINUX=enforcing#SELINUX=disabled#g‘ /etc/selinux/config [root@localhost httpd-2.2.31]# cat /etc/selinux/config | grep SELINUX= # SELINUX= can take one of these three values: SELINUX=disabled
2、检查httpd端口80
[root@localhost httpd-2.2.31]# netstat -nlt | grep 80 tcp 0 0 :::80 :::* LISTEN
3、查看是否http进程
[root@localhost httpd-2.2.31]# ps -ef | grep http root 14904 1 0 21:00 ? 00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start daemon 14905 14904 0 21:00 ? 00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start daemon 14906 14904 0 21:00 ? 00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start daemon 14907 14904 0 21:00 ? 00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start daemon 14908 14904 0 21:00 ? 00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start daemon 15071 14904 0 21:03 ? 00:00:00 /usr/local/httpd-2.2.31/bin/httpd -k start root 15147 1098 0 21:28 pts/0 00:00:00 grep http
4、在服务器上wget http://192.168.161.131
[root@localhost httpd-2.2.31]# wget http://192.168.161.131 --2016-08-26 21:28:56-- http://192.168.161.131/ Connecting to 192.168.161.131:80... connected. HTTP request sent, awaiting response... 200 OK Length: 44 [text/html] Saving to: “index.html” 100%[======================================>] 44 --.-K/s in 0s 2016-08-26 21:28:56 (7.26 MB/s) - “index.html” saved [44/44] [root@localhost httpd-2.2.31]# curl 192.168.161.131
命令
[root@localhost httpd-2.2.31]# /usr/local/bin/apachectl Usage: /usr/local/httpd-2.2.31/bin/httpd [-D name] [-d directory] [-f file] [-C "directive"] [-c "directive"] [-k start|restart|graceful|graceful-stop|stop] [-v] [-V] [-h] [-l] [-L] [-t] [-T] [-S] Options: -D name : define a name for use in <IfDefine name> directives -d directory : specify an alternate initial ServerRoot -f file : specify an alternate ServerConfigFile -C "directive" : process directive before reading config files -c "directive" : process directive after reading config files -e level : show startup errors of level (see LogLevel) -E file : log startup errors to file -v : show version number -V : show compile settings -h : list available command line options (this page) -l : list compiled in modules -L : list available configuration directives -t -D DUMP_VHOSTS : show parsed settings (currently only vhost settings) -S : a synonym for -t -D DUMP_VHOSTS -t -D DUMP_MODULES : show all loaded modules -M : a synonym for -t -D DUMP_MODULES -t : run syntax check for config files -T : start without DocumentRoot(s) check
标签:
原文地址:http://www.cnblogs.com/zzzhfo/p/5874197.html