LApacheMP基礎環境搭建

1、安裝前準備

1.下載所需軟件包:
apr             | http://apache.etoak.com/apr/
apr-util        | http://apache.etoak.com/apr/ 
autoconf        | http://ftp.gnu.org/gnu/autoconf/
curl            | http://curl.haxx.se/download/
freetype        | http://download.savannah.gnu.org/releases/freetype/
httpd           | http://httpd.apache.org/download.cgi
jpegsrc         | http://www.ijg.org/files/
libgd           | http://www.libgd.org
libmcrypt       | http://sourceforge.net/projects/mcrypt/files/Libmcrypt/ 
libpng          | ftp://ftp.simplesystems.org/pub/libpng/png/src/
libxml          | ftp://xmlsoft.org/libxml2/  
mysql           | ftp://mirror.switch.ch/mirror/mysql/Downloads/
pcre            | http://pcre.org/ 
php             | http://www.php.net/downloads.php 
zlib            | http://www.zlib.net


2.暫關閉SELinux和防火牆(Netfilter/iptables)
  A.暫關閉SELinux
    # vi /etc/selinux/config 或vi其軟連接文件(# vi /etc/sysconfig/selinux)
      在約第6行,設置爲禁用,即:SELINUX=disabled
      修改後重啓linux方可生效!

  B.暫關閉防火牆(Netfilter/iptables),有些Linux系統防火牆對80端口可能默認禁止訪問,參考命令:    
    查看一下開啓狀況:
    # chkconfig --list iptables

    將啓動級別235關閉防火牆的啓動
    # chkconfig --levels 235 iptables off
    
    或執行取消防火牆
    # iptables -F


3.【可選】若是沒法使用網絡yum源,也可嘗試使用本地光盤做爲yum源,方法: 
   A.進入 /etc/yum.repos.d/ 目錄,此目錄內存放有兩個重要文件: CentOS-Base.repo 和 CentOS-Media.repo
     這個CentOS-Base.repo是配置網絡yum源文件,也是yum命令優先查找的文件,將此文件改名讓yum命令找不到此配置文件,而放棄使用網絡yum源:
     # cd /etc/yum.repos.d/
     # mv CentOS-Base.repo BAK.CentOS-Base.repo
  
   B.vi編輯修改CentOS-Media.repo配置文件,此文件是能指引yum命令在本地尋找yum源的配置文件:
     # vi CentOS-Media.repo
       參考約第18行,爲baseurl再添加一行備選項:file:///mnt/cdrom/
       在約第20行,設置使rpm驗證不生效,更改成:gpgcheck=0
       在約第21行,設置本地yum源爲啓動,更改成:enabled=1
     
     # yum clean all                    清除原有的yum信息
     # pkill -9 yum-updatesd            若是yum報錯正在升級,執行此命令,強制殺死升級進程
     # /etc/init.d/yum-updatesd restart 若是須要重啓yum服務

   C.掛載光盤:# mount /dev/cdrom /media/

   D.卸載光盤:# umount /media/

   小結: 這樣光盤既能夠掛載到/media/下,也能夠掛載到/mnt/cdrom/下;
         若是之後再想使用網絡yum源,只需再將 BAK.CentOS-Base.repo 的名字改回來便可;


4.分別爲 apache / mysql 建立執行用戶組和用戶
  A.建立 apache 組,添加 apache 用戶並指定其缺省所屬 apache 組  
    # groupadd apache                                建立組
    # useradd -M -g apache -s /sbin/nologin apache   添加用戶(不建立家目錄、指定所屬組、非登陸用戶)
    # cat /etc/passwd | grep apache                  查看添加狀況-用戶
    # cat /etc/group | grep apache                   查看添加狀況-組

  B.建立mysql組,添加mysql用戶並指定其缺省所屬mysql組  
    # groupadd mysql                                 建立組
    # useradd -M -g mysql -s /sbin/nologin mysql     添加用戶(不建立家目錄、指定所屬組、非登陸用戶)
    # cat /etc/passwd | grep mysql                   查看添加狀況-用戶
    # cat /etc/group | grep mysql                    查看添加狀況-組



2、檢查安裝環境,安裝必要編譯工具

