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

打印 上一主题 下一主题

主题 759|帖子 759|积分 2277

目次

一.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源可用:
    1. sudo yum update
    复制代码
  • 添加MySQL的Yum仓库:
    1. sudo yum install https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm
    复制代码
  • 安装MySQL:
    1. sudo yum install mysql-community-server
    复制代码
  • 启动MySQL服务:
    1. sudo systemctl start mysqld
    复制代码
  • 设置开机自启动:
    1. sudo systemctl enable mysqld
    复制代码
  • 查看MySQL服务状态(确保已经启动):
    1. sudo systemctl status mysqld
    复制代码
  • 获取初始暗码(最后一行就是暗码):
    1. sudo grep 'temporary password' /var/log/mysqld.log
    复制代码
  • 登录MySQL并修改暗码:
    1. #登录mysql
    2. mysql -u root -p'默认密码'
    3. #修改密码
    4. ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
    复制代码

特点:


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

    步骤:

  • 下载MySQL源码包:
    1. wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.23.tar.gz
    复制代码
  • 解压源码包:
    1. #解压
    2. tar -zxvf mysql-8.0.23.tar.gz
    3. #进入解压目录
    4. cd mysql-8.0.23
    复制代码
  • 安装依赖包:
    1. sudo yum install cmake gcc-c++ ncurses-devel openssl-devel
    复制代码
  • 配置编译选项:
    1. [root@mysql-server mysql-5.7.27]# cmake . \
    2. #参数详解:
    3. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \   安装目录
    4. -DSYSCONFDIR=/etc \   配置文件存放 (默认可以不安装配置文件)
    5. -DMYSQL_DATADIR=/usr/local/mysql/data \   数据目录   错误日志文件也会在这个目录
    6. -DINSTALL_MANDIR=/usr/share/man \     帮助文档
    7. -DMYSQL_TCP_PORT=3306 \     默认端口
    8. -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \  sock文件位置,用来做网络通信的,客户端连接服务器的时候用
    9. -DDEFAULT_CHARSET=utf8 \    默认字符集。字符集的支持,可以调
    10. -DEXTRA_CHARSETS=all \   扩展的字符集支持所有的
    11. -DDEFAULT_COLLATION=utf8_general_ci \  支持的
    12. -DWITH_READLINE=1 \    上下翻历史命令
    13. -DWITH_SSL=system \    使用私钥和证书登陆(公钥)  可以加密。 适用与长连接。坏处:速度慢
    14. -DWITH_EMBEDDED_SERVER=1 \   嵌入式数据库
    15. -DENABLED_LOCAL_INFILE=1 \    从本地倒入数据,不是备份和恢复。
    16. -DWITH_INNOBASE_STORAGE_ENGINE=1  默认的存储引擎,支持外键
    复制代码
  • 编译并安装:
    1. sudo make && make install
    复制代码
  • 初始化数据库:
    1. sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql
    2. #初始化完成后一定记得最后的密码
    复制代码
  • 启动MySQL服务:
    1. sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
    2. amp;
    复制代码
    最后修改暗码步骤都是一样的,根据上面的一样来就可
特点:


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

  步骤:

  • 下载MySQL二进制包:
    1. wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz
    复制代码
  • 解压二进制包:
    1. tar -xvf mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz
    2. sudo mv mysql-8.0.23-linux-glibc2.12-x86_64 /usr/local/mysql
    复制代码
  • 创建MySQL用户和组:
    1. #添加用户mysql
    2. sudo groupadd mysql
    3. sudo useradd -r -g mysql -s /bin/false mysql
    复制代码
  • 初始化数据库:
    1. sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql
    复制代码
  • 启动MySQL服务:
    1. sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
    2. amp;
    复制代码
最后修改默认暗码 
特点:


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

步骤:

  • 下载MySQL的RPM包:
    1. wget https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm
    复制代码
  • 安装RPM包:
    1. sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm
    复制代码
  • 安装MySQL:
    1. sudo yum install mysql-community-server
    复制代码
  • 启动MySQL服务:
    1. sudo systemctl start mysqld
    复制代码
  • 设置开机自启动:
    1. sudo systemctl enable mysqld
    复制代码
   
