前言
UI的转变:B/S架构
Web Server
Nginx(Tengine)、Apache、IIS
静态元素
.html .img .css .swf .mp4
动态元素
.php .jsp .cgi .asp SQL
Web 中间件
php: PHP-fpm、HHVM
jsp: Tomcat、JBOSS、Resin、IBM WebSphere
常见组合方式
LNMP (Linux + Nginx + MySQL + PHP) //php-fpm进程
LAMP (Linux + Apache + MySQL + PHP) //php作为Apache的模块
Nginx + Tomcat //取代Apache与Tomcat结合,java
Apache
建议使用2.4及以上的版本
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 //默认测试页面
安装Apache
[root@apache ~]# yum -y install httpd
[root@apache ~]# systemctl start httpd
[root@apache ~]# systemctl enable httpd
虚拟主机
目的
虚拟主机VirtualHost
作用:在一台物理服务器上运行多个网站
类型
基于主机名
基于IP地址
基于端口号
配置虚拟主机
实现如下网站:
www.a.org /var/www/html/a.org
www.b.org /b.org
注意关闭firewalld和selinux
www.a.org
# mkdir /var/www/html/a.org
# vim /var/www/html/a.org/index.html
创建a.org的配置文件
# vim /etc/httpd/conf.d/a.org.conf
ServerName www.a.org
DocumentRoot /var/www/html/a.org
检测配置文件语法,重启服务
# httpd -t
# systemctl restart httpd
注意:web客户机可以自建DNS,也可以HOSTs文件解析。
测试:yum install -y elinks
elink www.a.org
www.b.org
# mkdir /b.org
# vim /b.org/index.html
创建b.org的配置文件
# vim /etc/httpd/conf.d/b.org.conf
ServerName www.b.org
DocumentRoot /b.org
Require all granted
检测配置文件语法,重启服务
# httpd -t
# systemctl restart httpd
注意:域名解析。www.b.org
测试:yum install -y elinks
elink www.b.org
首先安装Apache和上面的静态站点一样
1.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 //默认测试页面
1.2 安装 Apache
[root@apache ~]# yum -y install httpd
[root@apache ~]# systemctl start httpd
[root@apache ~]# systemctl enable httpd
1.3 防火墙
[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
1.5 网站主目录建立测试页
1 建立静态页面。
[root@apache ~]# vim /var/www/html/index.html
1702test
请注意观察测试是否成功。
2 建立动态页面。
[root@apache ~]# vim /var/www/html/2.php
phpinfo();
?>
请观察测试是否成功,NO(需要安装php)
1.6 安装php
之所以,测试不成功。是因为没有人解析动态语言。
[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查询的数据存放在哪里?
答:在数据库中。
1.7 安装数据库(mysql/Mariadb)
[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/2.php
$link=mysql_connect('localhost','root','123');
if ($link)
echo "Successfuly";
else
echo "Faile";
mysql_close();
?>
请思考。数据库是否可以连接成功。
测试结果: php无法连接mysql 。因为缺少php连接mysql的工具
1.8 配置php-mysql,用来连接Mariadb
配置php连接Mariadb
[root@apache ~]# yum -y install php-mysql
[root@apache ~]# php -m //查看php有哪些扩展
[PHP Modules]
mysql
mysqli
[root@apache ~]# systemctl restart httpd
1.9 Apache基本配置
[root@tianyun ~]# 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 //站点默认主目录
2.0 MPM优化 (面试题)
# prefork MPM //进程模式(稳定)
StartServers 6 //初始建立的进程数
MinSpareServers 6 //最小空闲的进程数
MaxSpareServers 15 //最大空闲的进程数
ServerLimit 2000 //最大启动的进程数 默认256
MaxClients 2000 //最大并发连接数 默认256
MaxRequestsPerChild 4000 //每个子进程在其生命周期内允许响应的最大请求数,0不限制
# worker MPM //线程模式(高效)
StartServers 2 //初始建立的进程数
ThreadsPerChild 50 //每个进程建立的线程数
MinSpareThreads 100 //最小空闲的线程数
MaxSpareThreads 200 //最大空间的线程数
MaxClients 2000 //最大的并发访问量(线程)
MaxRequestsPerChild 0 //每个子进程在其生命周期内允许响应的最大请求数,0不限制
图示
下载的logo
2.1 基础环境
一,基础环境
[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
2.2 安装LAMP
二、安装LAMP
[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 ~]# mysqladmin -u root password "123"
2.3 安装Ecshop
2.3.1 上传站点源码包
1. Apache 配置虚拟主机
[root@apache ~]# vim /etc/httpd/conf.d/zhufo.conf
httpd -t httpd配置文件语法检测
[root@apache ~]# systemctl restart httpd
2. 导入ecshop网站源码
[root@apache ~]# mkdir -p /webroot/zhufo
[root@apache ~]# unzip ECShop_V3.0.0_UTF8_release0518.zip
[root@apache ~]# cp -rf ECShop_V3.0.0_UTF8_release0518/* /webroot/zhufo/
2.3.2 前台安装源码包
[root@apache ~]# chmod -R 777 /webroot/zhufo/
修改php.ini时区
[root@apache ~]# vim /etc/php.ini
[root@apache ~]# systemctl restart httpd
Logo
3.1 基础环境[已完成]
一、基础环境[已完成]
[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
3.2 安装LAMP[已完成]
二、安装LAMP[已完成]
[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
3.3 安装Ecshop
3.3.1 Apache 配置虚拟主机
1. Apache 配置虚拟主机
[root@apache ~]# vim /etc/httpd/conf.d/tianyun.conf
[root@apache ~]# systemctl restart httpd
3.3.2 导入wordpress网站源码
2. 导入wordpress网站源码
[root@apache ~]# mkdir -p /webroot/tianyun
[root@apache ~]# tar xf wordpress-4.5.3-zh_CN.tar.gz
[root@apache ~]# cp -rf wordpress/* /webroot/tianyun/
3.3.3 准备数据库(创建一个库)
3.3.4 安装wordpress[任何client]
4. 安装wordpress [任何client]
[root@tianyun ~]# vim /etc/hosts
192.168.122.161 www.zhufo.top zhufo.top www.tianyun.com tianyun.com //161为 web server IP
chmod -R 777 /webroot/tianyun
准备环境
[root@aliyun ~]# rm -rf /var/www/edusoho/web/download/*
[root@aliyun ~]# echo "download....." > /var/www/edusoho/web/download/index.html
仅用于http 2.4+
案例1:允许所有主机访问
AllowOverride None
Require all granted
AllowOverride All 允许子目中的 .htaccess 中的设置覆盖当前设置
AllowOverride None 不允许子目中的 .htaccess 中的设置覆盖当前设置
Require all denied
案例2:只允许网段192.168.5.0/24、192.168.10.0/24访问
AllowOverride None
Require ip 202.106.0.0/24
Require ip 114.248.160.203
案例3:只拒绝某些主机访问
AllowOverride None
Require not ip 114.248.160.203
Require all granted
案例4:针对文件的访问控制4
不允许在/var/www/edusoho/web/upload目录中执行.php文件
AllowOverride None
Require all granted
Order allow,deny
Deny from all