王海鱼 发表于 2024-11-3 18:06:31

LNMP环境搭建(Linux+nginx+Mysql+PHP)超具体攻略

目次

一.LNMP简介
1.1LNMP架构的特点
二.具体安装步骤
  2.1MySQL安装
  2.1-1Yum安装
  2.1-2 编译安装
  2.1-3二进制安装
2.1-4 RPM安装
2.2Nginx安装
2.2-1编译安装nginx
2.2-2yum安装nginx
2.3验证Nginx安装
2.4PHP安装 
2.4-1编译安装PHP
2.4-2yum安装PHP
2.5 Nginx 配置支持PHP
2.5-1添加 Nginx 配置
2.5-2添加 php 探测文件
2.5-3验证 Nginx 关联 php-fpm
2.6访问网页验证

一.LNMP简介

        L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以指Perl或Python。
        LNMP 是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L 指 Linux,N指 Nginx,M一般指 MySQL,也可以指 MariaDB,P 一般指 PHP,也可以指 Perl 或 Python。
1.1LNMP架构的特点

      LNMP架构是由Linux操作系统、Nginx Web服务器、MySQL数据库管理系统以及PHP编程语言组成的软件栈。这种架构因其高效、稳固和机动的特点,在Web服务器范畴得到了广泛应用。它的的告急特点有:
1. 高性能


[*]Nginx:作为Web服务器,Nginx以其高性能、高并发处置惩罚能力和低资源消耗而著名。它接纳变乱驱动的异步架构,能够高效处置惩罚大量并发请求,得当高流量网站。
[*]PHP-FPM:PHP的FastCGI Process Manager(FPM)模式进一步提升了PHP的性能,使其能够更好地处置惩罚动态内容。
2. 低资源消耗


[*]Nginx:Nginx的轻量级计划使其在运行时占用较少的系统资源,相比传统的Apache服务器,Nginx在处置惩罚静态内容和反向代理方面表现更出色。
[*]Linux:作为操作系统,Linux以其稳固性和低资源消耗著称,得当作为服务器操作系统。
3. 高并发处置惩罚能力


[*]Nginx:Nginx能够有用处置惩罚高并发请求,得当需要处置惩罚大量用户请求的Web应用。
[*]MySQL:MySQL数据库在高并发环境下表现稳固,支持变乱处置惩罚和数据划一性。
4. 易于扩展


[*]模块化计划:Nginx和PHP都支持模块化计划,可以根据需要添加或移除功能模块,实现机动扩展。
[*]数据库扩展:MySQL支持主从复制、分片等扩展方式,满足不同规模应用的需求。
5. 开源免费


[*]全部组件:Linux、Nginx、MySQL和PHP都是开源软件,用户可以免费使用和修改,低落了成本。
6. 良好的社区支持


[*]巨大社区:LNMP组合拥有巨大的用户社区和丰富的文档资源,便于用户获取帮助息争决问题。
[*]活跃开发:各个组件都有活跃的开发团队,不停推出新版本和功能更新。
7. 安全性


[*]安全特性:Linux、Nginx、MySQL和PHP都提供了丰富的安全特性,如访问控制、数据加密、防火墙配置等,保障Web应用的安全性。
二.具体安装步骤

  2.1MySQL安装

   在Linux系统上安装MySQL有多种方法,包括使用Yum包管理器、编译安装、二进制安装和RPM安装。每种方法都有其特点和实用场景。这里我给各人介绍一下具体的安装步骤以及着实用特点:
  2.1-1Yum安装

  步骤:

[*] 配置yum源,保证你的yum源可用:
sudo yum update



[*] 添加MySQL的Yum仓库:
sudo yum install https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm

[*] 安装MySQL:
sudo yum install mysql-community-server


[*] 启动MySQL服务:
sudo systemctl start mysqld


[*] 设置开机自启动:
sudo systemctl enable mysqld

[*] 查看MySQL服务状态(确保已经启动):
sudo systemctl status mysqld
[*] 获取初始暗码(最后一行就是暗码):
sudo grep 'temporary password' /var/log/mysqld.log
[*] 登录MySQL并修改暗码:
#登录mysql
mysql -u root -p'默认密码'


#修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
特点:


[*]简单方便:使用Yum安装非常简单,得当初学者。
[*]自动依赖管理:Yum会自动解决依赖关系,确保全部需要的组件都被安装。
[*]系统集成:与系统服务管理工具(如systemd)集成良好,便于管理。
  2.1-2 编译安装

    步骤:

[*] 下载MySQL源码包:
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.23.tar.gz

[*] 解压源码包:
#解压
tar -zxvf mysql-8.0.23.tar.gz

#进入解压目录
cd mysql-8.0.23

[*] 安装依赖包:
sudo yum install cmake gcc-c++ ncurses-devel openssl-devel

[*] 配置编译选项:
# cmake . \
#参数详解:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \   安装目录
-DSYSCONFDIR=/etc \   配置文件存放 (默认可以不安装配置文件)
-DMYSQL_DATADIR=/usr/local/mysql/data \   数据目录   错误日志文件也会在这个目录
-DINSTALL_MANDIR=/usr/share/man \   帮助文档
-DMYSQL_TCP_PORT=3306 \   默认端口
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \sock文件位置,用来做网络通信的,客户端连接服务器的时候用
-DDEFAULT_CHARSET=utf8 \    默认字符集。字符集的支持,可以调
-DEXTRA_CHARSETS=all \   扩展的字符集支持所有的
-DDEFAULT_COLLATION=utf8_general_ci \支持的
-DWITH_READLINE=1 \    上下翻历史命令
-DWITH_SSL=system \    使用私钥和证书登陆(公钥)可以加密。 适用与长连接。坏处:速度慢
-DWITH_EMBEDDED_SERVER=1 \   嵌入式数据库
-DENABLED_LOCAL_INFILE=1 \    从本地倒入数据,不是备份和恢复。
-DWITH_INNOBASE_STORAGE_ENGINE=1默认的存储引擎,支持外键
[*] 编译并安装:
sudo make && make install

[*] 初始化数据库:
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql

#初始化完成后一定记得最后的密码

[*] 启动MySQL服务:
sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
amp;
最后修改暗码步骤都是一样的,根据上面的一样来就可
特点:


[*]高度定制:可以根据需要配置编译选项,实现高度定制化。
[*]机动性:可以安装到任意目次,不受系统包管理器的限制。
[*]复杂性:需要手动解决依赖关系,配置和编译过程较为复杂。
  2.1-3二进制安装

  步骤:

[*] 下载MySQL二进制包:
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz

[*] 解压二进制包:
tar -xvf mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz
sudo mv mysql-8.0.23-linux-glibc2.12-x86_64 /usr/local/mysql

[*] 创建MySQL用户和组:
#添加用户mysql
sudo groupadd mysql

sudo useradd -r -g mysql -s /bin/false mysql


[*] 初始化数据库:
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql

[*] 启动MySQL服务:
sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
amp;

最后修改默认暗码 
特点:


[*]预编译:二进制包是预编译的,安装过程相对简单。
[*]机动性:可以安装到任意目次,不受系统包管理器的限制。
[*]性能优化:预编译的二进制包通常针对特定平台进行了优化。
2.1-4 RPM安装

步骤:

[*] 下载MySQL的RPM包:
wget https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm

[*] 安装RPM包:
sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm

[*] 安装MySQL:
sudo yum install mysql-community-server


[*] 启动MySQL服务:
sudo systemctl start mysqld


[*] 设置开机自启动:
sudo systemctl enable mysqld

   
特点:


[*]系统集成:与系统包管理工具(如Yum)集成良好,便于管理。
[*]自动依赖管理:RPM包会自动解决依赖关系,确保全部需要的组件都被安装。
[*]简单方便:使用RPM安装非常简单,得当初学者。
2.2Nginx安装

2.2-1编译安装nginx

1.安装相关依赖包
# yum -y install gcc gcc-c++ make zlib-devel pcre pcre-devel openssl-devel perl-devel perl-ExtUtils-Embed gd-devel  2.下载nginx安装包
# wget https://nginx.org/download/nginx-1.16.0.tar.gz 3.创建 Nginx 运行用户
# useradd -s /sbin/nologin -M nginx 4.解压配置 Nginx 编译
# tar zxvf nginx-1.16.0.tar.gz -C /usr/local/
# cd /usr/local/nginx-1.16.0/
# ./configure \
--user=nginx \
--group=nginx \
--prefix=/usr/local/nginx \
--conf-path=/etc/nginx/nginx.conf \
--sbin-path=/usr/sbin/nginx \
--error-log-path=/var/log/nginx/nginx_error.log \
--http-log-path=/var/log/nginx/nginx_access.log \
--pid-path=/usr/local/nginx/run/nginx.pid 5.Nginx 编译安装
# make && make install 6.启动nginx
# /usr/sbin/nginx 7.查看状态并配置开机自启
#查看nginx服务状态
# ps -ef | grep nginx
root      31469      10 23:11 ?      00:00:00 nginx: master process /usr/sbin/nginx
nginx   31470314690 23:11 ?      00:00:00 nginx: worker process
root      31554   11820 23:11 pts/0    00:00:00 grep --color=auto ngin

