LNMP架构 源码安装nginx+mysql+php+memcache+论坛

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

一.LNMP架构

LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。

Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。

Mysql是一个小型关系型数据库管理系统。

PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。

这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。

wKiom1nKWuPylMsdAABdRDcmRQU945.png

二.mysql源码安装


1.cmake源码安装

由于6.5的系统cmake版本较低,需要安装高版本的cmake源码包

wKioL1nKQIjRIqxoAAAh9MdCw8s016.png

wKiom1nKQMbwhuImAAAsoZHm7rA576.png


安装包依赖

wKiom1nKQMbyK6DOAAAayOCgf-E526.png

wKioL1nKQInBX-TDAAA8FlmCcTQ034.png


2.安装mysql 5.7.17

wKiom1nKQMaAooO7AACi0gHWaS4291.png


配置,注意安装路径

wKioL1nKQInhL_iRAABq3a6lpMU834.png


安装包依赖

wKiom1nKQMejO8GIAABMgLvZL6g609.png

wKioL1nKQIrhD1pLAACmMvX7iMM317.png


还是出错,需要删除CMakeCache.txt缓存

wKioL1nKQIqDC79eAAC2hRcCp6Y127.png


每次出错安装包依赖后需要删除缓存

wKiom1nKQMewpOKkAAC0IWmXyY8090.png


编译

wKioL1nKQIrAtAhfAABx9xba_Kg562.png


。。。。。。


wKiom1nKQq7SDAikAABZ3uaXL7M156.png


安装

wKioL1nKQnHyu7qGAABBReOQlq4503.png

wKioL1nKQnHyhiCvAACOfVlChcc457.png


注:运行前删除以前的mysql,除mysql-libs外可以保留

wKiom1nKQq_Q6HShAAAw9Wwlhlg813.png

wKiom1nKQq_ybGmQAAAbYmYmmkU119.png

wKioL1nKQnGQZ-XOAAAcLld40m0912.png



3.配置mysql

进入到mysql下的support-files里

wKioL1nKQnKyTpOVAAA5NmyFOMo017.png

wKiom1nKQq-iHFCHAAA_LYJUTrg987.png


创建启动脚本mysqld放到init.d下,查看是否有x权限

wKiom1nKQq_jWgPEAABPRC9AWfc604.png


创建mysql用户

wKioL1nKQnKDdO57AABE-Dh1kq0830.png


用mysql用户初始化mysql服务,初始化自动生成data

wKiom1nKRIyAIQyEAABDXdj_Oi0597.png

报错,删除data下的所有数据,重新初始化正常

wKioL1nKRE-h1xCCAABV2B0e3HI175.png


将mysql下的文件权限变为mysql,以便用mysql用户能启动服务

wKiom1nKQrCQPT-QAAGMOajm0XI533.png


添加mysql的变量路径,以便能自动读取

wKiom1nKRUzhEUaQAADugrNkboA752.png

wKioL1nKQnLAPDOLAABK5Bl2qLE801.png


初始化完成,为了安全期间,将出data目录外,剩下的目录都变为root可读

启动mysql服务

wKiom1nKRUzhLQdOAAGrMmXW-uQ158.png

wKioL1nKRQ-g5G-JAABGbunXFi8002.png


4.测试mysql服务,并设置mysql密码

wKioL1nKRQ-xxCF3AABlhD6SkG0452.png

wKiom1nKRU3xNaBCAAAufejZ8tQ055.png

wKiom1nKRU3iosaDAACj8fXO0bM638.png

wKioL1nKRQ_BeMo4AADqLS5YcZI127.png

wKioL1nKRRCQtQ73AABxWbtYSVI993.png


进入mysql正常,密码为Westos_123

wKiom1nKRU3gOkonAACKdIVleI0302.png

wKiom1nKRU2Q4xtdAABIwqBGk84253.png

wKioL1nKRRDyDVjZAABKCjnc9wU740.png



三.php源码安装

1.安装php源码包

wKioL1nKRqKQ3Wm5AAA7TpWPYkY253.png

wKiom1nKRuDSUkf-AAARtBWEx7k241.png


安装包依赖

