目录
一、搭建 Apache 服务
1. 下载 Apache 软件源码包及插件
官网地址:http://httpd.apache.org/download.cgi
2. 编译安装 Apach
(1)解压源码包及插件
[root@localhost opt]#
tar -xf httpd-2.4.29.tar.bz2
tar -xf apr-1.6.2.tar.gz
tar -xf apr-util-1.6.0.tar.gz
(2)配置插件
将插件放到httpd目录的srclib目录下
注:httpd/srclib/目录是Apache HTTP Server 源代码中的一个重要目录,它包含了一些关键的第三方库和模块,对于 Apache服务器的开发和维护都非常重要。
[root@localhost opt]#
mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
(3)安装编译环境
① 首先配置在线yum源(阿里云)
[root@localhost yum.repos.d]#
wget http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all && yum makecache
②安装
编译插件 | 作用 |
---|---|
gcc | c 语言解释器 |
gcc-c++ | c++ 的编译器 |
make | 源码编译器(源码转换成二进制) |
pcre | pcre 是一个Perl 函数库,包含perl 兼容的正则表达式库 |
pcre-devel | pcre 的接口开发包 |
expat-devel | 用于支持网站解析HTML、XML文件 |
perl | perl语言编译器 |
[root@localhost opt]# yum -y install \
> gcc \
> gcc-c++ \
> make \
> pcre \
> pcre-devel \
> expat-devel \
> perl
(4)设置安装路径和模块
cd /opt/httpd-2.4.29/
[root@localhost httpd-2.4.29]#
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
(5)编译和安装
[root@localhost httpd-2.4.29]#
make -j 4 && make install
# -j 是使用cpu数量
(6)优化服务命令
优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别
这两条命令的实际效果是使得Apache HTTP服务器能够更好地融入到整个系统环境中,
提高了系统的可移植性、可维护性和可用性
[root@localhost opt]#
ln -s /usr/local/httpd/conf/httpd.conf /etc
ln -s /usr/local/httpd/bin/* /usr/local/bin
[root@localhost opt]#
vim /etc/init.d/httpd
#!/bin/sh
# chkconfig: 35 85 21
# description:Apache is a World Wide Web server
(7)加入系统管理
[root@localhost opt]#
chkconfig --add httpd
(8)配置 Apache 配置文件
httpd配置文件行 | 作用 |
---|---|
52行 | 监听端口 |
197行 | 服务名称 |
221行 | 默认首页存放位置 |
255行 | 默认首页存放路径 |
检测配置文件语法:http -t 或 apache -t
[root@localhost opt]#
vim /etc/httpd.conf
# 第52行,监听本机80端口
Listen 192.168.23.15:80
# 第197行,本机服务名称,如果有域名可以用域名加端口号
ServerName 192.168.23.15:80
# 检测配置文件是否有误
httpd -t
(9)开启服务并检查端口
[root@localhost opt]#
service httpd start
netstat -antp | grep 80
(10)检查是否可以访问
[root@localhost opt]#
cat /usr/local/httpd/htdocs/index.html
二、搭建 MySQL 服务
1. 下载 MySQL 源码包
2. 编译安装 MySQL
(1)解压源码包及插件
[root@localhost opt]#
tar -xf mysql-5.7.17.tar.gz
tar -xf boost_1_59_0.tar.gz
(2)配置插件
[root@localhost opt]#
mv boost_1_59_0 /usr/local/boost
(3)安装编译环境
编译插件 | 作用 |
---|---|
gcc | c 语言解释器 |
gcc-c++ | c 语言编译器 |
ncurses | 字符终端下图形互动功能的动态库 |
ncurses-devel | ncurses开发包 |
bison | 语法分析器 |
cmake | mysql需要用cmake编译安装 |
[root@localhost opt]#
yum -y install \
> gcc \
> gcc-c++ \
> ncurses \
> ncurses-devel \
> bison \
> cmake
(4)设置安装路径及模块
模块 | 功能 |
---|---|
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql | 指定mysql的安装路径 |
DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock | 指定mysql进程监听套接字文件(数据库连接文件)的存储路径 |
DSYSCONFDIR=/etc | 指定配置文件的存储路径 |
DSYSTEMD_PID_DIR=/usr/local/mysql | 指定进程文件的存储路径 |
DDEFAULT_CHARSET=utf8 | 指定默认使用的字符集编码,如 utf8 |
DDEFAULT_COLLATION=utf8_general_ci | 指定默认使用的字符集校对规则 |
DWITH_EXTRA_CHARSETS=all | 指定支持其他字符集编码 |
DWITH_INNOBASE_STORAGE_ENGINE=1 | 安装INNOBASE存储引擎 |
DWITH_ARCHIVE_STORAGE_ENGINE=1 | 安装ARCHIVE存储引擎 |
DWITH_BLACKHOLE_STORAGE_ENGINE=1 | 安装BLACKHOLE存储引擎 |
DWITH_PERFSCHEMA_STORAGE_ENGINE=1 | 安装FEDERATED存储引擎 |
DMYSQL_DATADIR=/usr/local/mysql/data | 指定数据库文件的存储路径 |
DWITH_BOOST=/usr/local/boost | 指定boost的路径,若使用mysql-boost集成包安装则-DWITH_BOOST=boost |
DWITH_SYSTEMD=1 | 指定在编译安装一个软件时启用对 systemd 系统管理守护进程的支持 |
cd /opt/mysql-5.7.17
[root@localhost mysql-5.7.17]#
cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
> -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
> -DSYSCONFDIR=/etc \
> -DSYSTEMD_PID_DIR=/usr/local/mysql \
> -DDEFAULT_CHARSET=utf8 \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DWITH_EXTRA_CHARSETS=all \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
> -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
> -DMYSQL_DATADIR=/usr/local/mysql/data \
> -DWITH_BOOST=/usr/local/boost \
> -DWITH_SYSTEMD=1
(5)编译与安装
[root@localhost mysql-5.7.17]# make -j 4 && make -j 4 install
① 出现报错
② 解决方法
可能是内存不足导致
a. 清空缓存(一次不行,多清空几次即可)
echo 1 > /proc/sys/vm/drop_caches
/proc/sys/vm/drop_caches
是一个系统内核参数,它可以用于清除 Linux 系统的缓存页。通过修改该文件中的值,可以实现清除缓存的不同方式。具体来说,它包括以下三种值:
- 0:什么都不做
- 1:释放页面缓存
- 2:释放节点和索引缓存
b. 加内存
(6)创建普通用户管理 MySQL
[root@localhost mysql-5.7.17]#
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf
(7)配置 MySQL 配置文件
[root@localhost mysql-5.7.17]#
vim /etc/my.cnf
[client]
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock
auto-rehash
[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
配置文件每行的含义
port = 3306
设置 MySQL 服务器使用的端口号,默认值为 3306。
default-character-set=utf8
设置 MySQL 服务器默认使用的字符集编码为 utf8。
socket=/usr/local/mysql/mysql.sock
指定 MySQL 使用的 Unix 套接字文件路径。
[mysql]
这个段名称表示设置的是 MySQL 客户端的选项。
port = 3306
设置 MySQL 客户端连接 MySQL 服务器使用的端口号,默认值为 3306。
default-character-set=utf8
设置 MySQL 客户端默认使用的字符集编码为 utf8。
socket=/usr/local/mysql/mysql.sock
指定 MySQL 客户端使用的 Unix 套接字文件路径。
auto-rehash
启用 MySQL 客户端的自动哈希表功能,可以更快地搜索和补全数据库、表名以及其他相关信息。
[mysqld]
这个段名称表示设置的是 MySQL 服务器的选项。
user = mysql
指定 MySQL 服务器的运行用户为 mysql 用户。
basedir=/usr/local/mysql
指定 MySQL 服务器的安装目录为 /usr/local/mysql。
datadir=/usr/local/mysql/data
指定 MySQL 存储数据文件的目录为 /usr/local/mysql/data。
port = 3306
同上,设置 MySQL 服务器使用的端口号,默认值为 3306。
character-set-server=utf8
设置 MySQL 服务器默认使用的字符集编码为 utf8。
pid-file = /usr/local/mysql/mysqld.pid
指定 MySQL 服务器进程 ID(PID)文件路径。
socket=/usr/local/mysql/mysql.sock
同上,指定 MySQL 使用的 Unix 套接字文件路径。
bind-address = 0.0.0.0
允许 MySQL 服务器监听所有的网络 IP 地址,而不仅仅是本地回环网卡地址。
skip-name-resolve
禁用 MySQL 的 DNS 解析功能,可以提高查询性能和安全性。
max_connections=2048
设置 MySQL 服务器允许的最大并发连接数为 2048。
default-storage-engine=INNODB
设置 MySQL 服务器默认使用的存储引擎为 InnoDB。
max_allowed_packet=16M
设置 MySQL 服务器接受的最大连接数据包大小,单位为字节,默认值为 4MB。
server-id = 1
设置 MySQL 服务器的唯一标识符,用于在主从复制中区分不同的服务器。
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT
(8)设置变量环境
申明/宣告 MySQL 命令便于系统识别
[root@localhost mysql-5.7.17]#
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
(9)初始化数据库
参数 | 作用 |
---|---|
initialize-insecure | 生成初始化密码为空 |
user=mysql | 指定管理用户 |
basedir=/usr/local/mysql | 指定数据库的安装目录 |
datadir=/usr/local/mysql/data | 指定数据库文件的存储路径 |
cd /usr/local/mysql/bin
[root@localhost bin]#
./mysqld \
> --initialize-insecure \
> --user=mysql \
> --basedir=/usr/local/mysql \
> --datadir=/usr/local/mysql/data
(10)设置自启动
[root@localhost bin]#
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system
systemctl daemon-reload
# 刷新识别
(11)开启服务并查看端口状态
systemctl start mysqld.service
systemctl enable mysqld.service
netstat -antp | grep 3306
未完,待续!
标签:root,MySQL,DISCUZ,LAMP,usr,mysql,local,localhost,搭建 From: https://www.cnblogs.com/m-zhuang/p/17489912.html