1.查看或卸載已安裝的二進制包apache和mysql(若是是源碼包安裝的直接刪除安裝目錄便可)
  A.查看apache和mysql是否已安裝,如下命令都可:
    # rpm -qa | grep httpd
    # rpm -qa | grep mysql
    # httpd -v
    # mysql -V
  B.卸載二進制包安裝的apache和mysql,若報有依賴關係提示可加--nodeps選項:
    # rpm -e --nodeps httpd
    # rpm -e --nodeps mysql
    # yum remove httpd
    # yum remove mysql


2.安裝或升級必需的編譯工具 gcc  gcc-c++  libstdc++-devel 至少v4.4或更高版本:      
  # rpm -qa | grep "gcc*"
  # rpm -qa | grep make
  # rpm -qa | grep "libstdc++*"

  若是沒有安裝,推薦yum安裝(確保gcc gcc-c++安裝v4.4版本以上),參考命令:
  # yum install -y gcc gcc-c++
  # yum install -y make
  # yum install -y gcc44 gcc44-c++    //注:若是gcc gcc-c++安裝v4.4版本以上此步可跳過
  # yum install -y libstdc++44-devel  //注:若是libstdc++-devel安裝v4.4版本以上此步可跳過


3.檢查編譯libgd庫須要的軟件包: libXpm 和 libXpm-devel
  Xpm是linux下經常使用的圖像處理軟件,能夠程序具備讀取xpm格式圖像的功能。
  檢查是否已安裝,如沒有安裝,推薦yum安裝:
  # rpm -qa | grep "libXpm*"
  # rpm -qa | grep libXpm-devel
  -------------------------------
  # yum install -y libXpm libXpm-devel


4.檢查編譯 libevent
  libevent是一個事件觸發的網絡庫,適用於windows、linux、bsd等多種平臺,內部使用select、epoll、kqueue等系統調用管理事件機制。
  檢查是否已安裝,如沒有安裝,推薦yum安裝:
  # rpm -qa | grep libevent
  -------------------------------
  # yum install -y libevent


5.檢查編譯apache/nginx所需軟件包: openssl 和 openssl-devel
  OpenSSL 是一個支持加密術的工具包。openssl-devel軟件包包括開發支持多種加密算式和協議的程序所需的靜態庫和包含文件。
  檢查是否已安裝,如沒有安裝,推薦yum安裝:
  # rpm -qa | grep "openssl*"
  # rpm -qa | grep openssl-devel
  -------------------------------
  # yum install -y openssl openssl-devel


6.檢查編譯MySQL所需軟件包:
  A.檢查 ncurses 和 ncurses-devel 否已安裝,如沒有安裝可以使用yum安裝:
    Ncurses 提供字符終端處理庫,包括面板和菜單。
    # rpm -qa | grep "ncurses*"
    # rpm -qa | grep ncurses-devel
    -------------------------------
    # yum install -y ncurses
    # yum install -y ncurses-devel

  B.檢查 cmake 和 bison 否已安裝,如沒有安裝可以使用yum安裝:
    CMake 是一個跨平臺的自動化建構系統,它使用一個名爲 CMakeLists.txt 的文件來描述構建過程,能夠產生標準的構建文件,如 Unix 的 Makefile 或Windows Visual C++ 的 projects/workspaces 。
    GNU bison 是屬於 GNU 項目的一個語法分析器生成器。Bison 把一個關於「向前查看 從左到右 最右」(LALR) 上下文無關文法的描述轉化成能夠分析該文法的 C 或 C++ 程序。它也能夠爲二義文法生成 「通用的 從左到右 最右」 (GLR)語法分析器。
    # rpm -qa | grep cmake
    # rpm -qa | grep bison
    -------------------------------
    # yum install -y cmake
    # yum install -y bison


7.檢查編譯PHP須要的軟件包: libtool 和 libtool-ltdl 和 libtool-ltdl-devel
  GNU libtool 是一個通用庫支持腳本,將使用動態庫的複雜性隱藏在統1、可移植的接口中。用來生成動態庫和靜態庫,能夠直接用,也能夠和automake和autoconf一塊兒用,生成後綴是la的庫文件,被程序調用,生成Makefile不可少的工具
  檢查是否已安裝,如沒有安裝,推薦yum安裝:
  # rpm -qa | grep "libtool*"
  # rpm -qa | grep libtool-ltdl  
  -------------------------------
  # yum install -y libtool
  # yum install -y libtool-ltdl
  # yum install -y libtool-ltdl-devel

  ★ 至此安裝前的準備工做基本完成,建議重啓一下系統,再安裝!


