Lin操作基础系统 5_第1页
Lin操作基础系统 5_第2页
Lin操作基础系统 5_第3页
Lin操作基础系统 5_第4页
Lin操作基础系统 5_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第15章Web服务器Apache《Linux操作系统(第5版)》学习目标理解ApacheHTTP服务器的配置文件结构和常用配置指令 掌握Apache服务器的安装、启动、测试与故障排除方法掌握基于IP、端口和域名的虚拟主机配置,实现主机访问控制及个人站点建设掌握LAMP环境部署与测试,形成动态网站部署能力章节概述本章围绕Web服务器Apache展开。首先介绍Apache的模块化特性及安装、服务管理与测试。详解配置文件结构及核心指令。重点讲解三种虚拟主机配置:基于IP、端口和域名,并演示个人站点的启用与权限设置。最后部署LAMP环境,安装php-fpm与MySQL,配置PHP解析及MySQL连接测试。同时说明防火墙开放http/https端口及SELinux相关布尔变量的调整,确保服务正常运行。目录0102Apache概述

Apache的安装和启动03

Apache的配置文件和配置指令04

Web服务器配置示例05

LAMP环境部署06与防火墙和SELinux的关系Apache概述15.115.1Apache概述1.继承的概念1.什么是异常Apache是ApacheHTTPServer的简称,是Apache软件基金会的一个开放源代码的网页服务器,可运行在大多数计算机操作系统中。凭借跨平台和安全性等特性被广泛使用,是目前十分流行的Web服务端软件之一。众多公司或企业使用Apache作为Web服务器软件。Apache采用了模块化的体系结构,不仅提供了基本的Web服务,而且具有极强的可扩展性。起源与命名Apache的安装和启动15.215.2.1Apache的安装1.继承的概念Apache的安装在红帽系统中,Apache服务器软件包为httpd(服务器软件包),与其相关的软件包会在httpd安装时一起被安装。另外,在安装httpd软件包时,还可以选择是否安装用户手册和参考指南httpd-manual(红帽)/httpd-help(OpenEuler)。安装命令为:#dnfinstallhttpdhttpd-manual-y #安装httpd及相关软件包(红帽)#dnfinstallhttpdhttpd-help-y #安装httpd及相关软件包(OpenEuler)在Ubuntu系统中,Apache服务器软件包为apache2,还有一个文档包apache2-doc是可选的,安装命令为:#aptinstallapache2apache2-doc-y #安装apache2及相关软件包(Ubuntu)红帽与Ubuntu操作系统的Apache服务器的服务名分别为httpd.service和apache2.service,可用服务管理命令systemctl进行管理。由用户根据自己所用的系统来决定服务名和所使用的管理命令。1.红帽&OpenEuler#systemctlenablehttpd;systemctlstarthttpd #启用;立即启动#systemctlstatushttpd #(需要时)检查状态#systemctlreloadhttpd #(配置文件修改后)重载配置#systemctlstop/disable/restarthttpd #其它1.继承的概念1.什么是异常Apache启动管理与配置检查15.2.2启动管理与配置检查2.Ubuntu#systemctlenableapache2;systemctlstartapache2#启用;立即启动#systemctlstatusapache2 #(需要时)检查状态#systemctlreloadapache2 #(配置文件修改后)重载配置#systemctlstop/disable/restartapache2 #其它15.2Apache的安装和启动3.检查配置文件语法是否正确#httpd-t #红帽&OpenEuler#apache2-t #Ubuntu#apachectlconfigtest #所有系统4.查看Apache中的模块(查看编译到Apache中的静态/共享模块)#httpd-l/-M #红帽&OpenEuler:#apache2-l/-M #Ubuntu在默认情况下,网站的文档目录为/var/www/html,默认文档为index.html.为了避免与Apache安装时自带的index.html冲突,在/var/www/html中创建一个文档名为index2.html.<HTML><TITLE>ApacheServerTest!</TITLE><BODY><H2>HelloApacheWorld!</H2></BODY></HTML>使用文本浏览器elinks或firefox浏览器来测试,在屏幕上显示“HelloApacheWorld!”,表明Apache服务器正常配置并已经启动。#elinks/index2.html#若成功,输入q并回车退出。需要时,先安装elinks包#firefox/index2.html1.继承的概念1.什么是异常Apache服务的测试15.2.3Apache服务的测试1.继承的概念1.什么是异常主机与虚拟主机及IP设置15.2.4主机、虚拟主机及IP地址设置在本章的学习和实践中需要使用/etc/hosts或DNS进行地址解析,为了方便,本章选择使用/etc/hosts。设所用的环境内有centos10(CentOSStream10)、fedora42、ubuntu25、openeuler25和win10等系统,请参考图设置自己的/etc/hosts文件。1.继承的概念1.什么是异常Apache的帮助信息15.2.5Apache的帮助信息Apache的帮助信息可由以下方法获得:安装Apache及相关软件包后,在Ubuntu和其他系统中分别使用命令:manapache2.conf和manhttpd.conf获得;通过/docs/2.4/获得;在启用Apache的手册页(manual)功能后,通过/manual/获得。Apache的配置文件和配置指令15.315.3.1Apache配置概述1.继承的概念1.什么是异常Apache配置概述在红帽系统中,Apache服务的默认配置目录为/etc/httpd/,主配置文件为conf/httpd.conf。在Ubuntu系统中,Apache服务的默认配置目录为/etc/apache2,主配置文件为apache2.conf。尽管名字不同,所处位置也不同,但配置方法相似。红

