九周五次课
11.6MariaDB安装
11.7/11.8/11.9Apache安装
11.6MariaDB安装
安装mariadb
- cd /usr/local/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
- tar zxvf mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz
- mv mariadb-10.2.6-linux-glibc_214-x86_64 /usr/local/mariadb
- cd /usr/local/mariadb
- ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadb
- cp support-files/my-small.cnf /usr/local/mariadb/my.cnf
- vi /usr/local/mariadb/my.cnf //定义basedir和datadir
- cp support-files/mysql.server /etc/init.d/mariadb
- vim /etc/init.d/mariadb //定义basedir、datadir、conf以及启动参数
- /etc/init.d/mariadb start
安装过程
- mariadb和mysql安装过程类似
1.首先切换到/usr/local/src目录下
[root@tianqi-01 mysql]# cd /usr/local/src/
[root@tianqi-01 src]#
2.然后在官网下载10.2.6版本(官网下载很慢,因为地址在美国),自己百度云有提前下载好的,只需要下载到windows,然后 rz 命令从windows上传到linux中
- rz命令,安装包——>yum install -y lrzsz
文件比较大而上传出错的话,采用参数 -e;
如果用不带参数的rz命令上传大文件时,常常上传一半就断掉了,很可能是rz以为上传的流中包含某些特殊控制字符,造成rz提前退出。
[root@tianqi-01 src]# rz -e
z waiting to receive.** B0100000063f694
[root@tianqi-01 src]# ls
? d? httpd-2.2.34 httpd-2.2.34.tar.gz mariadb-10.2.6-linux-x86_64.tar.gz mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
[root@tianqi-01 src]#
3.再去使用 tar命令 进行解压
[root@tianqi-01 src]# tar zxvf mariadb-10.2.6-linux-x86_64.tar.gz
4.解压完,去查看下文件
[root@tianqi-01 src]# ls
httpd-2.2.34 mariadb-10.2.6-linux-x86_64 mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
httpd-2.2.34.tar.gz mariadb-10.2.6-linux-x86_64.tar.gz
[root@tianqi-01 src]#
5.并将解压的包移动到/usr/local下,并改名叫mariadb——>这里的改名,是为了之前安装mysql的名字有所区分
[root@tianqi-01 src]# mv mariadb-10.2.6-linux-x86_64 /usr/local/mariadb
[root@tianqi-01 src]#
6.然后进入到/usr/local/mariadb 目录下去
[root@tianqi-01 src]# cd !$
cd /usr/local/mariadb
[root@tianqi-01 mariadb]#
7.创建mysql用户,创建data——>这里因为之前安装mysql的时候,已经创建过了所以不需要创建useradd mysql
[root@tianqi-01 mariadb]# useradd mysql
[root@tianqi-01 mariadb]# mkdir /data/
[root@tianqi-01 mariadb]#
8.初始化,./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadb
- 定义basedir=/usr/local/mariadb/ 若不定义 ,就会去找mysql了
[root@tianqi-01 mariadb]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb --datadir=/data/mariadb
Installing MariaDB/MySQL system tables in '/data/mariadb' ...
OK
9.查看是否初始化成功,看 echo $? 执行结果是否为0,若是 0 ,则表示初始化成功
[root@tianqi-01 mariadb]# echo $?
0
[root@tianqi-01 mariadb]#
或者查看/data/mariadb/目录下,是否生成了一些目录——>和/data/mysql/ 类似
[root@tianqi-01 mariadb]# ls /data/mariadb/
aria_log.00000001 aria_log_control ib_buffer_pool ibdata1 ib_logfile0 ib_logfile1 mysql performance_schema test
[root@tianqi-01 mariadb]#
10.拷贝配置文件,定义启动脚本
- 配置文件存放在/usr/local/mariadb/suport/files/目录下,会看到有很多配置文件
[root@tianqi-01 mariadb]# cd /usr/local/mariadb/
[root@tianqi-01 mariadb]# ls support-files/
binary-configure my-huge.cnf my-large.cnf my-small.cnf mysql-log-rotate policy wsrep_notify
magic my-innodb-heavy-4G.cnf my-medium.cnf mysqld_multi.server mysql.server wsrep.cnf
[root@tianqi-01 mariadb]#
11.打开support-files/my-small.cnf 文件
- my-small.cnf、my-medium.cnf、my-large.cnf这三个配置文件区别在于 缓存的数值大小不同
- 根据内存大小的不同,它可以给你指定合适的缓存,这样能够让你的mysql达到更高效的性能
[root@tianqi-01 mariadb]# vim support-files/my-small.cnf
其中下面的配置文件
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 240K
12.因为我们做实验,内存本来就不大,可以使用最小的一个my-small.cnf ,拷贝过去
- 若是内存有几十个G,可以使用my-huge.cnf拷贝过去,然后根据实际的运行情况 ,去适当的调整参数
13.拷贝文件到/usr/local/mariadb/my.cnf
- mariadb这里就不放到/etc/my.cnf下了,因为这是mysql用的,这里为了区分到/usr/local/mariadb/my.cnf
[root@tianqi-01 mariadb]# cp support-files/my-small.cnf /usr/local/mariadb/my.cnf
[root@tianqi-01 mariadb]#
14.编辑配置文件 /usr/local/mariadb/my.cnf——>这里面配置不用修改
[root@tianqi-01 mariadb]# vim !$
vim /usr/local/mariadb/my.cnf
配置参数在[mysqld]这一块
server-id = 1 //这是做主从复制的
15.拷贝启动脚本到 /etc/init.d/mariadb
[root@tianqi-01 mariadb]# cp support-files/mysql.server /etc/init.d/mariadb
[root@tianqi-01 mariadb]#
16.编辑启动脚本
[root@ip-172-31-21-107 mariadb]# vim /etc/init.d/mariadb
定义 basedir=/usr/local/mariadb
定义 datadir=/data/mariadb
自定义参数 conf=$basedir/my.cnf
在定义conf后,还需要在 启动命令下面指定下——>在一般模式下,搜索 /start 启动命令
在 $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" "$@" & 中,增加
--defaults-file="$conf",最后为 $bindir/mysqld_safe --defaults-file="$conf" --datadir="$datadir" --pid-file="$mysqld_pid_file_path" "$@" &
并保存退出
17.在启动前,先查看是否有mysql服务在启动
[root@tianqi-01 mariadb]# ps aux |grep mysql
root 1231 0.0 0.0 112660 984 pts/0 S+ 17:57 0:00 grep --color=auto mysql
[root@tianqi-01 mariadb]#
18.启动mariadb服务,并去查看是否启动
- 查看是否启动,用ps aux |grep mysql 也可以,启动的服务进程是mysqld,因为mariadb是mysql的一个分支
[root@tianqi-01 mariadb]# /etc/init.d/mariadb start
Starting MySQL.180227 18:01:59 mysqld_safe Logging to '/data/mysql/tianqi-01.err'.
180227 18:01:59 mysqld_safe Starting mysqld daemon with databases from /data/mysql
..... [ OK ]
[root@tianqi-01 mariadb]# ps aux |grep mariadb
root 1253 0.1 0.1 113264 1648 pts/0 S 18:01 0:00 /bin/sh /usr/local/mariadb/bin/mysqld_safe --defaults-file=/usr/local/mariadb/my.cnf --datadir=/data/mysql --pid-file=/data/mysql/tianqi-01.pid
mysql 1369 13.7 5.4 1122944 54820 pts/0 Sl 18:01 0:03 /usr/local/mariadb/bin/mysqld --defaults-file=/usr/local/mariadb/my.cnf --basedir=/usr/local/mariadb --datadir=/data/mysql --plugin-dir=/usr/local/mariadb/lib/plugin --user=mysql --log-error=/data/mysql/tianqi-01.err --pid-file=/data/mysql/tianqi-01.pid --socket=/tmp/mysql.sock --port=3306
root 1425 0.0 0.0 112660 980 pts/0 S+ 18:02 0:00 grep --color=auto mariadb
[root@tianqi-01 mariadb]#
[root@tianqi-01 mariadb]# netstat -lntp
Active 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 778/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1009/master
tcp6 0 0 :::22 :::* LISTEN 778/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1009/master
tcp6 0 0 :::3306 :::* LISTEN 1369/mysqld
[root@tianqi-01 mariadb]#
19.若是在服务器上只安装了mariadb,没有mysql,那完全可以把my.cnf放在/etc目录下,那启动脚本就不需要conf变量了
机器装了mysql和mariadb
- 一台机器上装了mysql,又装了mariadb (这种既装了mysql和mariadb的概率很低),因为有多个配置文件在/etc/my.cnf,不论是在初始化的时候,还是启动多个mysql服务的时候,它都会影响正常的结果,所以要么不把 my.cnf 放在etc目录下,一旦放了,很有可能受到影响。
- 问题:
- 用ps aux |grep mysql会发现其中的--datadir=/data/mysql,并不是我们预期的--datadir=/data/mariadb
- 这是因为调用了/etc/my.cnf中的配置,有人可能会问,不是已经指定了--defaults-file=/usr/local/mariadb/my.cnf 配置文件,为什么还要去加载/etc/my.cnf中的配置呢,是因为--defaults-file=/usr/local/mariadb/my.cnf文件中,并没有去定义dataidr 这个选项,然后去调用的时候,没有在配置文件中找到这个参数,然后在/etc/my.cnf中调用
- 解决方法:
- 1.需要去编辑指定的配置文件,在 /usr/local/mariadb/my.cnf 文件中的 [mysqld] 下加入datadir= /data/mariadb (若是datadir加在其他地方是无效的)
- 当然不是只能拥有一个数据库,只要将各个参数配置完善,一个机器上可以跑多个mysql服务
- 2.在修改完配置文件后,启动/etc/init.d/mariadb start (第一次启动mariadb服务)——>若是mariadb服务已经启动了,则/etc/init.d/mariadb restart ,但显示的结果还未正常,那我们就直接killall mysqld服务,然后再ps aux |grep mysql查看下服务是否杀死
- 3.最后再来 /etc/init.d/mariadb restart 开启mariadb服务,会看到显示正常。
[root@tianqi-01 mariadb]# ps aux |grep mysql
root 1253 0.0 0.1 113264 1648 pts/0 S 18:01 0:00 /bin/sh /usr/local/mariadb/bin/mysqld_safe --defaults-file=/usr/local/mariadb/my.cnf --datadir=/data/mysql --pid-file=/data/mysql/tianqi-01.pid
mysql 1369 1.2 6.2 1122944 62448 pts/0 Sl 18:01 0:03 /usr/local/mariadb/bin/mysqld --defaults-file=/usr/local/mariadb/my.cnf --basedir=/usr/local/mariadb --datadir=/data/mysql --plugin-dir=/usr/local/mariadb/lib/plugin --user=mysql --log-error=/data/mysql/tianqi-01.err --pid-file=/data/mysql/tianqi-01.pid --socket=/tmp/mysql.sock --port=3306
root 1429 0.0 0.0 112660 980 pts/0 S+ 18:07 0:00 grep --color=auto mysql
[root@tianqi-01 mariadb]#
11.7/11.8/11.9Apache安装
安装Apache
- Apache是一个基金会的名字,httpd才是我们要安装的软件包,早期它的名字就叫apache
- Apache官网www.apache.org
- wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.29.tar.gz
- wget http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz
- wget http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.bz2
- apr和apr-util是一个通用的函数库,它让httpd可以不关心底层的操作系统平台,可以很方便地移植(从linux移植到windows)
- tar zxvf httpd-2.4.29.tar.gz
- tar zxvf apr-util-1.6.1.tar.bz2
- tar zxvf apr-1.6.3.tar.gz
- cd /usr/local/src/apr-1.6.3
- ./configure --prefix=/usr/local/apr
- make && make install
- cd /usr/local/src/apr-util-1.6.1
- ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
- make && make install
- cd /usr/local/src/httpd-2.4.29
- ./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 //查看加载的模块
Apache介绍
- Apache是一个基金会的名字,它最早就是由httpd起家的,因为httpd使用的人很多,很流行,所以当时就以基金会的名字来命名的web服务软件 ,在早期的时候,名字就叫做Apache,而不是叫httpd,后来在http的2.0版本开始,就改名叫httpd,但是很多人还是习惯叫做Apache
- Apache的主流版本,在之前是 1.3版本比较流行,后来出了2.0版本,2.2版本,2.4版本,现在主流版本是 2.4版本
Apache(2.4版本)
- 2.2版本和2.4版本的区别
- 安装的方法不同,涉及到一个安依赖软件apr版本不一样
- apr和apr-util是一个通用的函数库,它让httpd可以不关心底层的操作系统平台,可以很方便地进行移植(从linux移植到windows)
- 2.2版本和2.4版本所依赖的apr版本是不同的
- 而centos系统,默认自带的apr,也就是yum安装的apr和2.4版本是不匹配的,所以无法使用yum安装的apr,所以需要自己去手动编译
- Apache2.4版本编译起来麻烦,就是因为需要手动编译 apr 和 apr-util 这两个包
安装过程
1.首先切换到/usr/local/src目录下
[root@tianqi-01 mariadb]# cd /usr/local/src/
[root@tianqi-01 src]#
2.下载Apache 2.4源码包、apr、apr-util这三个包
wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.29.tar.gz
wget http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz
wget http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.bz2
3.在下载完成后,查看下下载的包
[root@tianqi-01 src]# ls
apr-util-1.6.1.tar.bz2 httpd-2.2.34 httpd-2.4.29.tar.gz mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz apr-1.6.3.tar.gz httpd-2.2.34.tar.gz mariadb-10.2.6-linux-x86_64.tar.gz
[root@tianqi-01 src]#
4.解压下载的包,并查看
[root@tianqi-01 src]# tar zxvf httpd-2.4.29.tar.gz
[root@tianqi-01 src]# tar zxvf apr-1.6.3.tar.gz
[root@tianqi-01 src]# tar xjvf apr-util-1.6.1.tar.bz2
[root@tianqi-01 src]# ls
apr-1.6.3.tar.gz apr-util-1.6.1.tar.bz2 httpd-2.2.34 httpd-2.4.29 mariadb-10.2.6-linux-x86_64.tar.gz apr-1.6.3 apr-util-1.6.1 httpd-2.2.34.tar.gz httpd-2.4.29.tar.gz mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
[root@tianqi-01 src]#
在解压完成后,首先安装apr
5.切换到/usr/local/src/apr-1.6.3,并安装apr
[root@tianqi-01 src]# cd apr-1.6.3
[root@tianqi-01 apr-1.6.3]# ./configure --prefix=/usr/local/apr
在安装的时候,有时会出现以下情况
- 只需要安装gcc包即可——>yum install -y gcc
configure: error: in `/usr/local/src/apr-1.6.3':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
[root@tianqi-01 apr-1.6.3]# yum install -y gcc
6.在安装完成后,可以用 echo $? 检查是否安装成功
[root@tianqi-01 apr-1.6.3]# echo $?
0
[root@tianqi-01 apr-1.6.3]#
7.执行make && make install 命令
[root@tianqi-01 apr-1.6.3]# make && make install
8.查看下apr,会看到有四个目录
[root@tianqi-01 apr-1.6.3]# ls /usr/local/apr/
bin build-1 include lib
[root@tianqi-01 apr-1.6.3]#
9.安装apr-util-1.6.1,首先切换到/usr/local/src/apr-util-1.6.1目录下
[root@tianqi-01 apr-1.6.3]# cd /usr/local/src/apr-util-1.6.1
[root@tianqi-01 apr-util-1.6.1]#
10.安装apr-util
[root@tianqi-01 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
11.然后使用echo $?检查是否安装成功
[root@tianqi-01 apr-util-1.6.1]# echo $?
0
[root@tianqi-01 apr-util-1.6.1]#
12.然后make && make install
[root@tianqi-01 apr-util-1.6.1]# make && make install
问题
- 但是在执行make && make install,出现以下错误
xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory
#include <expat.h>
^
compilation terminated.
make[1]: *** [xml/apr_xml.lo] Error 1
make[1]: Leaving directory `/usr/local/src/apr-util-1.6.1'
make: *** [all-recursive] Error 1
解决方法
- 是因为缺少了xml解释器,只需要yum安装 expat-devel 包即可
[root@tianqi-01 apr-util-1.6.1]# yum -y install expat-devel
- 这时再去执行make && make install 会正常执行
13.--enable-so \ 表示支持动态扩展模块,Apache和PHP它们都会支持以一个模块的形式存在
- PHP是Apache的一个模块,这个模块实际上就是一个文件,就是 .so 后缀名的文件,那他以Apache的一个模块形式存在,所以Apache本身是一个进程,是一个服务,在这个进程里面,通过一些配置文件指定一个模块的路径,那就可以去调用模块。
- PHP模块是用来解析PHP的,执行PHP脚本的,所以就可以通过PHP脚本将PHP模块加载到进程里面去,加载到主进程里面去,
- 当它遇到PHP解析的需求时,它就会去调用这个模块,去执行一些操作
- 这些模块是一些独立的文件
- 而且还可以指定有哪些动态扩展的模块,需要加载哪些,这里指定是most
- --enable-mods-shared=most
- most,就是绝大多数,大多数会用到的模块,都会加载进来
- --enable-mods-shared=most
14.查看/usr/local/apr-util/目录下,会看到生成三个子目录
[root@tianqi-01 apr-util-1.6.1]# ls /usr/local/apr-util
bin include lib
[root@tianqi-01 apr-util-1.6.1]#
15.安装httpd-2.4.29,首先切换到httpd-2.4.29/
[root@tianqi-01 apr-util-1.6.1]# cd /usr/local/src/httpd-2.4.29/
[root@tianqi-01 httpd-2.4.29]#
16.安装httpd-2.4.29
[root@tianqi-01 httpd-2.4.29]# ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
问题:
- 这里遇到了错误,如下
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
解决方法:
- pcre是正则表达式的驱动库,支持正则表达式
- 可以先yum list |grep pcre 查看,因为是缺少库,所以只需要找带有 devel 或 lib 字符的,所以只需要安装pcre-devel包即可——>yum install -y pcre-devel
[root@tianqi-01 httpd-2.4.29]# yum list |grep pcre
pcre.x86_64 8.32-17.el7 @anaconda
pcre.i686 8.32-17.el7 base
pcre-devel.i686 8.32-17.el7 base
pcre-devel.x86_64 8.32-17.el7 base
pcre-static.i686 8.32-17.el7 base
pcre-static.x86_64 8.32-17.el7 base
pcre-tools.x86_64 8.32-17.el7 base
pcre2.i686 10.23-2.el7 base
pcre2.x86_64 10.23-2.el7 base
pcre2-devel.i686 10.23-2.el7 base
pcre2-devel.x86_64 10.23-2.el7 base
pcre2-static.i686 10.23-2.el7 base
pcre2-static.x86_64 10.23-2.el7 base
pcre2-tools.x86_64 10.23-2.el7 base
pcre2-utf16.i686 10.23-2.el7 base
pcre2-utf16.x86_64 10.23-2.el7 base
pcre2-utf32.i686 10.23-2.el7 base
pcre2-utf32.x86_64 10.23-2.el7 base
[root@tianqi-01 httpd-2.4.29]#
- 下载pcre-devel包
[root@tianqi-01 httpd-2.4.29]# yum install -y pcre-devel
17.再次安装,使用echo $?检查是否安装成功,这里会看到成功安装
[root@tianqi-01 httpd-2.4.29]# ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
[root@tianqi-01 httpd-2.4.29]# echo $?
0
[root@tianqi-01 httpd-2.4.29]#
18.执行make && make install
[root@tianqi-01 httpd-2.4.29]# make && make install
- 错误:
collect2: error: ld returned 1 exit status
make[2]: *** [htpasswd] Error 1
make[2]: Leaving directory `/usr/local/src/httpd-2.4.29/support'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/httpd-2.4.29/support'
make: *** [all-recursive] Error 1
解决方法:
- 删除源码包,重新解压,重新编译安装,重新做一遍即可
- 进入到/usr/local/src 目录下,删除源码包
重做之后,仍然出现问题。
解决办法:在后面添加 --with-included-apr
[root@tianqi-01 httpd-2.4.29]# ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most --with-included-apr
可是加上--with-included-apr编译之后,出现了以下问题:
configure: Configuring Apache Portable Runtime library...
configure:
configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.
解决办法:
[root@tianqi-01 httpd-2.4.29]# cd /usr/local/src
[root@tianqi-01 src]# cp -r apr-1.6.3 /usr/local/src/httpd-2.4.29/srclib/apr
[root@tianqi-01 src]# cp -r apr-util-1.6.1 /usr/local/src/httpd-2.4.29/srclib/apr-util
[root@tianqi-01 src]#
然后再次编译,则不会出现问题,而且make时也不会出现问题。
[root@tianqi-01 httpd-2.4.29]# ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most --with-included-apr
[root@tianqi-01 httpd-2.4.29]# echo $?
0
[root@tianqi-01 httpd-2.4.29]# make && make install
[root@tianqi-01 httpd-2.4.29]# echo $?
0
19.接下来便会完成安装Apache
Apache安装完成后
1.在安装完成后,进入到/usr/local/apache2.4/目录下,并 ls 查看有哪些目录
[root@tianqi-01 httpd-2.4.29]# cd /usr/local/apache2.4
[root@tianqi-01 apache2.4]# ls
bin build cgi-bin conf error htdocs icons include lib logs man manual modules
[root@tianqi-01 apache2.4]#
2.在以后会接触到的目录就是 bin目录,conf目录,htdocs目录
- /bin目录下,是可执行文件。也就是说,要启动一个服务,它就是在bin/httpd下面有一个文件或者命令,bin/httpd也是核心的二进制文件
[root@tianqi-01 apache2.4]# ls bin/httpd
bin/httpd
[root@tianqi-01 apache2.4]# ls -l bin/httpd
-rwxr-xr-x 1 root root 2334360 Feb 27 19:38 bin/httpd
[root@tianqi-01 apache2.4]# du -sh !$
du -sh bin/httpd
2.3M bin/httpd
[root@tianqi-01 apache2.4]#
- conf目录,是配置文件所在目录
[root@tianqi-01 apache2.4]# ls conf/
extra httpd.conf magic mime.types original
[root@tianqi-01 apache2.4]#
- htdocs目录,是存放了一个访问页。启动完httpd服务后,去访问网站,默认的网站会放到 htdocs/目录下
[root@tianqi-01 apache2.4]# ls htdocs/
index.html
[root@tianqi-01 apache2.4]#
- logs目录,就是日志相关的目录
- 包含:错误日志,访问日志,
- man目录,就是一些帮助文档
[root@tianqi-01 apache2.4]# ls man
man1 man8
[root@tianqi-01 apache2.4]#
- modules扩展模块目录,所有模块都放到了modules目录下
- 每一个模块都代表着一个功能
[root@tianqi-01 apache2.4]# ls modules
httpd.exp mod_authz_groupfile.so mod_ext_filter.so mod_proxy_balancer.so mod_session_cookie.so
mod_access_compat.so mod_authz_host.so mod_file_cache.so mod_proxy_connect.so mod_session_dbd.so
mod_actions.so mod_authz_owner.so mod_filter.so mod_proxy_express.so mod_session.so
mod_alias.so mod_authz_user.so mod_headers.so mod_proxy_fcgi.so mod_setenvif.so
mod_allowmethods.so mod_autoindex.so mod_include.so mod_proxy_fdpass.so mod_slotmem_shm.so
mod_auth_basic.so mod_buffer.so mod_info.so mod_proxy_ftp.so mod_socache_dbm.so
mod_auth_digest.so mod_cache_disk.so mod_lbmethod_bybusyness.so mod_proxy_hcheck.so mod_socache_memcache.so
mod_auth_form.so mod_cache.so mod_lbmethod_byrequests.so mod_proxy_http.so mod_socache_shmcb.so
mod_authn_anon.so mod_cache_socache.so mod_lbmethod_bytraffic.so mod_proxy_scgi.so mod_speling.so
mod_authn_core.so mod_cgid.so mod_lbmethod_heartbeat.so mod_proxy.so mod_status.so
mod_authn_dbd.so mod_dav_fs.so mod_log_config.so mod_proxy_wstunnel.so mod_substitute.so
mod_authn_dbm.so mod_dav.so mod_log_debug.so mod_ratelimit.so mod_unique_id.so
mod_authn_file.so mod_dbd.so mod_logio.so mod_remoteip.so mod_unixd.so
mod_authn_socache.so mod_dir.so mod_macro.so mod_reqtimeout.so mod_userdir.so
mod_authz_core.so mod_dumpio.so mod_mime.so mod_request.so mod_version.so
mod_authz_dbd.so mod_env.so mod_negotiation.so mod_rewrite.so mod_vhost_alias.so
mod_authz_dbm.so mod_expires.so mod_proxy_ajp.so mod_sed.so mod_watchdog.so
[root@tianqi-01 apache2.4]#
[root@tianqi-01 apache2.4]# du -sh modules/
6.3M modules/
[root@tianqi-01 apache2.4]#
3.查看Apache加载了哪些模块
- /usr/local/apache2.4/bin/httpd -M //查看加载的模块
- -M 把所有的模块列出来等于
- /usr/local/apache2.4/bin/apachectl -M //查看加载的模块——>这是一个shell文件,它调用了二进制的httpd
[root@tianqi-01 apache2.4]# /usr/local/apache2.4/bin/httpd -M
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::1eb9:8f9e:264a:7159. Set the 'ServerName' directive globally to suppress this message
Loaded 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@tianqi-01 apache2.4]#
[root@tianqi-01 apache2.4]# /usr/local/apache2.4/bin/apachectl -M
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::1eb9:8f9e:264a:7159. Set the 'ServerName' directive globally to suppress this message
Loaded 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@tianqi-01 apache2.4]#
- 在模块的右侧有小括号,里面是 static 或 shared ,static是静态
- 静态和动态的区别
- 静态是直接把模块编译进了主脚本或主二进制文件里面
- http是一个核心文件,这个文件加载了哪些模块
- 如果是static,那也就意味这个模块在httpd里面,和它绑定在了一起,它们是一个整体
- 如果是shared,说明它是一个扩展的模块,这个模块是一个文件,我们可以看到的 .so 文件,文件的目录是在/usr/local/apache2.4/modules目录下
启动Apache2.4
1.在安装完成Apache2.4后,Apache启动不需要定义启动脚本,也不需要放到/etc/init.d下去,直接使用命令行启动就行
- /usr/local/apache2.4/bin/apachectl start //命令行启动Apache脚本
- 启动脚本后,虽然出现提示,但不表示启动失败
- 若不想要出现提示,只需要编辑配置文件即可
- 启动脚本后,虽然出现提示,但不表示启动失败
[root@tianqi-01 apache2.4]# /usr/local/apache2.4/bin/apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::1eb9:8f9e:264a:7159. Set the 'ServerName' directive globally to suppress this message
[root@tianqi-01 apache2.4]#
2.查看Apache是否启动,看httpd进程是否存在
[root@tianqi-01 apache2.4]# ps aux |grep httpd
root 53549 0.0 0.2 95528 2532 ? Ss 19:52 0:00 /usr/local/apache2.4/bin/httpd -k start
daemon 53550 0.0 0.4 382356 4432 ? Sl 19:52 0:00 /usr/local/apache2.4/bin/httpd -k start
daemon 53551 0.0 0.4 382356 4432 ? Sl 19:52 0:00 /usr/local/apache2.4/bin/httpd -k start
daemon 53552 0.0 0.4 382356 4432 ? Sl 19:52 0:00 /usr/local/apache2.4/bin/httpd -k start
root 53635 0.0 0.0 112660 984 pts/0 R+ 19:53 0:00 grep --color=auto httpd
3.查看端口号——>httpd默认监听端口为80,mysqld默认监听端口为3306,25端口是发邮件的,22端口是远程登录的
[root@tianqi-01 apache2.4]# netstat -lntp
Active 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 778/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1009/master
tcp6 0 0 :::80 :::* LISTEN 53549/httpd
tcp6 0 0 :::22 :::* LISTEN 778/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1009/master
tcp6 0 0 :::3306 :::* LISTEN 2164/mysqld
[root@tianqi-01 apache2.4]#
友情链接:阿铭Linux