1. 程式人生 > >超詳細LAMP環境手動編譯安裝實例

超詳細LAMP環境手動編譯安裝實例

ring develop 最新版 $path 成功 prefix profile you 手動

LAMP編譯安裝實例:

HTTPD編譯安裝:

下載軟件包:

    # wget http://mirrors.hust.edu.cn/apache//apr/apr-1.6.3.tar.gz http://mirrors.hust.edu.cn/apache//apr/apr-util-1.5.1.tar.gz http://mirrors.shu.edu.cn/apache//httpd/httpd-2.4.29.tar.gz

需要依賴最新版apr和apr-util

apr:Apache Porttable Runtime:

可移植Apache運行環境,用於把C語言編寫的Apache程序運行在不同的操作系統上,即有Windows版本也有Linux版本

apr-util:apr工具

安裝開發環境,確保Development tools

    # yum grouplist //查看是否安裝
    # yum groupinstall "Development Tools"

安裝apr:

    # tar xf apr-1.6.3.tar.gz 
    # cd apr-1.6.3
    # ./configure --prefix=/usr/local/apr
    # make
    # make install

安裝apr-util:

    # tar xf apr-util-1.5.1.tar.gz//1.6的會報錯,用1.5.1的
    # cd apr-util-1.5.1
    # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr //需要指定剛才安裝的apr的路徑
    # make
    make[1]: *** [xml/apr_xml.lo] Error 1
    make[1]: Leaving directory `/lee/software/apr-util-1.5.1'
    make: *** [all-recursive] Error 1

若報以上錯誤安裝下面的devel包

    # yum install expat-devel
    # make&make install

安裝httpd:

# ./configure --hlep 查看常用選項:

--sysconfdir=DIR//指定配置文件路徑

--enable-so//支持動態共享模塊,必加項,用於以模塊的方式讓php與apache結合工作

--enable-proxy-fcgi//用於以fcgi(fastcgi)的方式讓php與apache結合工作

--enable-cgi //用於以cgi的方式讓php與apache結合工作

apache與php結合工作的幾種方式:

模塊:php以模塊的形式集成在httpd中,httpd和php一個進程

CGI:httpd用CGI和php交互,php獨立創建進程(好像是tcp9000),由httpd創建、管理php的進程

FCGI:php完全獨立了,自己單獨的服務器,自己預先創建進程,自己管理進程

--enable-ssl//支持ssl,用於需要啟用https的站點

--enable-deflate//支持壓縮,即壓縮後發送給客戶端瀏覽器,瀏覽器再解壓縮,節省流量

--enable-mpms-shared=MPM-LIST//定義要啟用的httpd支持的MPM模式(多道處理模塊)event|worker|prefork|winnt|all

--with-mpm=MPM //定義MPM後設定默認的MPM模式(MPM={event|worker|prefork|winnt}),2.4默認event

MPM的幾種模式:

event:一個進程(內部生成多個線程)來響應多個請求,進程通過事件驅動(輪詢和通知)的機制來確定內部線程的處理狀態

worker:一個進程生成多個子進程(線程)來響應多個請求

prefork:一個進程響應一個請求

--enable-cgid//CGI scripts. Enabled by default with threaded MPMs(線程方式event|worker的MPM模式時必須啟用)

--enable-rewrite//支持URL重寫,就是重定向啦

    # ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-rewirte --enable-ssl --enable-cgi --enable-cgid --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all --with-mpm=event --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util


報錯:configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org///缺少pcre-devel

    # yum -y install pcre-devel
    # make
    # make install

Apache編譯安裝默認的目錄:

bin:二進制文件(啟動腳本是此目錄下的apachectl)

cgi-bin:CGI程序的存放目錄

htdocs:網頁的存放目錄

man:幫助文檔

modules:模塊目錄

error:錯誤信息

icons:圖標

logs:日誌文件

manual:官方手冊

編譯安裝的默認pid文件放在了/usr/local/apache/logs下了,最好改一下位置:

    # vim /etc/httpd/httpd.conf
    PidFile "/var/run/httpd.pid"    //加這一行內容
    # /usr/local/apache/apachectl start    //啟動服務

可選配置:

讓service命令識別啟動腳本:

    # ln -s /usr/local/apache/bin/apachectl /etc/init.d/httpd

讓系統能夠直接識別/usr/local/apache/bin/下的命令:

方法一:

    # ln -s /usr/local/apache/bin/* /usr/bin    //軟鏈接到某一個PATH變量目錄中

方法二:

    # vim /etc/profile.d/httpd.sh
    export PATH=$PATH:/usr/local/apache/bin    //編輯一個開機啟動腳本,追加PATH變量

加入開機自啟動:

方法一:

    # vim /etc/rc.d/rc.local
    /usr/local/apache/bin/apachectl start    //開機啟動

方法二:讓chkconfig識別(略)

MYSQL(通用二進制包)安裝:

下載軟件包:

    # wget https://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.58-linux-glibc2.12-i686.tar.gz

解壓:

    # tar xf mysql-5.5.58-linux-glibc2.12-i686.tar.gz

復制到想要安裝的目錄並重命名:

    # cp -rf mysql-5.5.58-linux-glibc2.12-i686/* /usr/local/mysql/
    # cd /usr/local/mysql/

具體安裝方法在這個文件中有說明:

    # more INSTALL-BINARY

創建系統用戶mysql:

    # useradd -r mysql

將mysql目錄所有文件改變屬主和屬組為mysql

    # chown -R mysql.mysql /usr/local/mysql/

手動執行初始化腳本:

    # /usr/local/mysql/scripts/mysql_install_db  --help    //初始化腳本配置文件主要選項

--user=user_name:以哪個用戶的身份進行初始化

--datadir=path:數據存放目錄,默認就在安裝目錄下的data目錄

    # /usr/local/mysql/scripts/mysql_install_db --user=mysql    //初始化

服務啟動腳本:

    # cp support-files/mysql.server /etc/init.d/mysqld    //復制到service管理目錄下並重命名
    # chkconfig --add mysqld
    # chkconfig mysqld on

MYSQL配置文件:

mysql/support-files/目錄下有多個針對實際硬件情況的配置文件可選:

    # ls /usr/local/mysql/support-files/
    my-huge.cnfmy-large.cnfmy-small.cnf
    # more my-large.cnf 
    # Example MySQL config file for large systems.
    #
    # This is for a large system with memory = 512M where the system runs mainly    //內存512左右可以選這個配置文件
    # MySQL.
    datadir=YOURPATH    //註意,如果在初始化時指定了data目錄,這裏要加這個參數
    # cp support-files/my-large.cnf /etc/my.cnf     //復制並重命名,mysql默認在這個目錄下找my.cnf的配置文件

啟動mysqld服務:

    # service mysqld start

照例追加mysql/bin到PATH,讓系統識別命令:

    # vim /etc/profile.d/mysql.sh
    export PATH=$PATH:/usr/local/mysql/bin    //追加變量

非必須選項:

    # vim /etc/ld.so.conf.d/mysql.conf
    /usr/local/mysql/lib    //輸出庫文件,讓系統讀取mysql的庫文件
    # ldconfig -v    //重新讀取庫文件
    # ln -sv /usr/local/mysql/include /usr/include/mysql    //輸出頭文件,讓系統讀取mysql的頭文件

編譯安裝PHP:

下載軟件包並解壓:

    # wget http://cn2.php.net/distributions/php-5.6.33.tar.gz
    # tar xf php-5.6.33.tar.gz
    # cd /lee/software/php-5.6.33

編譯:

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

# --with-apxs2=/usr/local/apache/bin/apxs:其中這一項是以模塊的方式與apche工作,如果要以fcgi方式則用:--enable-fpm(註意兩項不能共存)

./configure時報錯yum安裝對應的軟件包和devel包一般可以解決,但有些軟件包yum是沒有的,需要手動下載rpm包安裝:

    # wget http://rpmfind.net/linux/dag/redhat/el6/en/i386/dag/RPMS/libmcrypt-2.5.7-1.2.el6.rf.i686.rpm
    # rpm -ivh libmcrypt-2.5.7-1.2.el6.rf.i686.rpm 
    # wget http://rpmfind.net/linux/dag/redhat/el6/en/i386/dag/RPMS/libmcrypt-devel-2.5.7-1.2.el6.rf.i686.rpm
    # rpm -ivh libmcrypt-devel-2.5.7-1.2.el6.rf.i686.rpm
    # make
    # make install

復制配置文件到剛才configure時指定的配置文件目錄:

    # cp php.ini-production /etc/php.ini

編輯Apache的配置文件,讓apache能支持php(PHP以apache模塊的方式工作):

    # vim /etc/httpd/httpd.conf

1、添加如下二行

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


2、定位至DirectoryIndex index.html

修改為:

        DirectoryIndex  index.php  index.html
    # httpd -t    //修改完檢查下語法
    # service httpd restart    //重啟服務重讀配置文件

測試PHP和Apache工作情況:

    # mv index.html index.html.bak    //讓默認的html主頁失效
    # vim index.php
    <html><title>鄂C王思聰PHP測試</title> <body><h1>PHP TEST</h1></body></html>
    <?php
    phpinfo();
    ?>    //這個是PHP內置函數,用於測試PHP

完成後可以在瀏覽器中打開測試一下了

測試MYSQL和PHP工作情況:

    # vim mysql.php
    <html><title>鄂C王思聰MYSQL測試</title> <body><h1>MYSQL TEST</h1></body></html>
    <?php
    $conn=mysql_connect(`localhost`,`root`,``);
    if ($conn)
    echo "SUCCESS";
    else
    echo "FAILURE";
    ?>

完成後瀏覽器中打開mysql.php測試下,顯示SUCCESS表示成功


超詳細LAMP環境手動編譯安裝實例