3、開始安裝

1.安裝zlib -- 是apache/nginx和PHP編譯所必需
  zlib是提供數據壓縮用的函式庫,由Jean-loup Gailly與Mark Adler所開發,第一版0.9版在1995年5月1日發表。zlib使用DEFLATE算法,最初是爲libpng函式庫所寫的,後來廣泛爲許多軟件所使用。此函式庫爲自由軟件,使用zlib受權
  注:若不指定安裝路徑,之後能夠經過使用命令: # rpm -ql zlib 查看其安裝位置(一般是安裝在 /usr/lib/ 目錄內) 
  # tar -zxvf zlib-1.2.8.tar.gz && cd zlib-1.2.8
  # ./configure --prefix=/usr/local/zlib/
  # make
  # make install


2.安裝 pcre 軟件包 -- 是apache/nginx編譯所必需
  PCRE(Perl Compatible Regular Expressions中文含義:perl語言兼容正則表達式)是一個用C語言編寫的正則表達式函數庫,由菲利普.海澤(Philip Hazel)編寫。PCRE是一個輕量級的函數庫,比Boost之中的正則表達式庫小得多。PCRE十分易用,同時功能也很強大,性能超過了POSIX正則表達式庫和一些經典的正則表達式庫。
  # tar -zxvf pcre-8.32.tar.gz && cd pcre-8.32
  # ./configure --prefix=/usr/local/pcre/
  # make
  # make install


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

  A.檢查 libxml2-devel 軟件包是否已安裝: 
    查看命令: # rpm -qa | grep libxml2-devel
    安裝命令: # yum install -y libxml2-devel
    升級命令: # yum update libxml2-devel

  B.執行安裝 libxml
    # tar -zxvf libxml2-2.8.0.tar.gz && cd libxml2-2.8.0
    # ./configure --prefix=/usr/local/libxml/
    # make 
    # make install


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

  A.先安裝libmcrypt包
    # tar -zxvf libmcrypt-2.5.8.tar.gz && cd libmcrypt-2.5.8
    # ./configure --prefix=/usr/local/libmcrypt/
    # make 
    # make install

  B.再進入libltdl目錄,安裝libltdl工具(也在libmcrypt源碼包目錄中,非新軟件)
    # cd libltdl
    # ./configure --enable-ltdl-install
    # make
    # make install


5.安裝libpng(若版本太高反而可能報錯)
  libpng 軟件包包含libpng庫,這些庫被其餘程式用於解碼png圖片。

  A.檢查編譯libpng編譯須要的工具: zlib-devel
    查看命令: # rpm -qa | grep zlib-devel
    安裝命令: # yum install -y zlib-devel
    升級命令: # yum update zlib-devel

  B.執行安裝libpng
    # tar -zxvf libpng-1.4.12.tar.gz && cd libpng-1.4.12
    # ./configure --prefix=/usr/local/libpng/
    # make
    # make install


6.安裝jpeg
  jpeg用於解碼.jpg和.jpeg圖片。這個程序安裝時並不會自動建立安裝目錄,須要人工事先幫其建立。
  注:--enable-shared 與 --enable-static參數分別表示爲創建共享庫和靜態庫使用的 libtool
  # tar -zxvf jpegsrc.v8d.tar.gz && cd jpeg-8d
  # ./configure --prefix=/usr/local/jpeg/ --enable-shared --enable-static
  # make
  # make install


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


8.安裝autoconf
  autoconf 是一個用於生成能夠自動地配置軟件源代碼包以適應多種Unix類系統的shell腳本的工具。此程序最好不指定安裝路徑,緣由是有些文件安裝可能會報告找不到autoconf路徑文件。
  # tar -zxvf autoconf-2.68.tar.gz && cd autoconf-2.68
  # ./configure
  # make
  # make install