特点:


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

2.2-1编译安装nginx

1.安装相关依赖包
  1. [root@localhost ~]# yum -y install gcc gcc-c++ make zlib-devel pcre pcre-devel openssl-devel perl-devel perl-ExtUtils-Embed gd-devel
复制代码
 2.下载nginx安装包
  1. [root@localhost ~]# wget https://nginx.org/download/nginx-1.16.0.tar.gz
复制代码
3.创建 Nginx 运行用户
  1. [root@localhost ~]# useradd -s /sbin/nologin -M nginx
复制代码
4.解压配置 Nginx 编译
  1. [root@localhost ~ ]# tar zxvf nginx-1.16.0.tar.gz -C /usr/local/
  2. [root@localhost ~]# cd /usr/local/nginx-1.16.0/
  3. [root@localhost nginx-1.16.0]# ./configure \
  4. --user=nginx \
  5. --group=nginx \
  6. --prefix=/usr/local/nginx \
  7. --conf-path=/etc/nginx/nginx.conf \
  8. --sbin-path=/usr/sbin/nginx \
  9. --error-log-path=/var/log/nginx/nginx_error.log \
  10. --http-log-path=/var/log/nginx/nginx_access.log \
  11. --pid-path=/usr/local/nginx/run/nginx.pid
复制代码
5.Nginx 编译安装
  1. [root@localhost nginx]# make && make install
复制代码
6.启动nginx
  1. [root@localhost nginx-1.16.0]# /usr/sbin/nginx
复制代码
7.查看状态并配置开机自启
  1. #查看nginx服务状态
  2. [root@localhost ~]# ps -ef | grep nginx
  3. root      31469      1  0 23:11 ?        00:00:00 nginx: master process /usr/sbin/nginx
  4. nginx     31470  31469  0 23:11 ?        00:00:00 nginx: worker process
  5. root      31554   1182  0 23:11 pts/0    00:00:00 grep --color=auto ngin
  6. #配置开机自启
  7. [root@localhost ~]# systemctl enable nginx
  8. 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仓库是最新且可用的,以便获取最新的软件包信息:
  1. sudo yum update
复制代码
  2. 添加Nginx的Yum仓库
    Nginx官方提供了Yum仓库,需要先添加这个仓库到你的系统中。创建一个名为nginx.repo的   文件:
  1. sudo nano /etc/yum.repos.d/nginx.repo
复制代码
编辑配置文件(vim /etc/yum.repos.d/nginx.repo):
  1. [nginx]
  2. name=nginx repo
  3. baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
  4. gpgcheck=0
  5. enabled=1
复制代码
3. 安装Nginx
添加了Nginx的Yum仓库后,使用Yum来安装Nginx:
  1. sudo yum install nginx
复制代码
4. 启动Nginx服务
安装完成后,启动Nginx服务:
  1. sudo systemctl start nginx
复制代码
5. 设置Nginx开机自启动
为了确保Nginx在系统重启后自动启动,你需要设置开机自启动:
  1. sudo systemctl enable nginx
复制代码
6. 查看Nginx服务状态
你可以查看Nginx服务的状态,确保它已经正常启动:
  1. sudo systemctl status nginx
复制代码
7. 配置防火墙
假如你的系统启用了防火墙,你需要答应HTTP和HTTPS流量通过防火墙。以下是使用firewalld的下令:
  1. sudo firewall-cmd --permanent --zone=public --add-service=http
  2. sudo firewall-cmd --permanent --zone=public --add-service=https
  3. sudo firewall-cmd --reload
复制代码
2.3验证Nginx安装

打开浏览器,访问你的服务器IP地址或域名,假如能看到Nginx的默认欢迎页面,表示Nginx已经成功安装并运行。



2.4PHP安装 

2.4-1编译安装PHP

1.安装环境依赖包
  1. #安装依赖包
  2. [root@localhost ~]# yum -y install gcc gcc-c++ glibc automake autoconf libtool make
  3. #安装依赖库
  4. [root@localhost ~]#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.下载源码包
  1. [root@localhost ~]# wget https://www.php.net/distributions/php-7.3.6.tar.gz
