LAMP环境搭建 二(centos7)mariadb安装和Apache安装
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/
# ls //看下是否是数据库文件
bin COPYING.thirdpartydata docs include libmysql-testREADME
COPYINGCREDITS DESTINATIONEXCEPTIONS-CLIENTINSTALL-BINARYmanREADME.md script
初始化,指定用户名和数据库目录
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadb//定义了bashdir如果不定义,就回去找mysql
!! 实验中暂时没有定义
# ./scripts/mysql_install_db --user=mysql --datadir=/data/mariadb
Installing MariaDB/MySQL system tables in '/data/mariadb' ...
OK
..................
# echo $? //看下是否执行成功
0
#
# ls /data/mariadb/ //看一下数据库文件
aria_log.00000001ib_buffer_poolib_logfile0mysql test
aria_log_control ibdata1 ib_logfile1performance_schema
# ls /data/mysql/ //对比mysql的数据库文件
auto.cnfib_logfile0lyon-01.errmysql test
ibdata1 ib_logfile1lyon-01.pidperformance_schema
-----> ok 和mysql差不多的文件
# lssupport-files/ //mariadb配置文件 选个小的就行
##选择模板根据自己情况,我们选小的,后期可以添加其他的配置
binary-configure my-large.cnf mysql-log-rotate wsrep_notify
magic my-medium.cnf mysql.server
my-huge.cnf my-small.cnf policy/
my-innodb-heavy-4G.cnfmysqld_multi.server wsrep.cnf
我们拷贝一个小的配置文件模板不放在/etc下了放在另外一个目录下
# cp support-files/my-small.cnf/usr/local/mariadb/my.cnf
拷贝开机启动的脚本
# cp support-files/mysql.server /etc/init.d/mariadb
看下mariadb的配置文件 基本上不用改
修改启动脚本 vim /etc/init.d/mariadb
basedir=/usr/local/mariadb
datadir=/data/mariadb
conf=$bashdr/my.cnf
定义了 conf还要找启动命令下面定义下: 搜start 找
case "$mode" in
'start')
# Start daemon
# Safeguard (relative paths, core dumps..)
cd $basedir
echo $echo_n "Starting MySQL"
if test -x $bindir/mysqld_safe
then
# Give extra arguments to mysqld with the my.cnf file. This script
# may be overwritten at next upgrade.
$bindir/mysqld_safe --defaults-file=“$conf” --datadir="$datadir" --pid-file="$mysqld_pid_file_path" "$@" & //添加 --defaults-file="$conf"
# ps aux |grep mysql //看下mysql服务是否启动,先关闭它
root 28120.00.0 112664 972 pts/0 R+ 15:17 0:00 grep --color=auto mysql
# /etc/init.d/mariadb start //启动mariadb
Starting mariadb (via systemctl):Warning: mariadb.service changed on disk. Run 'systemctl daemon-reload' to reload units.
[确定]
# ps aux |grep mariadb //看下mariadb是否起来
root 28360.00.1 1153801732 ? S 15:17 0:00 /bin/sh /usr/local/mariadb/bin/mysqld_safe --defaults-file=/usr/local/mariadb/my.cnf --datadir=/data/mysql --pid-file=/data/mysql/lyon-01.pid
mysql 29522.95.6 1125120 56560 ? Sl 15:17 0:01 /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/lyon-01.err --pid-file=/data/mysql/lyon-01.pid --socket=/tmp/mysql.sock --port=3306
root 29940.00.0 112664 976 pts/0 S+ 15:18 0:00 grep --color=auto 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 1455/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2352/master
tcp6 0 0 :::3306 :::* LISTEN 2952/mysqld
tcp6 0 0 :::22 :::* LISTEN 1455/sshd
tcp6 0 0 ::1:25 :::* LISTEN 2352/master
如果报错
在/usr/local/mariadb/my.cnf这个文件里的mysqld添加datadir=/data/mariadb
注意的点
# ps aux |grep mariadb
root 28360.00.1 1153801732 ? S 15:17 0:00 /bin/sh /usr/local/mariadb/bin/mysqld_safe --defaults-file=/usr/local/mariadb/my.cnf --datadir=/data/mysql --pid-file=/data/mysql/lyon-01.pid
mysql 29520.26.4 1125120 64944 ? Sl 15:17 0:01 /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/lyon-01.err --pid-file=/data/mysql/lyon-01.pid --socket=/tmp/mysql.sock --port=3306
root 37520.00.0 112664 976 pts/0 S+ 15:30 0:00 grep --color=auto mariadb
#
--datadir=/data/mysql 并不是我们定义的/data/mariadb 因为它调用了/etc/my.cnf配置文件
解决方案--->> 修改/usr/local/mariadb/my.cnf
datadir = /data/mariadb //在这里添加
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
然后再看
# killall mysqld //杀死mariadb服务
# /etc/init.d/mariadb start //再次启动
Starting mariadb (via systemctl): [确定]
# ps aux |grep mariadb
root 40810.00.1 1153801744 ? S 15:43 0:00 /bin/sh /usr/local/mariadb/bin/mysqld_safe --defaults-file=/usr/local/mariadb/my.cnf --datadir=/data/mariadb --pid-file=/data/mariad/lyon-01.pid
mysql 42004.15.9 1125020 59900 ? Sl 15:43 0:00 /usr/local/mariadb/bin/mysqld --defaults-file=/usr/local/mariadb/my.cnf --basedir=/usr/local/mariadb --datadir=/data/mariadb --plugin-dir=/usr/local/mariadb/lib/plugin --user=mysql --log-error=/data/mariadb/lyon-01.err --pid-file=/data/mariadb/lyon-01.pid --socket=/tmp/mysql.sock --port=3306
root 42360.00.0 112664 976 pts/0 R+ 15:43 0:00 grep --color=auto mariadb
#
可以看到 ,定义的datadir为/data/mariadb
Apache安装
Apache是一个基金会的名字,httpd才是我们要安装的软件包,早期它的名字就叫apache
Apache官网www.apache.org 下载地址失效的话,去r.aminglinux.com或官网找最新包
wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.27.tar.gz
wget http://mirrors.hust.edu.cn/apache/apr/apr-1.5.2.tar.gz
wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.5.4.tar.gz
apr和apr-util是一个通用的函数库,它让httpd可以不关心底层的操作系统平台,可以很方便地移植(从linux移植到windows) ,7自带的apr与我们httpd2.4是不通用的
tar zxvf httpd-2.4.27.tar.gz
tar zxvf apr-util-1.5.4.tar.gz
tar zxvf apr-1.5.2.tar.gz
cd /usr/local/src/apr-1.5.2
./configure --prefix=/usr/local/apr
make && make install
实验流程
# cd /usr/local/src/
# wget 下面三个软件
2.4源码包: http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.27.tar.gzapr: http://mirrors.hust.edu.cn/apache/apr/apr-1.6.2.tar.gzapr-util: http://mirrors.hust.edu.cn/apache/apr/apr-util-1.6.0.tar.bz2
解压
tar zxvf httpd/httpd-2.4.27.tar.gz
tar zxvfapr-1.6.2.tar.gz
tar jxvf apr-util-1.6.0.tar.bz2
# cd apr-1.6.2/
# ./configure --prefix=/usr/local/apr
。。。。。
# echo $?
0
OK
# make && make install
# ls /usr/local/apr/
binbuild-1includelib //看下是否有这几个文件
# cd apr-util-1.6.0/
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# echo $?
0
# make && make install
# ls /usr/local/apr-util/
binincludelib //看下是否有这几个文件
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
make: 离开目录“/usr/local/src/httpd-2.4.27”
# echo $?
0
#
-----httpd安装完成
# ls /usr/local/apache2.4.7/
binbuildcgi-binconferrorhtdocsiconsincludelogsmanmanualmodules
小知识点:
里面有很多文件 我们接触比较多的是
bin下面是可执行文件
conf我们的配置文件所在目录
htdocs存放访问页的目录
logs日志相关的文件
man帮助文档
modules 扩展模块里面有很多模块 一个模块代表1个功能
下面两条命令就是查看我们安装了那些模块
## /usr/local/apache2.4.7/bin/apachectl-M
# #/usr/local/apache2.4.7/bin/httpd -M
# static静态模块编译进了主脚本里
# shared扩展模块 .so的文件
# /usr/local/apache2.4.7/bin/apachectl start //启动Apache
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 123.129.254.12. Set the 'ServerName' directive globally to suppress this message
这个提示我们不用管
# ps aux |grep httpd //看下进程,已经起来了
root 327060.00.2955162544 ? Ss 17:36 0:00 /usr/local/apache2.4.7/bin/httpd -k start
daemon 327070.00.4 3823444460 ? Sl 17:36 0:00 /usr/local/apache2.4.7/bin/httpd -k start
daemon 327080.00.4 3823444460 ? Sl 17:36 0:00 /usr/local/apache2.4.7/bin/httpd -k start
daemon 327090.00.4 3823444460 ? Sl 17:36 0:00 /usr/local/apache2.4.7/bin/httpd -k start
root 327920.00.0 112664 972 pts/0 R+ 17:36 0:00 grep --color=auto httpd
# 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 1455/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2352/master
tcp6 0 0 :::3306 :::* LISTEN 4200/mysqld
tcp6 0 0 :::80 :::* LISTEN 32706/httpd
tcp6 0 0 :::22 :::* LISTEN 1455/sshd
tcp6 0 0 ::1:25 :::* LISTEN 2352/master
#
OK
页:
[1]