mysql源码编译安装
环境redhat6.5
安装依赖包:
yum install cmake-2.8.12.2-4.el6.x86_64.rpm gcc-c++ ncurses-devel gcc -y
[root@server2 ~]# ls
anaconda-ks.cfg haproxy-1.6.11.tar.gz lamp nginx
drbd-8.4.3 heartbeat-3.0.4-2.el6.x86_64.rpm mysql-5.7.11 php-5.6.20.tar.bz2
drbd-8.4.3.tar.gz heartbeat-libs-3.0.4-2.el6.x86_64.rpm mysql-boost-5.7.11.tar.gz rpmbuild
[root@server2 ~]# tar zxf mysql-boost-5.7.11.tar.gz
[root@server2 ~]# cd mysql-5.7.11/
- 编译参数:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
#安装目录
-DMYSQL_DATADIR=/usr/local/mysql/data \
#数据库存放目录
-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \ #Unix socket 文件路径
-DWITH_MYISAM_STORAGE_ENGINE=1 \
#安装 myisam 存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
#安装 innodb 存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
#安装 archive 存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
#安装 blackhole 存储引擎
-DWITH_PARTITION_STORAGE_ENGINE=1 \
#安装数据库分区
-DENABLED_LOCAL_INFILE=1 \
#允许从本地导入数据
-DWITH_READLINE=1 \
#快捷键功能
-DWITH_SSL=yes \
#支持 SSL
-DDEFAULT_CHARSET=utf8 \
#使用 utf8 字符
-DDEFAULT_COLLATION=utf8_general_ci \
#校验字符
-DEXTRA_CHARSETS=all \
#安装所有扩展字符集
-DMYSQL_TCP_PORT=3306 \
#MySQL 监听端口
[root@server2mysql-5.7.11]#cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 -DWITH_SSL=yes \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all -DMYSQL_TCP_PORT=3306 \
-DWITH_BOOST=boost/boost_1_59_0/
[root@server2mysql-5.7.11]make
[root@server2mysql-5.7.11]make install
[root@server1 support-files]# cp /etc/my.cnf /etc/my.cnf.bak #备份
[root@server1 support-files]# cp my-default.cnf /etc/my.cnf #创建新的my.cnf文件
[root@server1 support-files]# vim /etc/my.cnf
18 basedir = /usr/local/lnmp/mysql
19 datadir = /usr/local/lnmp/mysql/data
20 port = 3306
21 # server_id = .....
22 socket = /usr/local/lnmp/mysql/data/mysql.sock
[root@server1 support-files]# cp mysql.server /etc/init.d/mysqld #将脚本复制到启动脚本目录下
[root@server1 mysql]# chmod +x /etc/init.d/mysqld #给与脚本执行权限
[root@server1 mysql]# groupadd -g 27 mysql #创建mysql组
[root@server1 mysql]# useradd -M -s /sbin/nologin -d /usr/local/lnmp/mysql/data -u 27 mysql -g mysql #创建mysql用户
[root@server1 mysql]# chown mysql:mysql -R . #更改目录下的所有文件所有者为nysql
[root@server1 mysql]# mysqld --verbose --help | grep 'insecure' #过滤初始化需要用到的参数
--initialize-insecure
insecure transport will be rejected. Secure transports
initialize-insecure FALSE
[root@server1 mysql]# mysqld --initialize-insecure --user=mysql
2017-09-26T03:54:01.520645Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-09-26T03:54:01.521056Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2017-09-26T03:54:01.521075Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set.
2017-09-26T03:54:01.528325Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting. #报错data目录下有数据
2017-09-26T03:54:01.529162Z 0 [ERROR] Aborting
[root@server1 mysql]# cd data/
[root@server1 data]# ls
auto.cnf client-cert.pem ibdata1 ibtmp1 mysql.sock private_key.pem server1.pid sys
ca-key.pem client-key.pem ib_logfile0 mysql mysql.sock.lock public_key.pem server-cert.pem
ca.pem ib_buffer_pool ib_logfile1 mysqld_safe.pid performance_schema server1.err server-key.pem
[root@server1 data]# rm -fr * #删除data下数据
[root@server1 mysql]# mysqld --initialize-insecure --user=mysql #初始化数据库
[root@server1 data]# vim ~/.bash_profile #给数据库添加环境变量
8 # User specific environment and startup programs
9
10 PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin
[root@server1 data]# /etc/init.d/mysqld start #启动数据库
Starting MySQL. SUCCESS!
[root@server1 data]# mysql_secure_installation #第一次进入数据库的安全工作,设定mysql密码,匿名用户登陆。。。等等的设定
[root@server2 data]# mysql
[root@server2 data]# chown root:root data/ -R #为了安全经mysql数据目录权限给root用户
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.11 Source distribution
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql> quit
注意:如发现以下错误是因为mysql没有进行初始化的结果,mysqld –initialize-insecure –user=mysql 之后重新启动数据库就没有这样的问题了。
[root@server2 bin]# /etc/init.d/mysqld start
Starting MySQL... ERROR! The server quit without updating PID file (/usr/local/mysql/data//server2.pid).
php源码安装
安装需要的依赖包:
yum install libxml2-devel -y
yum reinstall libcurl -y
yum install libcurl-devel.x86_64 -y
libjpeg-turbo-devel-1.2.1-1.el6.x86_64 -y
yum install gd-devel-2.0.35-11.el6.x86_64.rpm -y
yum install gmp-devel -y
yum install libmcrypt-2.5.8-9.el6.x86_64.rpm -y
yum install libmcrypt-devel-2.5.8-9.el6.x86_64.rpm -y
yum install net-snmp-devel -y
yum install re2c-0.13.5-1.el6.x86_64.rpm -y
编译安装
root@server1 lamp]# tar jxf php-5.6.20.tar.bz2
[root@server1 php-5.6.20]# ./configure \
--prefix=/usr/local/lnmp/php \
--with-config-file-path=/usr/local/lnmp/php/etc \
--with-mysql=mysqlnd \
--with-openssl \
--with-snmp \
--with-gd \
--with-zlib \
--with-curl \
--with-libxml-dir \
--with-png-dir \
--with-jpeg-dir \
--with-freetype-dir \
--with-pear \
--with-gettext \
--with-gmp \
--enable-inline-optimization \
--enable-soap \
--enable-ftp \
--enable-sockets \
--enable-mbstring \
--with-mysqli=mysqlnd \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-mcrypt \
--with-mhash
[root@server1 php-5.6.20]# useradd -M -s /sbin/nologin -d /usr/local/lnmp/mysql/ -u 1500 nginx
[root@server1 php-5.6.20]# make && make install
基本配置php
[root@server1 php-5.6.20]# cp php.ini-production /usr/local/lnmp/php/etc/php.ini
[root@server1 php-5.6.20]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@server1 php-5.6.20]# chmod +x /etc/init.d/php-fpm
[root@server1 php-5.6.20]# cd /usr/local/lnmp/php/
[root@server1 php]# ls
bin etc include lib php sbin var
[root@server1 php]# vim etc/php.ini
923 ; Defines the default timezone used by the date functions
924 ; http://php.net/date.timezone
925 date.timezone = Asia/Shanghai #时区
926
[root@server1 etc]# vim php-fpm.conf
24 ; Default Value: none
25 pid = run/php-fpm.pid #开启pid
26
[root@server1 etc]# vim php.ini
1000 ; http://php.net/pdo_mysql.default-socket
1001 pdo_mysql.default_socket=/usr/local/lnmp/mysql/data/mysql.sock
...
1149 ; http://php.net/mysql.default-socket
1150 mysql.default_socket =/usr/local/lnmp/mysql/data/mysql.sock
...
1209 mysqli.default_socket =/usr/local/lnmp/mysql/data/mysql.sock
1210
[root@server1 etc]# /etc/init.d/php-fpm start
Starting php-fpm done
nginx源码安装
[root@server1 ~]# cd nginx-1.12.0
[root@server1 nginx-1.12.0]# ls
auto CHANGES.ru configure html Makefile objs src
CHANGES conf contrib LICENSE man README
[root@server1 nginx-1.12.0]# ./configure --prefix=/usr/local/lnmp/nginx \
--with-threads \
--with-http_ssl_module \
--with-file-aio \
--with-http_stub_status_module
[root@server1 nginx-1.12.0]# make && make install
[root@server1 nginx-1.12.0]# ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/
[root@server1 nginx-1.12.0]# vim /usr/local/lnmp/nginx/conf/nginx.conf
42 location / {
43 root html;
44 index index.php index.html index.htm;
45 } #添加php的发布页面
64 location ~ \.php$ {
65 root html;
66 fastcgi_pass 127.0.0.1:9000;
67 fastcgi_index index.php;
68 fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
69 include fastcgi.conf; #修改成这个
70 }
[root@server1 html]# cat index.php #php发布页面
<?php
phpinfo()
?>
[root@server1 html]# nginx -s reload
[root@server1 html]# /etc/init.d/php-fpm reload
Reload service php-fpm done
- 测试:
浏览器中172.25.32.1