欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > Nginx核心功能

Nginx核心功能

2025/4/30 12:55:08 来源:https://blog.csdn.net/YUNYINGXIA/article/details/147617741  浏览:    关键词:Nginx核心功能

目录

一、Nginx 概述

二、Nginx 基于授权的访问控制

(一)基于授权的访问控制简介

(二)基于授权的访问控制步骤

三、Nginx 基于客户端的访问控制

(一)基于客户端的访问控制简介

(二)基于客户端的访问控制步骤

四、Nginx 虚拟主机

(一)基于域名的虚拟主机

(二)基于 IP 的虚拟主机

(三)基于端口的虚拟主机

五、LNMP 架构部署及应用

(一)编译安装 MySQL 服务

(二)安装 PHP 解析环境

(三)配置 Nginx 支持 PHP 环境

(四)在 LNMP 平台中部署 Web 应用(以 Discuz! 为例)


一、Nginx 概述

Nginx 是一款轻量级的高性能 Web 服务器、反向代理服务器,同时具备电子邮件(IMAP/POP3)代理服务等功能。因其出色的性能、稳定性以及丰富的模块生态,在现代 Web 架构中应用广泛。相比传统的 Apache 服务器,Nginx 在处理高并发连接时表现更为优异,资源消耗更低,这使得它成为众多大型网站和应用的首选 Web 服务器软件。

二、Nginx 基于授权的访问控制

(一)基于授权的访问控制简介

Nginx 与 Apache 类似,能够实现基于用户授权的访问控制机制。当客户端尝试访问特定网站或目录时,系统会要求用户输入用户名和密码进行身份验证,验证通过后方可正常访问。这一功能在保障网站资源安全性、限制特定用户访问特定内容等场景中发挥着重要作用。其配置步骤大致可概括为以下关键环节:生成用户密码认证文件,此文件用于存储用户名和加密后的密码信息;修改主配置文件中对应目录的配置,添加认证相关配置项;完成配置修改后,重启 Nginx 服务,并进行访问测试,以确保授权访问控制功能正常运行。

(二)基于授权的访问控制步骤

  1. 使用 htpasswd 生成用户认证文件
    • 在开始配置之前,首先需要确保系统中安装了htpasswd命令。若系统中不存在该命令,可以通过yum包管理器安装httpd - tools软件包,执行命令yum -y install httpd-tools即可完成安装。
    • 使用htpasswd命令生成用户认证文件,例如执行htpasswd -c /usr/local/nginx/passwd.db test。该命令中,-c参数表示创建一个新的密码文件,/usr/local/nginx/passwd.db为指定的密码文件路径及名称,test是创建的用户名。执行命令后,系统会提示输入两次密码,输入完成后,在/usr/local/nginx/目录下会生成passwd.db文件,该文件中存储了用户名test及其对应的加密密码密文。可以使用cat /usr/local/nginx/passwd.db命令查看文件内容,确认用户信息是否正确生成。
  2. 修改密码文件权限和所有者
    • 为了确保密码文件的安全性,需要修改其权限为 400,这样只有文件所有者具有读取权限,执行命令chmod 400 /usr/local/nginx/passwd.db
    • 同时,将密码文件的所有者改为 Nginx 的运行用户,一般为nginx,执行命令chown nginx /usr/local/nginx/passwd.db。修改完成后,可以使用ll -d /usr/local/nginx/passwd.db命令查看文件的权限和所有者信息,确认修改是否成功。
  3. 修改主配置文件 nginx.conf,添加认证配置项
    • 使用文本编辑器(如vim)打开 Nginx 的主配置文件/usr/local/nginx/conf/nginx.conf,在server块中的location部分添加认证配置项。例如:
server {listen 80;server_name localhost;#charset koi8 - r;#access_log logs/host.access.log main;location / {root html;index index.html index.htm;auth_basic "secret";auth_basic_user_file /usr/local/nginx/passwd.db;}
}

  • 其中,auth_basic "secret";设置了认证提示信息,当客户端访问受保护的资源时,弹出的认证对话框中会显示该提示内容;auth_basic_user_file /usr/local/nginx/passwd.db;指定了用于验证用户身份的密码文件路径。

  1. 检测语法、重启服务
    • 在修改完配置文件后,为了避免因配置错误导致 Nginx 服务无法正常启动,需要先检测配置文件的语法是否正确。执行命令nginx -t,若配置文件语法无误,会提示configuration file /usr/local/nginx/conf/nginx.conf test is successful;若存在语法错误,根据提示信息修改配置文件,直至语法检测通过。
    • 确认配置文件语法正确后,执行命令systemctl restart nginx重启 Nginx 服务,使新的配置生效。
  2. 用浏览器访问网址,检验控制效果
    • 在浏览器地址栏中输入 Nginx 服务器的 IP 地址(如http://192.168.10.101),此时会弹出一个登录对话框,要求输入用户名和密码。输入之前创建的用户名test及其对应的密码,若验证通过,则可以正常访问网站内容;若输入错误的用户名或密码,则无法访问,提示访问受限。通过这种方式,可以直观地检验基于授权的访问控制功能是否正常工作。

三、Nginx 基于客户端的访问控制

(一)基于客户端的访问控制简介

基于客户端的访问控制是 Nginx 提供的另一项重要安全功能,它通过对客户端的 IP 地址进行检查和匹配,决定是否允许其访问网站页面。与 Apache 相比,Nginx 基于客户端的访问控制规则更为简洁、易于配置。其核心规则主要包括以下两点:

  • deny IP/IP段:用于拒绝指定 IP 地址或 IP 段的客户端访问。例如,deny 192.168.10.3;表示拒绝 IP 地址为192.168.10.3的客户端访问网站。
  • allow IP/IP段:用于允许指定 IP 地址或 IP 段的客户端访问。例如,allow all;表示允许所有 IP 地址的客户端访问网站。
  • 访问控制规则按照从上往下的顺序依次执行,当某个客户端的 IP 地址匹配到其中一条规则时,便停止继续匹配后续规则,直接根据匹配结果决定是否允许访问。这一执行顺序在实际配置中需要特别注意,合理安排规则顺序可以确保访问控制策略的准确性和有效性。

(二)基于客户端的访问控制步骤

  1. 修改主配置文件 nginx.conf,添加相应配置项
    • 使用vim编辑器打开 Nginx 的主配置文件/usr/local/nginx/conf/nginx.conf,在location块中添加基于客户端 IP 地址的访问控制规则。例如:
location / {root html;index index.html index.htm;auth_basic "secret";auth_basic_user_file /usr/local/nginx/passwd.db;deny 192.168.10.3;allow all;
}

  • 上述配置表示拒绝 IP 地址为192.168.10.3的客户端访问,允许其他所有客户端访问。同时,这里还保留了之前基于授权的访问控制配置项,实际应用中可根据需求灵活调整。

  1. 检测语法、重启服务
    • 完成配置文件修改后,执行nginx -t命令检测配置文件语法,确保语法正确无误。
    • 若语法检测通过,执行systemctl restart nginx命令重启 Nginx 服务,使新的访问控制配置生效。
  2. 测试访问控制效果
    • 在不同 IP 地址的客户端上尝试访问 Nginx 服务器。使用 IP 地址为192.168.10.3的客户端访问时,会收到访问拒绝的提示;而使用其他 IP 地址的客户端访问时,若之前配置的基于授权的访问控制验证通过,则可以正常访问网站内容。通过这种方式,可以验证基于客户端的访问控制功能是否按照预期工作。

四、Nginx 虚拟主机

Nginx 虚拟主机功能允许在同一台服务器、同一组 Nginx 进程上同时运行多个网站,极大地提高了服务器资源的利用率。与 Apache 类似,Nginx 支持多种类型的虚拟主机配置,主要包括基于域名的虚拟主机、基于 IP 的虚拟主机和基于端口的虚拟主机。下面将分别详细介绍这三种类型虚拟主机的配置方法。

(一)基于域名的虚拟主机

  1. 设置客户端域名解析
    • 在客户端的hosts文件中添加域名解析记录,将www.benet.comwww.accp.com这两个域名都指向 Nginx 服务器的 IP 地址192.168.10.101。在 Linux 系统中,hosts文件通常位于/etc/hosts,使用文本编辑器打开该文件,添加如下内容:
192.168.10.101 www.benet.com
192.168.10.101 www.accp.com

  • 在 Windows 系统中,hosts文件位于C:\Windows\System32\drivers\etc\hosts,同样添加上述域名解析记录。修改完成后保存文件,这样客户端在访问这两个域名时,会将请求发送到指定的 Nginx 服务器。

  1. 准备各个网站的目录和测试首页
    • 在服务器上创建两个网站对应的目录,执行命令mkdir -p /var/www/html/benet/mkdir -p /var/www/html/accp/,其中-p参数用于递归创建目录,确保目录结构完整创建。
    • 为每个网站创建测试首页,在/var/www/html/benet/目录下创建index.html文件,执行命令echo "www.benet.com">> /var/www/html/benet/index.html;在/var/www/html/accp/目录下创建index.html文件,执行命令echo "www.accp.com">> /var/www/html/accp/index.html。这两个文件将作为网站的默认首页内容。
  2. 修改配置文件
    • 使用vim编辑器打开 Nginx 的主配置文件/usr/local/nginx/conf/nginx.conf,在文件中添加两个server块,分别配置www.benet.comwww.accp.com这两个虚拟主机的相关参数。配置内容如下:
server {listen 80;server_name www.benet.com;access_log logs/www.benet.com.access.log;charset utf - 8;location / {root /var/www/html/benet;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}
}
server {listen 80;server_name www.accp.com;access_log logs/www.accp.com.access.log;charset utf - 8;location / {root /var/www/html/accp;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}
}

  • 在上述配置中,每个server块都指定了监听的端口(listen 80)、域名(server_name)、访问日志路径(access_log)、字符集(charset)等信息。location /块中指定了网站的根目录(root)和默认首页(index)。同时,还配置了错误页面的处理规则,当服务器发生 500、502、503、504 等错误时,会返回相应的错误页面。

  1. 检测语法、重启服务并测试
    • 完成配置文件修改后,执行nginx -t命令检测配置文件语法,确保配置文件没有语法错误。
    • 若语法检测通过,执行systemctl restart nginx命令重启 Nginx 服务,使新的虚拟主机配置生效。
    • 在浏览器中分别访问www.benet.comwww.accp.com,若配置正确,将分别显示对应的网站内容,即www.benet.com网站显示www.benet.com内容,www.accp.com网站显示www.accp.com内容。

(二)基于 IP 的虚拟主机

  1. 为服务器设置多个 IP 地址
    • 可以通过为服务器添加虚拟网卡的方式来设置多个 IP 地址。以 CentOS 系统为例,进入/etc/sysconfig/network - scripts/目录,执行命令cp ifcfg - ens33 ifcfg - ens33:0cp ifcfg - ens33 ifcfg - ens33:1,这两条命令分别复制了原网卡配置文件,创建了两个新的虚拟网卡配置文件ifcfg - ens33:0ifcfg - ens33:1
    • 使用vim编辑器分别修改这两个虚拟网卡配置文件的内容。对于ifcfg - ens33:0文件,添加如下内容:
IPADDR=192.168.10.151
NETMASK=255.255.255.0
GATEWAY=192.168.10.254
DNS1=223.6.6.6
NAME=ens33:0
DEVICE=ens33:0

  • 对于ifcfg - ens33:1文件,添加如下内容:
IPADDR=192.168.10.152
NETMASK=255.255.255.0
GATEWAY=192.168.10.254
DNS1=223.6.6.6
NAME=ens33:1
DEVICE=ens33:1

  • 修改完成后保存文件,然后执行nmcli c reload命令重新加载网络配置,执行nmcli c up ens33命令启动网络连接,最后使用ip add命令查看服务器的 IP 地址,确认新的 IP 地址是否添加成功。

  1. 修改 Nginx 的配置文件,使基于 IP 的虚拟主机生效
    • 使用vim编辑器打开 Nginx 的主配置文件/usr/local/nginx/conf/nginx.conf,在文件中添加两个server块,分别配置不同 IP 地址对应的虚拟主机。配置内容如下:
server {listen 192.168.10.151:80;server_name www.benet.com;
}
server {listen 192.168.10.152:80;server_name www.accp.com;
}

  • 在上述配置中,每个server块都指定了监听的 IP 地址和端口(listen)以及域名(server_name)。这里的域名可以根据实际需求进行设置,不一定与基于域名的虚拟主机配置中的域名相同。

  1. 访问两个 IP 网站,测试页面是否生效
    • 完成 Nginx 配置文件修改后,执行systemctl restart nginx命令重启 Nginx 服务,使新的配置生效。
    • 在浏览器中分别访问192.168.10.151192.168.10.152这两个 IP 地址,若配置正确,将分别显示对应的网站内容。如果之前在相应的网站目录中创建了测试首页,此时将看到对应的测试页面。

(三)基于端口的虚拟主机

  1. 选择系统中不使用的端口,多个端口映射到同一 IP 地址
    • 首先需要选择系统中未被占用的端口用于虚拟主机配置。例如,选择80808888端口。使用vim编辑器打开 Nginx 的主配置文件/usr/local/nginx/conf/nginx.conf,在文件中添加两个server块,分别配置不同端口对应的虚拟主机。配置内容如下:
server {listen 192.168.10.101:8080;server_name www.benet.com;
}
server {listen 192.168.10.101:8888;server_name www.accp.com;
}

  • 在上述配置中,每个server块都指定了监听的 IP 地址和端口(listen)以及域名(server_name)。通过这种方式,将不同的端口映射到了同一 IP 地址上,实现了基于端口的虚拟主机配置。

  1. 检测端口是否运行正常
    • 完成配置文件修改后,执行systemctl restart nginx命令重启 Nginx 服务,使新的配置生效。
    • 使用netstat -anpt | grep nginx命令检查 Nginx 服务是否正常监听指定的端口。该命令会列出所有与 Nginx 相关的网络连接信息,通过查看输出结果,确认80808888端口是否被 Nginx 正常监听。如果端口未被正确监听,可能需要检查配置文件是否存在错误,或者系统中是否有其他进程占用了这些端口。
  2. 分别访问 2 个端口地址
    • 在浏览器中分别访问http://192.168.10.101:8080http://192.168.10.101:8888这两个端口地址,若配置正确,将分别显示对应的网站内容。同样,如果之前在相应的网站目录中创建了测试首页,此时将看到对应的测试页面。

五、LNMP 架构部署及应用

随着 Nginx 在企业中的广泛应用,LNMP(Linux随着 Nginx 在企业中的广泛应用,LNMP(Linux、Nginx、MySQL、PHP)架构越来越受到青睐,它为搭建高性能的 Web 应用提供了稳定的技术栈。接下来详细介绍 LNMP 架构的部署过程及相关应用。

(一)编译安装 MySQL 服务

本案例既可以使用 rpm 包安装 MySQL 服务,也可以选择编译安装的方式,编译安装能够根据实际需求进行更细致的定制。

  1. 安装编译依赖
    • 首先安装 autoconf 工具,它用于生成可自动配置软件源代码包的脚本,以适应多种 Unix 类系统。执行命令:yum install -y autoconf
    • 接着安装其他必要的依赖包,包括 ncurses-devel、gcc-c++、perl-Module-Install 和 cmake,执行命令:yum -y install ncurses-devel gcc-c++ perl-Module-Install cmake。这些依赖包为 MySQL 的编译和安装提供了必要的环境和工具支持。
  2. 解压与编译 MySQL
    • 将 MySQL 安装包解压,假设安装包为 mysql-5.6.36.tar.gz,执行命令:tar -zxvf mysql-5.6.36.tar.gz,解压后会得到一个名为 mysql-5.6.36 的目录。
    • 进入解压后的目录:cd mysql-5.6.36/,在该目录下执行 cmake 命令进行配置。通过一系列参数指定安装路径、字符集、校对规则等关键设置,命令如下:
cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_EXTRA_CHARSETS=all \-DSYSCONFDIR=/etc

  • 配置完成后,执行make && make install命令进行编译和安装。这个过程可能会花费一些时间,取决于服务器的性能。编译过程中,系统会根据之前的配置信息将 MySQL 源代码编译成可执行文件,并安装到指定的目录中。

  1. 配置 MySQL 服务
    • 将 MySQL 的配置文件复制到 /etc 目录下,执行命令:cp support-files/my-default.cnf /etc/my.cnf,该配置文件包含了 MySQL 的各种默认配置参数,可以根据实际需求进一步修改。
    • 把 MySQL 的启动脚本复制到 /etc/init.d/ 目录下,并命名为 mysqld,执行命令:cp support-files/mysql.server /etc/init.d/mysqld
    • 为启动脚本添加可执行权限:chmod +x /etc/rc.d/init.d/mysqld,使其能够被系统正常调用。
    • 使用 chkconfig 工具将 MySQL 服务添加到系统服务管理中,并设置为开机自启,执行命令:chkconfig --add mysqldchkconfig mysqld on 。
    • 将 MySQL 的二进制目录添加到系统环境变量中,编辑 /etc/profile 文件,在文件末尾添加:echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile,然后执行. /etc/profile使环境变量生效。这样,在任何目录下都可以直接执行 MySQL 相关的命令。
  2. 初始化数据库
    • 创建一个名为 mysql 的用户组:groupadd mysql
    • 创建一个属于 mysql 用户组的系统用户 mysql,且该用户不允许登录系统,执行命令:useradd -M -s /sbin/nologin mysql -g mysql,其中-M表示不创建用户主目录,-s /sbin/nologin指定用户的登录 shell 为 /sbin/nologin,禁止用户通过 ssh 等方式登录系统。
    • 更改 MySQL 安装目录的所有者和所属组为 mysql,执行命令:chown -R mysql.mysql /usr/local/mysql,确保 mysql 用户对 MySQL 相关文件有正确的读写权限。
    • 执行数据库初始化脚本,指定安装目录、数据目录和运行用户,命令如下:/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql。初始化过程中,系统会创建 MySQL 的系统数据库、表结构以及初始用户等信息。
  3. 启动 MySQL 并设置密码
    • 启动 MySQL 服务:systemctl start mysqld
    • 使用 mysqladmin 命令为 root 用户设置密码,假设密码为123.com,执行命令:mysqladmin -u root password '123.com'。设置密码后,后续登录 MySQL 时需要使用该密码进行身份验证。

(二)安装 PHP 解析环境

  1. 安装编译依赖
    • 安装 GD 库、libxml2-devel、libjpeg-devel 和 libpng-devel 等依赖包,这些包为 PHP 处理图形、解析 XML、处理 JPEG 和 PNG 图像提供了支持,执行命令:yum -y install gd libxml2-devel libjpeg-devel libpng-devel
    • 对各依赖包的功能简要说明:
      • libxml2-devel:libxml 是用于解析 XML 文档的函数库,PHP 在处理 XML 数据时会用到它。
      • libjpeg-devel:这是一个用 C 语言编写的库,实现了 JPEG 解码、编码等功能,使得 PHP 能够处理 JPEG 格式的图像。
      • libpng-devel:一套免费的开源程序库,支持对 PNG 图形文件的创建、读写等操作,方便 PHP 处理 PNG 图像。
      • GD(Graphic Device):PHP 的 GD 库是专门用于处理图形的扩展库,通过一系列 API 可以对图像进行处理,如裁剪、缩放、添加文字等,还能直接生成新的图片。
  2. 解压与编译 PHP
    • 解压 PHP 安装包,假设安装包为 php-5.5.38.tar.gz,执行命令:tar -zxvf php-5.5.38.tar.gz
    • 根据 MySQL 的安装方式,选择不同的 configure 参数进行配置。
      • 如果 MySQL 是用源码包安装的,进入解压后的 PHP 目录:cd php-5.5.38/,执行配置命令:
./configure \--prefix=/usr/local/php5 \--with-gd \--with-zlib \--with-mysql=/usr/local/mysql \--with-mysqli=/usr/local/mysql/bin/mysql_config \--with-config-file-path=/usr/local/php5 \--enable-mbstring \--enable-fpm \--with-jpeg-dir=/usr/lib

  • 如果 MySQL 是用 yum 安装的,执行配置命令:
./configure \--prefix=/usr/local/php5 \--with-gd \--with-zlib \--with-mysql=mysqlnd \--with-mysqli=mysqlnd \--with-config-file-path=/usr/local/php5 \--enable-mbstring \--enable-fpm \--with-jpeg-dir=/usr/lib

  • 注意事项:
    • --with-mysqli=mysqlnd这种方式需要用 IP 地址的方式连接数据库,适用于 PHP 和 MySQL 安装在同一服务器或不同服务器的情况。使用 127.0.0.1 本地连接时不需要额外授权,但使用 192.168.10.101 等其他 IP 连接本地数据库时需要授权。
    • --with-mysqli=/usr/bin/mysql_config这种方式只能用localhost连接数据库,仅适用于 PHP 和 MySQL 安装在同一服务器上的场景。
  • 配置完成后,执行make && make install命令进行编译和安装。

  1. 安装后调整
    • 将 PHP 的配置文件模板复制为正式的配置文件,执行命令:cp php.ini-development /usr/local/php5/php.ini,可以根据实际需求进一步修改该配置文件中的参数。
    • 创建软链接,方便在系统中全局使用 PHP 命令,执行命令:ln -s /usr/local/php5/bin/ /usr/local/bin/ln -s /usr/local/php5/sbin/ /usr/local/sbin/
  2. 安装 ZendGuardLoader
    • 解压 ZendGuardLoader 安装包,假设安装包为 zend-loader-php5.5-linux-x86_64_update1.tar.gz,执行命令:tar -zxvf zend-loader-php5.5-linux-x86_64_update1.tar.gz
    • 进入解压后的目录:cd zend-loader-php5.5-linux-x86_64/,将 ZendGuardLoader.so 文件复制到 PHP 的扩展目录下,执行命令:cp ZendGuardLoader.so /usr/local/php5/lib/php/
    • 编辑 PHP 的配置文件 /usr/local/php5/php.ini,添加以下内容:
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable=1

这两行配置启用了 ZendGuardLoader 扩展,使得 PHP 能够支持相关的加密和优化功能。

(三)配置 Nginx 支持 PHP 环境

  1. 启用 php-fpm 进程
    • 进入 PHP 的配置目录:cd /usr/local/php5/etc/
    • 复制 php-fpm 配置文件的默认模板为正式配置文件:cp php-fpm.conf.default php-fpm.conf
    • 创建一个用于运行 php-fpm 进程的系统用户 php,执行命令:useradd -M -s /sbin/nologin php
    • 编辑 php-fpm.conf 文件,设置一些关键参数,如:
pid = run/php-fpm.pid
user = php
group = php
pm.max_children = 50 # 最多子进程数
pm.start_servers = 20 # 启动时开启的进程数
pm.min_spare_servers = 5 # 最少空闲进程数
pm.max_spare_servers = 35 # 最多空闲进程数

  • 启动 php-fpm 进程:/usr/local/sbin/php-fpm,使用netstat -anpt | grep php-fpm命令检查 php-fpm 进程是否正常启动并监听相应端口。
  • 创建一个 systemd 服务单元文件,用于管理 php-fpm 进程的启动、停止和重启等操作。编辑 /lib/systemd/system/php-fpm.service 文件,添加以下内容:
[Unit]
Description=The PHP FastCGI Process Manager
After=network.target
[Service]
Type=simple
PIDFile=/usr/local/php5/php-fpm.pid
ExecStart=/usr/local/php5/sbin/php-fpm --nodaemonize --pm-config /usr/local/php5/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

  • 重新加载 systemd 配置:systemctl daemon-reload,然后启动 php-fpm 服务:systemctl start php-fpm,这样可以通过 systemctl 命令更方便地管理 php-fpm 服务。

  1. 配置 Nginx 支持 PHP 解析
    • 编辑 Nginx 的主配置文件 /usr/local/nginx/conf/nginx.conf,在 server 块中添加对 PHP 解析的支持。假设网站域名为www.bt.com,配置如下:
server {listen 80;server_name www.bt.com;location / {root /var/www/html;index index.html index.htm index.php;}location ~ \.php$ {root /var/www/html;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;include fastcgi.conf;}
}

  • 上述配置中,location ~ \.php$表示匹配所有以.php 结尾的请求。fastcgi_pass 127.0.0.1:9000指定了将 PHP 请求转发到本地的 php-fpm 进程监听的端口 9000。fastcgi_index index.php设置了默认的 PHP 索引文件为 index.php,include fastcgi.conf包含了 FastCGI 相关的配置参数。

  1. PHP 页面访问测试
    • 创建网站根目录:mkdir -p /var/www/html/
    • 创建两个测试 PHP 文件。编辑 /var/www/html/test1.php 文件,添加如下内容:
<?php
phpinfo();
?>

该文件用于查看 PHP 的配置信息。

  • 编辑 /var/www/html/test2.php 文件,添加如下内容:
<?php
$link = mysqli_connect('127.0.0.1', 'root', 'pwd123');
if ($link) {echo "<h1>恭喜你,数据库连接成功啦!!!</h1>";
}
mysqli_close($link);
?>

该文件用于测试 PHP 与 MySQL 的数据库连接。在浏览器中分别访问这两个测试文件对应的 URL(如http://www.bt.com/test1.php和http://www.bt.com/test2.php),检查 PHP 环境是否正常工作以及数据库连接是否成功。

(四)在 LNMP 平台中部署 Web 应用(以 Discuz! 为例)

  1. 下载并部署程序代码
    • 安装 unzip 工具,用于解压 Discuz! 的安装包,执行命令:yum -y install unzip
    • 解压 Discuz! 安装包,假设安装包为 Discuz_X3.3_SC_UTF8.zip,执行命令:unzip Discuz_X3.3_SC_UTF8.zip
    • 创建 Discuz! 的安装目录:mkdir -p /var/www/html/bbs
    • 将解压后的安装包中的所有文件移动到创建的目录中:mv upload/* /var/www/html/bbs
    • 修改安装目录的所有者和所属组为 php,确保 php-fpm 进程对该目录有读写权限,执行命令:chown -R php:php /var/www/html/bbs/
  2. 创建数据库
    • 使用 root 用户登录 MySQL:mysql -uroot -p,输入之前设置的 root 密码。
    • 在 MySQL 中创建一个名为 bbs 的数据库,执行命令:create database bbs;
    • 为 Discuz! 创建一个专门的数据库用户 runbbs,并授予该用户对 bbs 数据库的所有权限,执行命令:
grant all on bbs.* to runbbs@127.0.0.1 identified by 'bbs123';
grant all on bbs.* to runbbs@'localhost' identified by 'bbs123';

这里分别授权该用户可以通过 127.0.0.1 和localhost这两个地址访问数据库。
3. 安装 Web 应用

  • 在浏览器中访问服务器的 URL 地址,加上 Discuz! 的安装路径,如http://192.168.10.101/bbs/install/index.php,进入 Discuz! 的安装向导页面。
  • 在安装向导页面中,根据提示填写数据库信息,包括数据库服务器地址(一般为 127.0.0.1 或localhost)、数据库名(bbs)、数据库用户名(runbbs)、数据库密码(bbs123)等。同时,设置数据表前缀(可保持默认,也可根据需要修改)和系统信箱 Email。
  • 填写管理员信息,包括管理员账号、密码和 Email 等。设置完成后,按照安装向导的提示逐步完成安装过程。安装完成后,就可以通过访问网站 URL 来使用搭建好的 Discuz! 论坛应用了。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词