9.安裝GD庫
  GD庫,是PHP處理圖形的擴展庫,GD庫提供了一系列用來處理圖片的API,使用GD庫能夠處理圖片,或者生成圖片。 在網站上GD庫一般用來生成縮略圖,或者用來對圖片加水印,或者用來生成漢字驗證碼,或者對網站數據生成報表等。
  # tar -zxvf libgd-2.1.0.tar.gz && cd libgd-2.1.0
  # ./configure --prefix=/usr/local/libgd/ --with-png=/usr/local/libpng/ --with-jpeg=/usr/local/jpeg/ --with-freetype=/usr/local/freetype/
  
     -------------------------------------------------------------------------------------------------------
      注:若是在後面的PHP安裝有報Xpm找不到錯誤,用命令查詢一下上面由yum安裝的 libXpm-devel 的位置,查詢命令:
      # rpm -ql libXpm-devel
      ......
      /usr/lib/libXpm.so    //32位系統
      /usr/lib64/libXpm.so  //64位系統
      ......
      一般是安裝在 /usr/lib/ 或 /usr/lib64/ 目錄內,從新安裝GD庫,並加上 --with-xpm=/usr/lib/ 或 --with-xpm=/usr/lib64/ 這個配置選項
     -------------------------------------------------------------------------------------------------------

  # make
  # make install


10.安裝curl
  curl是利用URL語法在命令行方式下工做的開源文件傳輸工具。它被普遍應用在Unix、多種Linux發行版中,而且有DOS和Win3二、Win64下的移植版本。
  # tar -zxvf curl-7.16.0.tar.gz && cd curl-7.16.0
  # ./configure --prefix=/usr/local/curl/
  # make
  # make install


11.安裝apr軟件包(apache2.4以上版本須要)
   APR(Apache portable Run-time libraries,Apache可移植運行庫)的目的如其名稱同樣,主要爲上層的應用程序提供一個能夠跨越多操做系統平臺使用的底層支持接口庫。
   先安裝apr
   # tar -zxvf apr-1.4.8.tar.gz && cd apr-1.4.8
   # ./configure --prefix=/usr/local/apr-httpd/
   # make
   # make install


12.安裝apr-util軟件包(apache2.4以上版本須要)
   APR(Apache portable Run-time libraries,Apache可移植運行庫)的目的如其名稱同樣,主要爲上層的應用程序提供一個能夠跨越多操做系統平臺使用的底層支持接口庫。
   # tar -zxvf apr-util-1.5.2.tar.gz && cd apr-util-1.5.2
   # ./configure --prefix=/usr/local/apr-util-httpd/ --with-apr=/usr/local/apr-httpd/
   # make
   # make install


