运维开发宝典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

相关推荐
智能运维指南17 小时前
代码管理软件如何融入 DevOps 工具链?全链路联通的 5 个关键点
运维·devops·信创适配·嘉为蓝鲸
充电zcx17 小时前
Linux:4:开发工具详解
linux·运维·服务器
泯泷17 小时前
那段文字是谁删的?Yjs 14 正式版之前,一套删除归属方案的实现与边界
前端·javascript·算法
野槐20 小时前
前端项目优化(有了我,会发生...)
前端
aa小小20 小时前
【无标题】
前端
gongfeng300021 小时前
福州企业级AI自动化获客解决方案品牌梳理与适用场景分析
运维·人工智能·自动化·g-claw ai员工
计算机魔术师21 小时前
还在单线程跟 AI 聊天?Claude Code 并行多会话让你一个人干三个人的活
前端
志尊宝21 小时前
Vue3 零基础每日笔记(038):亲手封装 useDebounceFn 与 useThrottleFn——高频事件的流量阀
前端·javascript·vue·html·vue3
JavaGuide21 小时前
对标 MinIO!全新一代分布式文件系统正式发布
前端·后端
风骏时光牛马21 小时前
AI驱动自动化业务工作流搭建实践
前端