LAMP平臺搭建詳解

  1. 準備工做
    1. 安裝編譯工具

      # yum -y install gcc php

      # yum -y install gcc-c++ html

    2. 若是系統以前已經安裝有rpm包的mysql和apache,那麼能夠:

      #service httpd stop python

      #service mysqld stop mysql

肯定rpm包安裝的httpd和mysqld不能開機啓動 linux

#chkconfig –level 2345 mysqld/httpd stop c++

  1. 關閉SELINUX和防火牆,或者容許防火牆開放相關端口,apache 80端口,mysql 3306端口

    #vim /etc/selinux/config 正則表達式

    SELINUX=disabled #修改後從新啓動SELINUX 算法

    #iptables –F #清空防火牆規則 sql

    #iptables –X #刪除指定的可選的用戶定義的鏈 數據庫

    #iptables –Z #看到清除的鏈

  2. 關閉沒必要要自啓動,能夠優化系統

    #ntsysv

    如下列出服務可保持自啓動,未列出的服務均可以關閉:

    atd

    crond #atd、crond計劃任務

    irqbalance

    microcode_ctl #系統irp端口調用,系統任務

    network #網絡設置

    sendmail #郵件

    sshd #遠程管理

    syslog #系統日誌

  3. 拷貝源碼包,解包解壓縮

    能夠將lamp環境源碼包統一存放在一個目錄下,如/lamp

    編寫一次性解壓縮腳本:

    #vim tsr.sh

    #!/bin/bash

    cd /lamp

    /bin/ls *.tar.gz > ls.list

    /bin/ls *.tgz >> ls.list

    For TAR in $(cat ls.list)

    do

    /bin/tar –zxf $TAR 或者這樣寫$(which tar) xf $TAR

    done

    /bin/rm ls.list

    注意:此腳本不通用,只針對後綴爲.tgz和.tar.gz的壓縮包,要想腳本通用,可加入條件判斷,而後作相應解壓操做

  4. 查看確認磁盤空間未滿

    #df –h

    若/分區已滿,能夠移動安裝包到其餘分區或者刪掉其餘無用文件

  5. 如何肯定報錯
    1. 安裝過程中止
    2. 中止後,界面中出現error或者warning

    如何肯定安裝成功

    1. 進入安裝目錄,確認安裝程序出現,就是成功
  1. 編譯安裝

    實驗環境:安裝系統爲RHEL6.5 x86_64,爲最小化安裝

    1. 安裝libxml2
      1. 簡介:

        libxml2 是一個xml c語言版的解析器,原本是爲Gnome項目開發的工具,是一個基於MIT License的免費開源軟件。它除了支持c語言版之外,還支持c++、PHP、Pascal、Ruby、Tcl等語言的綁定,能在Windows、Linux、Solaris、MacOSX等平臺上運行。功能仍是至關強大的,相信知足通常用戶需求沒有任何問題。

        libxml是一個用來解析XML文檔的函數庫。它用C語言寫成, 而且能爲多種語言所調用,例如C語言C++XSHC#PythonKylix/DelphiRuby,和PHP等。Perl中也可使用XML::LibXML模塊。它最初是爲GNOME開發的項目,但如今能夠用在各類各樣的方面。libXML 代碼可移植性很是好,由於它基於標準的ANSIC庫, 並採用MIT許可證。

      2. #yum - y install libxml2-devel python-devel
      3. # tar xf libxml2-2.9.1.tar.gz
      4. # cd libxml2-2.9.1
      5. # ./configure --prefix=/usr/local/libxml2
      6. # make
      7. # make install
    2. 安裝libmcrypt
      1. 簡介

        libmcrypt是加密算法擴展庫。支持DES, 3DES, RIJNDAEL, Twofish, IDEA, GOST, CAST-256, ARCFOUR, SERPENT, SAFER+等算法。

      2. # tar xf libmcrypt-2.5.8.tar.gz
      3. # cd libmcrypt-2.5.8
      4. # ./configure --prefix=/usr/local/libmcrypt/
      5. # make
      6. # make install
    3. 安裝libltdl,在libmcrypt源碼目錄中
      1. [root@myredhat libltdl]# cd libltdl/
      2. [root@myredhat libltdl]# ./configure --enable-ltdl-install
      3. [root@myredhat libltdl]# make && make install
    4. 安裝mhash
      1. 簡介

        mhash是基於離散數學原理的不可逆向的php加密方式擴展庫,其在默認狀況下不開啓。mhash的能夠用於建立校驗數值,消息摘要,消息認證碼,以及無需原文的關鍵信息保存(如密碼)等

      2. # tar xf mhash-0.9.9.9.tar.gz
      3. # cd mhash-0.9.9.9
      4. # ./configure
      5. # make
      6. # make install
    5. 安裝mcrypt
      1. 簡介

        mcrypt 是 php 裏面重要的加密支持擴展庫。mcrypt庫支持20多種加密算法和8種加密模式

      2. # tar xf mcrypt-2.6.8.tar.gz
      3. # cd mcrypt-2.6.8
      4. # LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/lib
      5. # export LD_LIBRARY_PATH=/usr/local/libmcrypt/lib/:/usr/local/lib

        ./configure --with-libmcrypt-prefix=/usr/local/libmcrypt/

        #上面爲一條命令。也能夠單獨執行,是能夠的

      6. # make
      7. # make install
    6. 安裝zlib
      1. 簡介

        zlib是提供數據壓縮用的函式庫,由Jean-loup Gailly與Mark Adler所開發,第一版0.9版在1995年5月1日發表。zlib使用DEFLATE算法,最初是爲libpng函式庫所寫的,後來廣泛爲許多軟件所使用。此函式庫爲自由軟件,使用zlib受權

      2. # tar xf zlib-1.2.3.tar.gz
      3. # cd zlib-1.2.3
      4. # ./configure
      5. # make
      6. # make install >> /root/zlib.log

        # zlib指定安裝目錄可能形成libpng安裝失敗,故不指定,爲卸載方便,建議make install執行結果輸出到安裝日誌文件,便於往後卸載

      7. [root@myredhat zlib-1.2.3]# vim Makefile

        #找到CF _AGS=-O3 –DUSE_MMAP,在後面加入 –fPIC 變成 CFLAGS=-O3 –DUSE_MMAP –fPIC

      8. [root@myredhat zlib-1.2.3]# make && make install
    7. 安裝libpng
      1. 簡介

        libpng 軟件包含 libpng 庫.這些庫被其餘程式用於解碼png圖片

      2. # tar xf libpng-1.2.31.gz

        #注意:不能夠用gzip -d libpng-1.2.31.gz,,雖然解壓成功,可是解壓後不是一個目錄,我試驗就是這樣

      3. # cd libpng-1.2.31
      4. # ./configure --prefix=/usr/local/libpng
      5. # make
      6. # make install
    8. 安裝jpeg6
      1. 簡介

        用於解碼.jpg和.jpeg圖片

      2. # unzip jpeg-6b.zip
      3. # mkdir /usr/local/jpeg6
      4. #mkdir /usr/local/jpeg6/bin
      5. #mkdir /usr/local/jpeg6/lib
      6. # mkdir /usr/local/jpeg6/include
      7. # mkdir /usr/local/jpeg6/man/man1 –pv

        #目錄必須手工創建,不然後面的操做沒法進行

      8. #cd jpeg-6b
      9. #chmod -R 777 *

        #解壓後的文件默認沒有執行權限,必須給予文件執行權限

      10. # cp /usr/share/libtool/config/config.sub .
      11. # cp /usr/share/libtool/config/config.guess .

        #把libtool裏面的兩個配置文件拿來覆蓋掉jpeg-6b目錄下的對應文件,不然安裝出錯

      # ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static

      # --enable-shared與--enable-static參數分別爲創建共享庫和靜態庫使用的libtool

      # make

      # make install

    9. 安裝freetype
      1. 簡介
      2. FreeType庫是一個徹底免費(開源)的、高質量的且可移植的字體引擎,它提供統一的接口來訪問多種字體格式文件,包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等。支持單色位圖反走樣位圖的渲染。FreeType庫是高度模塊化的程序庫,雖然它是使用ANSIC開發,可是採用面向對象的思想,所以,FreeType的用戶能夠靈活地對它進行裁剪。
      3. # tar xf freetype-2.3.5.tar
      4. # cd freetype-2.3.5
      5. # ./configure --prefix=/usr/local/freetype
      6. # make
      7. # make install

