Linux实验记录:使用LNMP架构部署动态网站环境

这篇具有很好参考价值的文章主要介绍了Linux实验记录:使用LNMP架构部署动态网站环境。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

本文是一篇关于Linux系统初学者的实验记录。

参考书籍:《Linux就该这么学》

实验环境:

VmwareWorkStation 17——虚拟机软件

RedHatEnterpriseLinux[RHEL]8——红帽操作系统

备注:

  LNMP动态网站部署架构是一套由:Linux + Nginx + MySOL + PHP 组成的动态网站系统解决方案,具有免费】高效、扩展性强且资源消耗低等优良特性,目前正在被广泛使用,

本文对比了使用源码包安装服务程序与使用RPM软件包安装服务程序的区别,手工编译源码包并安装各个服务册灰姑娘徐,以及使用最受欢迎的WordPress博客系统验证架构环境。

正文:

源码包程序;

  在RPM(红帽软件包管理器)技术出现之前,Linux系统运维人员只能通过源码包的方式来安装各种服务程序,这是一件非常繁琐且耗费时间与耐心的事情。而且在安装、升级、卸载程序时还要考虑到与其他程序或函数库的相互依赖关系。

现在很多软件程序只有源码包的形式,如果只会使用dnf/yum命令来安装程序,就要等到第三方组织将这些软件程序编写成RPM源码包的软件程序时,再进行安装。

使用源码包安装的优势:

  源码包的可移植性非常好,几乎可以再任何Linux系统中安装使用,而RPM软件包是针对特定系统和架构编写的指令集,必须严格地符合执行环境才能顺利安装。

  使用源码包安装服务程序时会有一个编译过程,因此能够更好地适应安装主机的系统环境,运行效率和优化程序都会强于RPM软件包安装的服务程序。(量体裁衣)

一般来讲,在安装软件时,如果能通过软件仓库来安装,就用dnf命令搞定它;反之则去寻找合适的RPM软件包来安装;如果实在没有资源可用,就只能使用源码包来安装了。

(RPM软件包就是把软件的源码包和一个针对特定系统、架构、环境编写的安装规则打包到一起的指令集) 

Step1:下载及解压源码包文件。

为了方便在网络中传输,源码包文件通常会在归档后使用gzip或bzip2等格式进行压缩,因此一般会具有.tar.gz或.tar.bz2的后缀。要想使用源码包安装服务程序,必须先把里面的内容解压出来,然后再切换到源码包文件的目录中:

tar -xzvf FileName.tar.gz
cd FileDirectory
tar -jxvf FileName.tar.bz2
cd FileDirectory

tar命令的常用参数

-z  是否同时具有gz属性
-j  是否同时具有bz2属性
-J   是否同时具有xz属性
-x 解压缩、提取打包的内容
-t  查看压缩包内容
-v   显示压缩或者打包的内容
-c  建立一个压缩,打包文档
-C 切换到指定目录,表示指定解压缩包的内容和打包的内容存放的目录
-f   使用文件名,在f后面要接压缩后的文件的名字
只要用到tar命令,-f选项是必须要用的,-f 在最右边
-p   保留备份数据的原本权限与属性,常用于备份重要的配置文件
-P 保留绝对路径

Step2:编译源码包代码

在正式使用源码包安装服务程序之前,还需要使用编译脚本针对当前系统进行一系列的评估工作,包括对源码包文件、软件之间及函数库之间的依赖关系、编译器、汇编器及链接器进行检查。

追加--prefix参数,指定稍后源码包的安装路径,从而对服务程序的安装过程更加可控。

当编译工作结束后,如果系统环境符合安装要求,一般会自动在当前目录下生成一个Makefile安装文件。 

。/configure --prefix=/usr/local/program

Step3:生成二进制安装程序。

make

 刚刚生成的Makefile文件中会保存与系统环境、软件依赖关系和安装规则等相关的内容,接下来便可以使用make命令来根据Makefile文件内容提供的合适规则编译生成真正可供用户安装服务程序的二进制可执行文件了

Step4:运行二进制的服务程序安装包

由于不需要再检查系统环境,也不需要再编译代码,因此运行二进制的服务程序安装包时速度最快的步骤。如果在源码包编译阶段使用了--prefix参数,那么此时服务程序就会被安装到那个目录。

