首先解釋一下LAMP,L:Linux;A:apache;M:MariaDB;P:php。Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一組常用來搭建動態網站或者服務器的開源軟件。
本文就是介紹編譯安裝apache2.4,MariaDB5.5,以及php(基于模塊化和fpm的這兩種方式來配合php提供服務)。
因為php是要在apache和MariaDB的基礎上才能安裝、配置使用,所有安裝順序是apache2.4,MariaDB5.5,php。
這里我們還需要準備好此3大軟件的源代碼包:
1.安裝apache,
安裝apache,首先需要準備好開發環境。即我們需要使用yum源來安裝Development tools和Server Platform Development這兩個包組。輸入yum grouplist "Development tools" "Server Platform Development"即可。
因為在編譯安裝時候,還需要依賴pcre-devel這個包,所以也需要安裝。輸入命令:yum install -y pcre-devel。
另外由于測試環境的CentOS的apr以及apr-util的版本不足夠新,這里還需要額安裝新的apr和apr-util。這里我事先準備好了源代碼包。
解壓apr-1.5包
cd到解壓的apr-1.5包的目錄里面并執行:./configure –prefix=/usr/local/apr.因為系統上已經安裝過了apr,所以這里需要另外指明一個路徑以區分開。
然后執行:make -j 2 && make install (開2個線程同時編譯)。
解壓apr-util-1.5的包
cd到解壓的apr-1.5包的目錄里面并執行:./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr。這里是要特別注意參數–with-apr=/usr/local/apr就是要使用剛才安裝的apr-1.5來配合安裝apr-1.5的。
然后執行:make -j 2 && make install
上述解決完依賴關系之后就可以正式開始安裝apache了。
解壓httpd的源代碼包:
cd到解壓的httpd-2.4包的目錄里面并執行:./configure –prefix=/usr/local/apache –sysconfdir=/etc/httpd24 –enable-so –enable-ssl –enable-cgi –enable-rewrite –with-zlib –with-pcre –with-apr=/usr/local/apr –with-apr-util=/usr/local/apr-util –enable-modules=most –enable-mpms-shared=all –with-mpm=event。這里需要指明是安裝路徑是/usr/local/apache;安裝后的配置文件是放在/etc/httpd24;安裝時啟用ssl和cgi;安裝時是利用的apr和apr-util的路徑;指明啟用大多數模塊(–enable-modules=most);指明啟用mpm_event這個模塊。
然后執行:make -j 4 && make install
安裝完成后,需要為此軟件配置服務腳本。我事先從別的系統復雜了一份httpd的腳本,命名為httpd24(賦予執行權限),并復制到了/etc/rc.d/init.d/這個目錄里面。主要修改此服務文件的三個地方:httpdctl的執行文件位置;httpd的執行文件位置;pid文件的位置。如下圖:
把httpd的服務腳本添加到系統里面并查看運行級別:
啟動httpd服務:
使用ss命令查看80端口是否已經被監聽,這里看到已經被監聽。所以httpd已經是正常啟動:
然后由于是編譯安裝,所以這里需要為httpd來編輯腳本,把執行文件路徑輸入到PATH環境變量里面。新建并編輯/etc/profile.d/httpd.sh。并重讀此腳本文件。
此時httpd已經是編譯完成了。
2.安裝MariaDB:
安裝MariaDB之前,首先要建立系統用戶mysql(其基本組也是mysql)。此用戶是用于編譯安裝時指明用戶。
準備好數據庫的數據存放目錄。這里我另外新建一個/mydata/data的目錄用于專門存放數據庫數據,并將/mydata/data的屬主和屬組改為mysql。
之后開始解壓MariaDB的源代碼包,由于安裝需要,解壓的包必須放在/usr/local/mysql這個文件夾里面:
cd到/usr/local/的,為目錄下的MariaDB包創建軟連接:
此時再cd到mysql這個目錄里面,我們就可以看到有一系列文件:
這里注意的是,我們還需要修改這個目錄下的文件的屬性,修改屬主為root,屬組為mysql:
然后我們使用scripts里面的mysql_install_db來安裝MariaDB,安裝時要指明運行的用戶為mysql,數據庫的數據存放位置為/mydata/data:
然后等待之后就看到安裝完成的提示:
然后我們還需要為MariaDB提供配置文件。在/usr/local/mysql/這個目錄里面就有配置文件的樣板(以cnf結尾的文件)
復制其中的my-large.cnf到/etc/目錄里面:
編輯此配置文件,在里面添加數據庫數據存放位置等內容:
還要準備mysql的服務腳本。在/usr/local/mysql/support-files/這個文件夾里面的mysql.server這個就是服務腳本的模板。將/usr/local/mysql/support-files/mysql.server復制到/etc/rc.d/init.d/里面,并且改名為mysqld并且賦予執行權限。
同樣地,也把服務腳本添加到系統管理里面:
把mysql的執行文件路徑輸出到環境變量PATH里面:
啟動mysql的服務:
查看3306的端口是否被監聽,這里看到已經被監聽了。說明mysql已經正常啟動:
3安裝php,
在安裝完htppd和MariaDB之后,就可以安裝php。這里會分別使用兩種工作模式:模塊化和fpm
首先要解決依賴關系,安裝bzip2-devel 、libmcrypt-devel、 libxml2-devel著三個包:
解壓php的源代碼包:
cd到解壓完成的包之后,執行安裝命令:./configure –prefix=/usr/local/php –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 –with-apxs2=/usr/local/apache/bin/apxs –with-mcrypt –with-config-file-path=/etc –with-config-file-scan-dir=/etc/php.d –with-bz2 –enable-maintainer-zts
這里說明一下,–prefix=/usr/local/php是指明安裝路徑;指明配置文件路徑–with-config-file-path=/etc;這個–enable-maintainer-zts意思就是支持httpd的mpm_even和mpm_work工作模塊。
然后make -j 4 && make install:
安裝完成之后,還需要為php提供配置文件,在剛才的php解壓源代碼包的目錄,就有php.ini-production這個配置文件樣板,復制并改名字到/etc/目錄里面:
修改/etc/httpd24/httpd.conf這個文件,可以查看到LoadModule里面已經是加載了php5_module這個模塊:
我們還需要修改httpd的配置文件,讓httpd能夠識別php格式的文件,添加如下兩行:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
如圖:
定位至DirectoryIndex index.html ,將原來的DirectoryIndex index.html修改為DirectoryIndex index.php index.html:
保存退出并重啟httpd服務:
這里測試一下,編輯httpd的主頁文件,這里的主頁文件是在/usr/local/apache/htdocs/里面的index.html文件。備份后,修改名字為index.php.編輯index.php文件,如下:
利用別的電腦訪問次虛擬機的ip地址(192.168.1.30),能夠正常訪問:
然后我們簡單配置一下httpd提供動態資源。這里我們使用phpMyAdmin來測試一下。
解壓phpMyAdmin
講解壓的文件移動至httpd的主頁目錄下,執行如下操作:
然后我們編輯config.inc.php這個文件,在cfg這行里面添加隨機碼:
然后我們就用其他機訪問http://192.168.1.30/pma/:
然后我們使用工具測試一下此httpd的服務器速度,使用命令ab -c 10 -n 200 http://192.168.1.30/pma/index.php:。
這里我們可以看到Requests per second: 15.65 [#/sec] (mean)。即一秒鐘是處理15.65個請求。
我們下面在示范一下添加xcache來為此httpd服務器加速:
首先下載好xcache的源代碼包,并解壓:
然后執行cd到xcache的解壓目錄里面,執行/usr/local/php/bin/phpize來讓xcahche能編譯安裝:
然后執行./configure –enable-xcache –with-php-config=/usr/local/php/bin/php-config:
然后執行make -j 2 && make install:
安裝完成之后,如圖:
我們還需要講xcache的配置文件放在php配置文件目錄下,這里源代碼包是提供了xcache的配置文件的樣板,所以我們執行cp xcache.ini /etc/php.d/
然后編輯此配置文件(/etc/php.d/xcache.ini),修改zend_extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so,這里就是加上剛才xcache安裝后的模塊配置的路徑。
重啟httpd服務。測試一下xcache的加速效果:
這里可以看出加速后的效果為:Requests per second: 67.47 [#/sec] (mean)。提速大概為原來3倍。
然后再試下fpm的方式安裝php,即以php為獨立的服務來運行:
首先,重新解壓php的源代碼包:
cd到該源代碼包的目錄里面,執行./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/php5/ –with-config-file-scan-dir=/etc/php5.d –with-bz2
這里說明一下,由于此虛擬機之前已經安裝了php,所以這里我另外再指定一個額外的安裝目錄/usr/local/php5;而配置文件是放在–with-config-file-path=/etc/php5/;–enable-fpm,啟用fpm的安裝方式;–with-config-file-scan-dir=/etc/php5.d ,指明在/etc/php5.d/目錄下的以ini結尾的文件。
然后再執行如下:
安裝完成之后,需要為php準備配置文件:
在php的解壓包目錄里面,復制php.ini-production到/etc/php5/這個目錄下,并且改名字為php.ini:
復制到php解壓包目錄下的sapi/fpm/init.d.php-fpm到/etc/rc.d/init.d/php-fpm,作為服務腳本。然后添加php-fpm到系統里面:
為為php-fpm提供配置文件:
編輯php-fpm的配置文件,修改監聽的端口號以及php-fpm的一切啟動的參數(這些參數可以根據實際情況進行修改),如:
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
啟動php-fpm服務:
還需要修改httpd的配置文件,
在Apache httpd 2.4以后已經專門有一個模塊針對FastCGI的實現,此模塊為mod_proxy_fcgi.so,它其實是作為mod_proxy.so模塊的擴充,因此,這兩個模塊都要加載
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
在相應的虛擬主機中添加類似如下兩行。
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1
因為我使用默認的根文件目錄,所以如下:
讓apache能識別php格式的頁面,并支持php格式的主頁:
然后重啟httpd服務。然后測試一下,用其他主機訪問web網頁:
然后在使用命令做壓力測試,結果如下:
其中Requests per second: 29.27 [#/sec]。
我再安裝xcache來進行加速。
首先解壓xcahe源代碼包,并cd進去:
執行/usr/local/php5/bin/phpize來為xcache生成配置文件:
執行./configure命令。這里要注意的是引用的php-config是編譯安裝的php5的目錄下(fpm模式下的)的。
接著執行如下操作:
然后再配置xacache.ini文件到/etc/php5.d/xcache.ini。編輯此文件的extension位置的xcache模塊的位置入下圖:
最后壓力測試一下,看xcache的加速效果:
可以看到Requests per second: 91.22 [#/sec] 。所以加速效果大概為原來的三倍。
原創文章,作者:Net17_Tim,如若轉載,請注明出處:http://www.www58058.com/14285
內容非常詳實有料,如果輔以好的樣式,會更贊
謝謝你的分享。在http板塊,httpd24的文件內容是不是只有圖片中的那幾行?我按照那幾行寫入,并加入x權限后,chkconfig顯示無法添加該服務。謝謝。
已解決。謝謝。