13.安裝apache服務器
  A.執行安裝
    # tar -zxvf httpd-2.4.6.tar.gz && cd httpd-2.4.6
    # ./configure --prefix=/usr/local/apache/ --sysconfdir=/usr/local/apache/etc/ --with-z=/usr/local/zlib/ --with-pcre=/usr/local/pcre/ --with-apr=/usr/local/apr-httpd/ --with-apr-util=/usr/local/apr-util-httpd/ --enable-mods-shared=all --enable-deflate --enable-speling --enable-cache --enable-file-cache --enable-disk-cache --enable-mem-cache --enable-so --enable-expires=shared --enable-rewrite=shared --enable-static-support --disable-userdir
      
      選項解析:
        --prefix=/usr/local/apache/                 指定安裝目錄
        --sysconfdir=/usr/local/apache/etc/         指定配置文件httpd.conf存放目錄
        --with-z=/usr/local/zlib/                   指定去哪兒找zlib
        --with-pcre=/usr/local/pcre/                指定去哪兒找pcre
        --with-apr=/usr/local/apr-httpd/            指定去哪兒找apr(在編譯時強制使用當前源代碼中綁定的APR版本)
        --with-apr-util=/usr/local/apr-util-httpd/  指定去哪兒找apr-util
        --enable-mods-shared=all                    指定動態加載全部模塊(若是去掉-shared話,是靜態加載全部模塊)
        --enable-deflate                            支持網頁壓縮傳輸
        --enable-speling                            支持更正普通的URL拼寫錯誤
        --enable-cache                              支持緩存
        --enable-file-cache                         支持文件緩存
        --enable-disk-cache                         支持磁盤緩存
        --enable-mem-cache                          支持記憶緩存
        --enable-so                                 指定容許DSO(動態共享對像)
        --enable-expires=shared                     設置客戶端緩存過時時間
        --enable-rewrite=shared                     支持 URL 重寫
        --enable-static-support                     支持靜態鏈接
        --disable-userdir                           禁止映射用戶目錄

    # make
    # make install


  B.啓動apache測試:
    # /usr/local/apache/bin/apachectl start         啓動
    # netstat -tunpl | grep 80                      查看狀態
    # ps -le | grep httpd                           查看狀態
    # vi /usr/local/apache/htdocs/index.html        默認首頁 

    注1: 若是啓動時報警告:
         AH00557: httpd: apr_sockaddr_info_get() failed for ...(主機名)
         AH00558: httpd: Could not reliably determine the server fully qualified domain name, using 127.0.0.1 ......
         是由於 httpd.conf 配置文件中的 ServerName 項沒有配置爲你的主機名,這個沒有關係,暫時不用理會它,待稍後再一同配置。

    注2: 若是確認 httpd 已經啓動,但經過瀏覽器就是沒法訪問到首頁,確認服務器防火牆是否屏蔽了80端口訪問,解決辦法: # iptables -F 關閉防火牆

    注3: 若啓動時提示 /usr/local/apache/modules/mod_deflate.so 無權限,可關閉SELinux,或者執行命令:
         # chcon -t texrel_shlib_t /usr/local/apache/modules/mod_deflate.so    
         相似狀況 xxx.so 文件不能載入或沒有權限的問題,可能是SELinux問題,使用命令: 「chcon -t texrel_shlib_t {文件名}」便可解決,MySQL也可能有相似問題,解決方法類似。

    若是沒有報錯,經過瀏覽器輸入地址訪問:http://{你Linux的IP地址} 若是顯示 It works! 那麼恭喜你apache安裝成功!

  C.設置apache隨系統自啓動(用vi編輯 /etc/rc.d/rc.local 添加也可):
    # echo "# Apache隨系統自啓動:" >> /etc/rc.d/rc.local
    # echo "/usr/local/apache/bin/apachectl start" >> /etc/rc.d/rc.local


