Linux系统环境WEB发布网站的建设

2023/03/06-17:05 来源:

韩维营(沈阳日报社)

 

摘要:本文介绍了CentOS系统WEB发布环境的组成、nginxPHP-fpmTomcatMariadb等软件安装、详细阐述了主要配置参数含义及相应的特别注意事项,给出验证办法。

关键词:网页 静态网页 动态网页 发布引擎 数据库 反向代理Java nginx PHP-fpm Mariadb Tomcat

 

多数网站都是基于微软的windows系列软件建立的,由于使用的是封闭的商业化软件配置相对简单。近年来,免费开源Linux系统不断成熟完善Linux服务器系统开始在网站发布应用上走红大有取代其它系统之势。下面以CentOS8.2为例说明如何实现

CentOS8.2是基于Fedora 28和Linux Kernal 4.18的最新发行版,WEB发布平台通常是由发布引擎、存储数据的数据库、网页处理器、发布软件四部分组成,其中发布软件是针对发布平台要完成的功能特别专门编制的软件,因发布平台不同而不同,其余三个部分是必不可少的通用的独立工具,这三部分构成重要的WEB发布环境,离开合适WEB发布环境,发布软件是无法运行的。

WEB发布网页有静态网页和动态网页两种,静态网页是指web页面中供人们浏览的栏目选项始终是不变的,每个网页都是一个独立的文件,网页文件以.htmhtml .shtml 、.xml 等后缀形式表示;而动态网页是指web页面中供人们浏览的栏目是由程序产生的,不同人不同时间点访问web页面看到的内容各不相同,网页文件以.asp 、.jsp 、.php 、.perl 、.cgi 等形式后缀表示。

Centos8的WEB发布引擎有Apache、tomcat、PHP和Nginx四种,tomcat是基于Java侧重动态WEB解析的http服务器,可单独运行。PHP是“超文本预处理器”,服务器端执行的脚本语言,用于处理PHP语言的网页。Nginx是俄罗斯的轻量级WEB服务器,处理静态WEB能力强悍,有负载均衡功能,用反向代理机制把动态WEB请求转发到后台交由第三方软件tomcat进行处理实现静动WEB分离Nginx负责静态处理,tomcat负责动态处理。

下面阐述Centos+Nginx+MarriaDB+PHP+tomcat架构的安装与配置。

一、Nginx、MarriaDB、PHP、tomcat安装

1、Nginx安装

1)从nginx的官网下载最新版本nginx-1.19.1.tar.gz,解压下载包

2)安装编译Nginx的依赖包

#dnf install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

3)配置nginx的编译参数

# ./configure --prefix=/usr/local/soft/nginx-1.19.1 --with-http_stub_status_module --with-http_ssl_module

在此可根据需要添加扩展nginx功能模块参与编译

4)编译并安装

# make && make install

2、安装 mariadb 最新版 10.5.x

1)设置数据源

#vim /etc/yum.repos.d/mariadb.repo;添加如下内容

[mariadb]

name = mariadb

baseurl=http://mirrors.aliyun.com/mariadb/yum/10.5/centos8-amd64/

gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB

enabled=1

gpgcheck=1

2)安装

1)安装最新版本

  #dnf -y install MariaDB-server MariaDB-client  --disablerepo=AppStream

   --disablerepo=AppStream 禁用仓库标识AppStream

2)启动 mariadb

  #systemctl start mariadb

3、安装PHP7.4.8

安装

(1)Enable php:remi-7.4 module.

dnf module enable php:remi-7.4 -y

(2)Install PHP 7.4.

dnf install -y php php-cli php-common

PHP 常用扩展包

dnf install -y php-dom php-simplexml php-ssh2 …

(4)查看版本

 php -v

(5)查看启用的模块,请运行:

    $ php --modules

4、安装tomcat

tomcat是基于java环境运行的软件,所以必须安装java包(过程略)。

1)下载apache-tomcat-9.0.40.tar.gz,将其解压到系统某一目录,即可运行。

# tar -zxvf apache-tomcat-9.0.40.tar.gz

启动tomcat

# ./startup.sh

关闭tomcat

# ./shutdown.sh

二、Nginx、MarriaDB、PHP、tomcat配置

Nginx、MarriaDB、PHP、tomcat安装完成后,需要进行必要的配置,胜任网站工作,这是WEB发布环境搭建的核心。

1、Nginx配置

1)设置软链接

为了在各种路径能正常运行Nginx,需配如下软连接:

ln -s /usr/local/soft/nginx-1.19.1/sbin/nginx /usr/local/sbin/nginx

2)为方便启停Nginx运行,配置nginx运行服务,新建nginx.service

#vim /usr/lib/systemd/system/nginx.service 文件,配置内容

3)创建nginx运行所需的用户和用户

# groupadd nginx

-g:指定所属的group

-s:指定shell,因为它不需要登录,所以用/sbin/nologin

-M:不创建home目录,因为它不需要登录

# useradd -g nginx -s /sbin/nologin -M nginx

4)赋予nginx在网站根目录工作的所有权限:

# chown nginx:nginx /usr/local/soft/nginx-1.19.1/html -R

5)nginx.conf配置

包含WEB动静分离、PHP调用、文件下载等功能的脚本配置实例如:

