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

相关推荐
泯泷11 小时前
手搓JSVMM第 8 篇:函数调用:参数、返回值与调用帧
前端·javascript·前端框架
Sherotree11 小时前
Google Antigravity——Agent 被提到主界面
前端·ide·后端·edge浏览器
里欧跑得慢12 小时前
Flutter 像素级还原:设计稿到代码的视觉无损转换技巧
前端·css·flutter·web
里欧跑得慢12 小时前
Flutter 三方库 function_tree — 鸿蒙应用开发中的动态数学公式解析与计算神器,实现鸿蒙深度适配下的复杂函数逻辑运行时求值实战(适配鸿蒙 HarmonyOS Next ohos)
android·前端·安全·flutter·华为·harmonyos
苏灿烤鱼12 小时前
没有机密文件,也没有付费数据,在浏览器里造一颗"间谍卫星"
前端·javascript·github
泯泷13 小时前
手搓JSVM第 5 篇:写第一个编译器:从 AST 生成 IR
前端·javascript·算法
2601_9667990413 小时前
酷嗨米J300:一台相机同步推三平台
运维·服务器·负载均衡
泯泷13 小时前
手搓JSVM第 7 篇:控制流:if、while 与 jump
前端·javascript·算法
Rain的Java大神之路13 小时前
PC版网站被狂刷怎么处理
java·数据库·redis·后端·mysql·web安全·运维开发
泯泷13 小时前
手搓JSVM第 6 篇:把 IR 编成字节码:emit 与 label fixup
前端·javascript·算法