十、安裝GD庫

簡介

GD庫,是php處理圖形的擴展庫,GD庫提供了一系列用來處理圖片的API,使用GD庫能夠處理圖片,或者生成圖片。 在網站上GD庫一般用來生成縮略圖,或者用來對圖片加水印,或者用來生成漢字驗證碼,或者對網站數據生成報表等。

  1. # tar xf gd-2.0.35.tar
  2. # mkdir /usr/local/gd2 #必須手動建立目錄
  3. # cd gd-2.0.35
  4. #vim gd_png.c

    把 #include "png.h" 替換爲 #include "/usr/local/libpng/include/png.h"

⑤# ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6/ -with-freetype=/usr/local/freetype/ --with-png=/usr/local/libpng/

⑥# make

⑦# make install

十一、安裝apache

①APR(APACHE可移植運行庫)主要爲上層的應用程序提供一個能夠跨越多操做系統平臺使用的底層支持接口庫

# tar xf apr-1.4.6.tar.gz

# tar xf apr-util-1.4.1.tar.gz

#解壓apr和apr-util,複製並取消版本號

# tar xf httpd-2.4.7.tar.gz

# cp -r apr-1.4.6 httpd-2.4.7/srclib/apr

# cp -r apr-util-1.4.1 httpd-2.4.7/srclib/apr-util

