推薦-LAMP的編譯安裝

首先解釋一下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大軟件的源代碼包:

blob.png

 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包

blob.png

cd到解壓的apr-1.5包的目錄里面并執行:./configure –prefix=/usr/local/apr.因為系統上已經安裝過了apr,所以這里需要另外指明一個路徑以區分開。

blob.png

然后執行:make -j 2 && make install (開2個線程同時編譯)。

blob.png

解壓apr-util-1.5的包

blob.png

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的。

blob.png

然后執行:make -j 2 && make install

blob.png

上述解決完依賴關系之后就可以正式開始安裝apache了。

解壓httpd的源代碼包:

blob.png

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這個模塊。

blob.png

然后執行:make -j 4 && make install

blob.png

安裝完成后,需要為此軟件配置服務腳本。我事先從別的系統復雜了一份httpd的腳本,命名為httpd24(賦予執行權限),并復制到了/etc/rc.d/init.d/這個目錄里面。主要修改此服務文件的三個地方:httpdctl的執行文件位置;httpd的執行文件位置;pid文件的位置。如下圖:

blob.png

把httpd的服務腳本添加到系統里面并查看運行級別:

blob.png

啟動httpd服務:

blob.png

使用ss命令查看80端口是否已經被監聽,這里看到已經被監聽。所以httpd已經是正常啟動:

blob.png然后由于是編譯安裝,所以這里需要為httpd來編輯腳本,把執行文件路徑輸入到PATH環境變量里面。新建并編輯/etc/profile.d/httpd.sh。并重讀此腳本文件。

blob.png

blob.png

此時httpd已經是編譯完成了。

2.安裝MariaDB:

安裝MariaDB之前,首先要建立系統用戶mysql(其基本組也是mysql)。此用戶是用于編譯安裝時指明用戶。

blob.png

準備好數據庫的數據存放目錄。這里我另外新建一個/mydata/data的目錄用于專門存放數據庫數據,并將/mydata/data的屬主和屬組改為mysql。

blob.png

之后開始解壓MariaDB的源代碼包,由于安裝需要,解壓的包必須放在/usr/local/mysql這個文件夾里面:

blob.png

cd到/usr/local/的,為目錄下的MariaDB包創建軟連接:

blob.png

此時再cd到mysql這個目錄里面,我們就可以看到有一系列文件:

blob.png

這里注意的是,我們還需要修改這個目錄下的文件的屬性,修改屬主為root,屬組為mysql:

blob.png

然后我們使用scripts里面的mysql_install_db來安裝MariaDB,安裝時要指明運行的用戶為mysql,數據庫的數據存放位置為/mydata/data:

blob.png

然后等待之后就看到安裝完成的提示:

blob.png

然后我們還需要為MariaDB提供配置文件。在/usr/local/mysql/這個目錄里面就有配置文件的樣板(以cnf結尾的文件)

blob.png

復制其中的my-large.cnf到/etc/目錄里面:

blob.png

編輯此配置文件,在里面添加數據庫數據存放位置等內容:

blob.png

還要準備mysql的服務腳本。在/usr/local/mysql/support-files/這個文件夾里面的mysql.server這個就是服務腳本的模板。將/usr/local/mysql/support-files/mysql.server復制到/etc/rc.d/init.d/里面,并且改名為mysqld并且賦予執行權限。

blob.png

同樣地,也把服務腳本添加到系統管理里面:

blob.png

把mysql的執行文件路徑輸出到環境變量PATH里面:

blob.png

啟動mysql的服務:

blob.png

查看3306的端口是否被監聽,這里看到已經被監聽了。說明mysql已經正常啟動:blob.png

3安裝php,

在安裝完htppd和MariaDB之后,就可以安裝php。這里會分別使用兩種工作模式:模塊化和fpm

首先要解決依賴關系,安裝bzip2-devel 、libmcrypt-devel、 libxml2-devel著三個包:

blob.png

解壓php的源代碼包:

blob.png

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工作模塊。

blob.png

然后make -j 4 && make install:

blob.png

安裝完成之后,還需要為php提供配置文件,在剛才的php解壓源代碼包的目錄,就有php.ini-production這個配置文件樣板,復制并改名字到/etc/目錄里面:

blob.png

修改/etc/httpd24/httpd.conf這個文件,可以查看到LoadModule里面已經是加載了php5_module這個模塊:

blob.png

blob.png

我們還需要修改httpd的配置文件,讓httpd能夠識別php格式的文件,添加如下兩行:

AddType application/x-httpd-php  .php

AddType application/x-httpd-php-source  .phps

如圖:

blob.png

定位至DirectoryIndex index.html ,將原來的DirectoryIndex index.html修改為DirectoryIndex  index.php  index.html:

blob.png

保存退出并重啟httpd服務:

blob.png

這里測試一下,編輯httpd的主頁文件,這里的主頁文件是在/usr/local/apache/htdocs/里面的index.html文件。備份后,修改名字為index.php.編輯index.php文件,如下:

blob.png

利用別的電腦訪問次虛擬機的ip地址(192.168.1.30),能夠正常訪問:

blob.png

然后我們簡單配置一下httpd提供動態資源。這里我們使用phpMyAdmin來測試一下。

解壓phpMyAdmin

blob.png

講解壓的文件移動至httpd的主頁目錄下,執行如下操作:

blob.png

blob.png

然后我們編輯config.inc.php這個文件,在cfg這行里面添加隨機碼:

blob.png

然后我們就用其他機訪問http://192.168.1.30/pma/:

blob.png

然后我們使用工具測試一下此httpd的服務器速度,使用命令ab -c 10 -n 200 http://192.168.1.30/pma/index.php:

blob.png