帽Ubuntu意义及作用/etc/httpd//etc/apache2/配置目录httpd.confapache2.conf主配置文件,其他子配置文件均通过Include指令包含在其中conf/主配置文件httpd.conf存放目录conf.d/子配置文件*.conf存放目录。其中的文件将包含在主配置文件中conf.modules.d模块配置文件*.conf存放目录conf-available/可用子配置文件*.conf存放目录(可用,但仍未启用)conf-enabled/已启用的子配置文件*.conf存放目录。通常,其中的文件是conf-available/中文件的同名链接sites-available/可用站点子配置文件*.conf存放目录(可用,但仍未启用)sites-enabled/已启用站点子配置文件*.conf存放目录(参见conf-enabled/说明)mods-available/可用模块文件*.load存放目录(可用,但仍未启用)mods-enabled/已启用模块文件*.load存放目录(参见conf-enabled/说明)15.3.1Apache配置概述1.继承的概念1.什么是异常Apache配置概述除了主配置文件,还有其他一些子配置文件。这些子配置文件都是通过Include或IncludeOptional包含进主配置文件的。当需要修改配置或添加站点时,一般不需要修改主配置文件。在红帽系统中,通常将新建站点子配置文件添加到conf.d/目录下,文件命名形式为*.conf;在Ubuntu系统中,要将新建站点的形如*.conf的子配置文件先存放在conf-available/或sites-available/内,当决定启用时,再在conf-enabled/或sites-enabled/内为其创建一个同名链接,并重载Apache服务。15.3.1Apache配置概述1.继承的概念1.什么是异常Apache配置概述在红帽系统中安装httpd-manual,并在conf.d/目录下安装manual.conf后,就启用了manual功能。对于Ubuntu,如果安装了apache2-doc文档包,就在conf-available/目录下安装了Apache的manual功能子配置文件apache2-doc.conf,若要启用此功能,需要在conf-enabled/内为其创建一个同名链接,方法是:#cd/etc/apache2/conf-enabled;ln-s../conf-available.;systemctlreloadapache2当manual功能被启用后,就可通过/manual获得在线帮助。以下bshell脚本,除了显示主配置文件的有效配置内容,还定义了CONF_DIR、CONF_FILE和DOC_DIR3个变量,分别对应Apache在不同系统中的配置目录、配置文件和(网页)文档目录。15.3.1Apache配置概述1.继承的概念1.什么是异常Apache配置概述[-e/etc/lsb-release]&&{CONF_DIR="/etc/apache2";CONF_FILE=apache2.conf;}\||{CONF_DIR="/etc/httpd";CONF_FILE=conf/httpd.conf;}DOC_DIR="/var/www/html";grep-v-E'(^[[:blank:]]*$)|(^[[:blank:]]*#)'$CONF_DIR/$CONF_FILE;exportCONF_DIRCONF_FILEDOC_DIR;echo$CONF_DIR$CONF_FILE$DOC_DIR为了方便,在以后的描述中,只描述配置目录$CONF_DIR、配置文件$CONF_FILE和文档目录$DOC_DIR,不再针对具体系统。1.继承的概念1.什么是异常Apache配置文件的结构Apache的配置文件分三大节,分别是:(1)全局配置节(GlobalEnvironment)。用于控制Apache服务器进程的全局操作。(2)主服务器或默认配置节(MainorDefaultServer)。用于处理任何不被<VirtualHost>段处理的请求,也就是服务器默认配置,这里的参数也都可以写在虚拟主机段中。(3)虚拟主机配置节(VirtualHosts)。用于为虚拟主机提供配置。用户可根据需要,修改配置文件以建立符合自己需要的Apache服务器。15.3.2Apache配置文件的结构1.继承的概念1.什么是异常全局配置节指令15.3.3Apache的配置文件的结构

