httpd应用举例

应用举例1、基于用户和组认证的方式访问ftp

        1、编辑配置文件/etc/httpd/conf/httpd.conf,并使用httpd -t 检查语法,并systemctl reload httpd

            <Directory "/var/www/html/fin">            
            options None
            AllowOverride AuthConfig     ###使用认证配置,覆盖上面allow,deny配置
            AuthType Basic ###使用基本认证
            AuthName "Are you kiding me?"     ###质询时标题
            AuthUserFile /etc/http/conf/.htpasswd      ###密码的存放位置
            Require valid-user         ##(vaild-user所有合法用户都可访问)
            </Directory>

        2、创建站点文档:touch /var/www/html/fin/index.html

        3、使用htpasswd命令生成认证库:htpasswd -c -m /etc/http/conf/.htpasswd tom

            -c 创建密码,创建第一个用户时使用            
            -m MD5格式存放
            -b 批量模式
            -D 删除用户

        4、测试访问httpd服务:

1.png

        5、基于组认证

                配置文件中编辑内容如下:

            <Directory "/var/www/html/fin">
            options None
            AllowOverride AuthConfig         ##使用认证配置
            AuthType Basic         ##使用基本认证
            AuthName "Private Area"         ##质询时标题
            AuthUserFile /etc/http/conf/.htpasswd          ##密码的存放位置
            AuthGroupFile /etc/http/conf/.htgroup          ##组成员存放位置
            Require group admins  ###可访问的用户
            </Directory>

                创建组用户

                        htpasswd -c -m /etc/httpd/conf/.htpasswd lucy

                        htpasswd  -m /etc/httpd/conf/.htpasswd blair

                创建保存组成员文的文件(需要自行手动创建)

                        vim /etc/http/conf/.htgroup

                                admin:lucy blair

应用举例2:给指定主机颁发证书,生成https服务

        1、创建根CA,生成私钥,有了私钥根CA就可以给自己签名

root@centos7.2  /etc/pki/CA # (umask 077;openssl genrsa -out private/cakey.pem 4096)

        2、CA自己给自己签发证书,-key生成请求使用到的私钥文件

