1、查看当前的系统

    uname -r

    cat /etc/redhat-release

2、通过rpm 安装httpd

    yum install httpd

    a、安装完成后,参看相应的配置文件。

        /etc/httpd/conf/httpd.conf # 主配置文件。

            A、修改参数

                Listen [IP:]port   # 可以出现多次。

                ServerName www.njjn.com:80

                DoucumentRoot /var/www/html      # 文档主目录

                NameVirtualHost 192.168.10.16:80   # 配置虚拟机是必须配置的参数,【仅在CentOS 6 可用,CentOS 7 以废除。】

                <Directory "/var/www/html">      # 安全的访问控制。

                    Options None

                    AllowOverride None

                    Order allow,deny

                    Allow from  [all | 192.168 | 192.168.0.0/16]

                                 # 基于主机的访问控制

                    AuthType basic

                    AuthName "only for root"

                    AuthUserFile "/etc/httpd/conf.d/.htpasswd"

                    Require valid-user      # 基于用户的访问控制

                </Directory>

            B、生成用户的密码文件

                htpasswd -c -m -b /etc/httpd/conf.d/.htpasswd redhat redhat

                -c : 第一次创建时使用

                -b : 通过命令行给密码

                -m : 密码通过MD5加密。

            C、查看当前服务器加载的模块

                ps aux   # 查看系统运行在哪个MPM模式下

                httpd  -l   # 查看核心模块

                     -M   # 查看所有的模块

                     -t   # 配置文件语法检查。

                    

        /etc/httpd/conf.d/      # 辅助配置文件。

        /etc/sysconfig/httpd     # MPM 信息。

    b、添加到开机启动。

        chkconfig --add httpd

        chkconfig httpd on

        service httpd start

3、通过浏览器查看

    问题:服务器端要关闭防火墙和selinux

        iptables -F

        setenforce 0 | permissive

4、配置虚拟主机 【based-name】

    a、配置主配置文件里面的参数。

        /etc/httpd/conf/httpd.conf  添加 NameVirtualHost 192.168.10.15:80

    b、在/etc/httpd/conf.d/ 目录里面创建虚拟和主机的配置文件。

        vi vhost-1.conf

            <VirtualHost 192.168.10.15:80>  # 要和 NameVirtualHost 相同。

                ServerName "www.njjn.com"

                DocumentRoot "/data/vhosts/www1"

                 CustomLog "logs/www1-access-log" combined  # 相对路径,相对与 ServerRoot ,配置文件的路径。 /etc/httpd/logs 是 目录的软连链接。

                ErrorLog "logs/www1-error-log"

                

                # 如果在CentOS 7上,需要显示的给予授权。因为它默认是拒绝的。和 6 相反。

                <Directory "/data/vhosts/www1">   # 对虚拟的主机设置访问控制

                    Options None

                    AllowOverride None

                    Require [not] ip 192.168    # 仅 192.168.0.0 网段的可以访问。

                    Require [not] host www.njjn.com  # 使用一个就可以。 

                     Require all granted    # 所有人都可以访问

                </Directory>

                <Location /server-status>   # 查看服务器的运行状态的信息。

                    SetHandler server-status

                    AuthType basic

                    AuthName "only for limit user"

                    AuthUserFile "/etc/httpd/conf.d/.htpasswd"

                    Require valid-user | user1 user2

                </Location>            # 仅认证过的账户可以访问,

            </VirtualHost>

5、配置 https 

    a、创建私有的CA

        cd /etc/pki/CA

        (umask 066; openssl genrsa -out private/cakey.pem 2048) # 私钥必须是600权限,      

        openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650

               生成自签整数。

            openssl x509 -in private/cakey.pem -text  # 大约是,查看整数信息。

            openssl rsautl -in private/cakey.pem -out capub.pem -pubout 

    b、给应用程序生成,

        (umask 066; openssl genrsa -out httpd.key 1024)

        openssl req -new -key httpd.key -out httpd.csr -days 3650

        scp httpd.csr root@172.16.17.18:/tmp/

    d、CA 给予授权

        openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 3650

        scp 传给客户端。

    e、客户端收到后,

        mkdir /etc/httpd/ssl

        把文件放到上面的目录。

    f、客户端安装,https 需要的 mod_ssl rpm 包

        此包会在,/etc/httpd/conf.d/目录,创建ssl.conf 文件。

        编辑参数。

        ServerName

        DocumentRoot

        SSLCertificateFile "/etc/httpd/ssl/httpd.crt"  # 整数文件, httpd.crt

        SSLCertificateKeyFile "/etc/httpd/ssl/httpd.key" # 本机的私钥文件。

    重启服务:service httpd start  

        通过浏览器访问,要把私有CA的私钥导入浏览器,不然会提示证书无效。不导入也不影响使用。


6、安装mysql ,mariadb

    yum install mysql-server | mariadb-server

    a、配置参数

        vi /etc/my.cnf

            innodb_file_per_table=ON   # 每个表对应一个文件。

            skip_name_resolve=ON     #  跳过名称解析。CentOS 6 【无效】。

7、安装php, php-zts, php-mysql

    yum install php

    a、会生成,libphp5.so 库,可以和 prefork 相匹配。

    b、libphp5-zts.so 可以和 worker,event 想匹配,所在包是php-zts

     这两种都是,httpd的模块的形式工作。

        Client request index.php -> Server httpd receive, 启用,php进程,进行处理。

    php-mysql : 是为php 和mysql通信提供驱动。

    编辑及页面,/data/vhosts/www1/index.php

        vi ~~

            <?php

                phpinfo();

            ?>

    客户成功,锁屏配置成功。


httpd 2.4: 特性

    1、DSO: dynamic share object, 支持动态的模块编辑,

    2、毫秒级的KeepAlive 500ms 持久连接。

    3、MPM event 可以在生产中使用。

    4、性能提升,节约内存等。 


    apr: apache portable runtime ,httpd跨平台的基础。

        apr

        apr-util

        apr-iconv