ServerTokensOS:服务器回应给客户端的"Server:"应答头,包含关于服务器操作系统类型和编译模块的描述信息。

ServerRootdir:设置服务器配置目录(需要注意的是,路径不能以“/”结尾)。在红帽系统中为“/etc/httpd”,在Ubuntu系统中为“/etc/apache2”。

Listenport:设置Apache服务器监听端口。例如:Listen80 #80为默认端口

Includefile:将file包含到主配置文件中。此处的file是相对于ServerRoot存放的。

IncludeOptional:与Include类似,区别是当导入文件有问题时会被忽略而不报错。

Apache服务器进程的运行身份及属组。

UserUSER:指定Apache服务进程运行者的身份。红帽下为apache,Ubuntu下为www-data。

GroupGROUP:指定Apache服务进程运行者的属组。红帽下为apache,Ubuntu下为www-data。15.33Apache的配置文件的结构

ServerAdminroot@localhost:指定Apache服务器管理员的邮箱。

ServerNameName:Port:设置Apache服务器默认站点的名字和端口号。Name可以是IP地址,也可以是域名。

UserCanonicalNameOn/Off:设置是否使用规范名字。若为Off,则表示使用由客户端提供的主机名和端口号;若为On,则表示使用ServerName指令设置的值。

DocumentRoot"/var/www/html":设置默认站点的文档根目录。

访问控制:关于访问控制有很多内容,这里仅介绍一种对目录的访问控制方法。在配置文件中有多个<Directory>命令块用于对目录进行访问控制,该命令块以<Directory/dir>开始,以</Directory>结束,其间的内容用于对目录/dir及其子目录内容进行访问控制。1.什么是异常主服务器或默认配置节指令15.3.3Apache的配置文件的结构

某系统中对根目录(/)的访问控制结构如下:<Directory/>OptionsFollowSymLinksAllowOverrideNoneRequirealldenied</Directory>OptionsFollowSymLinks表示允许跟随符号链接;AllowOverrideNone表示不允许覆盖;Requirealldenied表示拒绝所有。关于AllowOverride、Options和Require的可取值及意义,请参考Apache的在线文档或手册页。1.什么是异常主服务器或默认配置节指令15.33Apache的配置文件的结构

实际上,在Apache的配置文件中有很多这样的“目录访问控制”设置,比如“文档目录的访问控制”段<Directory"/var/www/html">...</Directory>,“个人主页目录的访问控制”段<Directory"/home/*/public_html">...</Directory>等。具体地,用户可以查看httpd的配置文件。用户也可以根据需要设置“目录访问控制”部分。

定义目录别名Alias/icons/"/var/www/icons/" //定义“/var/www/icons/”的别名为“/icons/”。一般情况下,在定义了目录别名后,要对别名所代表的目录进行访问控制配置。<Directory"/var/www/icons"> ......</Directory>

ErrorLoglogs/error_log:指定错误日志的存放位置。

DefaultIcon/icons/unknown.gif:定义默认图标为unknown.gif。1.什么是异常主服务器或默认配置节指令15.33Apache的配置文件的结构

