一.mysql源码安装
步骤:
(1)下载解压源码包
注意:mysql 包和 mysql-boost 包的区别(mysql包必须配合boost-1.59版)
mysql5.7版本更新后,都需要boost库,mysql官网有自带boost库的源码包 ,cmake虽然yum源有自带,但版本过低,需安装 2.8 及以上版本的 cmake。
从网上下载包:
mysql-boost-5.7.17.tar.gz和cmake-2.8.12.2-4.el6.x86_64.rpm
tar zxf mysql-boost-5.7.11.tar.gz
yum install -y cmake-2.8.12.2-4.el6.x86_64.rpm
cd mysql-5.7.11/
(2)源码安装选择
cd mysql-5.7.11/
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 ##Unix socket 存放路径
-DWITH_MYISAM_STORAGE_ENGINE=1 ##安装 myisam 存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 ##安装 innodb 存储引擎
-DWITH_PARTITION_STORAGE_ENGINE=1 ##安装数据库分区
-DDEFAULT_CHARSET=utf8 ##使用 utf8 字符
-DDEFAULT_COLLATION=utf8_general_ci ##校验字符
-DEXTRA_CHARSETS=all ##安装所有扩展字符集
-DWITH_BOOST=boost/boost_1_59_0/ ##指定 boost 路径
(3)解决依赖性
安装 gcc gcc-c++
指定 boost 路径
安装 ncurses-devel
安装 bison
注意:编译错误时,要清空CmakeCache,否则 cmake 时会读取错误文件
rm -fr CMakeCache.txt
(4)编译成功后,make&make install
(5)初始化设置
[root@server5 mysql-5.7.11]# cd /usr/local/lnmp/mysql/
[root@server5 mysql]# ls
bin COPYING docs include lib man mysql-test README share support-files
[root@server5 mysql]# cd support-files/
[root@server5 support-files]# ls
magic my-default.cnf mysqld_multi.server mysql-log-rotate mysql.server
[root@server5 support-files]# mv /etc/my.cnf /etc/my.cnf.back
[root@server5 support-files]# cp my-default.cnf /etc/my.cnf ##复制mysql的配置文件
[root@server5 support-files]# cp mysql.server /etc/init.d/mysqld ##复制mysql的执行脚本
[root@server5 support-files]# ll /etc/init.d/mysqld (如果没有执行权限需要+x)
-rwxr-xr-x 1 root root 11005 Jul 1 18:01 /etc/init.d/mysqld
[root@server5 support-files]# groupadd -g 27 mysql
[root@server5 support-files]# useradd -u 27 -g 27 -d /usr/local/lnmp/mysql/data -M -s /sbin/nologin mysql
Creating mailbox file: File exists
[root@server5 support-files]# grep mysql /etc/passwdmysql:x:27:27::/usr/local/lnmp/mysql/data:/sbin/nologin
[root@server5 support-files]# pwd
/usr/local/lnmp/mysql/support-files
[root@server5 support-files]# cd ..
[root@server5 mysql]# chown mysql.mysql . -R
[root@server5 mysql]# pwd
/usr/local/lnmp/mysql
[root@server5 mysql]# cd bin/
[root@server5 bin]# vim /root/.bash_profile
################################################################
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin
export PATH`
##########################################################
[root@server5 bin]# source /root/.bash_profile ##运行环境变量
[root@server5 mysql]# 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@server5 mysql]# mysql_install_db ## 老版本的初始化命令,5.6以后新命令
[root@server1 bin]# mysqld --initialize --user=mysql
A temporary password is generated for root@localhost: _AcXHlHrf4Qk(临时密码)
[root@server1 mysql]# chown root . -R
[root@server1 mysql]# chown mysql data/ -R ##保证 mysql 用户对 data 目录有绝对权限
[root@server1 mysql]# /etc/init.d/mysqld start
Starting MySQL.. SUCCESS!
[root@server1 mysql]# mysql_secure_installation ##安全初始化
##密码强度校验,y|Y:加载该模块,else:不检验密码强度
VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
(6)登录测试
[root@server1 mysql]# mysql -p
mysql> create database westos;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| westos |
+--------------------+
5 rows in set (0.00 sec)
[root@server1 mysql]# cd data/
[root@server1 data]# ls
auto.cnf ib_logfile0 mysql mysql.sock.lock server1.pid
ib_buffer_pool ib_logfile1 mysqld_safe.pid performance_schema sys
ibdata1 ibtmp1 mysql.sock server1.err westos
二.php源码安装
(1)解压、预编译 php
[root@server5 ~]# tar jxf php-5.6.35.tar.bz2
(2)安装编译所需的各种包,解决依赖。进行编译,加上需要的参数
yum install libxml2-devel -y
yum install openssl-devel -y
yum install curl-devel -y
yum install freetype-devel -y
yum install -y libjpeg-turbo-devel-1.2.1-1.el6.x86_64
yum install -y gmp-devel
yum install -y net-snmp-devel
yum install libjpeg -y
rpm -ivh re2c-0.13.5-1.el6.x86_64.rpm
rpm -ivh libmcrypt-2.5.8-9.el6.x86_64.rpm
rpm -ivh libmcrypt-devel-2.5.8-9.el6.x86_64.rpm
(3)编译三部曲
[root@server5 ~]# cd php-5.6.35
[root@server5 ~]# ./configure –prefix=/usr/local/lnmp/php
–with-config-file-path=/usr/local/lnmp/php/etc –enable-mysqlnd
--prefix ##指定目录
--with-config-file-path ##指定配置文件目录
--with-openssl ##支持 openssl 服务
--with-curl/gd/zlib ##支持 curl/gd/zlib
--with-libxml-dir ##支持 libxml 函数
--with-png-dir//--with-jpeg-dir ##支持图片格式
--mysql(等等) ##数据库类型指定 mysqlnd
--with-fpm-user/group ##指定用户、组
--with-mcrypt/mhash ##支持 crypt/hash
make && make install
(4)配置php
[root@server5 php-5.6.35]# cp php.ini-production /usr/local/lnmp/php/etc/php.ini
[root@server5 php-5.6.35]# cd /usr/local/lnmp/php/
[root@server5 php]# cd etc/
[root@server5 etc]# ls
pear.conf php-fpm.conf.default php.ini
[root@server5 etc]# cp php-fpm.conf.default php-fpm.conf
[root@server5 etc]# ls
pear.conf php-fpm.conf php-fpm.conf.default php.ini
[root@server5 etc]# vim php-fpm.conf
###########################################################
21 [global]
22 ; Pid file
23 ; Note: the default prefix is /usr/local/lnmp/php/var
24 ; Default Value: none
25 pid = run/php-fpm.pid
#################################################################
[root@server5 etc]# vim php.ini
##############################################################
933 [Date]
934 ; Defines the default timezone used by the date functions
935 ; http://php.net/date.timezone
936 date.timezone =Asia/Shanghai
(5)复制脚本,启动 php
root@server1 php-5.6.35]# cd sapi/fpm/
[root@server1 fpm]# cp init.d.php-fpm /etc/init.d/php-fpm
[root@server1 fpm]# chmod +x /etc/init.d/php-fpm
[root@server1 fpm]# /etc/init.d/php-fpm status
php-fpm is stopped
[root@server1 fpm]# /etc/init.d/php-fpm start
Starting php-fpm done
三.nginx源码安装
(1)解压、预编译
tar zxf nginx-1.10.1.tar.gz
tar zxf nginx-sticky-module-ng.tar.gz
cd nginx-1.10.1
[root@server5 nginx-1.10.3]# vim src/core/nginx.h
########################################
12 #define nginx_version 1010003
13 #define NGINX_VERSION "1.10.3"
14 #define NGINX_VER "nginx/" ##隐藏nginx版本
[root@server5 nginx-1.10.3]# vim auto/cc/gcc
############################################
178 # debug
179 #CFLAGS="$CFLAGS -g" ##关闭debug
###########################################
(2)进行编译第一步
./configure --prefix=/usr/local/lnmp/nginx ##指定安装目录
--with-http_ssl_module ##安装 ssl 模块
--with-threads ##设置多线程
--with-http_stub_status_module
--with-file-aio –add-module=/root/nginx-sticky-module-ng文件读写,aio 模式,一个有效请求,一个线程,nginx#导入nginx-sticky模块
(3)会报错,因为缺少pcre-devel包
yum install -y pcre-devel
(4)重新进行编译之后make&make install
(5)修改Nginx的配置文件
[root@server5 nginx]# vim /usr/local/lnmp/nginx/conf/nginx.conf
43 location / {
44 root html;
45 index index.php index.html index.htm;
46 }
65 location ~ \.php$ {
66 root html;
67 fastcgi_pass 127.0.0.1:9000;
68 fastcgi_index index.php;
69 # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
70 include fastcgi.conf;
71 }
##################################################
[root@server5 nginx]# ln -s /usr/local/lnmp/nginx/sbin/nginx /sbin/
[root@server5 nginx]# nginx -t
nginx: the configuration file /usr/local/lnmp/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/lnmp/nginx/conf/nginx.conf test is successful
[root@server5 nginx]# vim /usr/local/lnmp/nginx/html/index.php
<?php
phpinfo()
?>
[root@server5 nginx]# nginx
[root@server5 nginx]# /etc/init.d/php-fpm start
Starting php-fpm done
[root@server5 nginx]# nginx -s reload
(6)测试是否成功,出现下图页面说明Nginx安装启动成功
(7)写一个PHP测试页面并进行测试
四、lnmp搭建论坛,测试架构
这儿不太清楚,在网上看了看,内容都比较杂乱,掌握了一点大概过程,相信会有一定的学习效果。