#配置开机自启
# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service. 2.2-2yum安装nginx

  1. 更新Yum仓库
  起首,确保你的Yum仓库是最新且可用的,以便获取最新的软件包信息:
sudo yum update


  2. 添加Nginx的Yum仓库
    Nginx官方提供了Yum仓库,需要先添加这个仓库到你的系统中。创建一个名为nginx.repo的   文件:
sudo nano /etc/yum.repos.d/nginx.repo
编辑配置文件(vim /etc/yum.repos.d/nginx.repo):

name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
3. 安装Nginx
添加了Nginx的Yum仓库后,使用Yum来安装Nginx:
sudo yum install nginx
4. 启动Nginx服务
安装完成后,启动Nginx服务:
sudo systemctl start nginx
5. 设置Nginx开机自启动
为了确保Nginx在系统重启后自动启动,你需要设置开机自启动:
sudo systemctl enable nginx
6. 查看Nginx服务状态
你可以查看Nginx服务的状态,确保它已经正常启动:
sudo systemctl status nginx
7. 配置防火墙
假如你的系统启用了防火墙,你需要答应HTTP和HTTPS流量通过防火墙。以下是使用firewalld的下令:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
2.3验证Nginx安装

打开浏览器,访问你的服务器IP地址或域名,假如能看到Nginx的默认欢迎页面,表示Nginx已经成功安装并运行。
https://i-blog.csdnimg.cn/direct/392b0ccb7d65407bafd45b7dcb2aa09f.png


2.4PHP安装 

2.4-1编译安装PHP

1.安装环境依赖包
#安装依赖包
# yum -y install gcc gcc-c++ glibc automake autoconf libtool make

#安装依赖库
#yum -y install libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel 2.下载源码包
# wget https://www.php.net/distributions/php-7.3.6.tar.gz 3.编辑配置文件
# tar xzvf php-7.3.6.tar.gz -C /usr/local/
# cd /usr/local/php-7.3.6/
# ./configure \
--prefix=/usr/local/php7                 # 配置安装目录
--with-config-file-path=/usr/local/php7 # 配置文件 php.ini 的路径
--enable-sockets                                 # 开启 socket
--enable-fpm                                         # 启用 fpm 扩展
--enable-cli                                       # 启用 命令行模式 (从 php 4.3.0 之后这个模块默认开启所以可以不用再加此命令)
--enable-mbstring                                 # 启用 mbstring 库
--enable-pcntl                                         # 启用 pcntl (仅 CLI / CGI)
--enable-soap                                         # 启用 soap
--enable-opcache                                 # 开启 opcache 缓存
--disable-fileinfo                                 # 禁用 fileinfo (由于 5.3+ 之后已经不再持续维护了,但默认是开启的,所以还是禁止了吧)(1G以下内存服务器直接关了吧)
--disable-rpath                                # 禁用在搜索路径中传递其他运行库。
--with-mysqli                                         # 启用 mysqli 扩展
--with-pdo-mysql                                 # 启用 pdo 扩展
--with-iconv-dir                                 # 启用 XMLRPC-EPI 字符编码转换 扩展
--with-openssl                                         # 启用 openssl 扩展 (需要 openssl openssl-devel)
--with-fpm-user=nginx                         # 设定 fpm 所属的用户
--with-fpm-group=nginx                         # 设定 fpm 所属的组别
--with-curl                                         # 启用 curl 扩展
--with-mhash                                         # 开启 mhash 基于离散数学原理的不可逆向的php加密方式扩展库
# GD
--with-gd                                                 # 启用 GD 图片操作 扩展
--with-jpeg-dir                                 # 开启对 jpeg 图片的支持 (需要 libjpeg)
--with-png-dir                                         # 开启对 png 图片支持 (需要 libpng)
--with-freetype-dir                         # 开启 freetype