虚拟主机由<VirtualHost*>...</VirtualHost>块定义,其中的常用配置指令有ServerName,用于指定虚拟主机的名字;ServerAlias,用于指定虚拟主机的别名;DocumentRoot,用于指定网站文档目录。还可以用ErrorLog、CustomLog指定虚拟主机的错误及日志文件处理方法。其他没有定义的参数使用缺省或默认设置。1.什么是异常虚拟主机配置节指令Apache服务器配置示例15.4Apache的主机访问控制可以用来限制特定主机对指定目录的访问。对目录的访问控制可通过<Directory/dir>...</Directory>结构来实现。可用:Orderallow,deny定义allow与deny指令的执行顺序,如果有多条这样的指令且相互矛盾,则以最后一次执行的为准。需要注意的是,Order中指令allow、deny的顺序与后面的Allowfrom、Denyfrom的书写顺序无关。示例1:访问控制成功示例本示例对“/var/www/access_control_1”目录进行访问控制,要求/24中的所有客户机除0外都可以访问。子配置如下:Alias/acc_ctl_1/var/www/access_control_1<Directory"/var/www/access_control_1"> Orderallow,deny Allowfrom/24 Denyfrom0</Directory>15.4.1主机访问控制访问控制成功示例1)红帽和OpenEuler在某服务器主机(如fedora42.linux.study)上,执行以下操作。(1)创建子配置文件在/etc/httpd/conf.d目录下创建子配置文件chp15exp1.conf,使其内容如上。(2)创建文档目录参照以上代码,创建目录/var/www/access_control_1,方法是:#mkdir/var/www/access_control_1(3)创建站点测试主页文件在目录/var/www/access_control_1内,创建或从别处复制一个主页文件index.html,必要时可做适当修改,以反映此站点特征。<html><body>ThisisaAccessControltestpageonDir:Access_Control_1</body></html>(4)重载Apache服务#systemctlreloadhttpd #红帽和OpenEuler15.4.1主机访问控制配置与测试过程--服务器配置2)Ubuntu在ubuntu25.linux.study中,配置过程与红帽系统基本相同,所不同的是子配置目录。(1)创建子配置文件。在/etc/apache2/conf-available/目录内创建子配置文件chp15exp1.conf,使其内容与红帽系统的相同。然后,在/etc/apache2/conf-enabled/目录内为其创建一个同名链接,方法是:#cd/etc/apache2/conf-enabled;ln-s../conf-available/chp15exp1.conf.(2)创建文档目录(与红帽和OpenEuler系统相同)。(3)创建站点测试主页文件(与红帽和OpenEuler系统相同)。(4)重载Apache服务。#systemctlreloadapache2 #Ubuntu15.4.1主机访问控制配置与测试过程--服务器配置在测试时,可从centos10、ubuntu25、fedora42或win10中分别访问fedora42.linux.study或ubuntu25.linux.study,以验证示例1的结论。对fedora42.linux.study进行访问时,在浏览器地址栏中输入http://fedora42.linux.study/acc_ctl_1或2/acc_ctl_1,或执行如下命令:$elinkshttp://fedora42.linux.study/acc_ctl_1$elinks2/acc_ctl_1以上过程说明了网站建设与测试的大致过程,后面示例的配置与测试过程可仿此。15.4.1主机访问控制配置与测试过程--测试本示例对“/var/www/access_control_2”目录进行访问控制,要求/24中的所有客户机除0外都可以访问。若子配置如下,则会导致访问控制失败:Alias/acc_ctl_2/var/www/access_control_2<Directory"/var/www/access_control_2">Orderdeny,allowAllowfrom/24Denyfrom0</Directory>在此示例中,实际上Denyfrom0并没有起作用,最后的结果是允许/24网段中所有的主机访问目录“/var/www/access_control_2”。设以上为子配置文件chp15exp2.conf的代码,测试过程与方法参见示例1。在测试访问ubuntu25时,地址栏中输入的内容为http://ubuntu25.linux.study/acc_ctl_2或执行命令:$elinks5/acc_ctl_215.4.1主机访问控制访问控制失败示例在一台主机(如centos10.linux.study,若是其他系统,则只需要修改逻辑IP地址)上针对某个IP地址和特定端口(8080)建立虚拟主机。(1)虚拟网卡准备网卡的名字取决于网卡在硬件系统主板上的位置,可能是ens33、ens160、enp2s0或wlp3s0等。若系统中有多个网卡,则只取其中的一个并将网卡名子赋给变量NET。#NET=`nmclid|awk'/^en|^wl/&&$3=="connected"{print$1}'|head-1`现在为网卡$NET创建逻辑网络接口$NET:1并为其指定IP地址。#ifconfig$NET:10netmask #centos10:centos10v1#ifconfig$NET:15netmask #ubuntu25:ubuntu25v1#ifconfig$NET:12netmask #fedora42:fedora42v115.4.2虚拟主机基于指定IP地址和端口的虚拟主机(2)创建子配置文件。在centos10的配置目录conf/中创建子配置文件chp15exp3.conf,使其内容为:Listen8080<VirtualHost0:8080>ServerAdminadmin@linux.studyDocumentRoot/var/www/www8080ServerName0#ErrorLoglogs/0-8080-error_log#CustomLoglogs/0-8080-access_logcommon</VirtualHost>若为ubuntu25,则在子配置目录site-available中创建子配置文件chp15exp3.conf并将其中的0都改为5,然后在site-enabled内为其创建一个同名链接(见示例1)。15.4.2虚拟主机基于指定IP地址和端口的虚拟主机(3)创建文档目录。设站点文档目录为/var/www/www8080,创建此文档目录:#mkdir/var/www/www8080;cd/var/www/www8080 #创建并进入文档目录并在此目录中,创建主页文件index.html,使其内容为:<html><body>TestPageonVirtualHostonPort8080.</body></html>(4)重载服务。(5)设置防火墙。由于使用的是非标准端口(80),因此还要为端口8080进行防火墙设置,命令如下:#firewall-cmd--permanent--add-port8080/tcp;firewall-cmd--reload#红帽和OpenEuler#ufwallow8080/tcp #Ubuntu15.4.2虚拟主机基于指定IP地址和端口的虚拟主机(6)测试在使用端口8080进行测试时,从centos10、ubuntu25或fedora42等登录,并在浏览器地址栏中输入0:8080(centos10)或5:8080(ubuntu25)。若要使用主机名测试,则要修改每个系统的/etc/hosts文件,此时的地址栏内容为http://centos10v1.linux.study:8080或http://centos10v1:8080。15.4.2虚拟主机基于指定IP地址和端口的虚拟主机本示例在同一台主机(如centos10.linux.study)上配置多个IP地址,每个IP地址分别对应一台虚拟主机。为网络接口$NET创建子接口$NET:2和$NET:3,并分别为其配置IP地址。#ifconfig$NET:20netmask #centos10#ifconfig$NET:30netmask#ifconfig$NET:24netmask #ubuntu25#ifconfig$NET:34netmask#ifconfig$NET:20netmask #fedora42#ifconfig$NET:30netmask15.4.2虚拟主机基于IP地址的虚拟主机设子配置文件为chp15exp4.conf,其内容为:<VirtualHost0:80>ServerAdminadmin@linux.studyDocumentRoot/var/www/www-66ServerName0#ErrorLoglogs/0-error_log#CustomLoglogs/0-access_logcommon</VirtualHost><VirtualHost0:80>DocumentRoot/var/www/www-68ServerName0#ErrorLoglogs/0-error_log#CustomLoglogs/0-access_logcommon</VirtualHost>15.4.2虚拟主机基于IP地址的虚拟主机需要注意的是,除了要为VirtualHost指定对应的IP地址,还要为ServerName指定值。分别为两台虚拟主机建立文档目录/var/www/www-66和/var/www/www-68,并分别在其中创建各自站点的主页文件index.html,内容由用户自定。在测试时,URL为0或0。15.4.2虚拟主机基于IP地址的虚拟主机基于名字的虚拟主机配置通常较简单,只需在域名服务器中完成配置,将每个主机名映射至对应的IP地址,随后在Apache服务器中进行设置,使其能够识别不同的主机名即可。基于名字的虚拟主机可使多个网站使用相同的IP地址,以缓解IP地址稀缺的问题。因此,除非用户使用的设备明确要求是基于IP地址的,否则应该使用基于名字的虚拟主机。基于名字的虚拟主机需要DNS的支持,若只在小区域网络内,则可使用/etc/hosts替代DNS。在使用基于名字的虚拟主机时,要为每台虚拟主机配置一个<VirtualHost>块。在每个<VirtualHost>块中,至少需要一个ServerName和DocumentRoot指令来指定该虚拟主机名和文档目录。15.4.2虚拟主机基于名字的虚拟主机假设服务器名为centos10.linux.study,试在此服务器上配置基于名字的虚拟主机站点vhost1.linux.study和vhost2.linux.study。这里仍使用示例3中的网段,并在主机centos10、ubuntu25和fedora42等上分别设置IP地址和虚拟主机名centos10v1、ubuntu25v1、fedora42v1、vhost1、vhost2。设基于名字的虚拟主机的子配置文件为chp15exp5.conf,若要配置vhost1.linux.study和vhost2.linux.study两个基于名字的虚拟主机站点,则可使子配置文件的内容为:15.4.2虚拟主机基于名字的虚拟主机<VirtualHost*:80>ServerAdminadmin@linux.studyDocumentRoot/var/www/vhost1ServerNamevhost1.linux.study#ErrorLoglogs/vhost1.linux.study-error_log#CustomLoglogs/vhost1.linux.study-access_logcommon</VirtualHost><VirtualHost*:80>ServerAdminadmin@linux.studyDocumentRoot/var/www/vhost2ServerNamevhost2.linux.studyServerAliaslinux.study#ErrorLoglogs/vhost2.linux.study-error_log#CustomLoglogs/vhost2.linux.study-access_logcommon</VirtualHost>15.4.2虚拟主机基于名字的虚拟主机分别为两个虚拟站点创建文档目录/var/www/vhost1和/var/www/vhost2,并分别在其中创建或从别处复制一个index.html文件,但要使其内容能够反映各自虚拟主机的站点特征。测试时要使用虚拟主机名,而不能使用IP地址,URL为http://vhost1.linux.study或http://vhost2.linux.study。15.4.2虚拟主机基于名字的虚拟主机个人站点也叫个人主页。在Linux中,Apache可通过UserDir指令允许某些用户在其家目录中拥有个人Web站点。当启用此功能后,使用URLhttp://centos10.linux.study/~user/访问时将访问用户“user”家目录中由UserDir指定的子目录中的内容。UserDir指令有几种不同的形式,以用户test为例,说明如下。15.4.3个人站点简介1)设置文件路径UserDirpublic_html(相对路径):作为用户家目录的子目录/home/test/public_html。在地址栏中输入http://centos10.linux.study/~test/file.html时将访问centos10.linux.study主机上的/home/test/public_html/file.html。UserDir/var/html(绝对路径):被认为用户家目录在/var/html下,即/var/html/test/。UserDir/var/www/*/docs:*为用户家目录,可视为/var/www/test/docs/。UserDirpublic_html/var/html(多路径):先按UserDirpublic_html搜索,若搜索不到,则再按UserDir/var/html搜索。15.4.3个人站点简介2)限定哪些用户可以使用UserDir功能(1)禁用UserDir功能。UserDirdisabled #禁用个人站点(2)启用UserDir功能。UserDirenabled #启用个人站点:允许所有(3)允许所有用户或禁止少数用户使用UserDir功能。UserDirenabled #允许所有用户使用UserDirdisabledroottest2 #禁止root用户和user1用户使用(4)禁止所有用户或允许少数用户使用UserDir功能。UserDirdisabled #禁止所有用户使用UserDirenabledtesttest1 #允许test用户和test1用户使用15.4.3个人站点简介为用户test开通个人站点1)红帽和OpenEuler(1)子配置文件userdir.conf设置。在红帽系统(如centos10)中,/etc/httpd/conf.d内已存在“UserDirpublic_html”形式的只读个人站点子配置文件userdir.conf。在此子配置文件中,因为有配置行UserDirdisabled的存在,所以个人站点功能被禁用。若要启用个人站点,则必须注释掉此行。另外,由于配置行#UserDirpublic_html的存在,个人站点目录并未被定义,若要使其生效,则需要删除该行前的“#”。根据以上内容修改userdir.conf后,重载或重启httpd服务。15.4.3个人站点个人站点示例(2)个人站点目录及文件权限设置。个人站点目录及文件权限的设置方法有多种,但唯一要遵循的原则是,保证Web服务器的管理者主、组(红帽和OpenEuler中均为apache,Ubuntu中为www-data)可以进入目录并可以使用只读方式访问其中的文件,方法之一是:#cd/home/test;mkdirpublic_html;chowntest:testpublic_html#创建个人站点目录public_html主页文件index.html及内容由用户自己拟定,简单起见,可复制一个过来。#cdpublic_html;cp/var/www/html/index2.htmlindex.html#创建个人站点主页文件(还可做出修改)#chmod-Ro+rx/home/test #设置test用户家目录及其内容的权限,允许其他人只读访问15.4.3个人站点个人站点示例(3)SELlinux设置。个人站点目录和其中文件的SELinux权限为httpd_user_content_t,查询方法是:#ls/home/test/public_html/-Zd #查询public_html目录的SELinux权限#ls/home/test/public_html/-Z #查询public_html目录内容的SELinux权限若不正确,则可以使用以下命令进行设置:#chcon-R-thttpd_user_content_t/home/test/public_html#setsebool-Phttpd_enable_homedirs1#允许httpd访问个人家目录(4)测试。在本地访问时,URL为/~test。从外部访问时,URL为http://centos10/~test。15.4.3个人站点个人站点示例2)Ubuntu在ubuntu25中,Apache配置目录/etc/apache2的mods-available/中,已经为用户准备了userdir.conf(仅限制root用户使用的个人站点定义)和userdir.load(个人站点模块加载)两个文件,但这两个文件在mods-enabled/中并不存在。也就是说,这两个文件还没有被启用。现在,在mods-enabled/中为这两个子配置文件创建同名链接,从而启用它们。#cd/etc/apache2/mods-enabled #进入/etc/apache2/mods-enabled#ln-s../mods-available/userdir.conf. #为userdir.conf创建符号链接#ln-s../mods-available/userdir.load. #为userdir.load创建符号链接#systemctlreloadapache2 #重载Apache服务除设置SELinux以外的工作,请参考红帽系统的相关内容。在测试时,URL为http://ubuntu25/~test。15.4.3个人站点个人站点示例2)Ubuntu在ubuntu25中,Apache配置目录/etc/apache2的mods-available/中,已经为用户准备了userdir.conf(仅限制root用户使用的个人站点定义)和userdir.load(个人站点模块加载)两个文件,但这两个文件在mods-enabled/中并不存在。也就是说,这两个文件还没有被启用。现在,在mods-enabled/中为这两个子配置文件创建同名链接,从而启用它们。#cd/etc/apache2/mods-enabled #进入/etc/apache2/mods-enabled#ln-s../mods-available/userdir.conf. #为userdir.conf创建符号链接#ln-s../mods-available/userdir.load. #为userdir.load创建符号链接#systemctlreloadapache2 #重载Apache服务除设置SELinux以外的工作,请参考红帽系统的相关内容。在测试时,URL为http://ubuntu25/~test。15.4.3个人站点个人站点示例LAMP环境部署15.5红帽/OpenEuler和Ubuntu均提供了php-fpm模块,安装方法:#dnfinstallphp-fpmphp-mysqlnd-y #红帽和OpenEuler#aptinstallphp-fpmlibapache2-mod-phpphp-mysql-y #Ubuntuphp-fpm需要的其他支持软件包会在安装过程中被自动安装。MySQL服务器与客户端的安装与服务管理已经见于第3章,需要时可以安装它们。另外,关于PHP这里只需要运行支持,若需要PHP方面的开发支持,则需要安装php服务。15.5.1

