天天看點

LAMP之一(子產品php方式)

linux+httpd+php子產品+mysql

rpm包的安裝方式

環境:

系統: CentOS Linux release 7.1.1503 (Core)

yum源:epel,cdrom

主機:

httpd+php

172.16.40.30

mysql

172.16.40.31

目的:

1、兩台主機實作httpd+php和mysql服務。

2、httpd提供兩個虛拟主機,一個虛拟主機提供phpMyAdmin,另一個虛拟主機提供wordpress。

3、為php安裝xcache。

4、為phpMyAdmin提供https;

LAMP之一(子產品php方式)

目錄:

一、httpd

二、php

三、mysql

四、安裝phpMyadmin和wordpress

五、為phpMyadmin虛拟主機啟用ssl。(包括建立私有CA)

我這裡的selinux和iptables都在開啟狀态,為了簡單我這裡把它們都關閉了。

selinux:

iptables:

注意:在mysql上面127.0.0.1與localhost是不同的。127.0.0.1會用網絡套接字來通信。而

localhost用的才是unix_sock,本地檔案。如果要用localhost通信,有可能要在/etc/php.ini中為3個連接配接器指定mysql

的sock檔案所在位置。

1、安裝:

80端口啟動了。可以嘗試一下打開網頁了。

LAMP之一(子產品php方式)

工作正常。

主配置檔案中的一些指令可以到官網檢視,有專門介紹指令的,如我這裡2.4版本的:

http://httpd.apache.org/docs/2.4/mod/directives.html

直接ctrl+f搜尋。

LAMP之一(子產品php方式)
LAMP之一(子產品php方式)

2、虛拟主機:

首先把/etc/httpd/conf/httpd.conf配置檔案中的DocumentRoot關閉。

添加一個虛拟主機的配置檔案:

建立所需目錄:

給兩個虛拟主機分别來個網頁測試一下。

測試一下:

這個錯誤是因為在主配置檔案中的serverName沒有配置,httpd會反解本機的IP位址,得出的結果如果與本機的主機名不适合,或者是根本就不能反解, 就會報這個錯誤。 可以在主配置檔案中指定serverName或在/etc/hosts中給個ip和本機主機名的條目。我這裡就在主配置檔案中指定了,名稱任意。我們用的是虛拟主機,而虛拟主機裡面也已經指定serverName了。

下面我們所說的主機名都是表示FQDN而不是系統上的主機名。

還差一步,我們是用主機名來區分不同的虛拟主機的,如果用IP登入隻會解析到第一個虛拟主機上面。

是以在測試機的hosts的檔案中加上IP與主機名的條目。linux系統在/etc/下面。 windows系統在C:\Windows\System32\drivers\etc下面。C表示系統盤。

LAMP之一(子產品php方式)

windows上面如果不能儲存,很可能是因為權限的問題, 在hosts屬性裡面的安全裡面設定使用者和權限。

我這裡可以了,網頁測試一下:

LAMP之一(子產品php方式)
LAMP之一(子產品php方式)

注意:在mysql上面127.0.0.1與localhost是不同的。127.0.0.1會用網絡套接字來通信。而localhost用的才是

unix_sock,本地檔案。如果要用localhost通信,要在/etc/php.ini中為3個連接配接器指定mysql的sock檔案所在位置。

php-mysql是php連接配接mysql的連接配接器(驅動)。

mysql   mysqli   pdo_mysql  是三種不同的連接配接器。 在以後編譯php的時候要選擇這三個的。

連接配接器介紹:http://php.net/manual/zh/mysqli.overview.php#mysqli.overview.mysqlnd

2、測試:

rpm安裝的php不用怎麼配置

注意:rpm安裝的php隻支援prefork模型的httpd。如果要用work或event這種線程模型就要自己編譯php了。

分别給兩個虛拟主機測試檔案。

測試:

LAMP之一(子產品php方式)
LAMP之一(子產品php方式)

現在在不指定首頁的情況下還是優先找的index.html。可以在主配置檔案中配置一下:

在index.html前面加上index.php

3、xcache

xcache   epel源中的rpm包可能有問題, 性能不升反降。不知道是什麼問題。

要編譯安裝xcache。

安裝xcache:

要先安裝php-devel。 然後在xcache目錄裡面執行phpize,

php-config和phpize是php的配置接口,添加第三方的子產品。

編譯很簡單就兩個選項,一個是啟用xcache的擴功能, 一個是php-config,要指定php-config的位置。

安裝完xcache的時候為提示xcache子產品所在路徑:

如果php不能找到xcache子產品,需要手動添加到xcache.ini檔案中。

把安裝xcache完成以後顯示的那個路徑寫在extension指令後面,不過要指定xcache.so

如:extension = /usr/lib64/php/modules/xcache.so

網頁測試一下:

LAMP之一(子產品php方式)
LAMP之一(子產品php方式)

這個info頁面,在用ab測試的時候,不用xcache是600/sec。而用了以後反而變成了300/sec。 一會兒再試試phpMyadmin的頁面看看。

