lnmp搭建论坛及memcache对php访问加速

一.Mysql数据库的源码编译

(一).编译源码

1.下载mysql数据库源码包并解压

tar zxf mysql-boost-5.7.11.tar.gz
cd mysql-5.7.11/

2.安装源码编译工具cmake(支持编译c++语言)

Cmake跨平台工具用来预编译mysql源码的,用来设置mysql的编译参数。如:安装目录,数据存放目录,字符编码,排序规则等

3.创建预编译环境,可以定制加上自己所需要的安装条件

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 监听端口

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 -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-c++ -y
yum install bison -y
yum install ncurses-devel -y
rm -fr CMakeCache.txt#这个文件中保存着上次编译的缓存,清理缓存,才能重新开始新的编译,并保存
yum install openssl-devel -y

5.3结束之后,编译汇编,这个时间比较长要等几分钟

make & make install 

(二).配置mysql环境

1.进入源码编译目录,把mysql的配置文件复制到/etc/my.cnf,并且编辑配置文件

pwd
/usr/local/lnmp/mysql/support-files
cp my-default.cnf /etc/my.cnf
 vim /etc/my.cnf
basedir = /usr/local/lnmp/mysql  #mysql的安装目录
datadir = /usr/local/lnmp/mysql/data#mysql数据存放位置
port = 3306    #mysql服务端口
socket = /usr/local/lnmp/mysql/data/mysql.sock #mysql通信的套结字存放位置

2.编译完成的mysql启动脚本父之到启动服务的默认目录中

3.对mysql服务进行限制(利用mysql用户),将mysql服务的工作空间局限在mysql用户的家目录中,创建mysql组和mysql用户

groupadd -g 27 mysql
useradd -u 27 -g 27 -M -d /usr/local/lnmp/mysql/data -s /sbin/nologin mysql

4.修改mysql目录下的data目录的所属组修改为mysql,因为mysql服务器将要往这个目录中写数据,保证其有执行权限

chown -R mysql.mysql .

5.将mysql目录下的mysql二进制命令放进系统的环境变量文件中,保证可以直接调用该二进制命令

vim /root/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin
source .bash_profile   刷新文件

6.执行mysql的配置初始化文件,会自动生成一个初始化密码

mysqld --initialize --user=mysql

(三).mysql的安全初始化

1.启动mysql服务

2.执行安全初始化脚本mysql_secure_installation,输入初始化密码,重新更改root用户密码

3.登录数据库测试

二.PHP源码编译

1.得到php的源码包并解压 

tar jxf php-5.6.35.tar.bz2 

2.进入解压目录创造预编译环境

cd php-5.6.35

./configure --prefix=/usr/local/lnmp/php  --with-config-file-path=/usr/local/lnmp/php/etc --with-mysql=mysqlnd  --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd  --with-openssl --with-snmp --with-gd  --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-gmp --with-gettext  --with-pear --enable-inline-optimization --enable-soap  --enable-ftp   --enable-sockets --enable-mbstring --enable-fpm --with-mcrypt –with-mhash 

3.解决依赖性,编译时会出现错误,依赖找不到,按照提示,缺少什么找到并且安装包即可,直到编译成功没有错误,执行下一步

yum provides */jpeglib.h 查找缺少的包
yum search freetype-config 查找缺少的包
yum install -y  gcc gcc++  libxml2-devel  openssl-devel curl-devel   libjpeg-turbo-devel   libgcj-devel freetype-devel  libpng-devel  gmp-devel 
yum provides */mcrypt.h 这个包没有需要下载安装下面两个软件包
yum install libmcrypt-2.5.8-9.el6.x86_64.rpm libmcrypt-devel-2.5.8-9.el6.x86_64.rpm -y

会有一个警告下载安装这个:

rpm -ivh re2c-0.13.5-1.el6.x86_64.rpm

4.编译和安装

make && make install

5.将配置文件拷贝到

cd /usr/local/lnmp/php/etc/   
cp php-fpm.conf.default php-fpm.conf
cp php.ini-production /usr/local/lnmp/php/etc/php.ini

6.做php服务的简单配置(配置pid和时区)

cd /usr/local/lnmp/php/etc
vim php.ini    添加时区Asia/Shanghai

      

vim php-fpm.conf     # 打开 pid

7.将php启动的脚本复制到系统启动脚本的默认目录下,并测试php是否可以启动

cd php-5.6.35/sapi/fpm/    
cp init.d.php-fpm /etc/init.d/php-fpm    # init.d.php-fpm是编译完成的启动脚本
chmod +x /etc/init.d/php-fpm             #给脚本加上可执行权限
/etc/init.d/php-fpm start                #打开php服务
netstat -antlp                           # 查看php服务的监听端口

