基础的LNMP架构网站以及利用redis为网站添加缓存层

打印 上一主题 下一主题

主题 1015|帖子 1015|积分 3045

前言

LNMP架构是指一种常见的网站服务器架构,它由Linux、Nginx、MySQL/MariaDB和PHP/Perl/Python等开源软件组成。

1.基本组件


  • Linux:作为操作系统,Linux为LNMP架构提供了稳固和高效的运行环境。
  • Nginx:作为高性能的Web服务器和反向代理服务器,Nginx在处理并发连接方面表现出色。
  • MySQL/MariaDB:作为关系型数据库管理系统,MySQL或其分支MariaDB用于存储网站数据。
  • PHP/Perl/Python:作为服务器端脚本语言,它们嵌入在HTML中,用于创建动态网页内容。
    2.工作原理
  • 哀求处理:用户通过欣赏器发起HTTP哀求,首先到达Nginx服务器。如果是静态资源哀求,Nginx直接返回文件;如果是动态哀求,则通过FastCGI协议转发给PHP-FPM历程处理。
  • 动态内容处理:PHP-FPM管理历程吸取到哀求后,将使命分配给PHP剖析器(PHP-CGI)处理,可能涉及到查询MySQL数据库。处理完成后,效果返回给Nginx,终极发送回用户欣赏器。
    3.部署步骤
  • 系统优化:安装Linux系统并进行基础优化,如关闭防火墙和SElinux,设置合适的目次权限。
  • 服务部署:依次安装Nginx、MySQL/MariaDB和PHP,配置各自的服务并启动。
  • 环境测试:完成安装后,进行环境测试以确保各组件正常运行,如创建测试页面验证PHP是否工作正常。
    4.架构优势
  • 性能高效:Nginx的高并发处理能力和低资源消耗使得LNMP架构非常得当高流量网站。
  • 成本低廉:所有组成软件均为开源免费,降低了网站运营成本。
  • 机动扩展:LNMP架构支持多种编程语言和数据库,便于根据需求进行扩展。
    总的来说,LNMP架构是一种性能高效、成本低廉且机动可扩展的网站服务器架构。它实用于各种规模的Web应用,从个人博客到大型企业网站都能提供稳固可靠的服务。本篇文章介绍搭建基础的LNMP架构网站以及利用redis为网站添加缓存层,提拔Web应用的性能和相应速度。
实验环境介绍

1、一台安装了Nginx、MySQL、Redis的4u4g CentOS7捏造机
如何部署Nginx请看Nginx部署以及划分捏造主机
如何部署MySQL请看运维实战—多种方式在Linux中部署并初始化MySQL
如何部署Redis请看redis集群的三种部署方式——主从复制、哨兵机制、cluster集群
2、Xshell远程连接工具
3、Discuz3.3论坛源码包,可以在官方网站discuz.net或者GitHub下载
一、安装PHP并使其作为服务器端脚本语言

为PHP安装依赖
  1. yum -y install gd libxml2-devel libjpeg-devel libpng-devel
复制代码


上传php软件包
  1. yum -y install lrzsz
复制代码


将php解压到指定路径下
  1. tar -zxf php-5.3.38.tar.gz -C /usr/src/
  2. cd /usr/src/php-5.3.38/
复制代码

为php进行预编译
  1. ./configure --prefix=/usr/local/php --with-gd --with-zlib --with-mysql=mysqlnd --with-config-file-path=/usr/local/php --enable-fpm --enable-mbstring --with-jpeg-dir=/usr/lib --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config
复制代码
–prefix=/usr/local/php: 指定PHP安装的根目次为/usr/local/php
–with-gd: 启用GD库支持,GD库用于处理图像
–with-zlib: 启用Zlib压缩库支持,Zlib用于数据压缩息争压缩
–with-mysql=mysqlnd: 利用MySQL Native Driver(mysqlnd)作为MySQL数据库接口
–with-config-file-path=/usr/local/php: 指定PHP配置文件(php.ini)的路径为/usr/local/php
–enable-fpm: 启用FastCGI Process Manager(FPM)
–enable-mbstring: 启用多字节字符串支持
–with-jpeg-dir=/usr/lib: 指定JPEG库的安装目次为/usr/lib。JPEG库用于处理JPEG图像格式
–with-mysql=/usr/local/mysql: 指定MySQL的安装路径为/usr/local/mysql
–with-mysqli=/usr/local/mysql/bin/mysql_config: 指定MySQLi扩展的配置脚本路径为/usr/local/mysql/bin/mysql_config,这是用于配置MySQLi扩展的辅助工具


编译安装
  1. make -j4 && make install
复制代码


PHP安装完毕
编辑nginx的配置文件,配置PHP支持(fastcgi相干信息)
  1. cd /usr/local/nginx/conf/
  2. vim nginx.conf