root@centos7.2  /etc/pki/CA # openssl req -new -x509 -key private/cakey.pem -out cacert.pem
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Beijing
Locality Name (eg, city) [Default City]:Beijing
Organization Name (eg, company) [Default Company Ltd]:Naruto
Organizational Unit Name (eg, section) []:op
Common Name (eg, your name or your server's hostname) []:www.naruto.com
Email Address []:

        3、创建CA数据库和版本信息

root@centos7.2  /etc/pki/CA # echo 01 > serial
root@centos7.2  /etc/pki/CA # touch index.txt

        4、在httpd目录下创建certs,申请CA的用户自己创建私钥

root@centos7.2  /etc/pki/CA/certs # (umask 077;openssl genrsa -out httpd.key 2048)

         5、创建申请CA的csr文件

root@centos7.2  /etc/pki/CA/certs # openssl req -new -key httpd.key -out httpd.csr
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Beijing 
Locality Name (eg, city) [Default City]:Beijing
Organization Name (eg, company) [Default Company Ltd]:Naruto
Organizational Unit Name (eg, section) []:op
Common Name (eg, your name or your server's hostname) []:www.naruto.com 
Email Address []:

        6、CA颁发证书

root@centos7.2  /etc/pki/CA/certs # openssl ca -in httpd.csr -out httpd.crt

        7、配置httpd支持使用SSL,及使用的证书,首先要安装mod_ssl,并配置/etc/httpd/conf.d/ssl.conf,httpd -t,systemctl reload httpd

DocumentRoot "/var/www/html/fin"
ServerName www.naruto.com
SSLCertificateFile /etc/httpd/certs/httpd.crt      ###指明证书路径      
SSLCertificateKeyFile /etc/httpd/certs/httpd.key    ###指明私钥路径

        8、在浏览器中导入证书,并在C:\Windows\System32\drivers\etc\hosts文件中解析:192.168.1.102    www.naruto.com ,然后在浏览器中输入主机名测试:

1.png

应用举例3、创建虚拟主机,基于主机名通信

        1、首先编辑配置文件/etc/httpd/conf/httpd.conf,注释掉中心主机:#DocumentRoot "/var/www/html"

        2、vim  /etc/httpd/conf.d/vhosts.conf,内容如下:

        NameVirtualHost *:80     ##如果是2.2版本的此处必须要加改行,否则系统会认为是基于端口通信
        <VirtualHost *:80>
                ServerName www1.naruto.com
                DocumentRoot "/vhosts/www1"    ##如果是2.4版本http,则还需要指明目录权限
        </VirtualHost>
        <VirtualHost *:80>
                ServerName www2.naruto.com
                DocumentRoot "/vhosts/www2"
        </VirtualHost

        3、创建目录及文件/vhosts/www{1/index.html,2/index.html},并在index.html中创建标识信息,www1,www2

        4、在/etc/hosts文件中指明主机名单解析的IP地址

192.168.1.102    www1.naruto.com www2.naruto.com

        5、测试

root@cenots6.8  ~ # curl http://www2.naruto.com
www2
root@cenots6.8  ~ # curl http://www1.naruto.com
www1

        注意:配置虚拟主机的时,如需更改DocumentRoot路径,需要关闭selinux策略、

应用举例4、测试httpd与数据库是否连接

        1、首先yum install mariadb-server httpd php php-mysql,并启动各个服务

        2、通过mysql_secure_installation配置密码等信息

        3、在/var/www/html/php-mysql.php编辑如下,主机名,用户,密码,如果是root用户且密码正确,则提示sucess,否则提示failure

1.png

        1.png

应用举例5、安装配置discuzX论坛

        1、yum install mariadb-server httpd php php-mysql

             systemctl start httpd.service mariadb.service

        2、下载安装包,并解压,生成upload文件夹,移动到/var/www/html/目录下重命名为bbs

        3、首次安装在浏览器中输入如下信息,即可进入安装向导界面,进行安装;

1.png

        4、同意安装之后,目录状态处会提示“不可写”等错误标识,是没有给其权限导致。

1477151938447985.png

            将这些目录的数组该成apache,由ps aux可以httpd是以apache身份运行的,更改完后刷新页面

1477152012523399.png

            下一步选择全新安装

    1477152076993896.png

            点击下一步出现如下界面,需要创建数据库及其用户名和密码

1477152138159868.png

            由于root用户权限过大,此处需要另配置一个用户来专门访问数据库,方法如下

root@centos7.2  ~ # mysql -p654321
MariaDB [(none)]> CREATE DATABASE ultrax;
MariaDB [(none)]> GRANT ALL ON ultrax.* TO 'ultraxuser'@'localhost' IDENTIFIED BY '654321';
    ##授权ultrax上面的所有库,给ultraxuser用户只允许本地连接,密码为654321
MariaDB [(none)]> FLUSH PRIVILEGES;
    ##管理员账号及密码,新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问

1477152485912118.png

        此时点击右上角的管理中心,重新登录后会出现如下提示,告知删除文件,在指定目录下删除即可;

1477152623205873.png

 

应用举例6、配置反向代理,将客户的动态请求代理至php-fpm后端。

        1、yum php-fpm (端口:9000) httpd (80) mariadb-server (3306) php-mysql php-xcache

        mkdir /var/lib/php/session          ###php-session存储路径,基于file形式存储        
        chown -R apache:apache var/lib/php/session          #www.conf配置文件中指明
        systemctl start php-fpm.service ##此时9000端口已经打开

        2、编辑/etc/httpd/conf.d/vhosts.conf,创建虚拟机,此时启动的是fcgi协议,但是浏览器不支持,需要用web服务器请求,此时配置主机连接至web服务器

1477187539751303.png

        9行:关闭正向代理。默认反向代理        
        10行:将phpinfo.php 这个url这个请求反向代理至后端的127这个主机上,且后端主机文件系统路径为/vhost/www/phpinfo.php
        11行:Match过滤,将以php结尾的url请求反向代理至后端的127主机上面的路径上,这里$1等同于正则表达式中的\1,表示替代前面第一个左括号匹配到的内容。
        12行:status根监控相关 获取详细状态信息,ping检测系统是否工作正常--php-fpm
        13行:设置默认主页
        注意:如果没有9-12行,则请求会直接交给前端http服务器处理,则请求页面显示的是phpinfo.php的代码,而不是执行结果。

          3、创建touch /vhosts/www/phpinfo.php,重新载入httpd服务

            <?php            
                phpinfo();
            ?>

          4、测试在浏览器中输入http://192.168.1.102/phpinfo.php,如果响应结果为phpinfo();执行的结果则正确。

          5、 编辑/etc/php-fpm.d/www.conf 文件,启动如下功能:

            pm.status_path = /fpm-status  ##根监控相关 获取详细状态信息   # 可以打开测试        
            ping.path = /ping  ##监控测试系统是否工作正常
            ping.response = pong

            6、在浏览器处输入如下信息,也可以在/fpm-status?( html | xml | full )

1477187949507041.pngclipboard.png

应用举例7、通用二进制格式mariadb安装

            1、首先确认 httpd mariadb-server php包都没有安装,并将压缩包解压到指定路径下

clipboard.png

            2、将解压后的文件夹设置软连接,便于管理

clipboard.png

            3、确认安装包的状态

clipboard.png

            4、确认mysql用户是否存在,如果不存在则 useradd -r mysql

clipboard.png

            5、此步骤模拟一个单独的存储设备,且有冗余功能,类似于raid10

clipboard.png

            6、将文件属组设置为mysql

clipboard.png

            7、二进制安装数据库,指定数据库安装路径,用户,且忽略名称解析

clipboard.png

            8、support-files/my-innodb-heavy-4G.cnf  my-small.cnf  样例的配置文件复制到指定路径中

clipboard.png

            9、编辑配置文件

clipboard.png

            10、将unit file文件复制到对应路径中

clipboard.png

            11、确保mysqld有执行权限

clipboard.png

            12、启动mysql服务

clipboard.png

            13、测试

clipboard.png

            14、将程序路径放到PATH路径中,并重读配置文件

clipboard.png

clipboard.png

            15、也可参考解压后的目录中具体的安装步骤

clipboard.png

clipboard.png

应用举例8、编译安装httpd

            1、安装devel包,解决依赖关系

clipboard.png

            2、解压程序包,编译安装

clipboard.png

./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --enable-so(支持模块动态装卸载) 
--enable-ssl --enable-cgi --enable-rewrite --enable-modules=most --enable-mpms-shared=all(编译成可动态装卸载的) 
--with-mpm=prefork(指明默认的mpm) --with-pcre(支持pcre正则表达式引擎) --with-zlib --with-apr=/usr(基于apr编译)
 --with-apr-util=/usr

clipboard.png

            3、将程序路径加入到PATH中

clipboard.png

            4、启动服务 :apachectl start,ss -ntl 查看端口是否打开

            5、测试就可以在浏览器中输入服务器地址测试

1477189638447040.png

            6、对应配置的config选项都在此目录中:/usr/local/apache2/build/config.nice

                 存放错误页面类似于404:/usr/local/apache2/error/

                 编译安装默认网页存放位置:/usr/local/apache2/htdocs

                 配置文件存放路径,额外配置文件存放在:/etc/httpd/extra

             7、此时unit file(systemcl start httpd)还不能使用,需要做如下配置

                    从另一台centos7主机上拷贝httpd.service 到当前主机,然后修改对应路径

clipboard.png

clipboard.png

            8、此时httpd -M | grep systemd 发现systemd模块缺失,因此需要做配置如下操作:

                  从另一台centos7主机上拷贝mod_systemd.so动态库文件到指定目录中

clipboard.png

                    编辑配置文件加载模块,也可在主配置文件中,incluede是扩展配置,指向一个配置文件,配置文件里添加loadmodule

clipboard.png

clipboard.png

            9、重启系统systemctl start httpd 可以用了。


原创文章,作者:Naruto,如若转载,请注明出处:http://www.178linux.com/53515

(0)
NarutoNaruto
上一篇 2016-10-23
下一篇 2016-10-23

相关推荐

  • vim编辑器

                                                      &nbsp…

    Linux干货 2015-12-19
  • Linux安全与加密基础(二)

    Linux安全与加密基础(二) 常见的加密算法 SSL: Openssl与CA认证 ssh服务 dropbear AIDE sudo gpg gpg亦可用于对称加密与文件检验。 文件完整性的两种实施方式 被安装的文件     MD5单向散列     rpm –veri…

    Linux干货 2016-10-06
  • TIME_WAIT引起Cannot assign requested address报错

    1.  问题描述      有时候用redis客户端(php或者java客户端)连接Redis服务器,报错:“Cannot assign requested address。”      原因是客户端频繁的连接服务器,由于每次连接都在很短时间内结束,导致很多的TIME_WAIT。所以新的连…

    Linux干货 2016-03-09
  • httpd2.2基础安装

    编译安装前,首先要确认开发包组已经装上。 开发包组: Developments tools server platform development(centos 7) 并且将apr 与 apr-unil 装上。这是httpd 可移植运行所必须用到的组件.这里举例说明的是httpd2.2版本。 若是安装httpd2.4以上版本的话,还要安装pcre库。pcre…

    2017-04-24
  • 关于大型网站技术演进的思考(十四)–网站静态化处理—前后端分离—上(6)

    原文出处: 夏天的森林  前文讲到了CSI技术,这就说明网站静态化技术的讲述已经推进到了浏览器端了即真正到了web前端的范畴了,而时下web前端技术的前沿之一就是前后端 分离技术了,那么在这里网站静态化技术和前后端分离技术产生了交集,所以今天我将讨论下前后端分离技术,前后端分离技术讨论完后,下一篇文章我将会以网站 静态化技术的角度回过头来…

    Linux干货 2015-02-26
  • 通用二进制安装MySQL(MariaDB)

    一、前言     MySQL是一个关系型数据库管理系统,是最流行的关系型数据库管理系统,由于其体积小、速度快、总体拥有成本低,并且之前是完全开源,所以大受欢迎。但由于后面MySQL卖给了SUN,随后SUN被Oracle收购,虽然也有开源免费版本,但是很多功能都需要另外购买商业版本,导致现在MySQL使用份额逐渐减少。所…

    Linux干货 2015-10-15