應用舉例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服務:
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 ,然后在瀏覽器中輸入主機名測試:
應用舉例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
應用舉例5、安裝配置discuzX論壇
1、yum install mariadb-server httpd php php-mysql
systemctl start httpd.service mariadb.service
2、下載安裝包,并解壓,生成upload文件夾,移動到/var/www/html/目錄下重命名為bbs
3、首次安裝在瀏覽器中輸入如下信息,即可進入安裝向導界面,進行安裝;
4、同意安裝之后,目錄狀態處會提示“不可寫”等錯誤標識,是沒有給其權限導致。
將這些目錄的數組該成apache,由ps aux可以httpd是以apache身份運行的,更改完后刷新頁面
下一步選擇全新安裝
點擊下一步出現如下界面,需要創建數據庫及其用戶名和密碼
由于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的系統權限相關表,否則會出現拒絕訪問
此時點擊右上角的管理中心,重新登錄后會出現如下提示,告知刪除文件,在指定目錄下刪除即可;
應用舉例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服務器
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 )
應用舉例7、通用二進制格式mariadb安裝
1、首先確認 httpd mariadb-server php包都沒有安裝,并將壓縮包解壓到指定路徑下
2、將解壓后的文件夾設置軟連接,便于管理
3、確認安裝包的狀態
4、確認mysql用戶是否存在,如果不存在則 useradd -r mysql
5、此步驟模擬一個單獨的存儲設備,且有冗余功能,類似于raid10
6、將文件屬組設置為mysql
7、二進制安裝數據庫,指定數據庫安裝路徑,用戶,且忽略名稱解析
8、support-files/my-innodb-heavy-4G.cnf my-small.cnf 樣例的配置文件復制到指定路徑中
9、編輯配置文件
10、將unit file文件復制到對應路徑中
11、確保mysqld有執行權限
12、啟動mysql服務
13、測試
14、將程序路徑放到PATH路徑中,并重讀配置文件
15、也可參考解壓后的目錄中具體的安裝步驟
應用舉例8、編譯安裝httpd
1、安裝devel包,解決依賴關系
2、解壓程序包,編譯安裝
./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
3、將程序路徑加入到PATH中
4、啟動服務 :apachectl start,ss -ntl 查看端口是否打開
5、測試就可以在瀏覽器中輸入服務器地址測試
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 到當前主機,然后修改對應路徑
8、此時httpd -M | grep systemd 發現systemd模塊缺失,因此需要做配置如下操作:
從另一臺centos7主機上拷貝mod_systemd.so動態庫文件到指定目錄中
編輯配置文件加載模塊,也可在主配置文件中,incluede是擴展配置,指向一個配置文件,配置文件里添加loadmodule
9、重啟系統systemctl start httpd 可以用了。
原創文章,作者:Naruto,如若轉載,請注明出處:http://www.www58058.com/53515