超詳細LAMP環境手動編譯安裝實例(PHP以模塊方式工作)

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   # 缺少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表示成功

    

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