wKioL1nKRqOhXa9qAAAV1xIMaeY434.png

wKiom1nKRuHQXK96AADVJ_fIEwc973.png

wKioL1nKRqOAH_QvAABxJ3VjqLs031.png

wKiom1nKRuGAqF-GAAAcS5sZa3A607.png


配置出错,继续安装包依赖

wKiom1nKRuGAivZnAAAnniTUnwo446.png


配置

wKioL1nKRqTC2Q9-AABi_1LI9Uo486.png

wKiom1nKRuGB6FjmAAEDIUtVS6M581.png


创建nginx用户

wKioL1nKRqSw0BjZAABDA06x9L4103.png


生成Makefile文件,编译

wKiom1nKRuKDrO80AAAtCRwvN6k255.png


编译成功

wKioL1nKRqSAX5ExAACNevPzU9M960.png


安装,生成安装后的目录

wKioL1nKRqWSmVDkAAEbBIN9bpc484.png



2.配置php文件

wKiom1nKSFuynqaaAABBJCyYtUI921.png


wKiom1nKSFvhGxmsAABCQL9t5IU569.png


配置php.ini文件

wKioL1nKSB6QwbezAABJKTfZSKU688.png


配置php-fpm.conf文件

wKiom1nKSFzBSdPJAAAuWIjS-XA310.png


wKioL1nKSB7ikt5ZAACbG-w38Dw025.png


完成后将服务启动脚本放置到init.d下,加上可执行权限x

将php的路径添加到环境变量中去

wKiom1nKSFyzxabvAACtswFGGdI411.png

wKioL1nKSB6x2d3FAABNSNJF_Ek193.png


重新启动php-fpm服务,端口9000显示正常

wKioL1nKSB_C6anbAACl8u83VC0165.png



四.Nginx源码安装


1.解压,配置,关闭gcc编译,去掉版本号

wKiom1nKUDyid_klAAAlliv3Cfo131.png

wKioL1nKT__xh8OeAAAr3sQOStM161.png


wKiom1nKUDrDq-3mAABxWKrT7ug429.png


编译

wKiom1nKUDqSqMfoAADikObrWgQ494.png


安装

wKiom1nKUDvQXrmPAABvJmSAzbA008.png


检查语法

wKioL1nKT__QFQEBAABjQwHJg7U229.png



做启动服务的软链接,重新加载nginx服务

wKioL1nKULmBx5QaAABTGjQdttg386.png

wKioL1nKULmjGYOcAAA3fMqKeY8443.png


2.配置nginx服务

wKioL1nKULvRXu1RAABuGX3WSkc964.png


配置主页面为php,修改include为 fastcgi.conf

wKiom1nKUPfSeunhAAA6Pp9NTP8039.png

wKiom1nKUPejV82HAAA9ftgZ1EM028.png


vim index.php     php访问页面

wKiom1nKUPjj7X0nAAAUkqDonkQ551.png


vim php.ini

在此配置文件当中,需要有三个地方添加mysql.sock文件

wKioL1nKULqiWIMQAABCNL4jseA054.png

wKioL1nKULrQ4cr4AABA1RBxRoE080.png

wKiom1nKUPiySaEmAAA9so3ds70255.png


配置完成,重启nginx服务

wKiom1nKUPjTs3zYAAA1tB25_LU614.png

wKiom1nKUm_DewiiAAANqsR_prc070.png

wKiom1nKUm-QRVrbAAA1vHxgbD4823.png


3.在客户机测试php访问页面,mysql接口显示正常

wKioL1nKUjKB2-9mAAEJzzyUALY671.png

wKioL1nKUjLit8ltAACtFDZeJ-g740.png



五.论坛Discuz的搭建

1.安装Discuz论坛包

安装解压工具

wKioL1nKUtrCxl5cAAAO7YQxlWU479.png

wKiom1nKUxjye18aAABYZ8xWv8g989.png


将upload移到nginx的html发布目录里,重命名为bbs

wKiom1nKUxjjrs2JAABxSMiwinE470.png



2.配置Discuz论坛包

客户机浏览器输入172.25.29.1/bbs进入安装配置界面

wKioL1nKUtvietTNAAH9959lOLo509.png