14.1安裝MySQL
    A.執行安裝(確認ncurses 和 ncurses-devel已安裝)
      # tar -zxvf mysql-5.5.34.tar.gz && cd mysql-5.5.34 【MySQL5.5.xx】
      # tar -zxvf mysql-5.6.15.tar.gz && cd mysql-5.6.15 【MySQL5.6.xx】
        ---------------------------------------------------------------------------------
       【如需安裝 SphinxSE 引擎插件,目前僅支持到MySQL5.5.xx (MySQL5.6.xx暫不支持)】
         解壓coreseek源碼包
         # tar -zxvf coreseek-4.1-beta.tar.gz

         拷貝mysqlse到MySQL源碼包相應目錄,並改名爲sphinx
         # cp -Rv /root/sphinx-coreseek/coreseek-4.1-beta/csft-4.1/mysqlse ./storage/sphinx
        ---------------------------------------------------------------------------------
      # cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DWITH_DEBUG=0 -DCMAKE_BUILD_TYPE=Release -DWITH_SPHINX_STORAGE_ENGINE=1

        選項解析:
        -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  指定安裝目錄
        -DSYSCONFDIR=/usr/local/mysql            指定配置文件my.cnf存放目錄
        -DMYSQL_DATADIR=/usr/local/mysql/data    指定用戶數據庫文件存放目錄
        -DMYSQL_UNIX_ADDR=/tmp/mysql.sock        支持使用unix套接字提升性能,指定sock文件存放路徑
        -DDEFAULT_CHARSET=utf8                   默認字符集
        -DDEFAULT_COLLATION=utf8_general_ci      默認校對字符集
        -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk    指定也支持擴展字符集:utf8和gbk
        -DWITH_INNOBASE_STORAGE_ENGINE=1         支持InnoDB引擎    
        -DWITH_READLINE=1                        readline庫
        -DENABLED_LOCAL_INFILE=1                 啓用加載本地數據
        -DMYSQL_USER=mysql                       mysqld運行用戶
        -DMYSQL_TCP_PORT=3306                    指定TCP/IP監聽端口
        -DWITH_DEBUG=0                           去除調試模式
        -DCMAKE_BUILD_TYPE=Release              【如需 SphinxSE 引擎插件】
        -DWITH_SPHINX_STORAGE_ENGINE=1          【如需 SphinxSE 引擎插件】

      # make
      # make install

    B.進入安裝目錄 ★
      # cd /usr/local/mysql/

    C.對mysql安裝目錄更改權限
      方法一:用acl來讓mysql用戶對/usr/local/mysql有全部權限
      # setfacl -m u:mysql:rwx -R /usr/local/mysql
      # setfacl -m d:u:mysql:rwx -R /usr/local/mysql

      方法二:   
      # chown -R mysql /usr/local/mysql   將數據庫文件目錄及其全部子文件,全部者改mysql用戶

    E.初始化數據庫(建立數據庫受權表)
      注意1:當啓動MySQL服務時,會按照必定次序搜索配置文件my.cnf,先找/etc/my.cnf,找不到則會繼續搜索當前安裝目錄"$basedir/my.cnf",這是新版MySQL5.6+之後版本的配置文件的默認位置!
      注意2:在CentOS 6.x版操做系統的最小安裝完成後,在/etc目錄下會確實存在一個my.cnf,須要將此文件改名爲其餘的名字或將其直接刪除掉,不然,該文件會干擾源碼安裝的MySQL的正確配置,形成沒法啓動,參考命令:    
      # mv /etc/my.cnf /etc/my.cnf.fuck

      執行初始化數據庫
      # ./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

      注1:在 MySQL5.6 之後版本,初始化完成後會自動在安裝根目錄生成配置文件 my.cnf    
  
      注2:在 MySQL5.5 版本及如下版本需手工拷貝my.cnf配置文件到指定目錄並改名,參考命令:
           # cp ./support-files/my-huge.cnf /usr/local/mysql/my.cnf


14.2啓動MySQL服務,並設置root密碼:
    # /usr/local/mysql/bin/mysqld_safe --user=mysql &           啓動mysql並放入後臺運行
    # netstat -tunpl | grep 3306                                查看啓動狀況
    # /usr/local/mysql/bin/mysqladmin -uroot password '123456'  設置mysql的root密碼
    # /usr/local/mysql/bin/mysqladmin version -uroot -p123456   查看mysql版本信息
    -----------------------------------------------------------------------------------------------
    # /usr/local/mysql/bin/mysql -uroot -p123456                              客戶端登陸
    mysql>\s;                                                                 查看字符集是否改成utf8   
    mysql> grant all privileges  on *.* to 'root'@'%' identified by '123456'; 受權開啓支持遠程鏈接
    mysql> select host,user,password from mysql.user;                         查詢用戶表
    mysql> flush privileges;                                                  刷新受權表使之當即生效
    -----------------------------------------------------------------------------------------------
    mysql> set password for 'root'@'localhost'=password('root123');           爲某個已存在的用戶設置密碼
    -----------------------------------------------------------------------------------------------
    mysql> install plugin sphinx soname 'ha_sphinx.so';                       安裝Sphinx引擎插件
    mysql> show engines;                                                      查看安裝結果(列出SPHINX表示安裝成功)    
    -----------------------------------------------------------------------------------------------
    # pkill mysqld                                                            中止mysqld服務


14.3設置MySQL隨系統自啓動
    方法一: chkconfig管理法
    # cp -v ./support-files/mysql.server /etc/rc.d/init.d/mysqld  將mysql源碼目錄support-files/mysql.server拷貝到系統啓動加載目錄並改名
    # chmod 0755 /etc/rc.d/init.d/mysqld                          權限改成只有全部者root有所有權限,所屬組、其它人有讀、執行權限
    # chkconfig --add mysqld                                      把此mysqld腳本加入chkconfig管理體系(前提是此腳本已在/etc/rc.d/init.d/目錄了)
    # chkconfig --list mysqld                                     查看mysqld腳本各系統運行級別的啓動狀態
    # chkconfig --levels 235 mysqld on                            再指定mysqld腳本在系統235級別自動啓動

    這樣之後就可使用:# service mysqld {start|stop|restart|reload|force-reload|status} 命令了...

    方法二: 編輯 /etc/rc.d/rc.local 自啓動腳本法
    # echo "# MySQL隨系統自啓動:" >> /etc/rc.d/rc.local
    # echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >> /etc/rc.d/rc.local


