iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何用源码方式搭建LNMP环境
  • 497
分享到

如何用源码方式搭建LNMP环境

2023-07-05 19:07:09 497人浏览 泡泡鱼
摘要

这篇文章主要讲解了“如何用源码方式搭建LNMP环境”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用源码方式搭建LNMP环境”吧!源码方式搭建LNMP环境1、安装 RedHat8Cento

这篇文章主要讲解了“如何用源码方式搭建LNMP环境”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用源码方式搭建LNMP环境”吧!

源码方式搭建LNMP环境

1、安装 RedHat8

Centos8,或其他都可。虚拟机是 VMware ,网上有安装教程,这里就不啰嗦了。

2、配置本地的软件仓库

// 把系统镜像挂载到/media/cdrom目录。mkdir -p /media/cdrommount /dev/cdrom /media/cdrom// mount: /media/cdrom: WARNING: device write-protected, mounted read-only.// 创建软件仓库的配置文件 ~]# vi /etc/yum.repos.d/rhel8.repo[BaseOS]name=BaseOSbaseurl=file:///media/cdrom/BaseOSenabled=1gpGCheck=0[AppStream]name=AppStreambaseurl=file:///media/cdrom/AppStreamenabled=1gpgcheck=0

测试安装一下 vim, wget

dnf install vim wget -y

3、安装编译需要的工具

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

4、下载所需软件源码包

统一放到 /lnmp 目录下保存。

mkdir /lnmpcd /lnmpwget https://www.linuxprobe.com/Software/rpcsvc-proto-1.4.tar.gzwget Https://www.linuxprobe.com/Software/Nginx-1.16.0.tar.gzwget https://www.linuxprobe.com/Software/mysql-8.0.18.tar.xzwget https://www.linuxprobe.com/Software/php-7.3.5.tar.gzwget https://www.linuxprobe.com/Software/Wordpress.tar.gz

5、安装 rpcsvc-proto

rpcsvc-proto 是一款包含 rcpsvc 协议文件支持的软件包名称,rcpsvc 协议在后续 Nginx 与 Mysql 服务程序的部署过程中都需要被调用到。

tar xzvf rpcsvc-proto-1.4.tar.gzcd rpcsvc-proto-1.4/./configuremakemake installcd ..

6、安装 Nginx

为 Nginx 的运行创建一个账号

程序是由一个用户运行的,为了安全性,当然不能是 root 了。

并且它也不需要家目录,不需要登录,仅是拿来运行 Nginx。

useradd nginx -M -s /sbin/nologin // -M 不创建家目录,-s 指定 shellid nginx // 查询是否创建成功了uid=1000(nginx) gid=1000(nginx) 组=1000(nginx)

安装 Nginx

lnmp]# tar zxvf nginx-1.16.0.tar.gzlnmp]# cd nginx-1.16.0/nginx-1.16.0]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module  // --prefix指定安装目录, --with-开启http_ssl_module模块nginx-1.16.0]# makenginx-1.16.0]# make installnginx-1.16.0]# cd ..

配置 Nginx

使用 prefix 参数指定了安装路径,那么 Nginx 配置文件在 /usr/local/nginx 下。

提供程序运行的 user 属主,group 属组

vim /usr/local/nginx/conf/nginx.conf// 打开文件后,我们在英文模式下,按下 shift + 冒号,输入2,回车,定位到第2行。// 连按两次 ESC,取消当前使用模式// 再次 shift + 冒号,输入 set nu,回车,我们可以显示行号1 2 user  nginx nginx; // 第二行,修改为这样

在第 45 行,index 配置(可以做默认首页的文件)里加入 index.php。

 43         location / { 44             root   html; 45             index  index.php index.html index.htm; 46         }

删除第 65~71 行前面的注释符#,来启用虚拟主机功能,然后将第 69 行后面对应的网站根目录修改为 /usr/local/nginx/html,其中的 fastcgi_script_name 参数用于指代脚本名称,也就是用户请求的 URL。只有信息填写正确了,才能使 Nginx 正确解析用户请求,否则访问的页面会提示 “404 Not Found” 的错误。

63         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 64         # 65         location ~ \.php$ { 66             root           html; 67             fastcgi_pass   127.0.0.1:9000; 68             fastcgi_index  index.php; 69             fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name; 70             include        fastcgi_params; 71         }

