编译安装MariaDB

创建MariaDB安装目录、数据库存放目录、建立用户和目录

先创建一个名为mysql且没有登录权限的用户和一个名为mysql的用户组,然后安装mysql所需的依赖库和依赖包,最后通过cmake进行安装。

创建mysql用户组

groupadd -r mysql

添加新用户

-r:添加系统用户

-g:指定要创建的用户所属组

-s:新账户登录shell

-d:新账户主目录

-M:不要创建用户主目录

useradd -r -g mysql -s /sbin/nologin -d /usr/local/mysql -M mysql

创建数据库相关目录

MariaDB安装目录为/usr/local/mysql并且数据目录为 /data/mysql,赋予mysql用户权限

mkdir -pv /data/mysql

chown -R mysql:mysql :data/mysql

安装依赖包

yum -y install libaio libaio-devel bison bison-devel zlib-devel openssl openssl-devel ncurses ncurses-devel libcurl-devel libarchive-devel boost boost-devel lsof wget gcc gcc-c++ make cmake perl kernel-headers kernel-devel pcre-devel

安装cmake编译工具

tar xvf cmake-3.12.1.tar.gz

cd cmake-3.12.1/

./bootstrap

gmake

make && make install

其他组件:

Ncurses:提供功能键定义(快捷键),屏幕绘制以及基于文本终端的图形互动功能动态库;

Bison:GNU分析器生成器

Boost库:一个开源可移植的C++库,是C++标准化进程的开发引擎之一

环境检查

cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DOWNLOADS=1 \
-DEXTRA_CHARSETS=all \
-DSYSCONFDIR=/etc \
-DWITHOUT_TOKUDB=1 \
-DWITH_ARCHIVE_STPRAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LOBWRAP=0 \
-DMYSQL_DATADIR=/data/mysql \
-DMYSQL_USER=mysql \
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_MAINTAINER_MODE=0

如果编译失败需要删除CMakeCache.txt,让指令重新执行,否则每次读取这个文件,命令修改正确也是报错

选项注释

cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ [MySQL安装的根目录]
-DDEFAULT_CHARSET=utf8 \ [设置默认字符集为utf8]
-DDEFAULT_COLLATION=utf8_general_ci \ [设置默认字符校对]
-DENABLED_LOCAL_INFILE=1 \ [启用加载本地数据]
-DENABLE_DOWNLOADS=1 \ [编译时允许自主下载相关文件]
-DEXTRA_CHARSETS=all \ [使MySQL支持所有的扩展字符]
-DSYSCONFDIR=/etc \ [MySQL配置文件所在目录]
-DWITHOUT_TOKUDB=1 \
-DWITH_ARCHIVE_STPRAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_DEBUG=0 \ [禁用调试模式]
-DWITH_MEMORY_STORAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_MYISAM_STORAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_PARTITION_STORAGE_ENGINE=1 \ [MySQL的数据库引擎]
-DWITH_READLINE=1 \ [MySQL的readline library]
-DWITH_SSL=system \ [通讯时支持ssl协议]
-DWITH_ZLIB=system \ [允许使用zlib library]
-DWITH_LOBWRAP=0 \
-DMYSQL_DATADIR=/data/mysql \ [MySQL数据库文件存放目录]
-DMYSQL_USER=mysql \ [MySQL用户名]
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \ [MySQL的通讯目录]
-DMYSQL_TCP_PORT=3306 \ [MySQL的监听端口]
-DMYSQL_MAINTAINER_MODE=0

编译和安装

make && make install

配置MariaDB

使用mysql用户执行脚本,安装数据库到到数据库存放目录

/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql

复制MariaDB配置文件到/etc目录

拷贝maria安装目录下support-files目录下的文件wsrep.cnf目录并重命名为my.cnf

cp /usr/local/mysql/support-files/wsrep.cnf /etc/my.cnf

创建启动脚本

cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

启动mysqld服务

/etc/rc.d/init.d/mysqld start

配置环境变量

echo "export PATH=$PATH:/usr/local/mysql/bin" >/etc/profile.d/mysql.sh

添加x权限

chmod +x /etc/profile.d/mysql.sh

初始化MariaDB

/usr/local/mysql/bin/mysql_secure_installation