复制代码
3.编辑配置文件
  1. [root@localhost ~]# tar xzvf php-7.3.6.tar.gz -C /usr/local/
  2. [root@localhost ~]# cd /usr/local/php-7.3.6/
  3. [root@localhost php-7.3.6 ]# ./configure \
  4. --prefix=/usr/local/php7                 # 配置安装目录
  5. --with-config-file-path=/usr/local/php7 # 配置文件 php.ini 的路径
  6. --enable-sockets                                 # 开启 socket
  7. --enable-fpm                                         # 启用 fpm 扩展
  8. --enable-cli                                         # 启用 命令行模式 (从 php 4.3.0 之后这个模块默认开启所以可以不用再加此命令)
  9. --enable-mbstring                                 # 启用 mbstring 库
  10. --enable-pcntl                                         # 启用 pcntl (仅 CLI / CGI)
  11. --enable-soap                                         # 启用 soap
  12. --enable-opcache                                 # 开启 opcache 缓存
  13. --disable-fileinfo                                 # 禁用 fileinfo (由于 5.3+ 之后已经不再持续维护了,但默认是开启的,所以还是禁止了吧)(1G以下内存服务器直接关了吧)
  14. --disable-rpath                                  # 禁用在搜索路径中传递其他运行库。
  15. --with-mysqli                                         # 启用 mysqli 扩展
  16. --with-pdo-mysql                                 # 启用 pdo 扩展
  17. --with-iconv-dir                                 # 启用 XMLRPC-EPI 字符编码转换 扩展
  18. --with-openssl                                         # 启用 openssl 扩展 (需要 openssl openssl-devel)
  19. --with-fpm-user=nginx                         # 设定 fpm 所属的用户
  20. --with-fpm-group=nginx                         # 设定 fpm 所属的组别
  21. --with-curl                                         # 启用 curl 扩展
  22. --with-mhash                                         # 开启 mhash 基于离散数学原理的不可逆向的php加密方式扩展库
  23. # GD
  24. --with-gd                                                 # 启用 GD 图片操作 扩展
  25. --with-jpeg-dir                                 # 开启对 jpeg 图片的支持 (需要 libjpeg)
  26. --with-png-dir                                         # 开启对 png 图片支持 (需要 libpng)
  27. --with-freetype-dir                         # 开启 freetype
  28. # xml
  29. --enable-simplexml                                 # 启用对 simplexml 支持
  30. --with-libxml-dir                                 # 启用对 libxml2 支持
  31. --enable-debug                                         # 开启 debug 模式
复制代码
4.编译安装(30分钟左右)
  1. make && make install
复制代码
5.配置php-fpm
  1. #1.创建 php.ini 配置文件
  2. [root@localhost php-7.3.6]# cp php.ini-production /usr/local/php7/etc/php.ini
  3. [root@localhost php-7.3.6]# vim /usr/local/php7/etc/php.ini +1371 #php的Session存储目录
  4. 1371 session.save_path = "/tmp" #将注释打开
  5. #2.设置php-fpm配置文件
  6. [root@qfedu.com php-7.3.6]# cd /usr/local/php7/etc
  7. [root@localhost etc]# cp php-fpm.conf.default php-fpm.conf
  8. [root@localhost etc]# vim php-fpm.conf +17
  9. pid = /var/run/php-fpm.pid  #将注释取消并修改
  10. # php-fpm连接文件
  11. [root@localhost etc]# cd /usr/local/php7/etc/php-fpm.d/
  12. [root@localhost php-fpm.d]# cp www.conf.default www.conf
  13. [root@localhost php-fpm.d]# vim www.conf
  14. user = nginx
  15. group = nginx
  16. listen = 127.0.0.1:9000
  17. #3.启动php-fpm
  18. [root@localhost php-fpm.d]# /usr/local/php7/sbin/php-fpm
  19. #4.查看是否启动
  20. [root@localhost php-fpm.d]# ps aux | grep php-fpm
  21. #5.配置与重新载入环境变量
  22. [root@localhost ~]# vim /etc/profile
  23. export PHP_HOME=/usr/local/php7
  24. export PATH=$PATH:$PHP_HOME/bin:$PHP_HOME/sbin
  25. [root@localhost ~]# source /etc/profile
