运维开发宝典023-WEB网站服务

大家好,我是云计算磊哥,从业20年的IT老鸟。运维培训15年,总结了一套从入门到精通的全运维开发宝典手册。准备用300天时间写一套博文,手把手从安装软件讲起,从行业到产品,从过去到未来,从理论到操作,从视频到文档工具,一站式。从零基础入门到20k运维开发工程师岗位诸多就业问题。多方位全方面的给你讲清楚云计算这个行业该如何做。关注我。后续更精彩。

本文讲解了关于WEB服务器的相关概念,以及虚拟主机技术。构建论坛博客系统WEB实战。

Apache服务器

1 简介
1.1 前言

UI的转变:B/S架构

1.2 名词

HTML

复制代码
    HyperText Markup Language 

网页

使用HTML,PHP,JAVA语言格式书写的文件。

主页

网页中呈现用户的第一个页面。

URL

Uniform Resource Locator

统一资源定位符

1.3 Web Server

Nginx(Tengine)、Apache、IIS

1.4 静态元素

.html .img .css .swf .mp4 .jpg .png .gif

1.5 动态元素

.php .jsp .cgi .asp SQL

1.6 Web 中间件

php: PHP-fpm、HHVM

jsp: Tomcat、JBOSS、Resin、IBM WebSphere

1.7 常见组合方式

LNMP (Linux + Nginx + MySQL + PHP) //php-fpm进程

LAMP (Linux + Apache + MySQL + PHP) //php作为Apache的模块

Nginx + Tomcat   //取代Apache与Tomcat结合,java

2 静态站点
2.1 Apache基础

Apache: www.apache.org

软件包: httpd

服务端口: 80/tcp(http) 443/tcp(https,http+ssl)

配置文件: /etc/httpd/conf/httpd.conf