wKioL1nKUtugzV-uAAEDie-DvSw422.png



当前状态不能写入,需要修改以下目录的权限为777

wKiom1nKUxnDt6hqAABxlI1qLes089.png


wKiom1nKUxnA0qKNAADK06EK5ds798.png

wKioL1nKUtzwfyD4AAC_me1vXlM477.png

wKiom1nKUxqSA1cWAADLjgChBYw672.png

wKioL1nKUtyyt-q8AACouDZw0Bc344.png



数据库连接错误,属于权限问题,将数据库的data目录权限修改为775

wKiom1nKUxqAmwGXAAEiKpaHs4I911.png


修改权限后,刷新页面继续安装

wKiom1nKVI_AZP6ZAAEjmbegemE015.png


输入用户名和密码后正常登陆

wKiom1nKVJDB5JOOAAC6ekNdRlw181.png

wKioL1nKVFKjRs9xAAAt2tD0AKY241.png

wKioL1nKVFLD5KAiAABwCbniUCg280.png

wKiom1nKVJDSuReDAABqEZyRJ4A931.png


需要删除index.php,以免冲突

wKioL1nKVFPAWgHmAAAwxqwWdeI921.png


删除后正常访问

wKiom1nKVJHyQyCcAADC3BDdkzc003.png



3.测试论坛与数据库的连接情况

wKiom1nKVJGxi6MCAADBygTLdEw189.png

wKioL1nKVFTim2c5AABAYT5b_Js126.png

wKioL1nKVFTiK-6aAABt5wPfs0Q684.png

wKiom1nKVJGQfHp9AABMdMxZmSc706.png

论坛数据已经保存的数据库,初级lnmp搭建成功



六.MemCache的源码安装

         MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象 来减少读取数据库的次数,从而提高了网站访问的速度。MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据(比如字符串、对象等)所 使用的key-value存储,数据可以来自数据库调用、API调用,或者页面渲染的结果。


1.安装memcache源码包,编译,安装

wKiom1nKVq7w6KOdAABXMwJccLA795.png

wKioL1nKVnHwiKY-AAAPCECDS1o920.png

wKioL1nKVnGAalAcAAANzZj5dt4698.png

wKiom1nKVq7CHJRlAAAQs4mRbl0716.png


wKioL1nKVnKjgDdBAAAAhXsJ3VI762.png

wKiom1nKVq-CDuWTAACTg8Ty2dA741.png


vim php.ini

wKiom1nKVq-RtRDDAABdsqECjqw720.png



2.在客户机测试php访问页面,memcache显示正常

wKiom1nKVrCRjVcsAABqvPZ77kw969.png


3.安装memcached测试客户端,启动服务

wKioL1nKVnLAutsmAAAa0t5vE_E628.png

wKiom1nKVrCiY7FcAABJFIyRIiM761.png


4.将两个memcache测试文件拷入nginx下的html发布目录

wKioL1nKVnPT1cEIAABgT6S66Bc648.png


5.编辑memcache.php文件

wKiom1nKVrCjM2EbAACVyVKeokg145.png


6.测试memcache访问页面,账户:memcache     密码:westos

wKioL1nKVnPRwt_IAACztqNcGPU625.png

wKioL1nKVnOy8e2pAADrPB14aWo579.png








      本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1968971,如需转载请自行联系原作者