复制代码
6.配置php-fpm开机自启
  1. [root@localhost ~]# vim /lib/systemd/system/php-fpm.service
  2. [Unit]:服务的说明
  3. Description:描述服务
  4. After:描述服务类别
  5. [Service]服务运行参数的设置
  6. Type=forking是后台运行的形式
  7. ExecStart为服务的具体运行命令
  8. ExecReload为重启命令
  9. ExecStop为停止命令
  10. PrivateTmp=True表示给服务分配独立的临时空间
  11. 注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
  12. [Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
  13. [root@localhost ~]# systemctl enable php-fpm.service
复制代码
2.4-2yum安装PHP

1. 更新Yum仓库
确保Yum仓库是最新的,不再过多缀述:
  1. sudo yum update
复制代码
2. 安装EPEL和Remi仓库
PHP的某些版本和扩展可能不在默认的Yum仓库中,需要添加EPEL和Remi仓库。EPEL提供了许多额外的软件包,而Remi仓库提供了最新版本的PHP。
安装EPEL源:
  1. sudo yum install epel-release
复制代码
安装Remi源:
  1. sudo yum install yum-utils
  2. sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
复制代码
3. 启用Remi仓库中的PHP模块
Remi仓库中有多个PHP版本,需要启用你想要安装的PHP版本。比方,启用PHP 7.4版本:
  1. sudo yum-config-manager --enable remi-php74
复制代码
CopyInsert
4. 安装PHP
启用Remi仓库中的PHP模块后,就可以使用Yum来安装PHP及其常用扩展:
  1. 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服务
启动并设置开机自启动:
  1. sudo systemctl start php-fpm
  2. sudo systemctl enable php-fpm
复制代码
6. 查看PHP版本
安装完成后,查看PHP的版本,确保安装成功:
  1. php -v
复制代码

2.5 Nginx 配置支持PHP

2.5-1添加 Nginx 配置

  1. [root@localhost ~]# cd /etc/nginx/
  2. [root@localhost nginx]# vim nginx.conf
  3. #配置如下
  4. server
  5. {
  6.         listen 80;
  7.         server_name localhost;
  8.         index index.html index.htm index.php;
  9.         root /usr/local/nginx/html;
  10.         location ~ \.php$
  11.         {
  12.                 include fastcgi_params;        #指定nginx连接php-fpm的常量
  13.                 fastcgi_pass 127.0.0.1:9000;    #连接php-fpm的地址和端口
  14.                 fastcgi_index index.php;        #指定默认页面
  15.                 fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; #指定站点根目录
  16.         }
  17. }
复制代码
2.5-2添加 php 探测文件

  1. [root@localhost nginx]# cd /usr/local/nginx/html/
  2. [root@locolhost html]# vim index.php
  3. <?php
  4. phpinfo();
  5. ?>
复制代码
2.5-3验证 Nginx 关联 php-fpm

  1. [root@localhost html]# systemctl restart php-fpm.service
  2. [root@localhost ~]# ps -ef|grep php-fpm
  3. root      69652      1  0 14:02 ?        00:00:00 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)
  4. nginx     69653  69652  0 14:02 ?        00:00:00 php-fpm: pool www
  5. nginx     69654  69652  0 14:02 ?        00:00:00 php-fpm: pool www
  6. nginx     69655  69652  0 14:02 ?        00:00:00 php-fpm: pool www
  7. nginx     69656  69652  0 14:02 ?        00:00:00 php-fpm: pool www
  8. nginx     69657  69652  0 14:02 ?        00:00:00 php-fpm: pool www
复制代码
重新载入配置:
  1. [root@localhost html]# systemctl restart nginx
  2. [root@localhost html]# systemctl status nginx
复制代码
2.6访问网页验证

输入你的服务器IP地址+index.php
如图所示:

假如表现该页面表示LNMP环境至此配置成功! 

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

使用道具 举报

0 个回复

正序浏览

快速回复

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

本版积分规则

王海鱼

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表