# tar xf pcre-8.34.tar.gz

pcre基於perl的兼容的正則表達式的支持

# cd pcre-8.34

# ./configure && make && make install

# yum -y install openssl-devel #安裝ssl模塊

注意:這裏必須從新安裝zlib,不然下面安裝apache時,make會出錯。

#tar -zxvf zlib-1.2.3.tar.gz
#cd zlib-1.2.3
#./configure
#vim Makefile
找到 CFLAGS=-O3 -DUSE_MMAP
在後面加入-fPIC,即變成CFLAGS=-O3 -DUSE_MMAP -fPIC
#make && make install

  1. # cd httpd-2.4.7

    # ./configure --prefix=/usr/local/apache2 sysconfdir=/usr/local/apache2/etc/ --with-included-apr--enable-so --enable-deflate=shared --enable-expires=shared--enable-rewrite=shared

    # make

    # make install

    啓動測試

    # /usr/local/apache2/bin/apachectl start

    # netstat -tunlp | grep httpd

設置開機自啓動

# echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local

# curl http://192.168.131.134 #apache正常工做

<html><body><h1>It works!</h1></body></html>

* 若啓動時提示/usr/local/apache2/modules/mod_deflate.so無權限,可關閉SELinux或者執行命令chcon -t texrel_shlib_t /usr/local/apache2/modules/mod_deflate.so ,相似此類.so文件不能載入或沒有權限的問題,都是SELinux問題,使用命令:"chcon -t texrel_shlib_t 文件名"便可解決,MySQL和Apache也可能有相似問題。

只要關閉了SELINUX不會出現上述問題

十二、安裝MySQL

①安裝ncurses

ncurses 提供字符終端處理庫,包括面板和菜單。它提供了一套控制光標,創建窗口,改變前景背景顏色以及處理鼠標操做的函數。使用戶在字符終端下編寫應用程序時繞過了那些惱人的底層機制。簡而言之,他是一個可使應用程序直接控制終端屏幕顯示的函數庫。