#vim /usr/local/soft/nginx-1.19.1/conf/nginx.conf

#设置nginx的用户和用户组

user  nginx nginx;    

worker_processes  auto;

error_log  /usr/local/soft/nginx-1.19.1/logs/error.log;

pid        /usr/local/soft/nginx-1.19.1/logs/nginx.pid;

events {

    use epoll;

    worker_connections  1024;

}

http {

    include       mime.types;

    server {

listen     80;

server_name  localhost;

root /usr/local/soft/nginx-1.19.1/html;

charset utf-8;

location / {

root /usr/local/soft/nginx-1.19.1/html;

index  index.php index.html index.htm index.jsp index.do;

#在发布根目录下搜索网页地址栏输入的文件或目录(下载文件),没有跳转index.php;

try_files $uri $uri/ /index.php$is_args$args;

if ($request_filename ~* ^.*?\.

(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$){

add_header Content-Disposition: 'pwupload';

}

}

location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {

expires      5m;

}

location ~ .php$ {              #调用PHP-pfm处理PHP网页

root /usr/local/soft/nginx-1.19.1/html;

fastcgi_pass    unix:/run/php-fpm/www.sock;    #使用socket协议

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

location ~ \.(jsp|jspx|do)?$ {

index index.jsp;

proxy_pass http://127.0.0.1:8080;  #来自jsp请求交给tomcat处理

}

error_page   500 502 503 504  /50x.html;

location = /50x.html {

 root /usr/local/soft/nginx-1.19.1/html;

}

location ~ ^/(WEB-INF)/ {

deny all;  

}

 }

}

检查nginx的工作状态:

# systemctl status nginx

2、MarriaDB配置

初始化设置数据库

#mysql_secure_installation

Mariadb运行root账户安全设置,初始化数据库。

3、PHP配置

   1)配置php.ini

       vim /etc/php.ini

        #cgi.fix_pathinfo=0的注释删除掉,并改为0,这一项默认被注释并且值为1,避免恶意脚本注入的攻击。

  2)通信方式

       php-fpm通信有两种方式(默认是第二种):

① 通过端口通信,通常在web与php-fpm不在同一台服务器中时使用此方法。

         通过*.sock文件进行互联通信,web与php-fpm在同一台服务器时使用。

php.conf配置

# vi /etc/php-fpm.conf

指定php-fpm的错误日志位置

error_log = /var/log/php-fpm/error.log

pid = /var/run/php-fpm.pid

#vim /etc/php-fpm.d/www.conf

user = nginx  ;PHP用户

group = nginx  ;PHP用户组

web与php-fpm在同一台服务器上使用系统本身socket协议

listen = /run/php-fpm/www.sock

配置通讯文件权限,否则nginx无法调用PHP-fpm

listen.owner = nginx

listen.group = nginx

listen.mode = 0666

4、tomcat配置

创建tomcat.service文件

vi /usr/lib/systemd/system/tomcat.service

内容

查看当前服务状态,看是否正常工作。

systemctl status tomcat.service

tomcat默认的程序发布路径为tomcat/webapps/ROOT/,若更改默认路径,可修改Tomcat配置文件server.xml,比如改到/usr/share/nginx/html/catweb,具体如下:

      <Host name="localhost"  appBase="webapps"

        <Context path="" docBase="/usr/share/nginx/html/tomweb" debug="0" reloadable="true"/>

      </Host>

三、WEB发布环境测试

编写测试WEB页检验发布环境是否正确。

1)vim /usr/local/soft/nginx-1.19.1/html/index.html

内容,测试Nginx是否工作正常。

保存文件,在浏览器地址栏输入:localhost/index.html回车,结果如图1

2)vim /usr/local/soft/nginx-1.19.1/html/test.php

填写如下内容,测试php-fpm是否工作正常。

<?php

phpinfo();

?>

保存文件,在浏览器地址栏输入:localhost/test.php回车,结果如图2

3)vim /usr/local/soft/nginx-1.19.1/html/test.html

内容,测试静态WEB网页是否正常工作

保存文件,在浏览器地址栏输入:localhost/test.html回车,结果如图3

4)vim /usr/local/soft/apache-tomcat-9.0.40/webapps/ROOT/test.jsp

内容略,,测试tomcat是否工作正常。

保存文件,在浏览器地址栏输入:localhost:8090/test.jsp回车,结果如图4

图片11.png图片2.png图片3.png图片4.png网页测试结果如

                 

      1                 2                3            4

 

测试结果证明环境配置正确,各个WEB环境模块工作正常。

5)数据库使用:

     shell 中输入

    #mysql -u root -p;输入 root 的管理密码

    一般启动数据库,直接执行:#mysql。

上述过程无报错,说明MarriaDB安装配置正确。

 

参考资料

源码编译构建LNMP架构(Linux + Nginx + MySQL + PHP)实现论坛的搭建

https://blog.csdn.net/songyuchaoshi/article/details/97830059

CentOS 8-RHEL 8系统中安装PHP 7.4的方法

https://blog.csdn.net/weixin_39514326/article/details/102784965

Centos8 安装 mariadb 最新版 10.5.x

https://blog.csdn.net/fenglailea/article/details/105840417

Nginx+Tomcat实现动静分离