实战从源码编译LAMP架构+Discuz搭建bbs论坛
实验环境:RHEL6.5server1.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)
# ls
cmake-2.8.12.2-4.el6.x86_64.rpm mysql-boost-5.7.11.tar.gz
# tar -zxf mysql-boost-5.7.11.tar.gz
# cd mysql-5.7.11
2 )
# yum update cmake-2.8.12.2-4.el6.x86_64.rpm
# 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路径
# make ###编译
# make install ###安装
注意:
rm -fr CMakeCache.txt ##错误解决完毕每次删除
lscpu ##检测cpu
top按1 ##检测每个cpu负载
make -j2##用两个cpu做编译
4)设定mysql信息
# groupadd -g 27 mysql
# useradd -u 27 -g 27 -s /bin/false mysql
# cp /usr/local/lnmp/mysql/support-files/mysql.server /etc/init.d/
# mv /etc/my.cnf /etc/my.cnf.bak
# cp /usr/local/lnmp/mysql/support-files/my-default.cnf /etc/my.cnf
# vim /etc/profile
PATH=$PATH:/usr/local/lnmp/mysql/bin
# source /etc/profile
# chown -R mysql.mysql /usr/local/lnmp/mysql
# mysqld --initialize --user=mysql
( --initialize-insecure ##密码为空,--user=mysql ##运行用户 --basedir= ##mysql基本目录 --datadir= ##mysql数据目录)
2016-09-15T04:12:17.004704Z 0 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 A temporary password is generated for root@localhost: jT!#LrMg-5t1 《《《数据库密码(安全初始化时需要使用)
# chown -R root /usr/local/lnmp/mysql/
# chown -R mysql /usr/local/lnmp/mysql/data/
# /etc/init.d/mysql.server start
# 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版本号
# tar -zxf nginx-1.9.14.tar.gz
# cd nginx-1.9.14
# vim src/core/nginx.h ##伪装版本
#define nginx_version 1009014
#define NGINX_VERSION "1.9.14"
#define NGINX_VER "willis/"
# vim auto/cc/gcc##关闭debug调式
178 # debug
179 #CFLAGS="$CFLAGS -g"
# groupadd -g 666 nginx
# useradd -u 666 -g 666 -s /sbin/nologin nginx
2.2编译安装
# yuminsall pcre-devel openssl-devel -y
# ./configure \
> --prefix=/usr/local/lnmp/nginx \
> --with-http_ssl_module \
> --with-http_stub_status_module ##监控模块
# make
# makeinstall
# cd /usr/local/lnmp/nginx/
# vim /etc/profile
export PATH=$PATH:/usr/local/lnmp/mysql/bin:/usr/local/lnmp/nginx/sbin
# source /etc/profile
# nginx ##开启nginx
# netstat -antple |grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 0 181762 29192/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
# du -sh /usr/local/lnmp/nginx/ ###轻量级nginx
944K /usr/local/lnmp/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
# nginx -s reload ##加载配置
3.PHP源码编译
3.1编译安装php
# 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
# yum install libxml2-develcurl-develgd-devel-2.0.35-11.el6.x86_64.rpm gmp-develnet-snmp-devel.x86_64re2c-0.13.5-1.el6.x86_64.rpm-y
# tar -jxf php-5.6.19.tar.bz2
# cd 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
# make
# makeinstall
3.2php 配置
# cp php.ini-production /usr/local/lnmp/php/etc/php.ini
# cd /usr/local/lnmp/php/etc
# cp php-fpm.conf.defaultphp-fpm.conf
# vim php-fpm.conf
25 pid = run/php-fpm.pid# 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# cd /mnt/php-5.6.19/sapi/fpm/
# mvinit.d.php-fpm/etc/init.d/fpm
# chmod +x /etc/init.d/fpm
# chmod 775 /usr/local/ln
# /etc/init.d/fpm start
# vim /etc/profile
exportPATH=$PATH: /usr/local/lnmp/php/bin: /usr/local/lnmp/php/sbin
# source /etc/profile
# php -m ##查看php支持插件
3.3配置nginx使其支持php
# vim /usr/local/lnmp/nginx/html/index.php##php测试页
<?php
phpinfo();
?>
# 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_indexindex.php;
77 fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name;
78 include fastcgi.conf; ##修改成存在的名称
79 }
# 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
# nginx -s reload
3.4 测试nginx对php支持
4.搭建论坛
4.1新建数据库并赋权限
# ls
Discuz_X3.2_SC_UTF8.zip
# unzip Discuz_X3.2_SC_UTF8.zip-d /usr/local/lnmp/nginx/html
# cd /usr/local/lnmp/nginx/html
# mv upload/ bbs
# chmod -R 777 bbs/
# 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网页搭建论坛
搞定.
页:
[1]