- 11.6 MariaDB安装- 11.7/11.8/11.9 Apache安装- 扩展- apache dso https://yq.aliyun.com/articles/6298- apache apxs http://man.chinaunix.net/newsoft/ApacheMenual_CN_2.2new/programs/apxs.html- apache工作模式 http://www.cnblogs.com/fnng/archive/2012/11/20/2779977.html# 11.6 MariaDB 安装- 先进入到/usr/local/src 目录下- 下载包mariadb包,因为这个是国外的包 所以网速慢,需要提前准备好,需要下50分钟多```[root@aminglinux-001 ~]# cd /usr/local/src[root@aminglinux-001 src]# lshttpd-2.4.27 httpd-2.4.27.tar.gz mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz[root@aminglinux-001 src]# [root@aminglinux-001 src]# wget https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz--2017-09-24 21:17:43-- https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz正在解析主机 downloads.mariadb.com (downloads.mariadb.com)... 51.255.94.155, 2001:41d0:1004:249b::正在连接 downloads.mariadb.com (downloads.mariadb.com)|51.255.94.155|:443... 已连接。已发出 HTTP 请求,正在等待回应... 200 OK长度:541295045 (516M) [application/octet-stream]正在保存至: “mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz”100%[=====================================================>] 541,295,045 185KB/s 用时 68m 38s 2017-09-24 22:26:27 (128 KB/s) - 已保存 “mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz” [541295045/541295045])[root@aminglinux-001 src]# ```- 下载好了压缩包,首先是解压tar -zxvf 解压```[root@aminglinux-001 src]# tar -zxvf mariadb-10.2.6-linux-glibc_214-x86_64.tar.gzmariadb-10.2.6-linux-glibc_214-x86_64/support-files/policy/selinux/mariadb-server.temariadb-10.2.6-linux-glibc_214-x86_64/support-files/policy/selinux/READMEmariadb-10.2.6-linux-glibc_214-x86_64/support-files/policy/selinux/mariadb.temariadb-10.2.6-linux-glibc_214-x86_64/support-files/mysql.server[root@aminglinux-001 src]# [root@aminglinux-001 src]# lshttpd-2.4.27 mariadb-10.2.6-linux-glibc_214-x86_64.tar.gzhttpd-2.4.27.tar.gz mysql-5.6.35-linux-glibc2.5-x86_64.tar.gzmariadb-10.2.6-linux-glibc_214-x86_64[root@aminglinux-001 src]# ```- 把这个解压出来的文件 移到这个目录下并且改名为 mariadb mv /usr/local/mariadb ```[root@aminglinux-001 src]# mv mariadb-10.2.6-linux-glibc_214-x86_64 /usr/local/mariadb[root@aminglinux-001 src]# ``````[root@aminglinux-001 src]# cd /usr/local/mariadb[root@aminglinux-001 mariadb]# [root@aminglinux-001 mariadb]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadbInstalling MariaDB/MySQL system tables in '/data/mariadb' ...OKTo start mysqld at boot time you have to copysupport-files/mysql.server to the right place for your systemPLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !To do so, start the server, then issue the following commands:'/usr/local/mariadb//bin/mysqladmin' -u root password 'new-password''/usr/local/mariadb//bin/mysqladmin' -u root -h aminglinux-001 password 'new-password'Alternatively you can run:'/usr/local/mariadb//bin/mysql_secure_installation'which will also give you the option of removing the testdatabases and anonymous user created by default. This isstrongly recommended for production servers.See the MariaDB Knowledgebase at http://mariadb.com/kb or theMySQL manual for more instructions.You can start the MariaDB daemon with:cd '/usr/local/mariadb/' ; /usr/local/mariadb//bin/mysqld_safe --datadir='/data/mariadb'You can test the MariaDB daemon with mysql-test-run.plcd '/usr/local/mariadb//mysql-test' ; perl mysql-test-run.plPlease report any problems at http://mariadb.org/jiraThe latest information about MariaDB is available at http://mariadb.org/.You can find additional information about the MySQL part at:http://dev.mysql.comConsider joining MariaDB's strong and vibrant community:https://mariadb.org/get-involved/[root@aminglinux-001 mariadb]# echo $?0[root@aminglinux-001 mariadb]#[root@aminglinux-001 mariadb]# ls /data/mariadb/aria_log.00000001 ib_buffer_pool ib_logfile0 mysql testaria_log_control ibdata1 ib_logfile1 performance_schema[root@aminglinux-001 mariadb]# ls /data/mysqlaminglinux-001.err auto.cnf ib_logfile0 mysql testaminglinux-001.pid ibdata1 ib_logfile1 performance_schema[root@aminglinux-001 mariadb]# ```- 下面拷贝配置文件,定义启动脚本```[root@aminglinux-001 mariadb]# ls support-files/binary-configure my-large.cnf mysql-log-rotate wsrep_notifymagic my-medium.cnf mysql.servermy-huge.cnf my-small.cnf policymy-innodb-heavy-4G.cnf mysqld_multi.server wsrep.cnf[root@aminglinux-001 mariadb]# [root@aminglinux-001 mariadb]# vim support-files/my-small.cnf[root@aminglinux-001 mariadb]# free total used free shared buff/cache availableMem: 999936 562720 126040 9440 311176 251040Swap: 2097148 19476 2077672[root@aminglinux-001 mariadb]# ```- 拷贝一个配置文件,再拷贝一个启动脚本```[root@aminglinux-001 mariadb]# cp support-files/my-small.cnf /usr/local/mariadb/my.cnf[root@aminglinux-001 mariadb]# cp support-files/mysql.server /etc/init.d/mariadb[root@aminglinux-001 mariadb]# ```- 可以看下里面的内容```[root@aminglinux-001 mariadb]# vim /usr/local/mariadb/my.cnf# The following options will be passed to all MySQL clients[client]#password = your_passwordport = 3306socket = /tmp/mysql.sock# Here follows entries for some specific programs# The MySQL server[mysqld]port = 3306socket = /tmp/mysql.sockskip-external-lockingkey_buffer_size = 16Kmax_allowed_packet = 1Mtable_open_cache = 4sort_buffer_size = 64Kread_buffer_size = 256Kread_rnd_buffer_size = 256Knet_buffer_length = 2Kthread_stack = 240K# Don't listen on a TCP/IP port at all. This can be a security enhancement,# if all processes that need to connect to mysqld run on the same host.# All interaction with mysqld must be made via Unix sockets or named pipes.# Note that using this option without enabling named pipes on Windows# (using the "enable-named-pipe" option) will render mysqld useless! 43,1 24%[root@aminglinux-001 mariadb]# ```- /usr/local/mariadb/my.cnf这个文件基本上不用改,要改的是启动脚本```[root@aminglinux-001 mariadb]# vim /etc/init.d/mariadb# If you want to affect other MySQL variables, you should make your changes# in the /etc/my.cnf, ~/.my.cnf or other MySQL configuration files.# If you change base dir, you must also change datadir. These may get# overwritten by settings in the MySQL configuration files.basedir=datadir=# Default value, in seconds, afterwhich the script should timeout waiting# for server start.# Value here is overridden by value in my.cnf.# 0 means don't wait at all# Negative numbers mean to wait indefinitelyservice_startup_timeout=900```- 把这个上面的 - basedir= datadir= 改下```# If you change base dir, you must also change datadir. These may get# overwritten by settings in the MySQL configuration files.basedir=/usr/local/mariadbdatadir=/data/mariadbconf=$basedir/my.cnf# Default value, in seconds, afterwhich the script should timeout waiting# for server start.# Value here is overridden by value in my.cnf.# 0 means don't wait at all# Negative numbers mean to wait indefinitely-- 插入 -- 48,21 6% $bindir/mysqld_safe --defaults-file="$conf" --datadir="$datadir" --pid-file="$mysqld_pid_file_path" "$@" & wait_for_ready; return_value=$?-- 插入 -- 300,51 65%```- 接下来可以尝试启动mariadb服务,启动之前可以先看下 mysqld 服务有没有启动```[root@aminglinux-001 mariadb]# vim /etc/init.d/mariadb[root@aminglinux-001 mariadb]# ps aux |grep mysqlroot 1172 0.0 0.0 115376 632 ? S 9月24 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/aminglinux-001.pidmysql 1686 0.0 44.6 981248 446560 ? Sl 9月24 0:15 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/aminglinux-001.err --pid-file=/data/mysql/aminglinux-001.pid --socket=/tmp/mysql.sock --port=3306root 4645 0.0 0.0 112664 976 pts/0 S+ 00:20 0:00 grep --color=automysql```- 有了先关闭下mysqld 服务```[root@aminglinux-001 mariadb]# service mysqld stopShutting down MySQL.. SUCCESS! [root@aminglinux-001 mariadb]# ps aux |grep mysqlroot 4677 0.0 0.0 112664 976 pts/0 R+ 00:21 0:00 grep --color=automysql```- 再来尝试下启动mariadb 服务```[root@aminglinux-001 mariadb]# /etc/init.d/mariadb startReloading systemd: [ 确定 ]Starting mariadb (via systemctl): [ 确定 ][root@aminglinux-001 mariadb]# ps aux |grep mariadbroot 4721 0.2 0.1 115376 1684 ? S 00:22 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mariadb/my.cnf --datadir=/data/mysql --pid-file=/data/mysql/aminglinux-001.pidmysql 4957 4.4 10.2 684592 102452 ? Sl 00:22 0:00 /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mariadb/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/aminglinux-001.err --pid-file=/data/mysql/aminglinux-001.pid --socket=/tmp/mysql.sock --port=3306root 4986 0.0 0.0 112664 976 pts/0 S+ 00:22 0:00 grep --color=automariadb[root@aminglinux-001 mariadb]# ```- 服务启动了,看看端口```[root@aminglinux-001 mariadb]# netstat -ltnpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1143/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1969/master tcp6 0 0 :::3306 :::* LISTEN 4957/mysqld tcp6 0 0 :::22 :::* LISTEN 1143/sshd tcp6 0 0 ::1:25 :::* LISTEN 1969/master [root@aminglinux-001 mariadb]# ```- 实际上应该这样```[root@aminglinux-001 mariadb]# vi /usr/local/mariadb/my.cnf# The following options will be passed to all MySQL clients[client]#password = your_passwordport = 3306socket = /tmp/mysql.sock# Here follows entries for some specific programs# The MySQL server[mysqld]datadir = /data/mariadbport = 3306socket = /tmp/mysql.sockskip-external-locking-- INSERT --[root@aminglinux-001 mariadb]# vi /usr/local/mariadb/my.cnf[root@aminglinux-001 mariadb]# /etc/init.d/mariadb restartRestarting mariadb (via systemctl): [ 确定 ][root@aminglinux-001 mariadb]# ps aux |grep mariadbroot 9920 0.0 0.1 115380 1736 ? S 23:16 0:00 /bin/sh /usr/local/mariadb/bin/mysqld_safe --datadir=/data/mariadb --pid-file=/data/mariadb/aminglinux-001.pidmysql 10072 1.0 6.1 1125020 61912 ? Sl 23:17 0:00 /usr/local/mariadb/bin/mysqld --basedir=/usr/local/mariadb --datadir=/data/mariad --plugin-dir=/usr/local/mariadb/lib/plugin --user=mysql --log-error=/data/mariadb/aminglinux-001.err --pid-file=/data/mariadb/aminglinux-001.pid --socket=/tmp/mysql.sock --port=3306root 10119 0.0 0.0 112664 976 pts/0 R+ 23:17 0:00 grep --color=auto mariadb[root@aminglinux-001 mariadb]# [root@aminglinux-001 mariadb]# netstat -ltnpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1127/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1865/master tcp6 0 0 :::3306 :::* LISTEN 10072/mysqld tcp6 0 0 :::22 :::* LISTEN 1127/sshd tcp6 0 0 ::1:25 :::* LISTEN 1865/master [root@aminglinux-001 mariadb]# ```# 11.7Apache安装 上- Apache是一个基金会的名字,httpd才是我们要安装的软件包,早期它的名字就叫apache- Apache官网www.apache.org- Apache 2.4源码包:wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.27.tar.gz- apr: wget wget http://mirrors.hust.edu.cn/apache/apr/apr-1.6.2.tar.gz- apr-util: wget wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.6.0.tar.bz2- 先下载httpd包、 apr 、apr-util```[root@aminglinux-001 ~]# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.27.tar.gz--2017-09-26 23:29:15-- http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.27.tar.gz正在解析主机 mirrors.cnnic.cn (mirrors.cnnic.cn)... 101.6.6.177, 2402:f000:1:416:101:6:6:177正在连接 mirrors.cnnic.cn (mirrors.cnnic.cn)|101.6.6.177|:80... 已连接。已发出 HTTP 请求,正在等待回应... 200 OK长度:8603417 (8.2M) [application/octet-stream]正在保存至: “httpd-2.4.27.tar.gz”100%[=========================================================>] 8,603,417 1.30MB/s 用时 7.6s 2017-09-26 23:29:23 (1.07 MB/s) - 已保存 “httpd-2.4.27.tar.gz” [8603417/8603417])[root@aminglinux-001 ~]# wget http://mirrors.hust.edu.cn/apache/apr/apr-1.6.2.tar.gz--2017-09-26 23:38:13-- http://mirrors.hust.edu.cn/apache/apr/apr-1.6.2.tar.gz正在解析主机 mirrors.hust.edu.cn (mirrors.hust.edu.cn)... 202.114.18.160正在连接 mirrors.hust.edu.cn (mirrors.hust.edu.cn)|202.114.18.160|:80... 已连接。已发出 HTTP 请求,正在等待回应... 200 OK长度:1071074 (1.0M) [application/octet-stream]正在保存至: “apr-1.6.2.tar.gz”100%[=========================================================>] 1,071,074 63.4KB/s 用时 14s 2017-09-26 23:38:27 (74.3 KB/s) - 已保存 “apr-1.6.2.tar.gz” [1071074/1071074])[root@aminglinux-001 ~]# wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.6.0.tar.bz2--2017-09-26 23:38:42-- http://mirrors.hust.edu.cn/apache/apr/apr-util-1.6.0.tar.bz2正在解析主机 mirrors.hust.edu.cn (mirrors.hust.edu.cn)... 202.114.18.160正在连接 mirrors.hust.edu.cn (mirrors.hust.edu.cn)|202.114.18.160|:80... 已连接。已发出 HTTP 请求,正在等待回应... 200 OK长度:428750 (419K) [application/octet-stream]正在保存至: “apr-util-1.6.0.tar.bz2”100%[=========================================================>] 428,750 512KB/s 用时 0.8s 2017-09-26 23:38:43 (512 KB/s) - 已保存 “apr-util-1.6.0.tar.bz2” [428750/428750])[root@aminglinux-001 ~]# [root@aminglinux-001 ~]# ls111 1.txt~ 3.txt apr-1.6.2.tar.gz get-pip.py123 1.txt.bak 4.txt apr-util-1.6.0.tar.bz2 grep1_heard.txt 234 99 awk httpd-2.4.27.tar.gz1_sorft.txt 2.txt aminglinux bb.txt sed1.txt 2.txt.bak anaconda-ks.cfg.1 biji.txt test[root@aminglinux-001 ~]# ```- 再把这些包apr包移到/usr/local/src/ 下```[root@aminglinux-001 ~]# mv apr-* /usr/local/src/[root@aminglinux-001 ~]# cd /usr/local/src/[root@aminglinux-001 src]# lsapr-1.6.2.tar.gz httpd-2.4.27 mariadb-10.2.6-linux-glibc_214-x86_64.tar.gzapr-util-1.6.0.tar.bz2 httpd-2.4.27.tar.gz mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz[root@aminglinux-001 src]# ```- 准备工作就做完了# 11.8 Apache安装 中- apr和apr-util是一个通用的函数库,它让httpd可以不关心底层的操作系统平台,可以很方便地移植(从linux移植到windows)- tar zxvf httpd-2.4.27.tar.gz- tar zxvf apr-1.6.2.tar.gz - tar jxvf apr-util-1.6.0.tar.bz2 - 下载完之后分别把他们解压```[root@aminglinux-001 src]# tar zxvf httpd-2.4.27.tar.gz httpd-2.4.27/test/test_select.chttpd-2.4.27/test/time-sem.chttpd-2.4.27/VERSIONING[root@aminglinux-001 src]# [root@aminglinux-001 src]# tar zxvf apr-apr-1.6.2.tar.gz apr-util-1.6.0.tar.bz2 [root@aminglinux-001 src]# tar zxvf apr-1.6.2.tar.gz apr-1.6.2/apr.dswapr-1.6.2/libapr.dep[root@aminglinux-001 src]# 解压这个bz2 包的时候需要 用tar jxvf 而不是 上面的 gz包的格式tar zxvf[root@aminglinux-001 src]# tar jxvf apr-util-1.6.0.tar.bz2 apr-util-1.6.0/dbm/apr_dbm_gdbm.capr-util-1.6.0/dbm/NWGNUdbmgdbmapr-util-1.6.0/libaprutil.dsp[root@aminglinux-001 src]# [root@aminglinux-001 src]# lsapr-1.6.2 apr-util-1.6.0.tar.bz2 mariadb-10.2.6-linux-glibc_214-x86_64.tar.gzapr-1.6.2.tar.gz httpd-2.4.27 mysql-5.6.35-linux-glibc2.5-x86_64.tar.gzapr-util-1.6.0 httpd-2.4.27.tar.gz[root@aminglinux-001 src]# ```- 1. 首先安装apr - cd /usr/local/src/apr-1.6.2- ./configure --prefix=/usr/local/apr- make && make install```[root@aminglinux-001 src]# cd apr-1.6.2/[root@aminglinux-001 apr-1.6.2]# ./configure --prefix=/usr/local/aprconfig.status: creating test/internal/Makefileconfig.status: creating include/arch/unix/apr_private.hconfig.status: executing libtool commandsrm: cannot remove 'libtoolT': No such file or directoryconfig.status: executing default commands[root@aminglinux-001 apr-1.6.2]# echo $?0[root@aminglinux-001 apr-1.6.2]# [root@aminglinux-001 apr-1.6.2]# make && make installdone/usr/bin/install -c -m 644 build/apr_rules.out /usr/local/apr/build-1/apr_rules.mk/usr/bin/install -c -m 644 /usr/local/src/apr-1.6.2/build/apr_common.m4 /usr/local/apr/build-1/usr/bin/install -c -m 644 /usr/local/src/apr-1.6.2/build/find_apr.m4 /usr/local/apr/build-1/usr/bin/install -c -m 755 apr-config.out /usr/local/apr/bin/apr-1-config[root@aminglinux-001 apr-1.6.2]# ```- 安装好后 查看下,下面会有四个目录```[root@aminglinux-001 apr-1.6.2]# ls /usr/local/apr/bin build-1 include lib[root@aminglinux-001 apr-1.6.2]# ```- 2.安装apr-util- cd /usr/local/src/apr-util-1.6.0/ ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr make && make install```[root@aminglinux-001 apr-1.6.2]# cd ../apr-util-1.6.0/[root@aminglinux-001 apr-util-1.6.0]#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/aprconfig.status: creating test/Makefileconfig.status: creating include/private/apu_config.hconfig.status: executing default commands[root@aminglinux-001 apr-util-1.6.0]# [root@aminglinux-001 apr-util-1.6.0]# make && make installSee any operating system documentation about shared libraries formore information, such as the ld(1) and ld.so(8) manual pages.----------------------------------------------------------------------/usr/bin/install -c -m 644 aprutil.exp /usr/local/apr-util/lib/usr/bin/install -c -m 755 apu-config.out /usr/local/apr-util/bin/apu-1-config[root@aminglinux-001 apr-util-1.6.0]# [root@aminglinux-001 apr-util-1.6.0]# ls /usr/local/apr-util/bin include lib[root@aminglinux-001 apr-util-1.6.0]# ```- 3.安装htppd- cd /usr/local/src/httpd-2.4.27 ./configure \ //这里的反斜杠是脱义字符,加上它我们可以把一行命令写成多行--prefix=/usr/local/apache2.4 \--with-apr=/usr/local/apr \--with-apr-util=/usr/local/apr-util \--enable-so \--enable-mods-shared=most make && make install ls /usr/local/apache2.4/modules /usr/local/apache2.4/bin/httpd -M //查看加载的模块```[root@aminglinux-001 apr-util-1.6.0]# cd ..[root@aminglinux-001 src]# cd httpd-2.4.27/[root@aminglinux-001 httpd-2.4.27]# ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=mostconfig.status: executing default commandsconfigure: summary of build options: Server Version: 2.4.27 Install prefix: /usr/local/apache2.4 C compiler: gcc -std=gnu99 CFLAGS: -g -O2 -pthread LDFLAGS: LIBS: CPPFLAGS: -DLINUX -D_REENTRANT -D_GNU_SOURCE C preprocessor: gcc -E[root@aminglinux-001 httpd-2.4.27]# echo $?0[root@aminglinux-001 httpd-2.4.27]# ```- make ```[root@aminglinux-001 httpd-2.4.27]# makemake[4]: 进入目录“/usr/local/src/httpd-2.4.27/modules/mappers”make[4]: 对“local-shared-build”无需做任何事。make[4]: 离开目录“/usr/local/src/httpd-2.4.27/modules/mappers”make[3]: 离开目录“/usr/local/src/httpd-2.4.27/modules/mappers”make[2]: 离开目录“/usr/local/src/httpd-2.4.27/modules”make[2]: 进入目录“/usr/local/src/httpd-2.4.27/support”make[2]: 离开目录“/usr/local/src/httpd-2.4.27/support”make[1]: 离开目录“/usr/local/src/httpd-2.4.27”[root@aminglinux-001 httpd-2.4.27]# ```- make install```[root@aminglinux-001 httpd-2.4.27]# make installInstalling man pages and online manualmkdir /usr/local/apache2.4/manmkdir /usr/local/apache2.4/man/man1mkdir /usr/local/apache2.4/man/man8mkdir /usr/local/apache2.4/manualmake[1]: 离开目录“/usr/local/src/httpd-2.4.27”[root@aminglinux-001 httpd-2.4.27]# ```# 11.9Apache 安装 下- 进入到apache2.4 目录下```[root@aminglinux-001 httpd-2.4.27]# cd /usr/local/apache2.4/[root@aminglinux-001 apache2.4]# lsbin build cgi-bin conf error htdocs icons include logs man manual modules[root@aminglinux-001 apache2.4]# ls bin/hthtcacheclean htdbm htdigest htpasswd httpd httxt2dbm ```- 接触到的目录是bin ,bin下面是一个可执行文件,启动服务下面有个文件httpd ,这是它的核心二进制文件```[root@aminglinux-001 apache2.4]# ls bin/httpdbin/httpd[root@aminglinux-001 apache2.4]# ls -l bin/httpd-rwxr-xr-x 1 root root 1111680 9月 27 00:37 bin/httpd[root@aminglinux-001 apache2.4]# du -sh !$du -sh bin/httpd1.1M bin/httpd[root@aminglinux-001 apache2.4]# lsbin build cgi-bin conf error htdocs icons include logs man manual modules```- conf目录 是配置文件所在目录```[root@aminglinux-001 apache2.4]# ls conf/extra httpd.conf magic mime.types original```- htdocs 存放了一个访问页,默认网站会放到这个目录下```[root@aminglinux-001 apache2.4]# ls htdocs/index.html```- 日志 错误日志,访问日志 帮助文档```[root@aminglinux-001 apache2.4]# ls logs/``````[root@aminglinux-001 apache2.4]# ls manman1 man8```- 扩展模块,模块就在这个目录下- 每一个模块会代表一个功能```[root@aminglinux-001 apache2.4]# ls modules/httpd.exp mod_authz_groupfile.so mod_ext_filter.so mod_proxy_balancer.so mod_session_cookie.somod_access_compat.so mod_authz_host.so mod_file_cache.so mod_proxy_connect.so mod_session_dbd.somod_actions.so mod_authz_owner.so mod_filter.so mod_proxy_express.so mod_session.somod_alias.so mod_authz_user.so mod_headers.so mod_proxy_fcgi.so mod_setenvif.somod_allowmethods.so mod_autoindex.so mod_include.so mod_proxy_fdpass.so mod_slotmem_shm.somod_auth_basic.so mod_buffer.so mod_info.so mod_proxy_ftp.so mod_socache_dbm.somod_auth_digest.so mod_cache_disk.so mod_lbmethod_bybusyness.so mod_proxy_hcheck.so mod_socache_memcache.somod_auth_form.so mod_cache.so mod_lbmethod_byrequests.so mod_proxy_http.so mod_socache_shmcb.somod_authn_anon.so mod_cache_socache.so mod_lbmethod_bytraffic.so mod_proxy_scgi.so mod_speling.somod_authn_core.so mod_cgid.so mod_lbmethod_heartbeat.so mod_proxy.so mod_status.somod_authn_dbd.so mod_dav_fs.so mod_log_config.so mod_proxy_wstunnel.so mod_substitute.somod_authn_dbm.so mod_dav.so mod_log_debug.so mod_ratelimit.so mod_unique_id.somod_authn_file.so mod_dbd.so mod_logio.so mod_remoteip.so mod_unixd.somod_authn_socache.so mod_dir.so mod_macro.so mod_reqtimeout.so mod_userdir.somod_authz_core.so mod_dumpio.so mod_mime.so mod_request.so mod_version.somod_authz_dbd.so mod_env.so mod_negotiation.so mod_rewrite.so mod_vhost_alias.somod_authz_dbm.so mod_expires.so mod_proxy_ajp.so mod_sed.so mod_watchdog.so[root@aminglinux-001 apache2.4]# du -sh modules/2.8M modules/[root@aminglinux-001 apache2.4]# ``` - 怎么查看apache 都加载了哪些模块呢 - 用命令/usr/local/apache2.4/bin/apachectl -M - 或者 /usr/local/apache2.4/bin/httpd -M```[root@aminglinux-001 apache2.4]# /usr/local/apache2.4/bin/httpd -MAH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::a152:bbdf:8b2b:db9b. Set the 'ServerName' directive globally to suppress this messageLoaded Modules: core_module (static) so_module (static) http_module (static) mpm_event_module (static) authn_file_module (shared) authn_core_module (shared) authz_host_module (shared) authz_groupfile_module (shared) authz_user_module (shared) authz_core_module (shared) access_compat_module (shared) auth_basic_module (shared) reqtimeout_module (shared) filter_module (shared) mime_module (shared) log_config_module (shared) env_module (shared) headers_module (shared) setenvif_module (shared) version_module (shared) unixd_module (shared) status_module (shared) autoindex_module (shared) dir_module (shared) alias_module (shared) [root@aminglinux-001 apache2.4]# /usr/local/apache2.4/bin/apachectl -MAH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::a152:bbdf:8b2b:db9b. Set the 'ServerName' directive globally to suppress this messageLoaded Modules: core_module (static) so_module (static) http_module (static) mpm_event_module (static) authn_file_module (shared) authn_core_module (shared) authz_host_module (shared) authz_groupfile_module (shared) authz_user_module (shared) authz_core_module (shared) access_compat_module (shared) auth_basic_module (shared) reqtimeout_module (shared) filter_module (shared) mime_module (shared) log_config_module (shared) env_module (shared) headers_module (shared) setenvif_module (shared) version_module (shared) unixd_module (shared) status_module (shared) autoindex_module (shared) dir_module (shared) alias_module (shared)[root@aminglinux-001 apache2.4]# ```- 安装完成了 现在启动httpd服务 使用命令/usr/local/apache2.4/bin/apachectl start```[root@aminglinux-001 apache2.4]# /usr/local/apache2.4/bin/apachectl startAH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::a152:bbdf:8b2b:db9b. Set the 'ServerName' directive globally to suppress this message[root@aminglinux-001 apache2.4]# ps aux |grep httpdroot 37616 0.0 0.2 95656 2600 ? Ss 00:45 0:00 /usr/local/apache2.4/bin/httpd -k startdaemon 37617 0.0 0.4 382484 4432 ? Sl 00:45 0:00 /usr/local/apache2.4/bin/httpd -k startdaemon 37618 0.0 0.4 382484 4432 ? Sl 00:45 0:00 /usr/local/apache2.4/bin/httpd -k startdaemon 37619 0.0 0.4 382484 4432 ? Sl 00:45 0:00 /usr/local/apache2.4/bin/httpd -k startroot 37702 0.0 0.0 112664 972 pts/0 R+ 00:45 0:00 grep --color=auto httpd[root@aminglinux-001 apache2.4]# netstat -lntpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1127/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1865/master tcp6 0 0 :::3306 :::* LISTEN 10072/mysqld tcp6 0 0 :::80 :::* LISTEN 37616/httpd tcp6 0 0 :::22 :::* LISTEN 1127/sshd tcp6 0 0 ::1:25 :::* LISTEN 1865/master [root@aminglinux-001 apache2.4]# ```- 看看端口号80 httpd默认监听80端口- mysqld 默认监听3306 端口- 25端口是发邮件的 master - 22端口是远程登录的 sshd## - 扩展- apache dso https://yq.aliyun.com/articles/6298- apache apxs http://man.chinaunix.net/newsoft/ApacheMenual_CN_2.2new/programs/apxs.html- apache工作模式 http://www.cnblogs.com/fnng/archive/2012/11/20/2779977.html