否则,默认路径:/usr/local/bin 

Step5:清理源码包临时文件

由于在安装服务程序过程中进行了代码编译的工作,因此在安装后目录中会遗留下很多临时垃圾文件。可以使用make clean命令对临时文件进行彻底清理

make clean

LNMP动态网站部署架构

LNMP: L——Linux、Nginx、MySQL、PHP

WAMP:W——Windows、Apache、MySQL、PHP

使用源码包安装服务程序之前,首先要让安装主机具备编译程序源码的环境。

这需要具备C语言、C++语言、Perl语言的编译器,以及各种常见的编译支持函数库程序。

dnf -y install apr* autoconf automake numactl bison bzip2-devel cpp curl-devel fontconfig-devel freetype-devel gcc gcc-c++ gd-devel gettext-devel kernel-headers keyutils-libs-devel krb5-devel libcom_err-devel libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libxml2-devel libXpm* libxml* libXaw-devel libXmu-devel libtiff* make openssl-devel patch pcre-devel perl php-common php-gd telnet zlib-devel libtirpc-devel gtk* ntpstat na* bison* lrzsz cmake ncurses-devel libzip-devel libxslt-devel gdbm-devel readline-devel gmp-devel

Linux实验记录:使用LNMP架构部署动态网站环境,linux,运维,服务器

 接下来需从外部网络中获取Nginx、MySQL、PHP及WordPress等一系列安装包,因此需要配置虚拟机,将其连接到互联网。

Linux实验记录:使用LNMP架构部署动态网站环境,linux,运维,服务器

安装LNMP动态网站部署架构所需的4个软件源码包和1个用于检查效果的博客系统软件包可以在参考书籍的配套站点服务器上找到。

mkdir /lnmp
cd /lnmp 
wget https://www.linuxprobe.com/Software/rpcsvc-proto-1.4.tar.gz
wget https://www.linuxprobe.com/Software/nginx-1.16.0.tar.gz
wget https://www.linuxprobe.com/Software/mysql-8.0.18.tar.gz
wget https://www.linuxprobe.com/Software/php-7.3.5.tar.gz
wget https://www.linuxprobe.com/Software/wordpress.tar.gz
ls

Linux实验记录:使用LNMP架构部署动态网站环境,linux,运维,服务器

 rpcsvc-proto 是一款包含rcpsvc协议文件的支持软件包名称。

rcpsvc协议在后续Nginx与MySQL 服务程序的部署过程中都需要被调用到 。

需要严格遵守安装步骤:

下载及解压源码包文件

编译源码包文件

生成二进制安装程序

运行二进制的服务程序安装包

tar -xzvf rpcsvc-proto-1.4.tar.gz
cd rpcsvc-proto-1.4/
./configure
make 
make install
cd ..

 配置Nginx服务

Nginx是一款优秀的用于部署动态网站的轻量级服务程序,最初是为俄罗斯的一家门户站点而开发的,因其稳定性、功能丰富、占用内存少且并发能力强而备受用户的信赖。

目前国内诸如新浪、网易、腾讯等门户站点均已使用了此服务。

Nginx服务程序的稳定性源自于采用了分阶段的资源分配技术,降低了CPU与内存的占用率,所以使用Nginx程序部署的动态网站不仅稳定、高校,而且消耗的系统资源也很少。

此外,Nginx具备的模块数量与Apache具备的模块数量几乎相同。

Nginx还支持热部署技术,能在不暂停服务的情况下对Nginx服务程序进行升级

Step1: 创建用于管理网站服务的系统账户

useradd nginx -M -s /sbin/nologin
id nginx

 Linux实验记录:使用LNMP架构部署动态网站环境,linux,运维,服务器

-M参数:不创建对应的家目录

-s参数:指定登陆后的Shell解释器为/sbin/nologin 

Step2:编译安装Nginx网站服务程序

为了能够让网站服务支持更多的功能,需要在编译过程中添加额外的参数

prefix参数:指定服务将被安装到哪个目录

with_http_ssl_module参数:开启Nginx服务的SSL加密模块