复制代码

其中所在与端口要填写PHP-FPM历程监听的IP所在以及端口

检查nginx配置文件无误后重启nginx
  1. nginx -t
  2. nginx -s quit
  3. nginx
复制代码

设置PHP-FPM历程监听的IP所在以及端口,其中9000是PHP-FPM的默认端口
  1. vim /usr/local/php/etc/php-fpm.conf
复制代码


进入PHP的安装路径编辑配置文件
  1. cd /usr/src/php-5.5.38/
  2. cp php.ini-development /usr/local/php/php.ini
  3. vim /usr/local/php/php.ini
复制代码

设置PHP脚本的默认字符集为UTF-8,防止网页出现乱码

打开做验证的脚本格式

将init.d.php-fpm拷贝到系统的init.d目次下并赋予实验权限,以便以服务的情势管理PHP-FPM
  1. cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
  2. chmod +x /etc/init.d/php-fpm
  3. chkconfig --add php-fpm
复制代码

编辑PHP的配置文件,启用历程id,使得服务能够启动
  1. cd /usr/local/php/etc/
  2. cp php-fpm.conf.default php-fpm.conf
  3. vim php-fpm.conf
复制代码


为php命令做软链接使得在系统的各个路径下都能利用php命令

启动php
  1. systemctl start php-fpm
  2. systemctl status php-fpm
复制代码

验证:编写简朴的php脚本,显示php的版本信息
  1. cd /usr/local/nginx/html
  2. vim index.php
复制代码

  1. <?php
  2. phpinfo();
  3. ?>
复制代码

在欣赏器访问

PHP-FPM安装完成
二、Nginx连接MySQL数据库用于存储网站数据

MySQL授权,允许Nginx服务器访问
  1. mysql -uroot -p1
  2. grant all on *.* to 'root'@'192.168.0.1' identified by '1';
复制代码

编写PHP脚本验证MySQL是否连接成功
  1. vim /usr/local/nginx/html/index.php
复制代码

  1. <?php
  2. $host='192.168.0.1';
  3. $user_name='root';
  4. $password='1';
  5. $conn=mysql_connect($host,$user_name,$password);
  6. if (!$conn)
  7. {
  8.     die('数据库连接失败:'.mysql_error());
  9. }
  10. echo '数据库连接成功!';
  11. ?>
复制代码

回到服务器刷新

至此基础的LNMP架构已经搭建完成,可以在上面部署网站
三、搭建简朴的论坛

拖入Discuz论坛源码包

解压
  1. unzip Discuz_X3.3_SC_UTF8.zip
复制代码


将解压出来后的整个论坛目次移动到nginx的网页文件目次里
  1. mv upload/ /usr/local/nginx/html
复制代码

刷新欣赏器,可以看到网站搭建完成

安装之前需要放开写权限,否则无法正常安装
  1. cd /usr/local/nginx/html/
  2. chmod -R 777 upload/
复制代码






至此网站已经搭建完成
四、利用redis为网站添加缓存层



登录





安装PHP扩展phpredis,用于连接并操作Redis数据库上的数据

  1. tar -zxf 3.1.2.tar.gz
  2. cd phpredis-3.1.2/
复制代码

  1. phpize
复制代码

预编译
  1. ./configure --with-php-config=/usr/local/php/bin/php-config  --enable-redis
复制代码
–with-php-config=/usr/local/php/bin/php-config 指定路径在php下
–enable-redis 启用redis服务


编译安装
  1. make -j4 && make install
复制代码


将安装完成后得到的安装目次复制下来:/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
查看php拥有的模块,看不到redis
  1. php -m
复制代码

编辑php的配置文件,将得到的目次复制进去
  1. vim /usr/local/php/php.ini
复制代码

  1. extension_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/"
  2. extension=redis.so
复制代码

再次查看php的插件可以看到redis
  1. php -m
复制代码

  1. cd /usr/local/nginx/html/upload/config/
  2. vim config_global.php
复制代码

将redis的IP所在添加上

修改redis的配置文件,允许访问外部IP所在访问redis
  1. cd /usr/src/redis-6.2.6/
  2. vim redis.conf
复制代码


重启redis
  1. redis-cli shutdown
  2. redis-server redis.conf &
复制代码

重启nginx、MySQL、php
  1. nginx -s quit
  2. nginx
  3. systemctl restart mysql.service
  4. systemctl restart php-fpm
复制代码

完成
验证:进入论坛创建用户,再将用户在MySQL数据库删掉,但用户数据缓存依然留在页面上,能够登录





删除MySQL中的用户数据后,由于redis中还存在缓存,所以还能利用删除掉的用户登录




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

西河刘卡车医

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表