漫漫運維路——編譯安裝實現LAMP

LAMPLinux+Apache+MySQL|MariaDB+PHP組合實現動態php站點搭建的實現方式,在實現apache作爲WEB服務器的情況下,Apache本身只負責處理靜態頁面相關的內容,如一段文字、一張圖片、一張表格等靜態內容,如果想要實現提供動態頁面的功能,那麼就得結合PHP或者python等程序的解釋器才行。

一次客戶端和服務器的交互去掉其建立通信的過程可大致要經過如下步驟,首先服務器端接收到客戶端發送來的請求,然後分析其中所包含的內容,如有多少動態頁面,有多少靜態頁面,然後把靜態頁面發送給後端的解釋器,或者調用相關的解釋模塊來執行動態內容。由於解釋器負責解釋的動態內容是一個程序,而程序的執行往往就需要輸入和輸出,輸入則需要數據,所以當解釋器需要數據時又向數據庫提出請求,從數據庫中提取數據,然後解釋器完成程序的執行反饋給apache服務器,最後由apache把執行的結果發送給客戶端,從而完成一次響應過程。

搭建LAMP平臺,可以以多種方式,可以把PHP編譯爲Apache的模塊,也可以以fpm的機制,讓PHP工作爲一個獨立的守護進程,在此將分別以這兩種方式進行演示。

Modules方式實現

準備環境:

主機

IP

所安裝平臺

A

192.168.2.115

Apache+php

B

192.168.2.116

MySQL

實驗步驟:

配置主機A

一、環境準備

首先在主機A上進行如下配置

確保網絡通暢且YUM倉庫配置正確後,安裝編譯環境

[root@bogon apr-1.5.0]# yum groupinstall "Development Tools" "Server Platform"


二、安裝Apache

下載如下源碼包:apr-1.5.0.tar.bz2  apr-util-1.5.3.tar.bz2  httpd-2.2.29.tar.gz

1、首先安裝apr

解壓apr-1.5.0.tar.bz2後切換至目錄,依次執行以下步驟

[root@bogon apr-1.5.0]# ./configure --prefix=/usr/local/apr
[root@bogon apr-1.5.0]# make &&make install


2、安裝apr-util

解壓後切換至apr-util目錄

[root@bogon apr-util-1.5.3]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@bogon apr-util-1.5.3]# make && make install


3、安裝httpd

[root@bogon httpd-2.2.29]# ./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 --with-apxs2=/usr/local/apache/bin/apxs
[root@bogon httpd-2.2.29]# make && make install


4、爲http服務指定進程文件,併爲其提供服務腳本

1)指定進程文件則在配置文件路徑下編輯配置文件(當前環境的配置文件路徑爲/etc/httpd24/httpd.conf)添加如下一行

PidFile  "/var/run/httpd.pid"

2)爲httpd服務提供服務腳本

新建文件/etc/rc.d/init.d/httpd,其內容如下

#!/bin/bash
#
# httpd Startup script for the Apache HTTP Server
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server.  It is used to serve \
#        HTML files and CGI.
# processname: httpd
# config: /etc/httpd/conf/httpd.conf
# config: /etc/sysconfig/httpd
# pidfile: /var/run/httpd.pid
 
# Source function library.
. /etc/rc.d/init.d/functions
 
if [ -f /etc/sysconfig/httpd ]; then
        . /etc/sysconfig/httpd
fi
 
# Start httpd in the C locale by default.
HTTPD_LANG=${HTTPD_LANG-"C"}
 
# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=""
 
# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
# with the thread-based "worker" MPM; BE WARNED that some modules may not
# work correctly with a thread-based MPM; notably PHP will refuse to start.
 
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL=0
 
start() {
        echo -n $"Starting $prog: "
        LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch ${lockfile}
        return $RETVAL
}
 
stop() {
  echo -n $"Stopping $prog: "
  killproc -p ${pidfile} -d 10 $httpd
  RETVAL=$?
  echo
  [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}
reload() {
    echo -n $"Reloading $prog: "
    if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
        RETVAL=$?
        echo $"not reloading due to configuration syntax error"
        failure $"not reloading $httpd due to configuration syntax error"
    else
        killproc -p ${pidfile} $httpd -HUP
        RETVAL=$?
    fi
    echo
}
 
# See how we were called.
case "$1" in
  start)
  start
  ;;
  stop)
  stop
  ;;
  status)
        status -p ${pidfile} $httpd
  RETVAL=$?
  ;;
  restart)
  stop
  start
  ;;
  condrestart)
  if [ -f ${pidfile} ] ; then
    stop
    start
  fi
  ;;
  reload)
        reload
  ;;
  graceful|help|configtest|fullstatus)
  $apachectl $@
  RETVAL=$?
  ;;
  *)
  echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
  exit 1
