編譯安裝LAMP

 

CentOS7中默認安裝的是httpd2.4,數據庫使用的也是mariadbphp的模塊和fpm都有,不建議編譯安裝,php

 

下面在CentOS6.6中演示編譯安裝httpd2.4mariadbphp html

php編譯分紅兩種,一種是編譯成模塊,另外一種是編譯成fpmmysql

 

1、CentOS6中編譯安裝httpd2.4mariadbphp編譯成模塊linux

CentOS6上編譯安裝httpd2.4web

        編譯安裝步驟:sql

       httpd2.4 須要1.4以上版本的aprapr-util數據庫

   由於apr這些包,可能不僅被httpd所依賴,其餘程序也可能依賴,因此就不能直接升級安裝,須要從新編譯安裝到其餘位置,apache

           前提:vim

                 安裝開發環境,安裝pcre-develapi

              (1)apr

                         #  ./configure --prefix=/usr/local/apr

                         #  make && make install

              (2)apr-util

                          #  ./configure --prefix=/usr/local/apr-util --with=/usr/local/apr

                          #  make && make install

                          #  groupadd -r apache

                          #  useradd -r -g apache apahce

                          #  ./configure --prefix=/usr/local/apache --sysconf=/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=prefork

                         #  make && make install

 

        啓動服務:apachectl

    首先要保證開發環境有,就是包組Development toolsServer Platform Development已經安裝好,

而後下載apr-1.5.0.tar.bz2apr-util-1.5.3.tar.bz2包到虛擬機上,而後解壓

wKioL1YJLHfzkiHQAADyLLSUc48289.jpg

而後編譯安裝

wKiom1YJLK-wi1nEAAFL6VS7elg208.jpg

編譯成功了,而後進行安裝

make &&  make  install就好了

 

而後一樣的方式編譯安裝apr-util

wKioL1YJLMXAkuvIAAIjRWYEWDM713.jpg

而後make  &&  make install就好了

這兩個包就安裝好了

而後建立apache用戶和組

groupadd -r apache useradd -r-g apache apahce,若是已存在就不用建立了

而後編譯安裝httpd2.4

還須要安裝pcre-devel包,若是沒有這個包沒辦法對httpd作開發編譯

 

httpd2.4編譯使用的選項

./configure --prefix=/usr/local/apache--sysconf=/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=prefork

wKiom1YJLQqxnrTQAAJeO0_2TuM012.jpg

編譯好,make  && make  install安裝

 

啓動要用apachectl 由於本身安裝的包沒有服務腳本,能夠自行編寫

首先保證80端口沒有被佔用,

wKioL1YJLXzh7XU1AAL3m4Xopd8922.jpg

要想啓動須要/usr/local/apache/bin/apachectl這個路徑,若是直接使用apachectlrpm安裝的httpd,爲了方即可以在/etc/profile.d/下建立httpd.sh來把這個路徑加入到PATH變量中,並重讀這個文件

wKiom1YJLYbi1EqlAACC1hBHYKE904.jpg

wKioL1YJLdfBTg6kAADs2G1FjMs112.jpg

echo $PATH,能夠查看到這個路徑在最前面了,用which確認如下,就能夠看到了

wKiom1YJLgSRhLwHAAFJOp-ZrN4899.jpg

apachectl就能夠啓動了,使用ss  –tnl 查看

wKioL1YJLhnR4qXJAANYgtiA-Sc713.jpg

從外部訪問下,

wKiom1YJLiPDLcxgAACBauRwV7Y827.jpg

能夠看到啓動成功了

CentOS6中編譯的httpd2.4須要注意下,裏面的配置文件是 /etc/httpd24/httpd.conf

須要在裏面加入一行PidFile  "/var/run/httpd.pid"

而後在extra目錄下,還有不少功能模塊的配置文件,建議到時修改時,修改這些文件,能夠之後方便自動換運維

wKioL1YJLpHw928PAAJB2xiyfFs568.jpg

 