tar -zxvf nginx-1.16.0.tar.gz
cd nginx-1.16.0/
./configure --prefix=/usr/local/nginx --with-http_ssl_module
make 
make install 
cd ..

Step3:配置服务

这里进行三处修改:

line 2:删除注释符#,在后面写上负责运行网站服务程序的账户名称用户组名称

line 45:添加index.php的名字,这个文件是用户浏览网站时的首页文件

line 65-71:删除注释符#,启用虚拟主机功能

line 68:对应网站根目录修改为/usr/local/nginx/html                                                                        再加上参数fastcgi_script_name参数用于指代脚本名称,也就是用户请求的URL。

Linux实验记录:使用LNMP架构部署动态网站环境,linux,运维,服务器

Linux实验记录:使用LNMP架构部署动态网站环境,linux,运维,服务器 Linux实验记录:使用LNMP架构部署动态网站环境,linux,运维,服务器

Step4:通过编译源码方式安装的服务程序不能被systemctk命令管理,而要使用Nginx服务本身的管理工具进行惭怍

相应命令所在的目录:/usr/local/nginx/sbin

由于使用绝对路径的形式输入命令不方便,可以讲/usr/local/nginx/sbin路径加入到PATH变量

然后在source命令后加载配置文件,让参数立即生效。下次只需输入nginx命令就可以直接启动。

 vim ~/.bash_profile

Linux实验记录:使用LNMP架构部署动态网站环境,linux,运维,服务器

source ~/.bash_profile
nginx

Linux实验记录:使用LNMP架构部署动态网站环境,linux,运维,服务器

 这里推测配置文件还未刷新生效,重启一下:

Linux实验记录:使用LNMP架构部署动态网站环境,linux,运维,服务器

 配置MySQL服务:

  MySQL数据库当前仍然是生产环境中最常使用的关系型数据库管理系统之一,坐拥极大的市场份额。在使用软件仓库安装服务程序时,系统会自动根据RPM软件包中的指令集完成软件配置等工作。但是选择通过源码包的方式来安装,这一切就需要自己来完成了。

对于MySQL数据库来说,需要在系统中创建一个名为mysql的用户,专门用于负责运行MySQL数据库。这类账户的Bash终端设置成nologin解释器,提高系统安全性。

useradd mysql -M -s /sbin/nologin

Step1:解压SQL安装包。

将解压出的程序目录改名并移动到/usr/local 目录下,对其进行初始化操作后便可使用。

tar -zxvf mysql-9.0.18.tar.gz 

Linux实验记录:使用LNMP架构部署动态网站环境,linux,运维,服务器 这时出现了一个意外的报错


排错:

  使用的是正确的解压方式,却报错:"not in gzip format“

检查一下该文件的属性:

Linux实验记录:使用LNMP架构部署动态网站环境,linux,运维,服务器

发现这只是一个指向该文件的html页面——没有下载到正确的文件。 


 下载到正确的文件后,接着原来的步骤,改名,移动。

mv mysql-8.0.18-el8-x86_64/ mysql
mv mysql /usr/local

Step2:创建数据库文件的data目录

在生产环境中管理MySQL数据库时,有两个比较常用的目录:

/usr/local/mysql目录             用于保存MySQL数据库程序文件的路径

/usr/local/mysql/data目录     用于存储数据库的具体内容 

data目录需手动创建:

cd /usr/local/mysql
mkdir data

Step3:初始化MySQL程序,对目录进行授权

使用mysqld命令确认管理MySQL数据库服务的用户名称、数据保存目录及编码信息。

在信息确认无误后开始进行初始化。在初始化的最后阶段,系统会给用户分配一个初始化的临时密码,需保存好。

chown -R mysql:mysql /usr/local/mysql
cd bin
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

Step4:……

Step5:……

完成MySQL 安装后,提前把数据库新建出来,供后续使用。

Linux实验记录:使用LNMP架构部署动态网站环境,linux,运维,服务器

配置PHP服务

  PHP(超文本预处理器)是一种通用的开源脚本语言,发明于1995年,它吸取了C语言、Java语言及Perl语言的很多优点,具有开源、免费、快捷、跨平台性强、效率高等优良特性,是目前Web开发领域最常用的语言之一。