源码编译安装的软件,默认不能被 systemctl 所管理,我们可以直接用其自身的 /usr/local/nginx/sbin/nginx 管理。建议将 /usr/local/nginx/sbin 路径加入到 PATH 环境变量中,我们就可以直接输入 nginx,不用加路径了。

然后用 source 命令,让此修改立即生效。

lnmp]# vim ~/.bash_profile# .bash_profile# Get the aliases and functionsif [ -f ~/.bashrc ]; then    . ~/.bashrcfi# User specific environment and startup programsPATH=$PATH:$HOME/bin:/usr/local/nginx/sbin // 这里加上 Nginx 的 sbin 路径export PATHlnmp]# source ~/.bash_profile // 让修改立即生效lnmp]# nginx // 启动 nginx 服务

打开浏览器访问,192.168.89.128 (我的虚拟机地址),访问失败

关闭防火墙

systemctl status firewalld.service // 查看是否在运行systemctl stop firewalld.service // 临时停止systemctl disable firewalld.service // 永久关闭

再次访问,发现可以了。

7、安装 MySQL

创建一个 mysql 用户,负责运行 Mysql 数据库。同样该用户也是不需要登录的。

lnmp]# useradd mysql -M -s /sbin/nologin

安装

// 解压MySQL安装软件包lnmp]# tar xvf mysql-8.0.18.tar.xz// 将解压出的程序目录改名并移动到/usr/local目录下lnmp]# mv mysql-8.0.18-linux-glibc2.12-x86_64 mysqllnmp]# mv mysql /usr/local

/usr/local/mysql 是保存 MySQL 程序文件的路径,/usr/local/mysql/data 是存储数据的地方,每个数据库就是它下面的一个目录。我们还需要手动创建它。

lnmp]# cd /usr/local/mysqlmysql]# mkdir data

初始化 MySQL,对目录授权,保证数据能被 mysql 用户访问,初始化之前,要先用 mysqld 命令确认管理 MySQL 服务的用户名,数据存放目录,编码信息,信息无误后,开始初始化。初始化后,系统会给用户分配一个初始的临时密码。要记得保存一下。

下面示例中分配的密码是 qfroRs,Ei4Ls。

[root@linuxprobe mysql]# chown -R mysql:mysql /usr/local/mysql[root@linuxprobe mysql]# cd bin[root@linuxprobe bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data2021-05-06T07:07:06.243270Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.18) initializing of server in progress as process 76062021-05-06T07:07:08.116268Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: qfroRs,Ei4Ls

和 nginx 差不多,MySQL 的一些二进制可执行命令,存放在自身程序目录的 /usr/local/mysql/bin 中,我们也可以加入到 PATH 环境变量中,方便访问。

[root@linuxprobe bin]# vim ~/.bash_profile# .bash_profile# Get the aliases and functionsif [ -f ~/.bashrc ]; then        . ~/.bashrcfi# User specific environment and startup programsPATH=$PATH:$HOME/bin:/usr/local/nginx/sbin:/usr/local/mysql/binexport PATH[root@linuxprobe bin]# source ~/.bash_profile

将启动脚本 mysql.server 放入到 /etc/init.d 中,让服务器每次重启后,都能自动启动数据库。并给予可执行权限。

libtinfo.so.5 文件是 MySQL 8.0 版本后新添加的重要的函数库文件,但默认不存在,需要将 libtinfo.so.6.1 文件复制过来或者作为链接文件才能正常启动:

[root@linuxprobe bin]# cd /usr/local/mysql[root@linuxprobe mysql]# cp -a support-files/mysql.server /etc/init.d/[root@linuxprobe mysql]# chmod a+x /etc/init.d/mysql.server[root@linuxprobe mysql]# ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5

执行 MySQL 数据库服务启动文件,并进行初始化工作。为了安全着想,MySQL 自 8.0 版本起不再允许用户使用临时密码来管理数据库内容,也不能进行远程控制,用户必须修改初始化密码后才能使用 MySQL 数据库。数据库作为系统重要的组成服务,密码位数不建议少于 20 位。例如,下面将密码修改为 “PObejCBeDzTRCncXwgBy”。