esac
 
exit $RETVAL


3)把apache的安裝路徑加入到PATH環境變量中,方便查找

/etc/profile.d目錄下新建http.sh文件,並提供以下內容,然後重讀配置文件

export  PATH=/usr/local/php/bin:/usr/local/apache/bin:$PATH


修改上一步httpd24文件權限,

[root@bogon httpd-2.2.29]# chmod +x /etc/rc.d/init.d/httpd24


(4)重啓服務器測試

wKioL1VOw9mQugygAADInKMH0Zc534.jpg

三、安裝php

1.解壓php包後切換目錄至php目錄

[root@bogon php-5.4.40]# ./configure --prefix=/usr/local/php --with-openssl --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 --with-config-file-path=/usr/local/php/

[root@bogon php-5.6.8]# make && make install

2、調整apache參數,

1)在配置文件裏(/etc/httpd24/httpd.conf)加入以下參數

wKioL1VOxBihxPe9AAFuef2Luvc113.jpg

2)定位至DirectoryIndex並添加如下項

wKiom1VOwrehRRzHAACA53wfFhc086.jpg

 

3)爲php提供配置文件

[root@bogon php-5.6.8]# cp php.ini-production /etc/php/php.ini#
:
/etc/php
目錄需要事先創建


4)提供測試頁面

切換目錄至:/usr/local/apache/htdocs目錄。新建文件,其內容如下所示:

wKiom1VOwxyBKD97AAT3NXoCko0652.jpg 

(5)重啓服務,測試

 

wKioL1VOxMODskvyAADeYmalLD4416.jpg

 

配置主機B

安裝MairaDB,在此使用通用二進制格式安裝

1.下載解壓MairaDB

  解壓後的目錄下文件詳解:

bin:二進制文件存放位置    

COPYING.LESSER  

EXCEPTIONS-CLIENT  

INSTALL-BINARY  

man:幫助文件         

README:安裝指南   

share:共享文件路徑      

support-files:提供支持功能的文件

COPYING  

data:默認數據存放位置            

include:頭文件            

lib:庫文件存放位置             

mysql-test:測試組件  

scripts:補充性樣例性腳本

sql-bench:壓力測試所用

2.MairaDB提供數據存放文件,運行所用用戶和組,並修改相關權限

[root@localhost mariadb-5.5.40-linux-x86_64]# useradd -r -g 300 mysql
[root@localhost mariadb-5.5.40-linux-x86_64]# mkdir /data/mydata -pv
[root@localhost mariadb-5.5.40-linux-x86_64]# chown -R mysql:mysql /data/mydata/


3.MariaDB提供配置文件:查找順序:/etc/my.cnf-->/etc/mysql/my.cnf-->~/.my.cnf

support-files目錄下提供了相關配置文件樣例

my-huge.cnf:內存較大文件所用

[root@localhost mariadb-5.5.40-linux-x86_64]# mkdir /etc/mysql
[root@localhost mariadb-5.5.40-linux-x86_64]# cp my-large.cnf /etc/mysql/my.cnf


修改配置文件/etc/mysql/my.cnf

[mysqld]段下添加如下內容

datadir = /data/mydata/

innodb_file_per_table = on

4.初始化mysql

在解壓目錄下的scripts目錄下有個初始化腳本mysql_install_db

[root@localhost mariadb-5.5.40-linux-x86_64]# ./scripts/mysql_install_db --datadir=/data/mydata/ --user=mysql --skip-name-resolve


5.MariaDB提供服務文件,並修改環境變量PATH

[root@localhost mariadb-5.5.40-linux-x86_64]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@localhost mariadb-5.5.40-linux-x86_64]# chmod +x /etc/rc.d/init.d/mysqld


/etc/profile.d/目錄下新建文件mysql.sh

添加如下內容

export /usr/local/mysql/bin:$PATH

[root@localhost mariadb-5.5.40-linux-x86_64]#  . /etc/profile.d/mysql.sh 
:重讀配置文件


複製源碼包到/usr/local/並更名爲mysql

[root@localhost tmp]# cp mariadb-5.5.40-linux-x86_64 /usr/local/mysql -r


6、重啓服務並測試