三.nginx的源码编译

1.得到nginx的源码并解压

tar zxf nginx-1.14.0.tar.gz
tar zxf  nginx-goodies-nginx-sticky-module-ng-08a395c66e42.tar.gz

2.去掉nginx的版本号

cd   nginx-1.14.0/src/core
vim nginx.h  

3.注释debug

cd  nginx-1.14.0/auto/cc
vim gcc

4.创造预编译环境

 ./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module  --with-threads --with-file-aio --add-module=/root/nginx-goodies-nginx-sticky-module-ng-08a395c66e42

5.解决源编译中的依赖性问题

 yum install pcre-devel -y

6.编译汇编

make && make install

7.配置nginx服务

cd /usr/local/lnmp/nginx/conf
vim nginx.conf    用户改为nginx 65-71行修改为如图,70行要包括

因为fastcgi.conf包含所以这么修改

8.对nginx用户做限制

vim /etc/security/limits.conf
 nginx     -      nofile  65536

9.将编译生成的mysql二进制命令放进系统的环境变量文件中,保证可以直接调用该二进制命令

vim /root/.bash_profile
  PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin:/usr/local/lnmp/nginx/sbin
source /root/.bash_profile  

10.检测nginx服务是否可用并打开nginx服务

nginx -t
nginx 

论坛搭建:

1.解压文件到指定目录

unzip Discuz_X3.2_SC_UTF8.zip  -d /usr/local/lnmp/nginx/html/

2.修改目录的属性

cd /usr/local/lnmp/nginx/html/
mv upload/ bbs
cd bbs/
chmod -R 777 config/ data/ uc_client/ uc_server/
ll /usr/local/lnmp/mysql/data/mysql.sock
cd /usr/local/lnmp/php/etc/

3.修改配置文件vim php.ini

4.开启服务/etc/init.d/php-fpm reload

5.修改upload的权限

 ll -d /usr/local/lnmp/mysql/data/mysql.sock
ll -d  /usr/local/lnmp/mysql/data/
chmod 755  /usr/local/lnmp/mysql/data/

6.浏览器访问172.25.38.4/bbs/admin.php,为了防止重复安装删除index.php

cd install/
rm -rf index.php

7.之后可以打开登陆,测试论坛

 

Memcache对php访问加速

1.解压文件

tar axf memcache-2.2.5.tgz
yum install memcached
vim /etc/sysconfig/memcached  保存它缓存信息,可以缓存64,一旦停止不能保存上次的

2.编辑路径

vim .bash_profile 
source .bash_profile

3.测试端口

4.进入php主目录动态加载phpize

cd memcache-2.2.5
Phpize
 Make
make install

5.修改php配置文件如memcache

cd /usr/local/lnmp/php/lib/php/extensions/no-debug-non-zts-20131226/
ls
php -m | grep memcache
cd /usr/local/lnmp/php/etc/
vim php.ini

/etc/init.d/php-fpm reload
 php -m | grep memcache

6.复制文件到指定目录,重启php-fpm服务

cp example.php  memcache.php  /usr/local/lnmp/nginx/html/
cd /usr/local/lnmp/nginx/html/
vim memcache.php
/etc/init.d/php-fpm reload

1.停止之前的nginx程序

tar zxf  openresty-1.13.6.1.tar.gz

2.编译

./configure --prefix=/opt/nginx --with-http_ssl_module --with-http_stub_status_module  --with-threads --with-file-aio 
gmake&&gmake insatll

3.复制之前的nginx配置文件到现在编译的nginx中

cd /opt/nginx/bin/nginx/conf
cp /usr/local/lnmp/nginx/conf/nginx.conf  .
/opt/nginx/nginx/sbin/nginx -t  检查语法
/opt/nginx/nginx/sbin/nginx  打开nginx

4.复制主目录到当前用于检测

cp /usr/local/lnmp/nginx/html/example.php .
cp /usr/local/lnmp/nginx/html/index.php .

5.修改配置文件

vim nginx.conf
upstream memcache {
 19         server localhost:11211;
 20         keepalive 512;
 21         }
 47         location / {
 48         set $key $uri$args;
 49         srcache_fetch GET /memc $key;
 50         srcache_store PUT /mnmc $key;
 51             root   html;
 52             index   index.php index.html index.htm;
 53         }
 54         location /memc{
 55         internal;
 56         memc_connect_timeout 100ms;
 57         memc_send_timeout  100ms;
 58         memc_read_timeout 100ms;
 59         set $memc_key $query_string;
 60         set $memc_exptime 300;
 61         memc_pass memcache;
 62         }

6.访问php加速时间,从每秒1293提高到3540

 

测试浏览器中输入172.25.254.4/memcache.php

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值