php-fpm模块安装与配置php-fpm模块安装与服务管理php-fpm服务名,在红帽和OpenEuler下为php-fpm.service,而在Ubuntu下与php-fpm版本相关。查询当前Ubuntu所用php-fpm版本的命令为:#apt-cachedependsphp-fpm#查询php-fpm所依赖的软件包(结果包名与所含服务名相同)得到的结果包可能是php8.3-fpm或php8.4-fpm等。假设得到的结果包为php8.4-fpm,则其对应的服务名为php8.4-fpm.service。管理php-fpm服务方法:#systemctlenablephp-fpm;systemctlstartphp-fpm #红帽和OpenEuler#systemctlenablephp8.4-fpm;systemctlstartphp8.4-fpm #Ubuntuphp-fpm模块被安装、服务被启用且启动的操作,修改了Apache的配置,因此还要重启Apache服务。15.5.1

php-fpm模块安装与配置php-fpm模块安装与服务管理php-fpm与Web配置相关的配置文件为www.conf,在红帽下为/etc/php-fpm.d/www.conf,在Ubuntu下为/etc/php/8.4/fpm/pool.d/www.conf。15.5.1

php-fpm模块安装与配置php-fpm的配置配置项红帽和OpenEulerUbuntu说明及建议userapachewww-dataWEB服务器属主groupapachewww-dataWEB服务器属组listen/run/php-fpm/www.sock/run/php/php8.4-fpm.sock在UNIX/Linux下建议使用,无须修改:9000:9000在Windows下使用在www.conf配置文件中,listen可以使用或监听UNIXSocket或9000端口。php-fpm服务可以工作在UNIXSocket或TCP的9000端口上,在Linux下默认工作在UNIXSocket上。UNIXSocket文件在红帽中为/run/php-fpm/www.sock,在Ubuntu中为/run/php/php8.4-fpm.sock。也可让php-fpm监听:9000端口,而且在Windows中只能这样。15.5.1

