一、MYSQL源码安装
环境:防火墙关闭,selinux=disabled ,
1.下载mysql-boost-5.7.11.tar.gz (boost模块自带)
cmake-2.8.12.2-4.el6.x86_64.rpm(需要2.8版本以上,编译上边的的数据库低于2.8会报错)
boost_1_59_0.tar.gz (解压到cmake目录中)
2.解压mysql-boost-5.7.11.tar.gz
安装
yum install cmake-2.8.12.2-4.el6.x86_64.rpm
更新cmake
yum install update cmake-2.8.12.2-4.el6.x86_64.rpm
3.安装依赖包
yum install -y gcc gcc-c++ ncurses-devel bison openssl-devel zlib-devel
4.切换到mysql–5.7.11 ,cmake源码编译
第一步:cmake
cmake
##指定目录
-DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysq
##指定数据库路径
-DMYSQL_DATADIR=/usr/local/lnmp/mysql/data
##Unix socket 存放路径
-DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock
##安装 myisam 存储引擎
-DWITH_MYISAM_STORAGE_ENGINE=1
##安装 innodb 存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1
##安装数据库分区
-DWITH_PARTITION_STORAGE_ENGINE=1
##使用 utf8 字符
-DDEFAULT_CHARSET=utf8
##校验字符
-DDEFAULT_COLLATION=utf8_general_ci
##安装所有扩展字符集
-DEXTRA_CHARSETS=all
##指定 boost
-DWITH_BOOST=boost/boost_1_59_0/
## 再次编译时,清空Cmakecache,否则 cmake 时会读取错误文件
rm -fr CMakeCache.txt
第二步:make
第三步:make install
5.mysql配置
1)配置文件
将mysql配置文件复制到/etc
脚本复制到/etc/init.d/,x权限
2)新建mysql用户,指定uid、gid和家目录
3)修改mysql/目录权限
保证 mysql 用户对 data 目录有绝对权限
4)修改/etc/my.cnf
5)修改 ~/.bash_profile,添加环境变量
[root@server1 mysql]# source ~/.bash_profile 使配置生效
初始化:mysqld –initialize –user=mysql
开启mysql服务
安全初始化:
密码:REDHATlj123
6.登陆测试
二、PHP的源码安装
1.下载PHP需要的数据包
libmcrypt-2.5.8-9.el6.x86_64.rpm
libmcrypt-devel-2.5.8-9.el6.x86_64.rpm
php-5.6.36.tar.bz2
re2c-0.13.5-1.el6.x86_64.rpm
2.解决依赖关系需要安装的数据包:
3.解压并源码安装PHP
1)编译
./configure --prefix=/usr/local/lnmp/php
--with-config-file-path=/usr/local/lnmp/php/etc
--enable-mysqlnd
--with-mysql=mysqlnd
--with-mysqli=mysqlnd
--with-pdo-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-gettext
--with-gmp
--with-pear
--enable-inline-optimization
--enable-soap
--enable-ftp
--enable-sockets
--enable-mbstring
--enable-fpm
--with-fpm-user=nginx
--with-fpm-group=nginx
--with-mcrypt
--with-mhash
2)安装
make && make install
4.配置PHP
创建nginx用户
useradd -M -s /sbin/nologin nginx
复制配置文件并添加pid
vim /usr/local/lnmp/php/etc/php-fpm.conf
复制启动文件并授权
复制配置文件并配置时区
启动服务并查看监听端口
此时PHP安装完成
三、nginx源码安装
1.下载nginx需要的数据包,解压
隐藏版本(删除14行nginx之后的内容)
[root@server1 nginx-1.10.1]# vim src/core/nginx.h
注释debug下的内容(179行),纯净安装
[root@server1 nginx-1.10.1]# vim auto/cc/gcc
2.解决依赖关系需要安装的包
3.源码安装
4.创建软连接,检测nginx是否正常,并开启服务
5.修改配置文件(/usr/local/lnmp/nginx/conf/nginx.conf)
Php页面首先检测
与php结合
编写php默认目录
重新加载配置文件
访问
四、mysql + php + nginx 搭建论坛
1.下载论坛模版,解压到/usr/local/lnmp/nginx/html/目录下
2.修改upload目录名称
3.进入网页安装
1)检测安装环境
权限不够,需要修改权限:
[root@server1 bbs]# chmod 777 config/ data/ uc_client/ uc_server/ -R
2)数据库连接错误
修改配置文件,重新加载php
3)数据库data目录权限不够
4)安装成功
5)删除/usr/local/lnmp/nginx/html/bbs/install/index.php , 避免重复安装
五、php添加memcach模块,测试访问压力
php+memcache
client—->nginx—->php-fpm—->php+memcache
memcache是一个高性能的分布式内存对象缓存系统,通过在内存里维护一个巨大的hash表,能够用来存储各种格式的数据。可以类比于mysql这样的服务,而php扩展memcache实际上是连接memcahe的方式,一般的使用目的是通过缓存数据查询结果,减少终端的访问次数,以提高动态web应用的速度,提高扩展性能。
1.下载memcache-2.2.5.tgz,并解压
[root@server1 ~]# tar zxf memcache-2.2.5.tgz
2.添加phpize命令
当php编译完成后,php的bin目录下会有phpize这个脚本文件。在编译你要添加的扩展模块之前,执行phpize命令,这里我们在php中加入memcache扩展模块
[root@server1 memcache-2.2.5]# phpize
Configuring for:
PHP Api Version: 20131106
Zend Module Api No: 20131226
Zend Extension Api No: 220131226
添加环境变量,并使其生效
3.执行phpize后,编译、安装 memcache-2.2.5
[root@server1 memcache-2.2.5]# ./configure
[root@server1 memcache-2.2.5]# make && make install
4.修改配置文件(php-memcache模块扩展),并查看扩展的memcache模块是否加载
[root@server1 memcache-2.2.5]# vim /usr/local/lnmp/php/etc/php.ini
修改配置文件切记 reload,使配置生效
[root@server1 etc]# /etc/init.d/php-fpm reload
Reload service php-fpm done
查看memcache模块是否加载
[root@server1 memcache-2.2.5]# php -m | grep memcache
Memcache
5.查看 memcache 端口(memcache监听11211端口)
6.设置 memcache.php
[root@server1 memcache-2.2.5]# cp memcache.php /usr/local/lnmp/nginx/html/
22,23行设置用户和密码,28行并指定本机的11211端口
访问 172.25.12.1/memcache.php
重新加载nginx或配置文件有错误
[root@server1 html]# nginx -s reload
####7、设置 example.php,并重新加载nginx
通过刷新(example.php)网页可以看到命中率的数据更新,几乎接近100%,数据全部来源于缓存
访问 172.25.12.1/example.php
再次访问172.25.12.1/memcache.php,命中率会接近100%
8.物理主机测试
[kiosk@localhost ~]$ ab -c 10 -n 1000 http://172.25.32.1/example.php
Concurrency Level: 10
Time taken for tests: 0.587 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 280000 bytes
HTML transferred: 123000 bytes
Requests per second: 1704.83 [#/sec] (mean)
[kiosk@localhost ~]$ ab -c 10 -n 1000 http://172.25.32.1/index.php
Concurrency Level: 10
Time taken for tests: 1.810 seconds
Complete requests: 1000
Failed requests: 91
(Connect: 0, Receive: 0, Length: 91, Exceptions: 0)
Write errors: 0
Total transferred: 84942900 bytes
HTML transferred: 84785900 bytes
Requests per second: 552.46 [#/sec] (mean)
[kiosk@localhost ~]$ ab -c 10 -n 1000 http://172.25.32.1/memcache.php
Concurrency Level: 10
Time taken for tests: 1.366 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Non-2xx responses: 1000
Total transferred: 316000 bytes
HTML transferred: 101000 bytes
Requests per second: 731.90 [#/sec] (mean)
六、nginx(ssl)模块使用
1.建立虚拟主机 vim /usr/local/lnmp/nginx/conf/nginx.conf
2.建立默认发布目录,编写默认发布文件
3.物理机解析
4.访问,检测虚拟主机是否建立成功
5.加密访问
1)修改配置文件
2)生成认证证书
3)重启服务,并查看是否有443端口
4)访问,检测是否加密成功
证书:
访问成功