15.安裝PHP
  A.CentOS 6.x 以上版本在 ./configure 時 可能出錯: configure: error: Don’t know how to define struct flock on this system, set –enable-opcache=no
    解決方案,以下在系統的 /etc/ld.so.conf.d/ 目錄中建立一個 xxxxxx.conf 的文件,好比:local.conf,名稱能夠隨便取只要以.conf爲後綴便可。

    根據你操做系統不一樣,選擇向local.conf文件添加以下其中一行內容:
      /usr/local/lib       //for 32位系統
      /usr/local/lib64     //for 64位系統

    參考命令(根據你的操做系統選其一):
    # echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf    //for 32位系統
    # echo '/usr/local/lib64' > /etc/ld.so.conf.d/local.conf  //for 64位系統

    # ldconfig -v  //★ :wq保存退出後,再執行此命令使之當即生效

  B.執行安裝
    # tar -zxvf php-5.5.6.tar.gz && cd php-5.5.6
    # ./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-zlib-dir=/usr/local/zlib/ --with-libxml-dir=/usr/local/libxml/ --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql/ --with-mcrypt=/usr/local/libmcrypt/ --with-png-dir=/usr/local/libpng/ --with-jpeg-dir=/usr/local/jpeg/ --with-freetype-dir=/usr/local/freetype/ --with-gd=/usr/local/libgd/ --with-curl=/usr/local/curl/ --enable-soap --enable-mbstring=all --enable-sockets --enable-zip --enable-opcache --enable-gd-native-ttf --enable-maintainer-zts
     
      選項解析:
        --prefix=/usr/local/php/                        指定PHP安裝位置
        --with-config-file-path=/usr/local/php/etc/     指定php.ini配置文件目錄
        --with-zlib-dir=/usr/local/zlib/                指定去哪兒找zlib
        --with-libxml-dir=/usr/local/libxml/            指定去哪兒找libxml
        --with-apxs2=/usr/local/apache/bin/apxs         指定去哪兒找apache動態模塊源碼,即:
                                                        1.PHP安裝時會將libphp5.so文件安裝到apache目錄下的modules目錄中
                                                        2.並向配置文件httpd.conf中寫入「LoadModule php5_module modules/libphp5.so」配置項
        --with-mysql=/usr/local/mysql/                  指定去哪兒找mysql
        --with-mysqli=/usr/local/mysql/bin/mysql_config 指定去哪兒找mysqli
        --with-pdo-mysql=/usr/local/mysql/              指定去哪兒找pdo-mysql
        --with-mcrypt=/usr/local/libmcrypt/             指定去哪兒找libmcrypt
        --with-png-dir=/usr/local/libpng/               指定去哪兒找libpng
        --with-jpeg-dir=/usr/local/jpeg/                指定去哪兒找jpeg
        --with-freetype-dir=/usr/local/freetype/        指定去哪兒找freetype
        --with-gd=/usr/local/libgd/                     指定去哪兒找GD庫
        --with-curl=/usr/local/curl/                    指定去哪兒找curl      
        --enable-soap                                   支持soap
        --enable-mbstring=all                           支持多字節,字符串
        --enable-sockets                                支持套接字
        --enable-zip                                    打開對zip的支持
        --enable-opcache                                支持Zend OPcache緩存加速
        --enable-gd-native-ttf                          支持TrueType字符串函數庫
        --enable-maintainer-zts                         容許線程安全(使用多線程此項必選)

    # make
    # make install



4、配置篇

