大家好,我是云计算磊哥,从业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
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
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.1 Logo

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.1 Logo

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