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.www58058.com/53515

(0)
NarutoNaruto
上一篇 2016-10-23 14:09
下一篇 2016-10-23 15:19

相關推薦

  • keepalived實現lvs高可用并負載均衡lamp

    一、安裝lamp     1、安裝httpd(172.16.23.211) [root@cs1 ~]# yum install -y httpd     2、安裝php(172.16.23.211) [root@cs1 …

    Linux干貨 2016-05-14
  • 馬哥教育網絡班22期+第1周課程練習

    1.描述計算機的組成及其功能 計算機的組成及各功能:  計算機主要由硬件、操作系統、軟件三大部分組成 硬件 :主要由五部分組成 :運算器:主要是做數據運算              控制器:控制計算機各部件的協調和尋址操作         …

    Linux干貨 2016-08-15
  • Cent OS 6 編譯方式安裝LAMP

    細節要求: (1) 三者分離于三臺主機; (2) 一個虛擬主機用于提供phpMyAdmin;另一個虛擬主機用于提供wordpress; (3) PHP使用FastCGI+xcache; (4) httpd使用非prefork的mpm模式; 一、CentOS6環境準備 1、OS(CentOS6.8)下開發環境包的安裝,編譯安裝程序包需要使用 #yum grou…

    Linux干貨 2017-02-24
  • GNU awk基礎

    awk介紹 awk:Aho, Weinberger, Kernighan,報告生成器,格式化文本輸出 有多種版本:New awk(nawk),GNU awk( gawk) gawk:模式掃描和處理語言 基本用法: awk [options] ‘program’ var=value file… awk [options] -f programfile var=…

    Linux干貨 2018-01-01
  • Linux高級文件系統管理之磁盤配額、RAID和LVM的使用

    磁盤配額Quota 磁盤配額(Quota)的作用:   在Linux系統中,由于是多用戶、多任務的環境,所以會有多用戶共同使用一個硬盤空間的情況發生,如果其中有少數幾個用戶大量占掉了硬盤空間的話,那肯定影響其他用戶的使用權限。因此管理員應該適當限制硬盤的空間給用戶,以妥善分配系統資源。 磁盤配額的一般用途    比較常使用的幾種…

    Linux干貨 2016-09-02
  • cp命令淺析

      cp主要作用    1拷貝文件到指定目錄    2拷貝文件到指定文件    3拷貝多個文件到指定目錄    4拷貝目錄到指定目錄    5拷貝多個目錄到指定目錄 先做些準備工作 &nbs…

    2017-04-04
欧美性久久久久