進入mysql添加wordpress要用到的庫和使用者。

給root使用者添加密碼,不然在phpMyadmin中不能登入:

https://files.phpmyadmin.net/phpMyAdmin/4.4.15.2/phpMyAdmin-4.4.15.2-all-languages.tar.xz

最新的4.5.3隻有php5.5或以上版本才可以用。rpm安裝的php版本是5.4.16.

https://cn.wordpress.org/wordpress-4.4.1-zh_CN.zip

删除/web/www和/web/myadmin裡面的檔案

分别把phpMyadmin和wordpress裡面的檔案放到/web/www和/web/myadmin裡面。

我這裡把wordpress放到了www裡面。這是在/web/目錄下面操作的。

先來設定一下phpMyadmin。

LAMP之一(子產品php方式)

把生成的随機碼放到裡面。

LAMP之一(子產品php方式)

上面這個位址把原來的localhost改成mysql資料庫所在位置。

網頁通路一下試試:

LAMP之一(子產品php方式)

安裝mbsting,多字元處理庫。如果沒有這個,phpMyAdmin不能支援漢字。

然後就可以用root登入了。

LAMP之一(子產品php方式)

如果跟我這一樣總是提示無法登入,可以重新複制一下config.sample.inc.php檔案試試。

ab測試一下看看。把/etc/php.d/xcache.ini檔案移走。要reload啊。

我這是筆記本,速度太慢了。

再把檔案放回去。

安裝wordpress:

進入www的目錄。

LAMP之一(子產品php方式)

我這裡通路http://www.star.com/

LAMP之一(子產品php方式)
LAMP之一(子產品php方式)
LAMP之一(子產品php方式)

五、給myadm虛拟主機提供https。

首先要建立私有CA。

我這裡就用httpd這台主機來做CA了。這個CA是靜态的,由openssl軟體提供,不是服務程式,是以不會占用什麼資源。

CA工作目錄,是在/etc/pki/tls/openssl.cnf檔案中設定的。預設是在/etc/pki/CA

/etc/pki/tls/openssl.cnf中關于CA的設定。

LAMP之一(子產品php方式)

建立ca私鑰。

CA自簽證書:

建立所必須的檔案:

CA完成了,也就兩步。剩下的就是為httpd建立私鑰、生成證書申請然後簽署就可以了。

我這裡在/etc/httpd/目錄下面建立一個ssl目錄用以存儲私鑰和證書。這個目錄任意,隻要一會兒在httpd配置檔案中指定私鑰和證書的路徑就可以。

這裡的地區要一樣,公司好像也要一樣,域名可以不一樣。

上面生成的是證書申請,現在我們來簽署。

注意:CA與httpd是沒有關系的,雖然都使用openssl指令。 如果CA在另一台主機上面,我們也隻是要把csr檔案發到CA的主機,CA簽署完以後再發回來而已。

還有,因為我們是使用的私有CA。用戶端的主機上面沒有CA的根證書,是以要把CA的自簽證書發給用戶端。就是/etc/pki/CA/cacert.pem。

一些公有CA不用這樣做的原因是因為系統或浏覽器已經自帶那些CA的根證書了。

既然是私有CA,系統或浏覽器上肯定是沒有了。這麼做的目的,是讓浏覽器信任由此CA所頒發的證書。

我這裡複制到我的主機上面了,windows的系統。

LAMP之一(子產品php方式)

火狐浏覽器是在選項--進階--證書--檢視證書--證書機構--導入,找到證書檔案導入即可。

Chrome浏覽器在設定--顯示進階設定--管理證書--受信任的根證書頒發機構--導入即可。

設定httpd支援ssl

myadm.csr檔案現在沒有用了,可以删除。

安裝ssl子產品。

ssl是基于IP位址的,在單IP的主機上面隻能用一個ssl的連接配接。而用戶端通路的位址一定要是證書裡面顯示的主機名。我們在伺服器上要做的就是要正确的把這個請求解析到正确的虛拟主機。

https的端口是443。

現在在conf.d/ssl.conf配置檔案中除了一般ssl的設定以外,還有一個443端口的虛拟主機。而vhosts檔案

中的phpMyadmin虛拟主機要用ssl也要以443端口。是以我這裡就把ssl.conf檔案中帶的虛拟主機給注釋了。 并把所需要的指令放到vhosts檔案中去。

LAMP之一(子產品php方式)

現在的vhosts配置檔案。

LAMP之一(子產品php方式)

虛拟主機如果非要有優先級的話:IP>端口>FQDN。

是以這裡有個有意思的地方,通路https://www.star.com/會怎麼樣。443端口,會優先使用端口的虛拟主機,是以會通路phpMyadmin的虛拟主機。但是通路名稱與證書中的主機名不同。是以:

LAMP之一(子產品php方式)

而www.star.com是沒有問題的。

LAMP之一(子產品php方式)

完成。 謝謝浏覽。

LAMP之一(子產品php方式)