/etc/httpd/conf.d/*.conf

/etc/httpd/conf.d/welcome.conf //默认测试页面

2.2 安装Apache
shell 复制代码
[root@apache ~]# yum -y install httpd
[root@apache ~]# systemctl start httpd
[root@apache ~]# systemctl enable httpd
[root@apache ~]# systemctl stop  firewalld
2.3 虚拟主机

目的

复制代码
虚拟主机VirtualHost 

在一台物理服务器上运行多个网站 

类型

复制代码
基于主机名
基于IP地址
基于端口号

配置虚拟主机实现如下网站:

复制代码
www.a.org 		/var/www/html/a.org     
www.b.org 		/b.org 
注意关闭firewalld和selinux

www.a.org

shell 复制代码
# mkdir /var/www/html/a.org 
# vim /var/www/html/a.org/index.html 

创建a.org的配置文件
# vim /etc/httpd/conf.d/a.org.conf 
<VirtualHost *:80>
   ServerName www.a.org
   DocumentRoot /var/www/html/a.org
</VirtualHost>

检测配置文件语法,重启服务
# httpd -t 
# systemctl restart httpd 

www.b.org

shell 复制代码
# mkdir /b.org 
# vim /b.org/index.html 

创建b.org的配置文件 
# vim /etc/httpd/conf.d/b.org.conf 
<VirtualHost *:80>
   ServerName www.b.org
   DocumentRoot /b.org
</VirtualHost>

<Directory "/b.org">
   Require all granted
</Directory>

 
检测配置文件语法,重启服务
# httpd -t 
# systemctl restart httpd 

注意:域名解析。www.b.org
测试:yum install -y elinks
		elink www.b.org
3 动态站点
3.1 图解动态网站架构
4 测试LAMP环境
4.1 Apache
4.2 Apache基础

Apache: www.apache.org

软件包: httpd

服务端口: 80/tcp(http) 443/tcp(https,http+ssl)

配置文件: /etc/httpd/conf/httpd.conf

/etc/httpd/conf.d/*.conf

/etc/httpd/conf.d/welcome.conf //默认测试页面

4.3 安装Apache
shell 复制代码
[root@apache ~]# yum -y install httpd
[root@apache ~]# systemctl start httpd
[root@apache ~]# systemctl enable httpd
4.5 防火墙
shell 复制代码
[root@apache ~]# sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config 
[root@apache ~]# setenforce 0
[root@apache ~]# firewall-cmd --permanent --add-service=http
[root@apache ~]# firewall-cmd --permanent --add-service=https
[root@apache ~]# firewall-cmd --reload 
4.6 测试页
shell 复制代码
1 建立静态页面。
[root@apache ~]# vim /var/www/html/index.html
1802test
请注意观察测试是否成功。

2 建立动态页面。
[root@apache ~]# vim /var/www/html/2.php 
<?php
phpinfo();
?>
请观察测试是否成功,NO
4.7 安装PHP
shell 复制代码
之所以,测试不成功。是因为没有人解析动态语言。

[root@apache ~]# yum -y install php		 //php作为Apache的模块 

观察安装后的结果。
[root@apache ~]# ll /etc/httpd/modules/libphp5.so 
-rwxr-xr-x. 1 root root 4588368 Jun 24 2015 /etc/httpd/modules/libphp5.so
[root@apache ~]# ll /etc/httpd/conf.d/php.conf 
-rw-r--r--. 1 root root 691 Jun 24 2015 /etc/httpd/conf.d/php.conf
重新启动网站程序。调动php模块
[root@apache ~]# systemctl restart httpd

请再次刷新页面。见下图。PHP语言被解析成功。

请思考。PHP查询的数据存放在哪里?

在数据库中。

4.8 安装数据库
shell 复制代码
[root@apache ~]# yum -y install mariadb-server mariadb
[root@apache ~]# systemctl start mariadb.service 
[root@apache ~]# systemctl enable mariadb.service 

增强mysql。
[root@apache ~]# mysql_secure_installation //提升mariadb安全 [可选]
Set root password? [Y/n] 
New password: 123
Re-enter new password: 123 
手动测试账号密码。
[root@apache ~]# mysql  -uroot  -p123 //登录mariadb测试
MariaDB [(none)]> \q

[root@apache ~]# rm -rf /var/www/html/*
[root@apache ~]# vim /var/www/html/index.php
<?php
$link=mysql_connect('localhost','root','123');
if ($link)
echo "Successfuly";
else
echo "Faile";
mysql_close();
?>

请思考。数据库是否可以连接成功。

测试结果: php无法连接mysql 。因为缺少php连接mysql的工具

4.9 配置php

shell 复制代码
配置php连接Mariadb
[root@apache ~]# yum -y install php-mysql
[root@apache ~]# php -m //查看php有哪些扩展
[PHP Modules]
mysql
mysqli
[root@apache ~]# systemctl restart httpd

4.9 Apache基本配置

shell 复制代码
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
ServerRoot "/etc/httpd" 		//安装目录
Listen 80 	//监听端口
IncludeOptional conf.d/*.conf 	//包含conf.d下的*.conf文件
User apache 		//运行Apache的用户
Group apache 		//运行Apache的用户组
DirectoryIndex index.html index.php 		//设置默认主页,用一个。
DocumentRoot 		//站点默认主目录
5 部署网上商城 ecshop
5.2 基础环境
shell 复制代码
[root@apache ~]# sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config 
[root@apache ~]# setenforce 0
[root@apache ~]# systemctl stop firewalld.service 
[root@apache ~]# systemctl disable firewalld.service
5.3 安装LAMP
shell 复制代码
[root@apache ~]# yum -y install httpd mariadb-server mariadb php php-mysql gd php-gd
[root@apache ~]# systemctl start httpd mariadb
[root@apache ~]# systemctl enable httpd mariadb
5.4 安装Ecshop

上传站点源码包

复制代码
[root@apache ~]# mkdir -p /webroot/abc
[root@apache ~]# unzip ECShop_V3.0.0_UTF8_release0518.zip   //官网下载或学校FTP
[root@apache ~]# cp -rf ECShop_V3.0.0_UTF8_release0518/* /webroot/abc/
[root@apache ~]# chmod -R 777 /webroot/abc/

配置HTTP虚拟主机

复制代码
[root@apache ~]# vim /etc/httpd/conf.d/abc.conf
添加如下内容
shell 复制代码
httpd -t httpd配置文件语法检测
[root@apache ~]# systemctl restart httpd

配置域名解析

shell 复制代码
[root@localhost ~]# vim /etc/hosts //如果没有使用DNS解析
192.168.122.161 www.abc.top abc.top //161为 web server IP

修改php.ini时区

复制代码
[root@apache ~]# vim /etc/php.ini
复制代码
[root@apache ~]# systemctl restart httpd
5.5 前台安装源码包
5.6 使用商城

再次打开浏览器,访问服务器IP地址即可。略

6 部署论坛系统discuz
6.2 基础环境
shell 复制代码
[root@apache ~]# sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config 
[root@apache ~]# setenforce 0
[root@apache ~]# systemctl stop firewalld.service 
[root@apache ~]# systemctl disable firewalld.service
6.3 安装LAMP
shell 复制代码
[root@apache ~]# yum -y install httpd mariadb-server mariadb php php-mysql gd php-gd
[root@apache ~]# systemctl start httpd mariadb
[root@apache ~]# systemctl enable httpd mariadb
[root@apache ~]# mysql_secure_installation		//可选设置密码
6.4 安装Discuz!

导入discuz网站源码

shell 复制代码
[root@apache ~]# mkdir /webroot/discuz
[root@apache ~]# tar xf Discuz_X3.4_SC_UTF8.zip
[root@apache ~]#cp -rf upload/* /webroot/discuz/
[root@apache ~]#chown -R  apache.apache  /webroot/discuz/

Apache 配置虚拟主机

shell 复制代码
[root@apache ~]# vim /etc/httpd/conf.d/discuz.conf
<VirtualHost *:80>
   ServerName www.discuz.com
   DocumentRoot /webroot/discuz
</VirtualHost>

<Directory "/webroot/discuz">
   Require all granted
</Directory>
[root@apache ~]# systemctl restart httpd

准备数据库

shell 复制代码
[root@localhost discuz]# mysql
MariaDB [(none)]> create database discuz ;
MariaDB [(none)]> show databases;
| discuz             |

配置域名解析

shell 复制代码
[root@localhost  ~]# vim /etc/hosts
192.168.122.161 www.abc.top abc.top www.abc.com  www.discuz.com //161为 web server IP

前台安装discuz

前台使用

Linux入门阶段 配套视频 https://edu.csdn.net/course/detail/40861


Linux 系统管理阶段的学习,本章至此已圆满完成,我们系统掌握了用户权限、进程管理、计划任务、日志服务、网络配置、文件共享及域名解析等核心运维技能,为服务器稳定运行与服务搭建打下了坚实基础。接下来将进入 MySQL 数据库运维阶段,重点学习数据库安装配置、用户与权限管理、数据备份恢复、性能优化及故障排查,实现从系统运维到数据运维的全面进阶。

mysql阶段 配套视频 https://edu.csdn.net/course/detail/40864

相关推荐
用户2136610035721 分钟前
Vue2非父子通信与动态组件
前端·vue.js
PedroQue997 分钟前
Vite插件体系1.0.0:API稳定,生产就绪
前端·vite
用户059540174469 分钟前
把LLM记忆测试从手工脚本换成Pytest参数化,回归时间从2小时降到10分钟
前端·css
donecoding15 分钟前
3 条命令搞定闭环 Monorepo:Lerna 版本管理 + 拓扑构建 + 自定义分发
前端·前端框架·node.js
IT_陈寒22 分钟前
Vue的这个响应式陷阱让我熬到凌晨三点
前端·人工智能·后端
爱勇宝9 小时前
大多数人不是在使用 AI 赚钱,而是在帮 AI 公司赚钱
前端·后端·程序员
冬奇Lab10 小时前
每日一个开源项目(第143篇):page-agent - 纯 JS 的网页 GUI Agent,无需截图、无需插件、无需后端
前端·人工智能·agent
IT_陈寒14 小时前
React的这个渲染问题连官方文档都没说清楚
前端·人工智能·后端
追逐时光者16 小时前
别再满网找零散工具了,腾讯 QQ 浏览器这个“帮小忙”工具箱真能省时间
前端·后端
Asmewill18 小时前
grep&curl命令学习笔记
前端