1.拷貝生成PHP配置文件php.ini,並簡單配置    
  將php源碼包中的 php.ini-development 拷貝到 /usr/local/php/etc/ 中,並改名爲php.ini
  # cp php.ini-development /usr/local/php/etc/BAK.php.ini
  # cp php.ini-development /usr/local/php/etc/php.ini

  vi編輯打開php.ini文件
  # vi /usr/local/php/etc/php.ini

  找到約第923行,設置時區爲中國時區:
  date.timezone = PRC


2.編輯Apache服務器的配置文件 httpd.conf
  A.配置httpd.conf文件
    # cp /usr/local/apache/etc/httpd.conf /usr/local/apache/etc/BAK.httpd.conf   備份
    # vi /usr/local/apache/etc/httpd.conf                                        編輯
    
    在約第176 177行,找到User和Group,這裏指定Apache以哪一個組、用戶身份運行,將其修改成:
    User apache  
    Group apache

    參考約第207行,指定服務器主機名ServerName(前文提到過),以下: 
    ServerName localhost:80

    在約第231行,找到默認站點根目錄(DocumentRoot "/usr/local/apache//htdocs"),改成本身的站點目錄:
    DocumentRoot "/wwwroot"

    在約第232行,找到默認站點根目錄訪問規則配置(<Directory "/usr/local/apache//htdocs">),改成本身的站點目錄:
    <Directory "/wwwroot">

    參考約第265行,添加apache默認索引文件名,以下:
    DirectoryIndex index.html index.htm index.php index.phtml

    參考約第393行,添加apache支持文件類型app,使其支持PHP,以下:
    AddType application/x-httpd-php .php .phtml .phps            # 注: .phtml爲將.phps作爲PHP源文件語法高亮顯示

  B.建立本身的站點目錄,並設置用戶apache對站點目錄的操做權限
    # mkdir /wwwroot
    # setfacl -m u:apache:rwx -R /wwwroot
    # setfacl -m d:u:apache:rwx -R /wwwroot

  C.重啓Apache服務器: # /usr/local/apache/bin/apachectl stop
                      # /usr/local/apache/bin/apachectl start

  D.在本身站點目錄下寫一個phpinfo.php文件測試效果: 
    # echo '<?php phpinfo();?>' > /wwwroot/phpinfo.php


3.編輯MySQL數據庫的配置文件 my.cnf
  # vi /usr/local/mysql/my.cnf

   [mysqld] 區塊修改(或末尾添加)

   # 開啓慢查詢日誌
   slow_query_log = 1

   # 設置慢查詢日誌文件路徑
   slow_query_log_file = /usr/local/mysql/data/slow_query_log_file.log

   # 設置慢查詢最小時間(單位:秒)
   long_query_time = 0.5

   # 開啓 bin-log 日誌(名稱爲mysql-bin.00000x)
   log_bin = mysql-bin

   # 忽略主機名的方式訪問
   skip_name_resolve = 1

   #【可選】設置默認表引擎類型
   default_storage_engine = MyISAM

   #【可選】設置innodb引擎使用獨立表空間(從v5.6版本起默認是開啓的)
   innodb_file_per_table = 1

   #【可選】設置字符集
   character_set_client=utf8        # 客戶端字符集
   character_set_connection=utf8    # 鏈接字符集
   character_set_database=utf8      # 數據庫存字符集
   character_set_server=utf8        # 服務器字符集

   注意:my.cnf是MySQL的全局配置文件,其實每一個數據庫還有本身的單獨配置文件db.opt(存於每一個數據庫目錄中),理論上說本數據庫的配置文件會繼承全局,但保不齊也會有本數據庫的配置文件與my.cnf衝突的時候,這時此數據庫會以本身這個db.opt配置選項優先(換句話說,數據庫的配置信息是能夠單獨指定的)。因此有時即使你不管怎樣修改my.cnf配置,當前數據庫都不會生效,若是要使當前數據庫生效就須要修改其目錄內的db.opt配置文件。好比,系統默認建立的test數據庫,數據庫存字符集可能就是latin1,要想改變此數據庫的字符集就須要修改其自身的專屬配置文件,以下:
   # vi /usr/local/mysql/data/test/db.opt
default-character-set=latin1
     default-collation=latin1_swedish_ci
     修改成:
     default-character-set=utf8
     default-collation=utf8_general_ci
相關文章
相關標籤/搜索