wKioL1VOxSCwCxbEAAEsIxovIrM067.jpg

 

7、新建數據庫discuz,並授權主機A可以使用test用戶,helloword密碼來鏈接

1)新建數據庫

mysql> CREATE DATABASE discuz;


(2)授權


 wKioL1VOxZaQc4klAAEsIxovIrM374.jpg

(3)關閉防火牆,在主機A上測試

wKiom1VOw8TADQ-zAAI-Va3_nMA542.jpg 

(4).新建mysql測試頁面。在/usr/local/apache/htdocs目錄下新建mysql.php,其內容如下

wKiom1VOw-vSoULyAADuPq5n23Y811.jpg

 

重啓服務器測試則無法顯示頁面有如下提示:


wKioL1VOxi6T50FnAAEdFbJF7Pk299.jpg

 

導致此原因是因爲沒有安裝相關的mysql擴展,接下來就將演示安裝mysql擴展過程。

2.添加mysql擴展

安裝mysql客戶端,在此直接用yum安裝即可,

[root@bogon php-5.4.40]# yum install mysql mysql-devel -y


切換目錄至php源碼釋放目錄下的ext目錄下的mysql目錄,

[root@bogon php-5.4.40]# cd /tmp/by/php-5.4.40/ext/mysql


執行命令

[root@bogon mysql]# /usr/local/php/bin/phpize 
,出現如下提示信息


wKioL1VOxqDjY9KUAAETeiUtOLA948.jpg

 

進行mysql擴展編譯

[root@bogon mysql]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysql
[root@bogon mysql]# make && make install


切換到目錄/usr/local/php/lib/php/extensions/no-debug-zts-20100525下用ls查看,如果出現mysql.so文件,則編譯成功

wKioL1VOxr_z69pRAACvdrDTvEI004.jpg

 

修改php配置文件,增加如下一行

wKiom1VOxV_x-G-GAAISo3RFDkQ091.jpg

 

重啓httpd測試

wKioL1VOxvLhFeR0AAI-GoFsTQE457.jpg

 

然後關閉主機B上的MySQL服務測試

wKiom1VOxdnBvHIuAAHyeNu3fqk502.jpg

 

此時平臺搭建成功

四、安裝ucenterdiscuz

1.下載 UCenter_1.5.2_SC_GBK.zipDiscuz_X2_SC_GBK.zip。解壓

[root@localhost htdocs]# unzip -d /discuz Discuz_X2_SC_GBK.zip 
[root@localhost htdocs]# unzip -d /ucenter UCenter_1.5.2_SC_GBK.zip 
[root@localhost htdocs]# mkdir ucenter bbs


2.移動文件到相關目錄

[root@localhost htdocs]# mv /discuz/upload/ ./bbs/
[root@localhost htdocs]# mv /ucenter/upload/ ./ucenter/


3.更改相關文件的權限

[root@localhost htdocs]# cd ucenter/
[root@localhost ucenter]# chown -R daemon ./data/
[root@localhost ucenter]# cd ../bbs/
[root@localhost bbs]# chown -R daemon *


4.修改php配置文件,在第一個short_open_tag的值改爲On,表示啓用短標籤功能

[root@localhost htdocs]# vim /usr/local/php/php.ini


wKiom1VOxh7xCRn4AAOO0KJFmnY040.jpg

 

5.重啓apache服務器安裝測試

[root@localhost bbs]# service httpd24 restart


在物理機的瀏覽器中輸入以下地址http://192.168.2.115/ucenter/install/index.php若出現以下界面。則成功


wKioL1VOx8WRgb1BAAHwT9YbngI942.jpg

 

 

根據提示安裝

wKiom1VOxmbw9s3iAAIeP1AO6hk838.jpg

 

安裝

wKioL1VOx_ug1oUEAAICW45xf18736.jpg

 

進入後臺界面

wKiom1VOxp6CObEXAAEO-HXcsaA947.jpg

 

後臺

 

wKiom1VOxtOzDyrCAANy5kLzxKc142.jpg


Ucenter至此安裝成功下面安裝discuz

6.安裝discuz

在瀏覽器輸入urlhttp://192.168.2.115/bbs/install

 

wKioL1VOyIejVydkAAPMGc48VBI602.jpg


 

根據提示安裝即可

wKiom1VOxyaTRok8AANSBIF7c2Q918.jpg

 

安裝後測試

wKioL1VOyLmzmaZ-AAMI8zlSqak480.jpg

 

至此discuz論壇基於LAMP安裝成功


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章