[root@linuxprobe mysql]# /etc/init.d/mysql.server start Starting MySQL.Logging to '/usr/local/mysql/data/linuxprobe.com.err'.. SUCCESS! [root@linuxprobe mysql]# mysql -u root -pEnter password: 输入初始化时给的原始密码Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 8Server version: 8.0.18Copyright (c) 2000, 2019, oracle and/or its affiliates. All rights reserved.Oracle is a reGIStered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> alter user 'root'@'localhost' identified by 'PObejCBeDzTRCncXwgBy'; Query OK, 0 rows affected (0.01 sec)mysql>

但这样还是不行,还需要继续切换到 mysql 数据库中,修改 user 表单的密码值。这也是从 MySQL 数据库 8.0 版本之后才有的新安全要求。

mysql> use mysql;Reading table infORMation for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables;+---------------------------+| Tables_in_mysql           |+---------------------------+| columns_priv              || tables_priv               || time_zone                 || time_zone_leap_second     || time_zone_name            || time_zone_transition      || time_zone_transition_type || user                      || …………省略部分输出信息…………  |+---------------------------+33 rows in set (0.00 sec)mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'PObejCBeDzTRCncXwgBy';Query OK, 0 rows affected (0.01 sec)// 创建一个数据库create database linuxcool;

8、安装 PHP

解压 php 源码包,并编译安装

[root@linuxprobe mysql]# cd /lnmp[root@linuxprobe lnmp]# tar xvf php-7.3.5.tar.gz[root@linuxprobe lnmp]# cd php-7.3.5/[root@linuxprobe 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[root@linuxprobe php-7.3.5]# make[root@linuxprobe php-7.3.5]# make install

将生成的 php.ini 配置文件复制到安装目录中(/usr/local/php/),让其生效。现在主配置文件有了,接下来还需要 php-fpm 的配置文件,好在 /usr/local/php/etc/ 目录中也已经提供,只需要复制模板即可:

[root@linuxprobe php-7.3.5]# cp php.ini-development /usr/local/php/lib/php.ini[root@linuxprobe php-7.3.5]# cd /usr/local/php/etc/[root@linuxprobe etc]# mv php-fpm.conf.default php-fpm.conf// 复制一个模板文件到php-fpm.d的目录中,用于后续控制网站的连接性能:[root@linuxprobe etc]# mv php-fpm.d/www.conf.default php-fpm.d/www.conf

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

[root@linuxprobe etc]# cd /lnmp/php-7.3.5[root@linuxprobe php-7.3.5]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm[root@linuxprobe php-7.3.5]# chmod 755 /etc/init.d/php-fpm

禁用一些函数

[root@linuxprobe php-7.3.5]# vim /usr/local/php/lib/php.ini307 ; This directive allows you to disable certain functions for security reasons.308 ; It receives a comma-delimited list of function names.309 ; http://php.net/disable-functions310 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

开启 php-fpm 进程

[root@linuxprobe php-7.3.5]# /etc/init.d/php-fpm startStarting php-fpm done

我们在 /usr/local/nginx/html 下创建一个 index.php 文件测试下

<?phpphpinfo();

浏览器访问地址即可。

9、搭建一个 WordPress

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

[root@linuxprobe php-7.3.5]# cd ..[root@linuxprobe lnmp]# rm -f /usr/local/nginx/html/*[root@linuxprobe lnmp]# tar xzvf wordpress.tar.gz [root@linuxprobe lnmp]# mv wordpress/* /usr/local/nginx/html/

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

[root@linuxprobe lnmp]# chown -Rf nginx:nginx /usr/local/nginx/html [root@linuxprobe lnmp]# chmod -Rf 777 /usr/local/nginx/html

输入虚拟机 IP 地址访问 WordPress 网站的首页面。

如何用源码方式搭建LNMP环境

后面按说明一步步操作下去即可。

感谢各位的阅读,以上就是“如何用源码方式搭建LNMP环境”的内容了,经过本文的学习后,相信大家对如何用源码方式搭建LNMP环境这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 如何用源码方式搭建LNMP环境

