標籤:wordpress 電腦 虛擬機器主機 伺服器 解譯器
一、何為httpd
httpd是Apache超文字傳輸通訊協定 (HTTP)(HTTP)伺服器的主程式。被設計為一個獨立啟動並執行後台進程,它會建立一個處理請求的子進程或線程的池。
Apache是世界使用排名第一的Web伺服器軟體。它可以運行在幾乎所有廣泛使用的電腦平台上,由於其跨平台和安全性被廣泛使用,是最流行的Web伺服器端軟體之一。它快速、可靠並且可通過簡單的API擴充,將Perl/Python等解譯器編譯到伺服器中。
二、httpd-2.4較httpd-2.2
新特性:
(1) MPM支援運行DSO機制;以模組形式按需載入;
(2) 支援event MPM;
(3) 支援非同步讀寫;
(4) 支援每模組及每個目錄分別使用各自的記錄層級;
(5) 每請求配置;<If>
(6) 增強版的運算式分析器;
(7) 支援毫秒級的keepalive timeout;
(8) 基於FQDN的虛擬機器主機不再需要NameVirtualHost指令;
(9) 支援使用者自訂變數
(10)不再支援使用Order, Deny, Allow來做基於IP的存取控制機制
新增的模組:
(1) mod_proxy_fcgi: 支援用fastcgi的方式串連後端的php
(2) mode_ratelimit: 速率限定,限制使用者訪問時傳輸的速率
(3) mod_request: 對使用者請求做更強的過濾功能
(4) mod_remoteip: 對使用者訪問的IP地址有更強的控制能力
apache portable runtime(Apache可移植運行庫):
(1) httpd-2.4需求apr-1.4以上的版本
(2) httpd-2.4需求apr-util-1.4以上的版本
三、httpd-2.4的設定檔
主設定檔:
/etc/httpd/conf/httpd.conf
服務指令碼:
/usr/lib/systemd/system/httpd.service
模組設定檔:
/etc/httpd/conf.modules.d/*.conf
輔助設定檔:
/etc/httpd/conf.d/*.conf
記錄檔目錄:
/var/log/httpd
access_log: 訪問日誌
error_log:錯誤記錄檔
四、httpd-2.4的常用配置
①、切換使用MPM
vim /etc/httpd/conf.modules.d/00-mpm.conf LoadModule mpm_prefork_module modules/mod_mpm_prefork.so#LoadModule mpm_worker_module modules/mod_mpm_worker.so#LoadModule mpm_event_module modules/mod_mpm_event.so#httpd2.4把對應的功能的設定檔模組化管理。這樣既簡潔又方便。需要使用那個MPM直接開啟對應的即可
②、基於IP的存取控制法則(不再支援使用Order, Deny, Allow來做基於IP的存取控制機制)
允許所有主機訪問:Require all granted
拒絕所有主機訪問:Require all denied
<Directory /> AllowOverride none Require all denied# Require all granted</Directory>
控制特定IP訪問:
Require ip IPADDR:授權指定來源地址的主機訪問
Require not ip IPADDR:拒絕指定來源地址的主機訪問
IPADDR:(1)IP: 192.168.0.113,(2) Network: 172.16.0.0/16
<Directory /> <RequireAll> Require all granted Require not ip 192.168.0.113 Require not ip 192.168.1.0/24 </RequireAll></Directory>#這個需要特別注意,在控制特定的IP或主機時候。如果定義了Require not ip/host的時候需要用<RequireAll>Require not ip/host</RequireAll>標籤,不然會報錯。
控制特定主機(HOSTNAME)訪問
Require host HOSTNAME
Require not host HOSTNAME
HOSTNAME:(1)FQDN: 特定主機,(2)DOMAIN:指定域內的所有主機
<Directory /> <RequireAll> Require all granted Require not ip wlw.com Require not ip www.wlwtest.com </RequireAll></Directory>
④、虛擬機器主機
基於IP、Port和FQDN都支援;基於FQDN的不再需要NameVirtualHost指令;
為了以後的擴充和模組化管理,我們可以在/etc/httpd/conf.d/建立一個VirtualHost目錄,當然,目錄名你可以自己起,我這裡建立一個VirtualHost以後再裡面建立一個又一個單獨的虛擬機器主機,命令為host.conf。然後在/etc/httpd/conf/httpd.conf中添加IncludeOptional conf.d/VirtualHost/*.conf。然後重啟伺服器。這樣的話就可以每個虛擬機器主機建立一個設定檔,以後需要刪除某個虛擬機器主機直接改名或刪除即可。這個在以後的自動化營運有很好的作用。
⑤、啟用模組:
LoadModule ssl_module modules/mod_ssl.so#LoadModule asis_module modules/mod_asis.so#需要開啟某個模組只需要把注釋的#號去掉然後重新載入設定檔即可。這裡我們可以看到,模組路徑使用的是相對路徑,#相對於ServerRoot(/etc/httpd)指向的路徑而言。
這裡只列出有別與httpd-2.2的一些設定項目,其他的配置基本與httpd-2.2一樣,如果需要跟多的詳細配置,可以查看另一篇部落格:Linux服務管理之httpd-2.2常用設定檔
接下來我們開始安裝phpMyAdmin、wordpress、Discuz,因為上面的程式包都是基於lamp環境啟動並執行。所以請自行搭建好lamp環境。並下載相關的原始碼,下面是個原始碼官網連結,後續會在此連結搭建lamp環境的相關部落格。
phpMyAdmin: http://www.phpmyadmin.net/
wordpress : https://cn.wordpress.org/
Discuz : http://www.discuz.net/forum-10-1.html
五、phpMyAdmin的安裝
①、phpMyAdmin簡介
phpMyAdmin 是一個以PHP為基礎,以Web-Base方式架構在網站主機上的MySQL的資料庫管理工具,讓管理者可用Web介面管理MySQL資料庫。藉由此Web介面可以成為一個簡易方式輸入繁雜SQL文法的較佳途徑,尤其要處理大量資料的匯入及匯出更為方便。其中一個更大的優勢在於由於phpMyAdmin跟其他PHP程式一樣在網頁伺服器上執行,但是您可以在任何地方使用這些程式產生的HTML頁面,也就是於遠端管理MySQL資料庫,方便的建立、修改、刪除資料庫及資料表。也可藉由phpMyAdmin建立常用的php文法,方便編寫網頁時所需要的sql文法正確性。
②、phpMyAdmin的搭建
(1) 因為使用虛擬機器主機,所以注釋主設定檔中的#DocumentRoot
#DocumentRoot "/var/www/html"
(2) 為了模組化管理,我這裡使用獨立的目錄來存放虛擬機器主機的配置
vim /etc/httpd/conf/httpd.confIncludeOptional conf.d/VirtualHost/*.conf#在主設定檔中添加上面語句。然後在/etc/httpd/conf.d/建立VirtualHost來存放我的虛擬機器主機檔案
(3) 建立並配置虛擬機器主機,並把代碼copy到對應的虛擬機器主機目錄中
vim /etc/httpd/conf.d/VirtualHost/wlw.com.confServerName pma.wlw.comDocumentRoot "/var/www/html/phpMyAdmin"DirectoryIndex index.php<Directory "/var/www/html/phpMyAdmin"> Options FollowSymLinks AllowOverride None</Directory>
(4) 修改phpMyAdmin的設定檔和初始化配置
[[email protected] ~]# cd /var/www/html/phpMyAdmin/[[email protected] phpMyAdmin]# cp config.sample.inc.php config.inc.php#預設情況下設定檔為重新命名的,所以我們把名字改會phpmyadmin識別的設定檔config.inc.php[[email protected] phpMyAdmin]# tr -dc A-Za-z0-9_</dev/urandom | head -c 30 | xargsBrsXH6_YnXbm1pDazDYOsHzQv2WnD1#因為在設定檔中等一下要用到隨機數,我們使用此命令先產生一個隨機數[[email protected] phpMyAdmin]# vim config.inc.php $cfg[‘blowfish_secret‘] = ‘BrsXH6_YnXbm1pDazDYOsHzQv2WnD1‘; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */#將隨機數填入即可,其他暫時保持預設[[email protected] phpMyAdmin]# mysqlMariaDB [(none)]> SET PASSWORD FOR ‘root‘@‘127.0.0.1‘=PASSWORD(‘wlw‘);MariaDB [(none)]> SET PASSWORD FOR ‘root‘@‘localhost‘=PASSWORD(‘wlwsldya‘);FLUSH PRIVILEGES;#預設安裝完的mysql,預設是沒有密碼的,如果建議為設定資料庫密碼
(5) 萬事俱備只欠東風,現在我們在瀏覽器中輸入http://pma.wlw.com/測試
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/73/7A/wKiom1X_NWOSHK2oAAHHHpC7aqE029.jpg" title="QQ20150921063654.png" alt="wKiom1X_NWOSHK2oAAHHHpC7aqE029.jpg" />
開啟後發現登入框沒有了。千萬不要有奔潰的心,其實IT很多東西都是這樣,你照著別人做,別人成功了,你失敗了。而且還是各種原因的失敗。幸福的家庭總是相似的,不幸的家庭各有各的不幸。其實這些問題大多數在Google都能找到解決方案。所以。不要Google走起。
[[email protected] phpMyAdmin]# vim libraries/plugins/auth/AuthenticationCookie.class.php <!-- Login form --> <form method="post" action="index.php" name="login_form"‘ . $autocomplete . ‘ class="disableAjax login hide js-show">#開啟此設定檔後把hide去掉即可。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/73/77/wKioL1X_Oc-g2S5_AAIk-QxKZCg200.jpg" title="111.png" alt="wKioL1X_Oc-g2S5_AAIk-QxKZCg200.jpg" />
輸入帳號密碼,登入成功,為了安全,建議root管理員不要允許遠程登入,因為管理員權限之大,是很危險的。這裡我們還可以基於使用者的存取控制的basic認證添加多一層認證。Linux服務管理之httpd-2.2常用設定檔 ,中有詳細配置,可以參考,這裡不做詳細說明
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/73/77/wKioL1X_PPfjUIlBAAPQ1p80SkA104.jpg" title="111.png" alt="wKioL1X_PPfjUIlBAAPQ1p80SkA104.jpg" />
雙重認證後我們進入了phpMyAdmin,雖然有雙重認證,但是重要事情說三遍,root管理員不建議開啟遠程。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/73/77/wKioL1X_PZSjC-ZBAARXcQBt-mU100.jpg" title="111.png" alt="wKioL1X_PZSjC-ZBAARXcQBt-mU100.jpg" />
本文出自 “馬爾高” 部落格,請務必保留此出處http://kgdbfmwfn.blog.51cto.com/5062471/1696616
Linux服務管理之httpd-2.4常用配置及phpMyAdmin、wordpress、Discuz安裝