從Linux小白到大牛——與狼共舞的日子12(下)

馬哥教育網絡班21期+第12周課程練習

5、為第4題中的第2個虛擬主機提供https服務,使得用戶可以通過https安全的訪問此web站點;

  • (1)要求使用證書認證,證書中要求使用的國家(CN)、州(HA)、城市(ZZ)和組織(MageEdu);

  • (2)設置部門為Ops,主機名為www2.stuX.com,郵件為admin@stuX.com;


1.CA生成私鑰
[root@web ~]# (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)

2.CA生成自簽證書
[root@web ~]#  openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem 
                -out /etc/pki/CA/cacert.pem -days 365
    Country Name (2 letter code) [XX]:CN
    State or Province Name (full name) []:HA
    Locality Name (eg, city) [Default City]:ZZ
    Organization Name (eg, company) [Default Company Ltd]:MagEdu  
    Organizational Unit Name (eg, section) []:Ops
    Common Name (eg, your name or your server's hostname) []:www2.stuX.com
    Email Address []:admin@stuX.com

3.提供CA所需的目錄和文件
[root@web ~]# mkdir -pv /etc/pki/CA/{certs,crl,newcerts}
[root@web ~]# touch /etc/pki/CA/{serial,index.txt}
[root@web ~]# echo 01 > /etc/pki/CA/serial 

4.虛擬主機生成私鑰
[root@web ~]# mkdir /usr/local/apache/ssl
[root@web ~]# (umask 077;openssl genrsa -out /usr/local/apache/ssl/http.key 2048)

5.虛擬主機生成證書請求文件
[root@web ~]# openssl req -new -key /usr/local/apache/ssl/http.key  
                -out /usr/local/apache/ssl/http.csr -days 365
    Country Name (2 letter code) [XX]:CN
    State or Province Name (full name) []:HA
    Locality Name (eg, city) [Default City]:ZZ
    Organization Name (eg, company) [Default Company Ltd]:MagEdu
    Organizational Unit Name (eg, section) []:Ops
    Common Name (eg, your name or your server's hostname) []:www2.stuX.com
    Email Address []:admin@stuX.com

    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:

6.在CA上簽署虛擬主機的證書
[root@web ~]# openssl ca -in /usr/local/apache/ssl/http.csr 
                -out /usr/local/apache/ssl/http.crt -days 365

7.編輯httpd.conf開啟對應的模塊和ssl.conf文件
[root@web ~]# vim /etc/httpd24/httpd.conf
    LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
    LoadModule ssl_module modules/mod_ssl.so
    Include /etc/httpd24/extra/httpd-ssl.conf

8.修改httpd-ssl.conf文件
[root@web ~]# vim /etc/httpd24/extra/httpd-ssl.conf 
    <VirtualHost _default_:443>
        DocumentRoot "/web/vhosts/www2"
        ServerName www2.stuX.com
        ErrorLog "/var/log/httpd/www2.err"
        CustomLog "/var/log/httpd/www2.access" common
        <Directory "/web/vhosts/www2">
            Options None
            AllowOverride None
            Require all granted
        </Directory>
        SSLCertificateFile "/usr/local/apache/ssl/http.crt"
        SSLCertificateKeyFile "/usr/local/apache/ssl/http.key"
    </VirtualHost>

9.重啟httpd24服務并測試
[root@web ~]# service httpd24 restart
[root@web ~]# curl -k https://www2.stuX.com
    www2.stuX.com

6、在LAMP架構中,請分別以php編譯成httpd模塊形式和php以fpm工作為獨立守護進程的方式來支持httpd,列出詳細的過程。


php編譯成模塊形式在第三題中做過,Apache和mysql編譯安裝與第三題相同。

1.安裝所需要的環境
yum install bzip2-devel libmcrypt-devel libxml2-devel -y

2.編譯安裝php-5.4.26
[root@web ~]# tar xf php-5.4.26.tar.bz2
[root@web ~]# cd php-5.4.26
[root@web php-5.4.26]#  ./configure --prefix=/usr/local/php5 
        --with-mysql=/usr/local/mysql --with-openssl 
        --with-mysqli=/usr/local/mysql/bin/mysql_config 
        --enable-mbstring --with-freetype-dir 
        --with-jpeg-dir --with-png-dir --with-zlib 
        --with-libxml-dir=/usr --enable-xml  
        --enable-sockets --enable-fpm --with-mcrypt  
        --with-config-file-path=/etc 
        --with-config-file-scan-dir=/etc/php.d --with-bz2
[root@web php-5.4.26]# make
[root@web php-5.4.26]# make test
[root@web php-5.4.26]# make intall

3.為php提供配置文件
[root@web php-5.4.26]# cp php.ini-production /etc/php.ini

4.為php-fpm提供SysV腳本并添加到服務列表
[root@web php-5.4.26]# cp sapi/fpm/init.d.php-fpm  
                        /etc/rc.d/init.d/php-fpm
[root@web php-5.4.26]# chmod +x /etc/rc.d/init.d/php-fpm
[root@web php-5.4.26]# chkconfig --add php-fpm
[root@web php-5.4.26]# chkconfig php-fpm on

5.為php-fpm提供配置文件
[root@web php-5.4.26]# cp /usr/local/php5/etc/php-fpm.conf.default
                         /usr/local/php5/etc/php-fpm.conf

6.編輯php-fpm配置文件內容
[root@web php-5.4.26]# vim /usr/local/php5/etc/php-fpm.conf
    pm.max_children = 50
    pm.start_servers = 5
    pm.min_spare_servers = 2
    pm.max_spare_servers = 8
    pid = /usr/local/php5/var/run/php-fpm.pid 

7.啟動php-fpm并檢測
[root@web php-5.4.26]# service php-fpm start

[root@web php-5.4.26]# ps aux | grep php-fpm
    root  81568  0.0  0.0 154960  3940 ?Ss   Aug10   0:00 php-fpm: master 
                                process (/usr/local/php5/etc/php-fpm.conf)  
    nobody81569  0.0  0.0 154960  3496 ?SAug10   0:00 php-fpm: pool www   
    nobody81570  0.0  0.0 154960  3496 ?SAug10   0:00 php-fpm: pool www   
    nobody81571  0.0  0.0 154960  3496 ?SAug10   0:00 php-fpm: pool www   
    nobody81572  0.0  0.0 154960  3496 ?SAug10   0:00 php-fpm: pool www   
    nobody81573  0.0  0.0 154960  3496 ?SAug10   0:00 php-fpm: pool www   
    root  81623  0.0  0.0 103244   840 pts/0S+   00:11   0:00 grep php-fpm
此命令輸出有中幾個php-fpm進程就說明啟動成功了
[root@web php-5.4.26]# netstat -tnlp | grep php-fpm
tcp0  0 127.0.0.1:9000  0.0.0.0:*   LISTEN  81568/php-fpm 
fpm監聽在127.0.0.1的9000端口

8.編輯httpd的配置文件使支持php-fpm
[root@web php-5.4.26]# vim /etc/httpd24/httpd.conf  
    LoadModule proxy_module modules/mod_proxy.so  //這行取消注釋
    LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so //這行取消注釋
    Include /etc/httpd24/extra/httpd-vhosts.conf   //這行取消注釋
#DocumentRoot "/usr/local/apache/htdocs"  //這行注釋掉
    AddType application/x-httpd-php  .php //添加這行
AddType application/x-httpd-php-source  .phps  //添加這行
    DirectoryIndex  index.php  index.html  //這行修改
在Apache httpd 2.4以后已經專門有一個模塊針對FastCGI的實現,
此模塊為mod_proxy_fcgi.so,它其實是作為mod_proxy.so模塊的擴充,
因此,這兩個模塊都要加載。

9.創建虛擬主機目錄并創建所需php測試文件
[root@web php-5.4.26]# mkdir -p /web/vhosts/www1
[root@web php-5.4.26]# echo '<? php  phpinfo() ?>' > /web/vhosts/www1/index.php

10.編輯虛擬主機配置文件使支持使用fcgi
[root@web php-5.4.26]# vim /etc/httpd24/extra/httpd-vhosts.conf
    <VirtualHost 192.168.82.58:80>
    DocumentRoot "/web/vhosts/www1"
    ServerName www1.stuX.com
    ErrorLog "/var/log/httpd/www1.err"
    CustomLog "/var/log/httpd/www1.access" common

            ProxyRequests Off
    ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/web/vhosts/www1/$1

            <Directory "/web/vhosts/www1">
    Options None
    AllowOverride None
    Require all granted
    </Directory>
    </VirtualHost>

    ProxyRequests Off:關閉正向代理
    ProxyPassMatch:把以.php結尾的文件請求發送到php-fpm進程,
    php-fpm至少需要知道運行的目錄和URI,所以這里直接在fcgi://127.0.0.1:9000后
    指明了這兩個參數,其它的參數的傳遞已經被mod_proxy_fcgi.so進行了封裝,不需要手動指定。

11.重啟httpd24服務并測試
[root@web php-5.4.26]# service httpd24 restart

從Linux小白到大牛——與狼共舞的日子12(下)

原創文章,作者:N21_孤狼,如若轉載,請注明出處:http://www.www58058.com/64304

(0)
N21_孤狼N21_孤狼
上一篇 2016-12-26 10:11
下一篇 2016-12-26 10:32

相關推薦

  • N25期第八周作業

    1.請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別 主要功能: 網橋是一個局域網與另一個局域網之間建立連接的橋梁,屬于數據鏈路層的一種設備。 集線器是可以將一些機器連接起來組成一個局域網的設備。 二層交換機是工作于OSI模型的第2層(數據鏈路層)的設備,作用和集線器類似。 三層交換機就是具有部分路由器功能的二層交換機。 路由器是互聯…

    Linux干貨 2017-03-08
  • RAID概述

    1、引言 RAID全稱Redundant Arrays of Inexpensive Disks / Redundant Arrays of Independent Disks,即獨立冗余磁盤陣列。RAID可以通過相關技術(軟件/硬件),將多個較小的磁盤整合成為一個較大的磁盤整體,而且能從某些方面提高數據的讀寫及數據保護。RAID分為不同…

    Linux干貨 2016-12-24
  • 用戶與用戶組相關的配置文件與命令總結

    Linux 中用戶與用戶組相關的配置文件與命令總結 用戶與用戶組 UID、GID 名稱解析與解析庫(passwd、group、shadow、gshadow) 用戶信息庫/etc/passwd 用戶密碼信息/etc/shadow 組的信息庫/etc/group 組的密碼信息/etc/gshadow 用戶管理命令 用戶組管理命令 用戶與用戶組 Linux是一種多…

    2016-10-23
  • 文本處理工具及grep

    在日常的linux運維工作當中,我們經常要在一些文本當中抽取過濾出我們所需要的信息,從而達到我們的需求,需要特定的文本處理工具來幫我們完成此類操作 本章節主要講解的內容有: 文件查看:cat 分頁查看文本:less、more 抽取文件特定行數:head、tail 抽取文本特定列:cut 合并文本:paste 文本統計:wc 文本排序并統計:sort、uniq…

    Linux干貨 2016-08-08
  • 98-mysql數據備份

    一. 數據備份基礎知識

    2016-11-20
  • 22期第四周課程練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@localhost tuser1]# cp   -r    /etc/skel/   /ho…

    Linux干貨 2016-09-08
欧美性久久久久