# xml
--enable-simplexml                                 # 启用对 simplexml 支持
--with-libxml-dir                                 # 启用对 libxml2 支持

--enable-debug                                         # 开启 debug 模式 4.编译安装(30分钟左右)
make && make install 5.配置php-fpm
#1.创建 php.ini 配置文件
# cp php.ini-production /usr/local/php7/etc/php.ini
# vim /usr/local/php7/etc/php.ini +1371 #php的Session存储目录
1371 session.save_path = "/tmp" #将注释打开

#2.设置php-fpm配置文件
# cd /usr/local/php7/etc
# cp php-fpm.conf.default php-fpm.conf
# vim php-fpm.conf +17
pid = /var/run/php-fpm.pid#将注释取消并修改
# php-fpm连接文件
# cd /usr/local/php7/etc/php-fpm.d/
# cp www.conf.default www.conf
# vim www.conf
user = nginx
group = nginx
listen = 127.0.0.1:9000

#3.启动php-fpm
# /usr/local/php7/sbin/php-fpm

#4.查看是否启动
# ps aux | grep php-fpm

#5.配置与重新载入环境变量
# vim /etc/profile
export PHP_HOME=/usr/local/php7
export PATH=$PATH:$PHP_HOME/bin:$PHP_HOME/sbin
# source /etc/profile
6.配置php-fpm开机自启
# vim /lib/systemd/system/php-fpm.service
:服务的说明
Description:描述服务
After:描述服务类别
服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:的启动、重启、停止命令全部要求使用绝对路径
运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

# systemctl enable php-fpm.service 2.4-2yum安装PHP

1. 更新Yum仓库
确保Yum仓库是最新的,不再过多缀述:
sudo yum update


2. 安装EPEL和Remi仓库
PHP的某些版本和扩展可能不在默认的Yum仓库中,需要添加EPEL和Remi仓库。EPEL提供了许多额外的软件包,而Remi仓库提供了最新版本的PHP。
安装EPEL源:
sudo yum install epel-release
安装Remi源:
sudo yum install yum-utils
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
3. 启用Remi仓库中的PHP模块
Remi仓库中有多个PHP版本,需要启用你想要安装的PHP版本。比方,启用PHP 7.4版本:
sudo yum-config-manager --enable remi-php74
CopyInsert
4. 安装PHP
启用Remi仓库中的PHP模块后,就可以使用Yum来安装PHP及其常用扩展:
sudo yum install php php-cli php-fpm php-mysqlnd php-zip php-devel php-pear php-gd php-mbstring php-curl php-xml php-xmlrpc php-soap php-intl php-zip

5. 启动PHP-FPM服务
启动并设置开机自启动:
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
6. 查看PHP版本
安装完成后,查看PHP的版本,确保安装成功:
php -v
2.5 Nginx 配置支持PHP

2.5-1添加 Nginx 配置

# cd /etc/nginx/
# vim nginx.conf
#配置如下
server
{
        listen 80;
        server_name localhost;
        index index.html index.htm index.php;
        root /usr/local/nginx/html;
        location ~ \.php$
        {
                include fastcgi_params;      #指定nginx连接php-fpm的常量
                fastcgi_pass 127.0.0.1:9000;    #连接php-fpm的地址和端口
                fastcgi_index index.php;      #指定默认页面
                fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; #指定站点根目录
        }
} 2.5-2添加 php 探测文件

# cd /usr/local/nginx/html/
# vim index.php
<?php
phpinfo();
?> 2.5-3验证 Nginx 关联 php-fpm

# systemctl restart php-fpm.service
# ps -ef|grep php-fpm
root      69652      10 14:02 ?      00:00:00 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)
nginx   69653696520 14:02 ?      00:00:00 php-fpm: pool www
nginx   69654696520 14:02 ?      00:00:00 php-fpm: pool www
nginx   69655696520 14:02 ?      00:00:00 php-fpm: pool www
nginx   69656696520 14:02 ?      00:00:00 php-fpm: pool www
nginx   69657696520 14:02 ?      00:00:00 php-fpm: pool www 重新载入配置:
# systemctl restart nginx
# systemctl status nginx 2.6访问网页验证

输入你的服务器IP地址+index.php
如图所示:
https://i-blog.csdnimg.cn/direct/c8b1fd3920804b50ba4078b1c111ffe1.png
假如表现该页面表示LNMP环境至此配置成功! 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: LNMP环境搭建(Linux+nginx+Mysql+PHP)超具体攻略