启动MariaDB服务

systemctl strt mysqld

编译安装Apache

准备安装文件

apr-1.6.3.tar.gz

apr-util-1.6.1.tar.gz

httpd-2.4.29.tar.bz2

安装编译工具与插件

yum -y install gcc gcc-c++ make pcre-devel expat-devel perl

解压缩文件

tar xvf apr-1.6.3.tar.gz

tar xvf apr-util-1.6.1.tar.gz

tar xvf httpd-2.4.29.tar.bz2

将插件放入httpd目录下

mv apr-1.6.3 httpd-2.4.29/srclib/apr

mv apr-util-1.6.1 httpd-2.4.29/srclib/apr-util

编译安装

./configure --prefix=/app/httpd24 --sysconfdir=/etc/httpd24 --enable-so  --enable-ssl --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
make && make install

修改PATH路径

echo "PATH=/usr/local/httpd/bin:$PATH" > /etc/profile.d/httpd.sh

查看是否生效

echo $PATH

启动服务

apachectl 启动服务

apachectl -t 检查配置文件语法

apachectl stop 停止服务

编译安装php7

安装扩展包

yum install epel-release -y

安装php依赖组件

yum -y install wget vim pcre pcre-devel openssl openssl-devel libicu-devel gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses ncurses-devel curl curl-devel krb5-devel libidn libidn-devel openldap openldap-devel nss_ldap jemalloc-devel cmake boost-devel bison automake libevent libevent-devel gd gd-devel libtool* libmcrypt libmcrypt-devel mcrypt mhash libxslt libxslt-devel readline readline-devel gmp gmp-devel libcurl libcurl-devel openjpeg-devel

创建用户和组

groupadd www

useradd -g www www

解压缩安装包

tar xvf php-7.2.1.tar.gz

设置变量并开始源码编译

cp -frp /usr/lib64/libldap* /usr/lib
./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--enable-mysqlnd-compression-support \
--with-iconv-dir \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-mbstring \
--enable-intl \
--with-mcrypt \
--with-libmbfl \
--enable-ftp \
--with-gd \
--enable-gd-jis-conv \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--with-gettext \
--disable-fileinfo \
--enable-opcache \
--with-pear \
--enable-maintainer-zts \
--with-ldap=shared \
--without-gdbm \

开始安装

make && make install

完成后配置php.ini文件

cp php.ini-development /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

创建system系统单元文件php-fpm启动脚本

