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

联系我们

400-080-6560

在线咨询

工作时间:周一至周五,9:30-18:30,节假日同时也值班

QR code