php-fpm模块安装与配置php-fpm的配置无论是在红帽还是Ubuntu下,php-fpm及其支持的模块安装后,即可支持*.php网页运行。测试方法是在Apache的文档目录中创建一个网页文件,如index.php,然后通过浏览器访问它,具体操作如下:#echo"<?phpphpinfo();?>">/var/www/html/index.php此时/var/www/html/index.php的内容为:<?phpphpinfo();?>然后,在浏览器地址栏中输入/index.php,就可以在网页上看到PHP信息了。15.5.1

php-fpm模块安装与配置测试15.5.2LAMP网站示例页面测试123456789101112131415161718192021222324<?phpecho'<HTML><TITLE>LAMPDemonstration</TITLE><BODY>';echo"Messagefrom".$_SERVER['HTTP_HOST']."to".$_SERVER['REMOTE_ADDR']."<br>";echo"SelectUser_id,Usernamefromtest_db.users<br>";$con=mysqli_connect("localhost","test","TestUser")ordie('mysqli_connecterror!');$selDB=mysqli_select_db($con,"test_db");if(!$selDB)echo"DatabaseMYSQLselectfailed!<br>";else{$query="SELECT*FROMusers";$result=mysqli_query($con,$query);if(!$result)echo"NoResultfind!<bk>";else{$num=mysqli_num_rows($result);echo"IDName<br>";for($rc=0;$rc<$num;$rc++){$row=mysqli_fetch_row($result);echo$row[0]."".$row[1]."<br>";}}}echo'</BODY></HTML>';?>程序第5行语句mysqli_connect("localhost","test","TestUser")中的第2个参数test为用户名,第3个参数TestUser为test用户的密码;第6行语句mysqli_select_db($con,"test_db")中的test_db为要连接的数据库;第10行语句SELECT*FROMusers中的users为数据库test_db中的表。现在,首先将index2.php放在LAMP网站的文档目录/var/www/html内,然后在浏览器地址栏中输入/index2.php,就可看到"SELECTHost,UserFROMuser;"的结果。15.5.1

php-fpm模块安装与配置测试

与防火墙和SELinux的关系15.6开启防火墙的系统,需要允许httpd服务通过:#firewall-cmd--permanent--add-service=http #增加允许http的规则:firewalld防火墙#firewall-cmd--permanent--add-service=https #增加允许https的规则#firewall-cmd--permanent--add-port=8080/tcp #增加允许8080/tcp的规则#firewall-cmd--reload #重载防火墙规则#ufwallowhttp #增加允许http的规则:ufw防火墙#ufwallowhttps #增加允许https的规则#ufwallow8080 #增加允许8080端口的规则15.6.1与防火墙的关系配置防火墙通过命令seinfo-t|grephttpd和seinfo-b|grephttpd可以分别获得与httpd相关的类型标签和布尔变量信息,通过命令manhttpd_selinux可以获得SELi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论