[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target [Service]
Type=simple
PIDFile=/usr/local/php/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID [Install]
WantedBy=multi-user.target

启动php-fpm服务并加入开机自启动

systemctl enable php-fpm.service

systemctl restart php-fpm.service

参考文件:

https://www.linuxidc.com/Linux/2017-11/148947.htm

https://blog.csdn.net/qq_32828933/article/details/82720018

https://www.jb51.net/article/142332.htm

https://blog.csdn.net/u011608531/article/details/50756112

编译安装LAMP的更多相关文章

  1. ubuntu10.04编译安装LAMP

    ubuntu10.04编译安装LAMP以及简单wordpress的使用 : http://linuxme.blog.51cto.com/1850814/971631 一.源码安装LAMP 网上有一堆关 ...

  2. CentOS 6编译安装lamp,并分别安装event模块方式和FPM方式的PHP

    任务目标: 编译安装LAMP 要求(1) 安装一个模块化的PHP 要求(2) 安装一个FPM的PHP 注意PHP需要最后一个安装,因为需要前两者的支持. 所以这里的安装次序为 1.httpd 2.Ma ...

  3. CentOS6.3 编译安装LAMP(1):准备工作

    卸载yum或rpm安装的amp软件 #在编译安装lamp之前,首先先卸载已存在的rpm包. rpm -e httpd rpm -e mysql rpm -e php yum -y remove htt ...

  4. CentOS6.3 编译安装LAMP(2):编译安装 Apache2.2.25

    所需源码包: /usr/local/src/Apache-2.2.25/httpd-2.2.25.tar.gz 编译安装 Apache2.2.25 #切换到源码目录 cd /usr/local/src ...

  5. CentOS6.3 编译安装LAMP(2):编译安装 Apache2.4.6

    Apache官方说: 与Apache 2.2.x相比,Apache 2.4.x提供了很多性能方面的提升,包括支持更大流量.更好地支持云计算.利用更少的内存处理更多的并发等.除此之外,还包括性能提升.内 ...

  6. CentOS6.3 编译安装LAMP(3):编译安装 MySQL5.5.25

    所需源码包: /usr/local/src/MySQL-5.5.25/cmake-2.8.8.tar.gz /usr/local/src/MySQL-5.5.25/mysql-5.5.25.tar.g ...

  7. CentOS6.3 编译安装LAMP(4):编译安装 PHP5.2.17

    所需源码包: /usr/local/src/PHP-5.2.17/libmcrypt-2.5.8.tar.gz /usr/local/src/PHP-5.2.17/mhash-0.9.9.9.tar. ...

  8. CentOS6.3 编译安装LAMP(4):编译安装 PHP5.3.27

    所需源码包: /usr/local/src/PHP-5.3.27/libmcrypt-2.5.8.tar.gz /usr/local/src/PHP-5.3.27/mhash-0.9.9.9.tar. ...

  9. Linux下指定版本编译安装LAMP

    说明: 操作系统:CentOS 6.5 64位 需求: 编译安装LAMP运行环境 各软件版本如下: MySQL:mysql-5.1.73 Apache:httpd-2.2.31 PHP:php-5.2 ...

  10. (2)编译安装lamp三部曲之mysql-技术流ken

    简介 采用yum安装lamp简单,快捷,在工作中也得到了普遍应用.但是如果我们需要某些特定模块功能,以及制定安装位置等,就需要用到编译安装了,接下来将编译安装lamp之mysql. mysql的简介网 ...

随机推荐

  1. Java基础学习-标识符

    1.标识符的作用     -给包.类.方法.变量等起名字 2.组成规则     -这里的字符采用的是Unicode字符集,所以包括英文大小写字母,中文字符,数字字符等.不建议使用汉字.     -下划 ...

  2. 单元测试系列之十一:Jmockit之mock特性详解

    本文是Jmockit学习过程中,根据官网所列的工具特性进行解读. 1.调用次数约束(Invocation count constraints) 可以通过调用计数约束来指定预期和/或允许匹配给定期望的调 ...

  3. Python各种图像库的图像的基本读写方式

    目前主流的图像库有几下几种: 1. OpenCV      2. PIL(Pillow)       3. matplotlib.image     4. skimage      5. scipy. ...

  4. 意外get接近完美的黑苹果 (UEFI + GPT)

    本人大学生一枚,对于高大上的 MAC OS 只能是摸摸口袋 咽咽口水啦.听说黑苹果,就是安装在普通的 pc 上的 MAC系统,那么对应的苹果电脑上的 MAC OS 系统就为白苹果了. 个人也想啃一口黑 ...

  5. Jvm类的加载机制

    1.概述 虚拟机加载Class文件(二进制字节流)到内存,并对数据进行校验.转换解析和初始化,最终形成可被虚拟机直接使用的Java类型,这一系列过程就是类的加载机制. 2.类的加载时机 类从被虚拟机加 ...

  6. struts.xml,报错 1 c.opensymphony.xwork2.util.DomHelper

    ERROR c.opensymphony.xwork2.util.DomHelper - The content of element type "action" must mat ...

  7. The threat to world

    The threat to world 对世界贸易的威胁"> The rules-based system is in grave(严重的) danger 基于规则的体系岌岌可危 DO ...

  8. redis主从同步故障切换及集群配置

    一.redis是一中高性能的缓存数据库, 原理:1. 从服务器向主服务器发送 SYNC 命令.2. 接到 SYNC 命令的主服务器会调用BGSAVE 命令,创建一个 RDB 文件,并使用缓冲区记录接下 ...

  9. Dart学习-操作符

    dart定义了下表所示的运算符.你可以重写许多这些运算符. 描述 运算符 一元后缀 expr++ expr-- () [] . ?. 一元前缀 -expr !expr ~expr ++expr --e ...

  10. python 绘制点线

    plot(x, y) #默认为蓝色实线 plot(x, y, 'r*') #红色星状标记 plot(x, y, 'go-') #带有圆圈标记的绿线 plot(x, y, 'ks:') #带有正方形标记 ...