实验环境:RHEL6.5 server1.example.com 172.25.254.1
实验环境:RHEL6.5
实验内容:1.MYSQL源码编译
2.NGINX源码编译
3.PHP源码编译
4.搭建论坛
安装包:cmake-2.8.12.2-4.el6.x86_64.rpm
mysql-boost-5.7.11.tar.gz
gd-devel-2.0.35-11.el6.x86_64.rpm
nginx-1.9.14.tar.gz
re2c-0.13.5-1.el6.x86_64.rpm
php-5.6.19.tar.bz2
Discuz_X3.2_SC_UTF8.zip
1.MYSQL源码编译
1)
[root@server1 1.mysql编译]# ls
cmake-2.8.12.2-4.el6.x86_64.rpm mysql-boost-5.7.11.tar.gz
[root@server1 1.mysql编译]# tar -zxf mysql-boost-5.7.11.tar.gz
[root@server1 1.mysql编译]# cd mysql-5.7.11
2 )
[root@server1 1.mysql编译]# yum update cmake-2.8.12.2-4.el6.x86_64.rpm
[root@server1 mnt]# yum install cmake gcc gcc-c++ ncurses-devel bison -y
3) 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 \ ##mysql引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DDEFAULT_CHARSET=utf8 \ ##使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci \ ##校验字符
-DEXTRA_CHARSETS=all \ ##安装所有扩展字符集
-DWITH_BOOST=boost/boost_1_59_0/ \ ##boost路径
[root@server1 mysql-5.7.11]# make ###编译
[root@server1 mysql-5.7.11]# make install ###安装
注意:
rm -fr CMakeCache.txt ##错误解决完毕每次删除
lscpu ##检测cpu
top 按1 ##检测每个cpu负载
make -j2##用两个cpu做编译
4)设定mysql信息
[root@server1 php-5.6.19]# groupadd -g 27 mysql
[root@server1 php-5.6.19]# useradd -u 27 -g 27 -s /bin/false mysql
[root@server1 php-5.6.19]# cp /usr/local/lnmp/mysql/support-files/mysql.server /etc/init.d/
[root@server1 php-5.6.19]# mv /etc/my.cnf /etc/my.cnf.bak
[root@server1 php-5.6.19]# cp /usr/local/lnmp/mysql/support-files/my-default.cnf /etc/my.cnf
[root@server1 php-5.6.19]# vim /etc/profile
PATH=$PATH:/usr/local/lnmp/mysql/bin
[root@server1 php-5.6.19]# source /etc/profile
[root@server1 php-5.6.19]# chown -R mysql.mysql /usr/local/lnmp/mysql
[root@server1 php-5.6.19]# mysqld --initialize --user=mysql
( --initialize-insecure ##密码为空,--user=mysql ##运行用户 --basedir= ##mysql基本目录 --datadir= ##mysql数据目录)
2016-09-15T04:12:17.004704Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
。。。。。。。。。。。。。。
2016-09-15T04:12:17.626882Z 1 [Note] A temporary password is generated for root@localhost: jT!#LrMg-5t1 《《《数据库密码(安全初始化时需要使用)
[root@server1 php-5.6.19]# chown -R root /usr/local/lnmp/mysql/
[root@server1 php-5.6.19]# chown -R mysql /usr/local/lnmp/mysql/data/
[root@server1 php-5.6.19]# /etc/init.d/mysql.server start
[root@server1 php-5.6.19]# mysql_secure_installation ####安全初始化
Securing the MySQL server deployment.
Enter password for user root: ###此处输入前边产生的密码
Press y|Y for Yes, any other key for No: y
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1 ##选择密码类型
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y ###修改密码
New password:
Re-enter new password:
Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
All done!
2.NGINX源码编译
2.1关闭debug调式模式,屏蔽nginx版本号
[root@server1 mnt]# tar -zxf nginx-1.9.14.tar.gz
[root@server1 mnt]# cd nginx-1.9.14
[root@server1 nginx-1.9.14]# vim src/core/nginx.h ##伪装版本
#define nginx_version 1009014
#define NGINX_VERSION "1.9.14"
#define NGINX_VER "willis/"
[root@server1 nginx-1.9.14]# vim auto/cc/gcc ##关闭debug调式
178 # debug
179 #CFLAGS="$CFLAGS -g"
[root@server1 fpm]# groupadd -g 666 nginx
[root@server1 fpm]# useradd -u 666 -g 666 -s /sbin/nologin nginx
2.2编译安装
[root@server1 nginx-1.9.14]# yum insall pcre-devel openssl-devel -y
[root@server1 nginx-1.9.14]# ./configure \
> --prefix=/usr/local/lnmp/nginx \
> --with-http_ssl_module \
> --with-http_stub_status_module ##监控模块
[root@server1 nginx-1.9.14]# make
[root@server1 nginx-1.9.14]# make install
[root@server1 nginx-1.9.14]# cd /usr/local/lnmp/nginx/
[root@server1 nginx]# vim /etc/profile
export PATH=$PATH:/usr/local/lnmp/mysql/bin:/usr/local/lnmp/nginx/sbin
[root@server1 nginx]# source /etc/profile
[root@server1 nginx]# nginx ##开启nginx
[root@server1 nginx]# netstat -antple |grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 0 181762 29192/nginx
[root@server1 nginx]# curl -I localhost ##检测http协议提供程序
HTTP/1.1 200 OK
Server: willis/ ###显示版本已经隐藏
Date: Thu, 15 Sep 2016 04:48:49 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Wed, 14 Sep 2016 21:26:20 GMT
Connection: keep-alive
ETag: "57d9c07c-264"
Accept-Ranges: bytes
[root@server1 nginx]# du -sh /usr/local/lnmp/nginx/ ###轻量级nginx
944K/usr/local/lnmp/nginx/
[root@server1 nginx]# nginx -t ##检测nginx配置
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@server1 nginx]# nginx -s reload ##加载配置
3.PHP源码编译
3.1编译安装php
[root@server1 mnt]# ls
gd-devel-2.0.35-11.el6.x86_64.rpm re2c-0.13.5-1.el6.x86_64.rpm php-5.6.19.tar.bz2
[root@server1 mnt]# yum install libxml2-devel curl-devel gd-devel-2.0.35-11.el6.x86_64.rpm gmp-devel net-snmp-devel.x86_64 re2c-0.13.5-1.el6.x86_64.rpm -y
[root@server1 mnt]# tar -jxf php-5.6.19.tar.bz2
[root@server1 mnt]# cd php-5.6.19
[root@server1 php-5.6.19]# ./configure --prefix=/usr/local/lnmp/php \
> --with-config-file-path=/usr/local/lnmp/php/etc \
> --with-mysql=mysqlnd \##自动加载mysql信息
> --with-mysqli=mysqlnd \
> --with-pdo-mysql=mysqlnd \
> --with-openssl \
> --with-snmp \##加载简单网管协议
> --with-gd \##支持图形
> --with-zlib \##支持网页压缩
> --with-curl \##支持文本浏览
> --with-libxml-dir \##支持xml
> --with-png-dir \##支持png图片
> --with-jpeg-dir \##支持jpeg
> --with-freetype-dir \
> --without-pear \##不联网安装
> --with-gettext \##
> --with-gmp \##支持gmp
> --enable-inline-optimization \
> --enable-soap \##支持动态加载模块
> --enable-ftp \##支持ftp
> --enable-sockets \##支持套结字
> --enable-mbstring \
> --enable-fpm \
> --with-fpm-user=nginx \##使php和nginx权限一致
> --with-fpm-group=nginx
[root@server1 php-5.6.19]# make
[root@server1 php-5.6.19]# make install
3.2php 配置
[root@server1 php-5.6.19]# cp php.ini-production /usr/local/lnmp/php/etc/php.ini
[root@server1 php-5.6.19]# cd /usr/local/lnmp/php/etc
[root@server1 etc]# cp php-fpm.conf.default php-fpm.conf
[root@server1 etc]# vim php-fpm.conf
25 pid = run/php-fpm.pid
[root@server1 etc]# vim php.ini
925 date.timezone = Asia/Shanghai
1001 pdo_mysql.default_socket=/usr/local/lnmp/mysql/data/mysql.sock
1150 mysql.default_socket=/usr/local/lnmp/mysql/data/mysql.sock
1209 mysqli.default_socket=/usr/local/lnmp/mysql/data/mysql.sock
[root@server1 etc]# cd /mnt/php-5.6.19/sapi/fpm/
[root@server1 fpm]# mv init.d.php-fpm /etc/init.d/fpm
[root@server1 fpm]# chmod +x /etc/init.d/fpm
[root@server1 fpm]# chmod 775 /usr/local/ln
[root@server1 fpm]# /etc/init.d/fpm start
[root@server1 fpm]# vim /etc/profile
export PATH=$PATH: /usr/local/lnmp/php/bin: /usr/local/lnmp/php/sbin
[root@server1 fpm]# source /etc/profile
[root@server1 fpm]# php -m ##查看php支持插件
3.3配置nginx使其支持php
[root@server1 fpm]# vim /usr/local/lnmp/nginx/html/index.php ##php测试页
<?php
phpinfo();
?>
[root@server1 fpm]# vim /usr/local/lnmp/nginx/conf/nginx.conf
47 location / {
48 root html;
49 index index.php index.html index.htm;
50 }
73 location ~ \.php$ {
74 root html;
75 fastcgi_pass 127.0.0.1:9000;
76 fastcgi_index index.php;
77 fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
78 include fastcgi.conf; ##修改成存在的名称
79 }
[root@server1 fpm]# 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@server1 fpm]# nginx -s reload
3.4 测试nginx对php支持
4.搭建论坛
4.1新建数据库并赋权限
[root@server1 mnt]# ls
Discuz_X3.2_SC_UTF8.zip
[root@server1 mnt]# unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lnmp/nginx/html
[root@server1 mnt]# cd /usr/local/lnmp/nginx/html
[root@server1 html]# mv upload/ bbs
[root@server1 html]# chmod -R 777 bbs/
[root@server1 html]# mysql -uroot -p
mysql> CREATE DATABAsE discuz;
Query OK, 1 row affected (0.00 sec)
mysql> CREATE USER discuz@localhost identified by 'Willis123./';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL ON discuz.* to discuz@localhost identified by 'Willis123./';
Query OK, 0 rows affected, 1 warning (0.00 sec)
4.2网页搭建论坛
搞定.