您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页第18章 网站服务

第18章 网站服务

来源:二三娱乐
概念
    前言
        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: 
        软件包: 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地址
                基于端口号
        配置虚拟主机
            实现如下网站:
                        
                   /b.org 
        注意关闭firewalld和selinux
        
            # mkdir  
        # vim  

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

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

        注意:web客户机可以自建DNS,也可以HOSTs文件解析。
        测试:yum install -y elinks
                elink 
                    
                        # mkdir /b.org 
        # vim /b.org/index.html 

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

                    <Directory "/b.org">
                       Require all granted
                    </Directory>
        检测配置文件语法,重启服务
        # httpd -t 
        # systemctl restart httpd 
        
        注意:域名解析。
        测试:yum install -y elinks
    elink 

动态站点

    HTTP Server:(测试LAMP)
        Apache
            建议使用2.4及以上的版本
            
            
        一、Apache基础
            Apache: 
        软件包: 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
        三、防火墙
                        [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 建立静态页面。
                    [root@apache ~]# vim 
                    1702test
                    请注意观察测试是否成功。

        2 建立动态页面。
                    [root@apache ~]# vim  
                          <?php
                          phpinfo();
                          ?>
        请观察测试是否成功,NO
        五、安装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语言被解析成功。
    
        六、安装数据库(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 
                                [root@apache ~]# vim 
                                            <?php
                                            $link=mysql_connect('localhost','root','123');
                                            if ($link)
                                            echo "Successfuly";
                                            else
                                            echo "Faile";
                                            mysql_close();
                                                        ?>

            请思考。数据库是否可以连接成功。
                测试结果: php无法连接mysql  。因为缺少php连接mysql的工具
        七、配置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

            
        八、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        //站点默认主目录

        九、MPM优化(面试题)
                                    # prefork MPM //进程模式(稳定)
                                            <IfModule prefork.c>
                                            StartServers 6 //初始建立的进程数
                                            MinSpareServers 6 //最小空闲的进程数
                                            MaxSpareServers 15 //最大空闲的进程数
                                            ServerLimit 2000 //最大启动的进程数 默认256
                                            MaxClients 2000 //最大并发连接数  默认256 
                                            MaxRequestsPerChild                         4000 //每个子进程在其生命周期内允许响应的最大请求数,0不限制
                                </IfModule>

                    # worker MPM //线程模式(高效)
                                <IfModule worker.c>
                                StartServers 2 //初始建立的进程数
                                ThreadsPerChild 50 //每个进程建立的线程数
                                MinSpareThreads 100 //最小空闲的线程数
                                MaxSpareThreads 200 //最大空间的线程数
                                MaxClients  2000 //最大的并发访问量(线程)
                                MaxRequestsPerChild 0 //每个子进程在其生命周期内允许响应的最大请求数,0不限制
                                </IfModule>
部署网上商城 ecshop
        一、基础环境
            一、基础环境
                    [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

        二、安装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"

        三、安装Ecshop
            上传站点源码包
                
                    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/

                3. 安装ecshop [任何client]
                    [root@tianyun ~]# vim /etc/hosts //如果没有使用DNS解析
                    192.168.122.161  zhufo.top //161为 web server IP

            前台安装源码包
                
                [root@apache ~]# chmod -R 777 /webroot/zhufo/
                
                
                修改php.ini时区
                [root@apache ~]# vim /etc/php.ini
                
                [root@apache ~]# systemctl restart httpd
部署博客系统 wordpress
        一、基础环境[已完成]
            
                    一、基础环境[已完成]
                    [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

        二、安装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

        三、安装Ecshop
            1. Apache 配置虚拟主机
                1. Apache 配置虚拟主机
                    [root@apache ~]# vim /etc/httpd/conf.d/tianyun.conf

                
                [root@apache ~]# systemctl restart httpd
            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. 准备数据库(创建一个库)
                
            4. 安装wordpress [任何client]
                4. 安装wordpress [任何client]
                    [root@tianyun ~]# vim /etc/hosts
                    192.168.122.161  zhufo.top   //161为 web server IP
                
                
                chmod -R 777 /webroot/tianyun
                
                
                
    Apache 访问控制
        准备环境

                    [root@aliyun ~]# rm -rf 
                    [root@aliyun ~]# echo "download....." > 

        仅用于http 2.4+

案例1
        案例1:允许所有主机访问
                    <Directory 
                                AllowOverride None
                                Require all granted
                    </Directory>

                    AllowOverride All 允许子目中的 .htaccess 中的设置覆盖当前设置
                    AllowOverride None 不允许子目中的 .htaccess 中的         设置覆盖当前设置

                            Require all denied
案例2
            
        案例2:只允许网段192.168.5.0/24、192.168.10.0/24访问
                    <Directory 
                                AllowOverride None
                                Require ip 202.106.0.0/24
                                Require ip 114.248.160.203
                    </Directory>

案例3
            案例3:只拒绝某些主机访问
                    <Directory 
                                AllowOverride None
                            <RequireAll>
                                Require not ip 114.248.160.203
                                Require all granted
                            </RequireAll>
                    </Directory>

案例4
            
        四、针对文件的访问控制
                    
                    <Directory /webroot/baidu/upload>
                                AllowOverride None
                                Require all granted

                            <Files ~ "\.php$" >
                                Order allow,deny
                                Deny from all
                            </Files>
                    </Directory>

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务