实战从源码编译LAMP架构+Discuz搭建bbs论坛

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

实验环境: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支持


wKiom1feHTfQPCfmAAEAv9mPOmQ984.png


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网页搭建论坛


wKiom1feHZ6DLC9XAACLDewwPrE014.png


wKioL1feHZ_DPLtTAACT8DXslV8254.png


wKiom1feHZ_g9Qu_AAAwWEYIa8o202.png


wKioL1feHaChV9R0AAB5dzlZi24670.png


wKioL1feHaGi4aB9AABh8zJpbBE050.png



wKiom1fU1xvjSEWzAAE7ITyYv_M734.png



    搞定.


本文转自willis_sun 51CTO博客,原文链接:http://blog.51cto.com/willis/1853585,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
17天前
|
消息中间件 大数据 关系型数据库
RocketMQ实战—3.基于RocketMQ升级订单系统架构
本文主要介绍了基于MQ实现订单系统核心流程的异步化改造、基于MQ实现订单系统和第三方系统的解耦、基于MQ实现将订单数据同步给大数据团队、秒杀系统的技术难点以及秒杀商详页的架构设计和基于MQ实现秒杀系统的异步化架构。
RocketMQ实战—3.基于RocketMQ升级订单系统架构
|
9天前
|
人工智能 安全 Java
智慧工地源码,Java语言开发,微服务架构,支持分布式和集群部署,多端覆盖
智慧工地是“互联网+建筑工地”的创新模式,基于物联网、移动互联网、BIM、大数据、人工智能等技术,实现对施工现场人员、设备、材料、安全等环节的智能化管理。其解决方案涵盖数据大屏、移动APP和PC管理端,采用高性能Java微服务架构,支持分布式与集群部署,结合Redis、消息队列等技术确保系统稳定高效。通过大数据驱动决策、物联网实时监测预警及AI智能视频监控,消除数据孤岛,提升项目可控性与安全性。智慧工地提供专家级远程管理服务,助力施工质量和安全管理升级,同时依托可扩展平台、多端应用和丰富设备接口,满足多样化需求,推动建筑行业数字化转型。
47 5
|
18天前
|
监控 NoSQL 算法
百万级URL重定向工程:大规模网站架构设计与性能优化实战
本文深入探讨了大规模重定向系统的核心挑战与解决方案,涵盖技术瓶颈分析、分布式架构设计、十亿级URL处理策略、全球化部署方案及全链路监控体系。通过数学建模与性能优化,提出三层架构模型,并结合一致性哈希分片算法实现高效路由。同时,对比不同架构的吞吐量与容灾能力,分享某电商平台实践案例,展示性能显著提升。最后展望重定向即服务(RaaS)未来趋势,包括AI动态路由、量子安全跳转和边缘智能等关键技术,为企业提供扩展性强、稳定性高的系统设计参考。
76 25
|
18天前
|
边缘计算 监控 安全
301重定向进阶实战:从性能优化到未来架构演进
本文探讨了百万级流量动态重定向的架构设计与优化方案,结合全球电商平台迁移案例,展示基于Nginx+Lua的动态规则引擎及流量分级策略。同时,深入分析性能优化与安全加固技术,如零延迟跳转、智能熔断机制,并提出混合云环境下的跨平台解决方案。此外,针对SEO数据继承与流量恢复提供三维权重映射模型和自动化监测工具链。最后,展望边缘计算、区块链及量子安全等下一代重定向技术,为企业构建面向未来的体系提供参考。
67 7
|
1月前
|
运维 供应链 前端开发
中小医院云HIS系统源码,系统融合HIS与EMR功能,采用B/S架构与SaaS模式,快速交付并简化运维
这是一套专为中小医院和乡镇卫生院设计的云HIS系统源码,基于云端部署,采用B/S架构与SaaS模式,快速交付并简化运维。系统融合HIS与EMR功能,涵盖门诊挂号、预约管理、一体化电子病历、医生护士工作站、收费财务、药品进销存及统计分析等模块。技术栈包括前端Angular+Nginx,后端Java+Spring系列框架,数据库使用MySQL+MyCat。该系统实现患者管理、医嘱处理、费用结算、药品管控等核心业务全流程数字化,助力医疗机构提升效率和服务质量。
|
1月前
|
机器学习/深度学习 设计模式 API
Python 高级编程与实战:构建微服务架构
本文深入探讨了 Python 中的微服务架构,介绍了 Flask、FastAPI 和 Nameko 三个常用框架,并通过实战项目帮助读者掌握这些技术。每个框架都提供了构建微服务的示例代码,包括简单的 API 接口实现。通过学习本文,读者将能够使用 Python 构建高效、独立的微服务。
|
1月前
|
消息中间件 安全 NoSQL
布谷直播系统源码开发实战:从架构设计到性能优化
作为山东布谷科技的一名技术研发人员,我参与了多个直播系统平台从0到1的开发和搭建,也见证了直播行业从萌芽到爆发的全过程。今天,我想从研发角度,分享一些直播系统软件开发的经验和心得,希望能对大家有所帮助。
|
4月前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
18天前
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
103 12
|
5月前
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
127 3
下一篇
oss创建bucket
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等