# yum -y install ncurses-devel

也可使用源碼包安裝

cd /lamp/ncurses-5.9

#./configure --with-shared --without-debug --without-ada --enable-overwrite

#make

#make install

* 若不安裝ncurses編譯MySQL時會報錯

*--without-ada參數爲設定不編譯爲ada綁定,因進入chroot環境不能使用ada ;--enable-overwrite參數爲定義把頭文件安裝到/tools/include下而不是/tools/include/ncurses目錄

*--with-shared    生成共享庫

②安裝cmake和bison

mysql在5.5之後,再也不使用./configure工具,進行編譯安裝。而使用cmake工具替代了./configure工具。cmake的具體用法參考文檔cmake說明。

bison是一個自由軟件,用於自動生成語法分析器程序,可用於全部常見的操做系統

# yum -y install cmake bison

  1. 安裝MYSQL

# groupadd mysql

# useradd -s /sbin/nologin -g mysql mysql

*添加用戶組mysql ,將mysql用戶默認組設置爲mysql用戶組

#tar xf mysql-5.5.23.tar.gz

# cd mysql-5.5.23/

# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306

*-DCMAKE_INSTALL_PREFIX=/usr/local/mysql 安裝位置

     -DMYSQL_UNIX_ADDR=/tmp/mysql.sock指定socket(套接字)文件位置

     -DEXTRA_CHARSETS=all            擴展字符支持

     -DDEFAULT_CHARSET=utf8         默認字符集

     -DDEFAULT_COLLATION=utf8_general_ci     默認字符校對

     -DWITH_MYISAM_STORAGE_ENGINE=1     安裝myisam存儲引擎

     -DWITH_INNOBASE_STORAGE_ENGINE=1     安裝innodb存儲引擎

     -DWITH_MEMORY_STORAGE_ENGINE=1         安裝memory存儲引擎

     -DWITH_READLINE=1             支持readline庫

-DENABLED_LOCAL_INFILE=1      啓用加載本地數據

     -DMYSQL_USER=mysql         指定mysql運行用戶

     -DMYSQL_TCP_PORT=3306     指定mysql端口

#make

#make install

若是報錯,使用make clean能夠清除緩存

#cd /usr/local/mysql

#chown –R root .

#chown –R mysql data

#cp support-files/my-medium.cnf /etc/my.cnf

#/usr/local/mysql/scripts/mysql_install_db --user=mysql

*初始化數據庫,出現兩個ok則初始化成功

# /usr/local/mysql/bin/mysqld_safe --user=mysql &

*將mysql放到後臺運行

開機後自啓動mysql

#echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &

" >> /etc/rc.d/rc.local

設定Mysql數據庫密碼

#/usr/local/mysql/bin/mysqladmin -uroot password 123456

*給mysql用戶root加密碼123456,密碼不能寫成"123456",若是有字符能夠寫成"wdd520"

1三、安裝php

編譯前確保系統安裝了,libtool和libtool-ltdl軟件包,沒有則安裝:

#yum -y install "libtool*"

#yum -y install "libtool-ltdl*"

  1. # vim /usr/local/gd2/include/gd_io.h

void (*data); #加入此句

  1. # tar xf php-5.4.25.tar.gz
  2. # vim php-5.4.25/ext/gd/libgd/gd_compat.c

  3. # cd php-5.4.25/
  4. #./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql/ --with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg6/ --with-freetype-dir=/usr/local/freetype/ --with-gd=/usr/local/gd2/ --with-mcrypt=/usr/local/libmcrypt/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets --with-pdo-mysql=/usr/local/mysql --without-pear

**注意**:若前面配置zlib時沒有指定安裝目錄,PHP配置時不要添加--with-zlib-dir=/usr/local/zlib/參數