本文链接: https://www.lsjlt.com/news/354498.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何用源码方式搭建LNMP环境
    这篇文章主要讲解了“如何用源码方式搭建LNMP环境”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用源码方式搭建LNMP环境”吧!源码方式搭建LNMP环境1、安装 RedHat8Cento...
    99+
    2023-07-05
  • 超级详细!用源码方式搭建LNMP环境
    本篇文章给大家带来了关于php的相关知识,其中主要介绍了怎么用源码方式搭建LNMP环境,非常详细哦,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。源码方式搭建LNMP环境1、安装 RedHat8Centos8,或其他都可。虚拟机是 VM...
    99+
    2023-05-14
    LNMP php
  • (三)lnmp环境的搭建:mysql源码安装
    mysql简介:MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面M...
    99+
    2022-10-18
  • docker如何搭建lnmp环境
    要在Docker中搭建LNMP环境(即Linux、Nginx、MySQL和PHP),可以按照以下步骤进行操作:1. 安装Docker...
    99+
    2023-08-23
    docker lnmp
  • Docker如何快速搭建LNMP环境(最新)
    前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是...
    99+
    2022-11-12
  • 如何进行服务器LNMP环境搭建的分析
    今天就跟大家聊聊有关如何进行服务器LNMP环境搭建的分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。WordPress建站,需要做从服务器配置、域名解析、宝塔面板、wordpres...
    99+
    2023-06-04
  • MySQL 5.7如何使用GTID方式搭建复制环境
    这篇文章主要为大家展示了“MySQL 5.7如何使用GTID方式搭建复制环境”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL 5.7如何使用GTID方式...
    99+
    2022-10-18
  • 如何用vscode搭建php环境
    本篇内容介绍了“如何用vscode搭建php环境”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!安装PHP要在VS Code中搭建PHP环境,...
    99+
    2023-07-05
  • 如何用PyCharm搭建开发环境
    本篇内容介绍了“如何用PyCharm搭建开发环境”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 下载安...
    99+
    2022-10-19
  • 如何使用docker搭建kafka环境
    这篇文章主要介绍“如何使用docker搭建kafka环境”,在日常操作中,相信很多人在如何使用docker搭建kafka环境问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用docker搭建kafka环境...
    99+
    2023-06-19
  • 如何使用eclipse搭建Swt环境
    本篇内容主要讲解“如何使用eclipse搭建Swt环境”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用eclipse搭建Swt环境”吧!一、查看当前使用的eclipse 版本型号在exlp...
    99+
    2023-06-22
  • 教你使用IDEA搭建spring源码阅读环境的详细步骤
    目录第一步、准备gradle环境第二步、下载spring源码第一步、准备gradle环境 1、去官网下载gradle https://gradle.org/releases/ 2、...
    99+
    2022-11-12
  • 如何在Linux环境中搭建Java分布式索引的开发环境?
    在Linux环境中搭建Java分布式索引的开发环境是一个非常重要的任务,因为这样可以帮助开发者更好地进行分布式索引的开发工作。本文将介绍如何在Linux环境中搭建Java分布式索引的开发环境,帮助读者更好地进行分布式索引开发。 安装Jav...
    99+
    2023-08-24
    分布式 索引 linux
  • 如何用vscode搭建react-native开发环境
    本篇内容主要讲解“如何用vscode搭建react-native开发环境”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用vscode搭建react-native开发环境”吧!问题代码没有提示...
    99+
    2023-06-20
  • 如何利用Docker搭建本地https环境
    这篇文章将为大家详细讲解有关如何利用Docker搭建本地https环境,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是 https我们都知道 web app 的运行都是建立在网络应用层 http 协议...
    99+
    2023-06-07
  • 如何使用VirtualBox和Vagrant搭建Linux环境
    本篇内容介绍了“如何使用VirtualBox和Vagrant搭建Linux环境”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、确定电脑的C...
    99+
    2023-06-29
  • CentOS7上如何使用pyenv搭建Django环境
    这篇文章主要介绍CentOS7上如何使用pyenv搭建Django环境,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、pyenv是什么?能做什么?pyenv是一个forked自ruby社区的简单、低调、遵循UNIX...
    99+
    2023-06-25
  • 如何使用docker compose搭建consul集群环境
    这篇文章主要介绍如何使用docker compose搭建consul集群环境,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!consul基本概念server模式和client模式server模式和client模式是co...
    99+
    2023-06-15
  • Linux下如何用eclipse搭建J2ME开发环境
    这篇文章将为大家详细讲解有关Linux下如何用eclipse搭建J2ME开发环境,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。你知道在linux下用ecli...
    99+
    2022-10-19
  • 如何使用Docker+jenkins+python3进行环境搭建
    本篇内容介绍了“如何使用Docker+jenkins+python3进行环境搭建”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言:  自动...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作