[root@localhost data]# 安装次序很重要:apr --> apr-util --> apache --> MySQL -->php--->Xcache ——>wordpress
架构:LAMP一直很受大众喜欢,完全能满足基本需求。当访问量大时可以尝试LNMP架构,做到前端负载均衡访问。
下载:各安装包已放到云盘上,http://pan.baidu.com/s/1gd1uWTX
一、安装编译apache
1 编译安装apr
- [root@localhost data]#tar xf apr-1.4.6.tar.bz2
- [root@localhost data]#cd apr-1.4.6
- [root@localhost apr-1.4.6]#./configure --prefix=/data/apr
- #####软件包安装的路径统一放在第三方软件位置:/data/
- [root@localhost apr-1.4.6]#make
- [root@localhost apr-1.4.6]#make install
2 编译安装apr-util
3 安装pcre-devel软件包
4 编译安装httpd-2.4.4
5 修改httpd的主配置文件,设置其pid文件的路径
6 为httpd提供服务脚本
1: #!/bin/bash 2: # 3: # Licensed to the Apache Software Foundation (ASF) under one or more 4: # contributor license agreements. See the NOTICE file distributed with5: # this work for additional information regarding copyright ownership.
6: # The ASF licenses this file to You under the Apache License, Version 2.0
7: # (the "License"); you may not use this file except in compliance with
8: # the License. You may obtain a copy of the License at 9: #10: # http://www.apache.org/licenses/LICENSE-2.0
11: #12: # Unless required by applicable law or agreed to in writing, software
13: # distributed under the License is distributed on an "AS IS" BASIS,
14: # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.15: # See the License for the specific language governing permissions and
16: # limitations under the License. 17: # 18: #19: # httpd Startup script for the Apache Web Server
20: # 21: # chkconfig: - 85 1522: # description: The Apache HTTP Server is an efficient and extensible \
23: # server implementing the current HTTP standards. 24: # processname: httpd 25: # pidfile: /var/run/httpd.pid 26: # config: /etc/httpd/httpd.conf 27: ### BEGIN INIT INFO 28: # Provides: httpd 29: # Required-Start: $local_fs $remote_fs $network $named 30: # Required-Stop: $local_fs $remote_fs $network 31: # Should-Start: distcache 32: # Short-Description: start and stop Apache HTTP Server33: # Description: The Apache HTTP Server is an extensible server
34: # implementing the current HTTP standards. 35: ### END INIT INFO 36: 37: # Source function library. 38: . /etc/rc.d/init.d/functions 39: 40: # What were we called? Multiple instances of the same daemon can be41: # created by creating suitably named symlinks to this startup script
42: prog=$(basename $0 | sed -e ‘s/^[SK][0-9][0-9]//‘)
43: 44: if [ -f /etc/sysconfig/${prog} ]; then
45: . /etc/sysconfig/${prog} 46: fi47: # Start httpd in the C locale by default.
48: HTTPD_LANG=${HTTPD_LANG-"C"}
49: 50: # This will prevent initlog from swallowing up a pass-phrase prompt if
51: # mod_ssl needs a pass-phrase from the user.52: INITLOG_ARGS=""
53: 54: # Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
55: # with the thread-based "worker" MPM; BE WARNED that some modules may not
56: # work correctly with a thread-based MPM; notably PHP will refuse to start. 57: apachectl=/database/apache/bin/apachectl 58: httpd=${HTTPD-/database/apache/bin/httpd} 59: pidfile=${PIDFILE-/var/run/${prog}.pid}60: lockfile=${LOCKFILE-/var/lock/subsys/${prog}}
61: RETVAL=0 62: 63: # check for 1.3 configuration
64: check13 () { 65: CONFFILE=/etc/httpd/httpd.conf66: GONE="(ServerType|BindAddress|Port|AddModule|ClearModuleList|"
67: GONE="${GONE}AgentLog|RefererLog|RefererIgnore|FancyIndexing|"
68: GONE="${GONE}AccessConfig|ResourceConfig)"
69: if grep -Eiq "^[[:space:]]*($GONE)" $CONFFILE; then
70: echo71: echo 1>&2 " Apache 1.3 configuration directives found"
72: echo 1>&2 " please read @docdir@/migration.html"
73: failure "Apache 1.3 config directives test"
74: echo 75: exit 1 76: fi 77: } 78: # The semantics of these two functions differ from the way apachectl does79: # things -- attempting to start while running is a failure, and shutdown
80: # when not running is also a failure. So we just do it the way init scripts
81: # are expected to behave here. 82: start() {83: echo -n $"Starting $prog: "
84: check13 || exit 1 85: LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS 86: RETVAL=$? 87: echo 88: [ $RETVAL = 0 ] && touch ${lockfile}89: return $RETVAL
90: } 91: stop() {92: echo -n $"Stopping $prog: "
93: killproc -p ${pidfile} -d 10 $httpd 94: RETVAL=$? 95: echo 96: [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile} 97: } 98: reload() {99: echo -n $"Reloading $prog: "
100: check13 || exit 1 101: killproc -p ${pidfile} $httpd -HUP 102: RETVAL=$? 103: echo 104: } 105: 106: # See how we were called.107: case "$1" in
108: start) 109: start 110: ;; 111: stop) 112: stop 113: ;; 114: status)115: if ! test -f ${pidfile}; then
116: echo $prog is stopped
117: RETVAL=3118: else
119: status -p ${pidfile} $httpd 120: RETVAL=$? 121: fi 122: ;; 123: restart) 124: stop 125: start 126: ;; 127: condrestart)128: if test -f ${pidfile} && status -p ${pidfile} $httpd >&/dev/null; then
129: stop 130: start 131: fi 132: ;; 133: reload) 134: reload 135: ;; 136: configtest) 137: LANG=$HTTPD_LANG $httpd $OPTIONS -t 138: RETVAL=$? 139: ;; 140: graceful)141: echo -n $"Gracefully restarting $prog: "
142: LANG=$HTTPD_LANG $httpd $OPTIONS -k $@ 143: RETVAL=$? 144: echo 145: ;; 146: *)147: echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|graceful|help|configtest}"
148: exit 1 149: esac 150: exit $RETVAL
7 为httpd提供服务脚本
1: [root@localhost httpd-2.4.4]#chmod +x /etc/rc.d/init.d/httpd