相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
16天前
|
NoSQL 关系型数据库 MySQL
微服务架构下的数据库选择:MySQL、PostgreSQL 还是 NoSQL?
在微服务架构中,数据库的选择至关重要。不同类型的数据库适用于不同的需求和场景。在本文章中,我们将深入探讨传统的关系型数据库(如 MySQL 和 PostgreSQL)与现代 NoSQL 数据库的优劣势,并分析在微服务架构下的最佳实践。
|
1月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
1月前
|
PHP
PHP全自动采集在线高清壁纸网站源码
PHP全自动采集在线高清壁纸网站源码,PHP全自动采集在线高清壁纸网站源码,一款开源壁纸源码,无需安装。集合360壁纸,百度壁纸,必应壁纸,简单方便。每天自动采集,自动更新,非常不错,php源码 网站源码 免费源码 自动采集。
47 3
|
1月前
|
PHP 数据库
2024表白墙PHP网站源码
2024表白墙PHP网站源码
31 1
|
2月前
|
安全 BI PHP
php前后端分离,仓储模式r的医院不良事件上报系统源码
此医院安全不良事件管理系统采用前后端分离架构(PHP+Laravel8+Vue2+Element),实现事件上报至解决的全流程管理。系统支持结构化上报、数据自动引用、智能流程及预警,配备质控分析工具生成各类报表。通过PDCA闭环管理,确保事件得到有效处置并预防再发,同时提供便捷上报通道,优化上报效率。
php前后端分离,仓储模式r的医院不良事件上报系统源码
|
2月前
|
设计模式 算法 PHP
深入理解PHP中的数组操作探索编程之美:从代码到架构的思维转变
【8月更文挑战第24天】在PHP编程中,数组是基础且强大的数据结构。本文将通过浅显易懂的方式,介绍如何在PHP中高效地操作数组,包括创建、遍历、排序和过滤等常见任务。无论你是初学者还是有经验的开发者,这篇文章都会带给你新的启示。 【8月更文挑战第24天】在编程的世界中,代码不仅仅是冰冷的字符排列,它承载着思想、解决问题的智慧和创新的灵魂。本文将通过个人的技术感悟,带领读者从编写单一功能的代码片段出发,逐步深入到整个软件架构的设计哲学,探索如何将代码块转化为高效、可维护和可扩展的系统。我们将一起见证,当代码与架构思维相结合时,如何引发技术实践的革命性飞跃。
|
2月前
|
关系型数据库 MySQL Linux
【一键解锁神秘力量!】CentOS 7 通过编译源码方式安装 MySQL 数据库 —— 从零到英雄的数据库安装实战秘籍!
【8月更文挑战第9天】随着业务增长,对数据库的需求日益提高。在 CentOS 7 中,通过编译源码安装 MySQL 可提供更高定制性和灵活性。本文详细介绍从准备环境、下载源码、配置编译参数到安装 MySQL 的全过程,并对比 RPM 包安装方法,帮助读者根据需求选择合适方案。实践时需注意备份数据、选择合适版本、确保安全性和调优性能等要点。
150 1
|
2月前
|
前端开发 关系型数据库 MySQL
最新黑名单查询录入系统PHP网站源码
最新黑名单查询录入系统PHP网站源码 前端html 后端layui 操作部分都采用API接口的方式实线 集结了layui表格的多数据操作,添加,批量删除,分页,单项删除 后台数据修改采用绑定参数的形式来进行修改可以很好的预防数据库注入,当然如果你想要测试这个防注入的你也可以尝试一下 PHP版本70+ 数据库Mysql 5.6 上传程序访问 http://你的域名/install 安装
60 0
|
2月前
|
SQL 关系型数据库 MySQL
(二十五)MySQL主从实践篇:超详细版读写分离、双主热备架构搭建教学
在上篇《主从原理篇》中,基本上把主从复制原理、主从架构模式、数据同步方式、复制技术优化.....等各类细枝末节讲清楚了,本章则准备真正对聊到的几种主从模式落地实践,但实践的内容通常比较枯燥乏味,因为就是调整各种配置、设置各种参数等步骤。
267 2
|
3月前
|
Cloud Native PHP Docker
PHP 中的异常处理:提升代码的健壮性云原生时代的微服务架构实践
【7月更文挑战第31天】在PHP开发中,异常处理是确保应用程序稳定性和可靠性的关键。本文将引导您了解如何在PHP中实现有效的异常处理机制,通过实际代码示例展示如何捕获和处理异常,以及如何使用自定义异常类来增强错误管理的灵活性。我们将探索不同的异常处理策略,并讨论它们对提升代码质量的影响。 【7月更文挑战第31天】在数字化浪潮的推动下,云原生技术正成为企业转型的关键。本文将深入探讨如何在云平台上利用微服务架构实现敏捷开发和高效运维,通过具体的代码示例,揭示微服务与容器化部署的协同优势,同时指出在实施过程中可能遇到的挑战及应对策略。
27 1
下一篇
无影云桌面