使用源码包方式编译安装PHP语言环境难点在于解决PH的程序包和其他软件的依赖关系。

Step1:解压php安装包软件并编译安装

--prefix指定安装路径,--with-mysql开启数据库的支持模块

cd /lnmp
tar xvf php-7.3.5.tar.gz
cd php-7.3.5/
./configure --prefix=/usr/local/php --enable-fpm --with-mysqli --with-curl --with-pdo_mysql --with-pdo_sqlite --enable-mysqlnd -enable-mbstring --with-gd
make
make install

 生产二进制文件并进行安装,时间大约为10~20分钟,耐心等待即可:

Step2:将生成的php服务配置文件复制到安装目录中(/usr/local/php/)

  有了主配置文件,还需要php-fpm的配置文件,/usr/local/php/etc/目录中提供了模板

cp php.ini-development /usr/local/php/lib/php.ini
cd /usr/local/php/etc/
mv php-fpm.conf.default php-fpm.conf
mv php-fpm.d/www.conf.default php-fpm.d/www.conf

Step3:把php服务加入到启动项中,使其重启后依然生效

cd /lnmp/php-7.3.5
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm

Step4:编辑php.ini配置文件

由于php服务程序的配置参数会对Web服务的运行环境造成影响,如果默认开启了一些不必要且高危的功能,则会降低网站被入侵的难度,甚至会让入侵人员拿到整台服务器的管理权限。 

 line 301行的disable_functions参数后面追加要禁止的功能:(参考)

disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

Step5:启动程序

/etc/init.d/php-fpm start

搭建WordPress博客:

  为了检验LNMP动态网站架构环境是否配置妥当,可以在上面部署WordPress博客系统,然后检查效果。如果能够在LNMP动态网站环境中成功安装并使用WordPress网站系统,也就意味着这套架构是可用的。

  WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设自己的网站。WordPress具有丰富的插件和模板系统,是当前最受欢迎的网站内容管理系统。

下面搭建WordPress博客。

把Nginx服务程序的根目录内容清空后,将WordPress解压后的网站文件复制进去。