這里我們可以看到Requests per second:    15.65 [#/sec] (mean)。即一秒鐘是處理15.65個請求。

我們下面在示范一下添加xcache來為此httpd服務器加速:

首先下載好xcache的源代碼包,并解壓:

blob.png

然后執行cd到xcache的解壓目錄里面,執行/usr/local/php/bin/phpize來讓xcahche能編譯安裝:

blob.png

然后執行./configure –enable-xcache –with-php-config=/usr/local/php/bin/php-config:

blob.png

然后執行make -j 2 && make install:

blob.png

安裝完成之后,如圖:

blob.png

我們還需要講xcache的配置文件放在php配置文件目錄下,這里源代碼包是提供了xcache的配置文件的樣板,所以我們執行cp xcache.ini /etc/php.d/

blob.png

然后編輯此配置文件(/etc/php.d/xcache.ini),修改zend_extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so,這里就是加上剛才xcache安裝后的模塊配置的路徑。

blob.png

重啟httpd服務。測試一下xcache的加速效果:

blob.png

這里可以看出加速后的效果為:Requests per second:    67.47 [#/sec] (mean)。提速大概為原來3倍。

然后再試下fpm的方式安裝php,即以php為獨立的服務來運行:

首先,重新解壓php的源代碼包:

blob.png

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結尾的文件。

blob.png

然后再執行如下:

blob.png

安裝完成之后,需要為php準備配置文件:

blob.png

在php的解壓包目錄里面,復制php.ini-production到/etc/php5/這個目錄下,并且改名字為php.ini:

blob.png

復制到php解壓包目錄下的sapi/fpm/init.d.php-fpm到/etc/rc.d/init.d/php-fpm,作為服務腳本。然后添加php-fpm到系統里面:

blob.png

blob.png

為為php-fpm提供配置文件:

blob.png

編輯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 

blob.png

blob.png

blob.png

啟動php-fpm服務:

blob.png

還需要修改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

blob.png

blob.png

在相應的虛擬主機中添加類似如下兩行。

  ProxyRequests Off

  ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1

因為我使用默認的根文件目錄,所以如下:

blob.png

讓apache能識別php格式的頁面,并支持php格式的主頁:

blob.png

blob.png

然后重啟httpd服務。然后測試一下,用其他主機訪問web網頁:

blob.png

然后在使用命令做壓力測試,結果如下:

blob.png

其中Requests per second:    29.27 [#/sec]。

我再安裝xcache來進行加速。

首先解壓xcahe源代碼包,并cd進去:

blob.png

執行/usr/local/php5/bin/phpize來為xcache生成配置文件:

blob.png

執行./configure命令。這里要注意的是引用的php-config是編譯安裝的php5的目錄下(fpm模式下的)的。

blob.png

接著執行如下操作:

blob.png

blob.png

然后再配置xacache.ini文件到/etc/php5.d/xcache.ini。編輯此文件的extension位置的xcache模塊的位置入下圖:

blob.png

blob.png

最后壓力測試一下,看xcache的加速效果:

blob.png

可以看到Requests per second:    91.22 [#/sec] 。所以加速效果大概為原來的三倍。

原創文章,作者:Net17_Tim,如若轉載,請注明出處:http://www.www58058.com/14285

(0)
Net17_TimNet17_Tim
上一篇 2016-04-11
下一篇 2016-04-11

相關推薦

  • linux基礎學習之SElinux

    1、SElinux簡介 SELinux: Secure Enhanced Linux,是美國國家安全局「NSA=The National Security Agency」和SCC(Secure Computing Corporation)開發的Linux的一個強制訪問控制的安全模塊。2000年以GNU GPL發布,Linux內核2.6版本后集成在內核中 2、…

    Linux干貨 2016-09-15
  • proxy_pass轉發路徑

    一、引言 在nginx中配置proxy_pass時,proxy_pass后面的路徑最后面加“/”和不加“/”會有所區別。加“/”時,nginx不會代理location部分,不加“/”時,nginx會同時代理location部分。下面通過實驗來證明。 二、實驗 實驗環境簡要說明:     node1為httpd服務器(1…

    Linux干貨 2017-01-12
  • 搜索引擎-倒排索引基礎知識

    1.單詞——文檔矩陣        單詞-文檔矩陣是表達兩者之間所具有的一種包含關系的概念模型,圖3-1展示了其含義。圖3-1的每列代表一個文檔,每行代表一個單詞,打對勾的位置代表包含關系。          …

    Linux干貨 2015-12-10
  • 第一次測試

    1.第一層  video  視頻 2.第二層  audio  音頻 3.第三層  字幕 查看視頻詳細信息 ffmpeg -i 視頻文件 轉碼修改視頻格式 ffmpeg -i 輸入文件   輸出文件格式 視頻文件中提取音頻和視頻 提取視頻中的音頻 ffmpeg -i CP0454900262.ts -…

    Linux干貨 2017-02-06
  • 學習總結

    課上練習整理

    Linux干貨 2017-11-19
  • mysql5.5.32多實例配置

    操作系統:CentOS release 6.7 (Final) 內核版本:2.6.32-573.el6.x86_64 mysql版本號:mysql-5.5.32 1)安裝mysql所需的依賴包 # adduser mysql -s /sbin/nologin -M # mkdir -p&n…

    Linux干貨 2016-12-05

評論列表(3條)

  • stanley
  • felix_du
    felix_du 2016-05-06 09:48

    謝謝你的分享。在http板塊,httpd24的文件內容是不是只有圖片中的那幾行?我按照那幾行寫入,并加入x權限后,chkconfig顯示無法添加該服務。謝謝。

  • felix_du
    felix_du 2016-05-06 09:53

    已解決。謝謝。

欧美性久久久久