選項:

     --with-config-file-path=/usr/local/php/etc/ 指定配置文件目錄

     --with-apxs2=/usr/local/apache2/bin/apxs    指定apache動態模塊位置

     --with-mysql=/usr/local/mysql/    指定mysql位置

     --with-libxml-dir=/usr/local/libxml2/    指定libxml位置

     --with-jpeg-dir=/usr/local/jpeg6/        指定jpeg位置

     --with-png-dir=/usr/local/libpng/        指定libpng位置

     --with-freetype-dir=/usr/local/freetype/    指定freetype位置

     --with-gd=/usr/local/gd2/        指定gd位置

     --with-mcrypt=/usr/local/libmcrypt/指定libmcrypt位置

     --with-mysqli=/usr/local/mysql/bin/mysql_config 指定mysqli位置

     --enable-soap            支持soap服務

     --enable-mbstring=all    支持多字節,字符串

     --enable-sockets     支持套接字

     --with-pdo-mysql=/usr/local/mysql    啓用mysql的pdo模塊支持

     --without-pear

#不安裝pear(安裝pear須要鏈接互聯網。    PEAR是PHP擴展與應用庫)

#如報錯找不到libltdl.so.3的文件

能夠執行 ln –s /usr/local/lib/libltd.so.3 /lib/

ln -s /usr/local/lib/libltdl.so.3 /usr/lib

 

  1. #make && make install
  2. #mkdir /usr/local/php/etc #必須手動建立這個目錄
  3. # cp php.ini-production /usr/local/php/etc/php.ini
  4. # vim /usr/local/apache2/etc/httpd.conf

    *注意大小寫

    * .phtml爲將.phps做爲PHP源文件進行語法高亮顯示

    # /usr/local/apache2/bin/apachectl stop

    # /usr/local/apache2/bin/apachectl start

    * Apache沒法啓動,提示cannot restore segment prot after reloc: Permission denied錯誤,爲SELinux問題,可關閉SELinux或者執行命令chcon -t texrel_shlib_t,可是關閉SELINUX就不會出現上述問題

⑩測試php是否安裝成功

#vim /usr/local/apache2/htdocs/test.php

<?php

Phpinfo();

?>

測試php是否能夠和MySQL通訊

#vim /usr/local/apache2/htdocs/index.php

<?php

$link=mysql_connect('localhost','root','123456');

if ($link) echo "connect success"

mysql_close();

?>

1四、安裝phpMyAdmin

#tar xf phpMyAdmin-4.1.4-all-languages.tar.gz

# cp -r phpMyAdmin-4.1.4-all-languages /usr/local/apache2/htdocs/phpmyadmin

# cd /usr/local/apache2/htdocs/phpmyadmin/

# cp config.sample.inc.php config.inc.php

# vim config.inc.php

* 設置auth_type爲http ,即設置爲HTTP身份認證模式

1五、安裝Discuz

  1. # unzip Discuz_X3.1_SC_UTF8.zip
  2. # cp -r upload/ /usr/local/apache2/htdocs/discuz
  3. # ps -ef | grep httpd | grep -v grep

    *查看apache的進程名爲daemon

  4. # cd /usr/local/apache2/htdocs/discuz/
  5. # chown -R daemon config/ data/ uc_client/data/cache/ uc_server/data/ template/
  6. # /usr/local/mysql/bin/mysql -uroot –pwdd123456

    mysql> create database discuz;

    mysql> grant all on discuz.* to wdd@localhost identified by "123456";

  7. 瀏覽器輸入http://192.168.131.134/discuz/install/index.php,進入安裝界面,點擊"我贊成",進入配置界面,確保全部狀態爲,點擊"下一步",選擇" 全新安裝 Discuz! X ( UCenter Server) "後點擊"下一步",進入安裝數據庫界面,填寫好相關信息,以下所示:

    最後點擊"下一步"安裝成功,點擊"您的論壇已完成安裝,點此訪問"進入網站主頁面便可。

相關文章
相關標籤/搜索