LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
(1) Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
(2)Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
(3)Mysql是一个小型关系型数据库管理系统。 PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
(4)这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
一.MYSQL数据库的源码编译
(一)编译源码
1.得到mysql数据库的源码包(建议一般去官网下载)并进行解压
[root@server1 ~]# mkdir /usr/local/lnmp 建立该目录指定mysql的安装位置
2.安装源码编译工具cmake(支持编译C++语言)
cmake跨平台工具是用来预编译mysql源码的,用于设置mysql的编译参数。如:安装目录、数据存放目录、字符编码、排序规则等
3.创建预编译环境,可以定制即加上自己所需的安装条件(比如安装位置等等)
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql \指定mysql的安装位置
-DMYSQL_DATADIR=/usr/local/lnmp/mysql/data \数据库中数据存放的目录
-DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock \链接数据库的SOCKET文件
-DWITH_MYISAM_STORAGE_ENGINE=1 \ 安装MYISAM存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ 安装 innodb 存储引擎
-DENABLED_LOCAL_INFILE=1 \ 允许从本地导入数据
-DWITH_PARTITION_STORAGE_ENGINE=1 \ 安装分区存储引擎
-DWITH_SSL=yes \ 支持SSL加密
-DDEFAULT_CHARSET=utf8 \ 使用UTF-8字符编码
-DDEFAULT_COLLATION=utf8_general_ci \ 校验字符
-DEXTRA_CHARSETS=all \ 安装所有扩展字符集
-DMYSQL_TCP_PORT=3306 \ MYSQL监听端口
[root@server1 mysql-5.7.17]#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql
-DMYSQL_DATADIR=/usr/local/lnmp/mysql/data
-DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock
-DWITH_MYISAM_STORAGE_ENGINE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DEXTRA_CHARSETS=all
-DWITH_BOOST=boost/boost_1_59_0
4.在初次编译后,我们会发现有许多依赖性未安装,一个一个解决依赖项,预编译环境配置完成
yum install gcc -y
yum install gcc-c++ -y
yum install bison -y
yum install ncurses-devel -y
rm -fr CMakeCache.txt
# 一次编译完成后,会提示我们删除所在目录下的CMakeCache.txt文件,才能清除上次编译的缓存,从而开始新的编译
yum install openssl-devel -y
5.编译汇编
ot@server1 ~]# cd mysql-5.7.17/
[root@server1 mysql-5.7.17]# make
[root@server1 mysql-5.7.17]# make install
make & make install
(二)配置MYSQL
1.进入源码编译目录,再进入mysql安装的位置,将编译完成的默认配置文件放在/etc下
root@server1 mysql-5.7.17]# cd
[root@server1 ~]# cd /usr/local/
[root@server1 local]# cd lnmp/
[root@server1 lnmp]# ls
mysql
[root@server1 lnmp]# cd mysql/
[root@server1 mysql]# ls
bin COPYING docs include lib man mysql-test README share support-files
[root@server1 ~]# cd mysql-5.7.17/
[root@server1 mysql-5.7.17]# cd support-files/
[root@server1 support-files]# yum remove mysql -y
[root@server1 support-files]# cp mysql.server /etc/init.d/mysqld
2.配置mysql服务
[root@server1 support-files]# cd /etc/init.d/
[root@serv