若是想在CentOS6中使用腳本,管理安裝後的httpd2.4須要寫一個腳本

首先apachectl  stop 停掉服務

而後進入/etc/rc.d/init.d下複製httpdhttpd24而後進行修改

wKioL1YJOq_yXaqWAAFVF1eRaQw331.jpg

 

wKioL1YJPcySukJOAAJyMywj1IE379.jpg

而後把這個腳本加入到服務中,而後打開

wKiom1YJPdTTAtpkAAEabHnkbhM049.jpg

就可使用服務啓動了 service  httpd24 start

而後安裝mariadb,直接編譯安裝須要另外的工具,這裏咱們直接使用通用二進制格式的程序源碼來進行

 

安裝mariadb

 

首先停用使用(service  mysqld  stopmysqld服務,而後卸載mysql-server,省得產生衝突,之前的日誌文件也不須要也給刪掉

wKioL1YJQ62Dy6f4AAEXfu0RAGQ434.jpg

這樣mysql就被徹底清掉了,而後下載mariadb的最新版本,要適用於本身的電腦的平臺結構的二進制格式的源碼包,這裏以mariadb-5.5.43-linux-x86_64.tar.gz這個版本的mariadb爲例進行安裝

首先建立一個mysql用戶和組,而後解壓這個包到/usr/local下,而後進入這個目錄,而後建立一個鏈接指向mysql

wKiom1YJQ07CPFJoAAFL6VS7elg340.jpg

 

spacer.gif

切進mysql這個目錄,而後要把裏面的全部文件的屬主和屬組改成rootmysql

spacer.gif

這裏面有一個data目錄是用來存放數據的,可是咱們不該該把數據存到這,應該從新掛載一個硬盤把數據存放到那裏面,或者在根目錄下建立一個目錄,來存放數據

咱們掛載一盤硬盤,建立一個分區,而後作lvm

fdisk /dev/sdd(新加硬盤的名稱),建立一個分區大小爲10G,而後類型改成8e

spacer.gif

而後同步下

spacer.gif

而後建立pvgvlv

 

spacer.gif

而後進行初始化,文件類型任意,但最好用xfsmysqlxfs文件系統的支持性好CentOS6中沒有提供,須要安裝yum  install xfsprogs安裝,而後就可使用make.xfs進行初始化,但之後的擴展可能有問題,爲了演示咱們就以xfs文件系統爲例

spacer.gif

而後建立一個目錄,讓它開機自動掛載,編輯/etc/fstab

spacer.gif

而後掛載如下,mount  -a,而後查看下

spacer.gif

而後進入/mydata目錄,建立一個data目錄來存放數據庫的數據,要修改屬主和屬組爲mysql

spacer.gif

而後回到/usr/local/mysql,而後使用數據庫初始化腳本,把初始化後的數據庫數據放到咱們建立的目錄下

spacer.gif

查看下,這裏面就有數據了

spacer.gif

這樣數據的存儲位置就弄好了

而後建立mysql的服務腳本

複製/usr/local/mysql/support-files/mysql.server  /etc/rc.d/init.d/mysqld,而後加入服務裏

spacer.gif

而後準備mysql的配置文件,mysql的配置文件的查找次序爲:

/etc/my.cnf --> /etc/mysql/my.cnf -->--default-extra-file=/PATH/TO/CONF_FILE (啓動這個服務時的選項指定的)-->~/.my.cnf(運行當前程序的家目錄的文件),最後找到的文件生效


首先複製配置文件加入服務裏,而後進行修改

spacer.gif

修改內容增長三項

spacer.gif

skip_name_resolve = on這是跳過反解這一項的配置

而後就能夠啓動測試下了

spacer.gif

這樣mariadb就安裝好了

spacer.gif

能夠啓動了

 

爲了使用mysql的安裝符合系統使用規範,並將其開發組件導出給系統使用,這裏還須要進行以下步驟:

1、輸出mysqlman手冊至man命令的查找路徑:

編輯/etc/man.config,添加以下行便可:

MANPATH /usr/local/mysql/man

2、輸出mysql的頭文件至系統頭文件路徑/usr/include

這能夠經過簡單的建立連接實現:

# ln -sv /usr/local/mysql/include  /usr/include/mysql

3、輸出mysql的庫文件給系統庫查找路徑:

# echo '/usr/local/mysql/lib' >/etc/ld.so.conf.d/mysql.conf

然後讓系統從新載入系統庫:

# ldconfig

4、修改PATH環境變量,讓系統能夠直接使用mysql的相關命令。具體實現過程這裏再也不給出。

 

1、把php編譯成模塊

 

下面進行編輯安裝php,首先下載,這裏以php-5.4.40.tar.bz2版本爲例

首先保證編譯環境是好的,Desktop Platform Development這個包組安裝過,而後bzip2-devellibmcrypt-devel libxml2-devel這幾個也安裝過,

而後解壓,進行編譯安裝php

# tar xf php-5.4.40.tar.bz2

# cd php-5.4.40

# ./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

 

--enable-maintainer-zts這一項,這裏爲了支持apacheworkerevent這兩個MPM,編譯時使用了--enable-maintainer-zts選項,若是使用的是prefork就不須要這一項。

由於前面咱們編譯的httpd使用的是prefork模塊,因此這裏編譯不使用這一項

使用的命令是下面這個

./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

spacer.gif

spacer.gif

這樣就編譯好了,而後make  &&  make install,可使用make  –j  # 來使用多線程來編譯,這樣速度會快

spacer.gif

安裝成功了

 

先打開/etc/httpd24/httpd.conf查看LoadModule模塊這一塊,確認php5_module這個模塊加入進來了;而後找到AddType這一塊,加入以下二行

  AddType application/x-httpd-php .php

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

而後再定位至DirectoryIndex index.html 修改成:

   DirectoryIndex  index.php  index.html

而後爲php提供配置文件:在編譯安裝的目錄下(/root/php-5.4.40/

# cp php.ini-production /etc/php.ini 複製完無須修改就行,

然後從新啓動httpd,或讓其從新載入配置文件便可測試php是否已經能夠正常使用。

而後去提供一個測試頁,路徑在/usr/local/apache/htdocs目錄下

spacer.gif

而後編輯index.php

spacer.gif

測試下,訪問172.16.249.114

spacer.gif

 

沒有問題成功了,而後把mysql關掉,在確認下是否能連到數據庫

spacer.gif

 

這證實能夠連到,而後把mysql服務啓動(service mysqld start

而後部署一個應用phpMyAdmin

解壓unzip  phpMyAdmin-4.4.14.1-all-languages.zip

而後把目錄移動到/usr/local/apache/htdocs/目錄下,而後設置phpMyAdmin的配置文件

spacer.gif

修改phpMyAdmin的配置文件,在這裏面這行加一個隨機字符串而後就能夠訪問了


spacer.gif


而後去給數據庫的管理員加上密碼

spacer.gif

查看下

spacer.gif

而後重讀一下 使用 FLUSH   PRIVILEGES

而後訪問測試

spacer.gif

這就能夠了,一切正常,


下面進行下壓力測試,而後進行安裝xcache進行加速

首先先訪問少點,而後作壓力測試

spacer.gif

壓力測試ab -c 100 -n 10000 http://172.16.249.114/pma/index.php

spacer.gif

能夠看到每秒中大概訪問45個左右的資源

172.16.249.114上使用top命令查看,會發現壓力很大

spacer.gif

下面進行編譯安裝xcache來進行加速,以xcache-3.2.0.tar.bz2爲例

解壓,而後進行編譯

步驟

# tar xf xcache-3.0.3.tar.gz

# cd xcache-3.0.3

# /usr/local/php/bin/phpize 首先執行這一步,要不不出現configure腳本

# ./configure --enable-xcache--with-php-config=/usr/local/php/bin/php-config

# make && make install

spacer.gif

而後make&&make  install就好了,要記住安裝完成後提示的路徑

spacer.gif

這裏路徑是xcache的模塊的位置

而後複製xcache.ini/etc/php.d/目錄下,而後修改

spacer.gif

把剛纔的目錄加到這裏面

spacer.gif

而後保存退出,重啓服務(service httpd24 reload

查看測試頁,會發現多一個xcache模塊

spacer.gif

這樣加速就作好了,而後進行訪問測試

首先先少訪問點,而後壓力測試

spacer.gif

spacer.gif

能夠看到如今每秒能夠響應250個左右的資源,加速效果是很明顯的

 


2、把php編譯成fpm


首先編譯安裝apache


一、httpd-2.4.9須要較新版本的apr和apr-util,所以須要事先對其進行升級。升級方式有兩種,一種是經過源代碼編譯安裝,一種是直接升級rpm包。這裏選擇使用編譯源代碼的方式進行。

(1) 編譯安裝apr

# tar xf apr-1.5.0.tar.bz2

# cd apr-1.5.0

# ./configure --prefix=/usr/local/apr

# make && make install

(2) 編譯安裝apr-util

# tar xf apr-util-1.5.3.tar.bz2

# cd apr-util-1.5.3

# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

# make && make install

二、編譯安裝httpd-2.4.10

# tar xf httpd-2.4.10.tar.bz2

# cd httpd-2.4.10

# ./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

# make && make install

而後對httpd進行配置,添加服務腳本,加入服務等,跟前面的同樣

三、安裝mysql,跟前面的步驟同樣,爲了方即可以不用從新設一個分區,直接根下建立一個目錄就能夠了。

四、而後編譯安裝php


首先把剛纔編譯php的刪掉,從新解壓進行編譯

spacer.gif

./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

爲了跟上面的編譯不衝突,把目錄修改成php5

編譯完成後,要有下面的這些,

spacer.gif

而後就能夠makemake  install

spacer.gif

安裝完成

然互把httpd服務停掉,而後進入/etc/httpd24/目錄下把httpd.conf配置文件移動重命名爲httpd.conf.mod_php,而後把剛纔的備份文件複製一份命名爲httpd.conf

spacer.gif

要想讓phpfpm的形式工做,首先進行配置

建立/etc/php5/etc/php5.d目錄(mkdir /etc/php5{,.d}

而後複製配置文件cp php.ini-production /etc/php5/php.ini

php-fpm提供SysV init腳本,並將其添加至服務列表:

# cp sapi/fpm/init.d.php-fpm  /etc/rc.d/init.d/php-fpm

# chmod +x /etc/rc.d/init.d/php-fpm

# chkconfig --add php-fpm

# chkconfig php-fpm on

spacer.gif

php-fpm提供配置文件:

# cp /usr/local/php5/etc/php-fpm.conf.default/usr/local/php5/etc/php-fpm.conf

spacer.gif

編輯php-fpm的配置文件:

# vim /usr/local/php5/etc/php-fpm.conf

配置fpm的相關選項爲你所須要的值,並啓用pid文件(以下最後一行):

pm.max_children = 50

pm.start_servers = 5

pm.min_spare_servers = 2

pm.max_spare_servers = 5

pid = /usr/local/php5/var/run/php-fpm.pid

spacer.gif

這是爲了讓遠程主機訪問的

 

spacer.gif

而後查找pid關鍵字,加入pid = /usr/local/php5/var/run/php-fpm.pid

spacer.gif

接下來就能夠啓動php-fpm了:

# service php-fpm start

使用以下命令來驗正(若是此命令輸出有中幾個php-fpm進程就說明啓動成功了):

# ps aux | grep php-fpm

spacer.gif

 

而後要配置httpd的相關內容

1、啓用httpd的相關模塊

 

Apache httpd 2.4之後已經專門有一個模塊針對FastCGI的實現,此模塊爲mod_proxy_fcgi.so,它實際上是做爲mod_proxy.so模塊的擴充,所以,這兩個模塊都要加載

LoadModule proxy_modulemodules/mod_proxy.so

LoadModule proxy_fcgi_modulemodules/mod_proxy_fcgi.so

vim /etc/httpd24/httpd.conf

spacer.gif

編輯apache配置文件httpd.conf,讓apache能識別php格式的頁面,並支持php格式的主頁

 #vim /etc/httpd24/httpd.conf  

 添加以下二行

  AddType application/x-httpd-php .php

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

spacer.gif

 定位至DirectoryIndex  index.html

   修改成:

   DirectoryIndex  index.php  index.html

spacer.gif

這裏先以中心主機進行測試,直接在配置文件中加入下面兩行

ProxyRequestsOff

       ProxyPassMatch ^/(.*\.php)$fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1 這個路徑是資源目錄的路徑

spacer.gif

而後先檢查語法錯誤,重啓服務進行驗證

spacer.gif

spacer.gif

這就能夠訪問了,並且是咱們安裝的fpm格式php

 

 

下面作兩個虛擬主機,在fpm模式下 提供兩個虛擬主機:

         www.web1.com:phpMyAdmin, 同時提供ssl

         www.web2.com:wordpress;



首先修改/etc/httpd24/httpd.conf下的配置文件,而後把中心主機禁掉,而後建立兩個虛擬主機

DocumentRoot"/usr/local/apache/htdocs"這一行註釋掉,緊挨着的下面一行要改成

<Directory "/web/vhosts">

主配置文件中還要加入幾個模塊

LoadModule socache_shmcb_modulemodules/mod_socache_shmcb.so

LoadModule ssl_module modules/mod_ssl.so

spacer.gif

下面這兩行也要打開

wKiom1YJSdXwYy2mAAI-ADKCR_k682.jpg

而後添加虛擬主機,在/etc/httpd24/extra/httpd -vhosts.conf這個配置文件中修改

spacer.gif

 

而後修改兩個軟件的配置文件(不會能夠查看本人lamp的博客)

而後修改數據庫

spacer.gif

 

測試,首先修改物理機的hosts文件

spacer.gif

spacer.gif

均可以正常訪問了


而後爲虛擬主機www.web1.comssl


首先建立CA和本身給本身發證書,在172.16.249.195上建立一個CA,這個CA是之前實驗建立過的,如今不演示了

首先找到CA目錄,而後生成私鑰(umask077 openssl genrsa –out private/cakey.pem 2048 ),而後建立本身的簽名 opensslreq -new-x509 -key private/cakey.pem -out cacert.pem -days 7300

spacer.gif

這樣本身的證書建立好了

而後在172.16.249.114上建立證書,而後去找CA簽證;首先建立csr文件,而後發給CACA簽名後,在送還給172.16.249.114

首先在/web/vhosts中建立一個ssl目錄,而後生成私鑰,建立證書,而後發給CA簽證

spacer.gif

而後把證書發給CA,讓CA簽證,

spacer.gifwKioL1YJTRayuINXAAMT8fxKoRU742.jpgCA把證書發給172.16.249.114

spacer.gif

要在/etc/httpd24/httpd.conf下搜索關鍵字LoadModule,把下面幾行的註釋去掉

LoadModule include_module modules/mod_include.so

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

LoadModule ssl_module modules/mod_ssl.so


而後在172.16.249.114中配置/etc/httpd24/extra/httpd-ssl.conf文件

配置虛擬主機,指定證書和私鑰的路徑,

wKiom1YJU36ApIanAAR5HuXuEwQ810.jpg

重啓服務,而後把CA的證書加入瀏覽器中受信任的證書裏進行訪問,

spacer.gif

這樣ssl就作好了

相關文章
相關標籤/搜索