cd ..
rm -f /usr/local/nginx/html/*
tar xzvf wordpress.tar.gz
mv wordpress/* /usr/local/nginx/html/

为了能够让网站文件被Nginx服务程序顺利被读取,应设置目录所有权的身份及可读写的权限。

chown -Rf nginx:nginx /usr/local/nginx/html
chmod -Rf 777 /usr/local/nginx/html

随后输入本机IP地址访问WordPress网站的首页面:

Linux实验记录:使用LNMP架构部署动态网站环境,linux,运维,服务器

Linux实验记录:使用LNMP架构部署动态网站环境,linux,运维,服务器

Linux实验记录:使用LNMP架构部署动态网站环境,linux,运维,服务器

Linux实验记录:使用LNMP架构部署动态网站环境,linux,运维,服务器 Linux实验记录:使用LNMP架构部署动态网站环境,linux,运维,服务器

Linux实验记录:使用LNMP架构部署动态网站环境,linux,运维,服务器 在这里就可以搭建博客网站页面了。Linux实验记录:使用LNMP架构部署动态网站环境,linux,运维,服务器文章来源地址https://www.toymoban.com/news/detail-835885.html

到了这里,关于Linux实验记录:使用LNMP架构部署动态网站环境的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx架构篇(一)动态网站架构、LNMP、FastCGI、nginx+fastcgi运行原理

    资源文件识别 语言识别 框架识别 index.php 开源的php Window/Linux+nginx+php+mysql index.py 开源的python Window/Linux+apache+python+mysql index.jsp 商业java Window/Linux+tomcat+JDK+Oracle index.asp 商业C# Window+iis+asp.net+sql-server/oracle/mog0db 在vmware安装centos7,关闭防火墙和selinux systemctl stop firewalld setenforce 0 临

    2023年04月09日
    浏览(35)
  • Linux--LNMP架构及应用部署

    4.2 LNMP架构及应用部署 4.2.1构建LNMP网站平台        为了与Nginx、PHP环境保持一致,仍选择采用源代码编译的方式安装MySQL组件。以5.5.22 版本为例,安装过程如下所述。 (1)编译安装MySQL。 (2)优化调整。 (3)初始化数据库。 (4)启动mysql服务。 2. 安装PHP解析环境      

    2024年01月16日
    浏览(34)
  • lnmp +redis 发布企业门户网站( 单机部署)

    lnmp +redis 发布企业门户网站( 单机部署) 操作系统环境:Centos 7.9 服务器IP:172.20.26.140 1、部署lnmp yum install epel-release -y yum install yum-utils 创建新的nginx.repo文件: vim /etc/yum.repos.d/nginx.repo 添加 [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1

    2024年01月22日
    浏览(35)
  • ansible分离部署LNMP架构

    环境说明: 系统 主机名 IP 服务 centos8 ansible 192.168.111.141 ansible主控机 centos8 nginx 192.168.111.142 nginx受控机 centos8 mysql 192.168.111.143 mysql受控机 centos8 php 192.168.111.144 php受控机 修改默认清单文件位置,构建清单

    2023年04月21日
    浏览(34)
  • [Linux] 用LNMP网站框架搭建论坛

    原理: php-fpm.conf是控制php-fpm守护进程 它是php.ini是一个php解析器 工作过程: 1.当客户端通过域名请求访问时,Nginx会找到对应的虚拟主机 2. Nginx将确定请求。 对于静态请求,Nginx会自行处理,并将结果返回给用户的浏览器。 3. 如果Nginx判断的请求是php请求,那么FastCGI客户端

    2024年02月04日
    浏览(32)
  • lnmp架构部署Discuz论坛并配置重定向转发

    主机名称 IP地址 所需服务/架构 系统版本 lnmp 192.168.195.133 nginx-1.24.0 mysql-5.7 php-8.2.11(lnmp架构) centos 8 需要首先部署好lnmp架构。详细步骤请阅读: 源码编译安装部署lnmp 下载Discuz论坛系统代码包,官网地址如下: Disucz! 下载_免费搭建网站_开源建站系统下载_Discuz!官方_为您提

    2024年02月08日
    浏览(44)
  • Linux基础服务11——LNMP架构

    主机 服务 192.168.161.129 nginx 192.168.161.131 mysql 192.168.161.132 php 1.参考文章,nginx部署。 1.参考文章,mysql二进制部署。 1.参考文章,php编译安装 1.nginx配置文件指定php服务器地址,指定php服务器上的网页文件。 2.生成前端文件。 3.重启nginx。 1.php服务器上指定前端文件,需要与ng

    2024年02月16日
    浏览(33)
  • 在 CentOS 7.4 上使用 Docker极速部署 LNMP (Linux, Nginx, MySQL, PHP) 环境和 WordPress

    前置CentOS7条件: 关闭防护墙: setenforce = 0 systemctl stop firewalld 1. 安装 Docker* 如果你的系统中还没有安装 Docker,可以使用以下命令进行安装:   sudo yum install docker 启动 Docker 服务并设置开机自启: sudo systemctl start docker sudo systemctl enable docker 2. 安装 Docker Compose Docker Compose 可以让

    2024年01月17日
    浏览(43)
  • 使用内网云+GitHub Pages免费部署动态网站

    目录 一、失败的经历 1.花生壳 2. nat123 3. 网云穿 4. cpolar 5. ngrok 6.金万维快解析 7.神卓互联 8.内网云(neiwangyun.net) 9.localhost.run 10.GitHub Pages(pages.github.com) 11.IPv6 12.IPv6+GitHub Pages 13.FRP 14.nps 二、终极方案:内网云+GitHub Pages 相信很多人都想搭建网站吧。但是,搭建网站不光得自

    2024年02月11日
    浏览(39)
  • 使用docker搭建LNMP架构

    目录 环境准备 下载安装包 服务器环境 任务分析 nginx部分 建立工作目录 编写 Dockerfile 脚本 准备 nginx.conf 配置文件 生成镜像 创建自定义网络 启动镜像容器 验证nginx MySQL部分 建立工作目录 编写 Dockerfile 准备 my.cnf 配置文件 生成镜像 启动镜像容器 验证mysql PHP部分 建立工作目

    2024年01月18日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包