1-web應用之LAMP源碼環境搭建



目錄








        2-2.安裝apr

        2-3.安裝apr-util

        2-4.安裝pcre

        2-5.安裝Apache


        3-1.啓動Apache服務




        3-5.關閉防火牆

        3-6.打開網頁測試





        2-1.安裝cmake

        2-2.安裝bison

        2-3.安裝ncurses

        2-4.安裝Mysql




        3-3.初始化數據庫



        3-6.註冊mysq爲服務


        3-8.設置環境變量

        3-9.啓動mysql服務


        3-11.查看mysql進程




        3-15. 配置防火牆





     3.配置PHP

          3-1建立PHP配置文件


          3-3.建立php測試文件




1、LAMP環境的介紹

1.LAMP環境的重要性


    思索許久,最終仍是決定寫一篇詳細的LAMP的源碼編譯安裝的實驗文檔,一來是爲了給本身一個交代,把技術進行系統的概括,將技術以極致的形式呈現出來,作爲一個作技術的應該有的態度要經過這篇文檔展示,作爲之後二來也是爲了給那些一直在尋找詳細文檔來細緻學習的人多一些思路,因而結合本身所學將零零散散知識進行了整合,儘可能將最好的東西展示出來。安裝過程當中遇到的問題及解決方法我也會一一解答(專門用一篇博客來列出LAMP的問題和解決方法),三來後面都不少實驗都須要用到LAMP的環境,好比搭建論壇,tomcat環境部署,搭建zabbix監控等等,因此LAMP環境毫不能草草搭建完事,若是LAMP出問題了,後面LAMP上部署的應用和各類服務可就遭殃了,因此認認真真,一絲不苟地把LAMP環境搭建好是很是有必要的

     那麼接下來就開始整個LAMP環境的搭建吧,這裏我採用的是源碼編譯安裝,雖然用yum安裝會很是省事,可是因爲yum安裝的各類包版本可能比較老,在不一樣的系統上yum可能支持性很差,對後續的維護可能會有影響,因此綜合考慮後,仍是決定用源碼編譯來部署LAMP環境,若是爲了圖省事,之後就會有源源不斷的麻煩事涌來,這樣作得不償失,作運維,在起初環境的設計和部署上必定要謹慎周全的考慮,把各方各面都要考慮周全,謹小慎微,容不得一點的紕漏,否則後期維護會很是的頭疼,這一點是通用的,切記!!!這裏我就用LAMP的環境搭建來作個事例吧,搭建過程當中必需要作到條理清晰,思路嚴謹,任何的馬虎都有可能爲後期的維護帶來巨大的隱患。

       那麼在搭建LAMP以前,首先簡單地介紹一下LAMP的相關概念,以及整個LAMP源碼編譯的實驗環境(因爲條件限制,這裏我用的是虛擬機來進行的實驗,不過真實的生產環境操做同樣),大致步驟(這個是整個實驗的指導思路,脈絡,後面的整個實驗都是按照這個步驟有條不紊的進行,確保實驗高質量的完成)


2.LAMP組件介紹


       在安裝LAMP以前,對LAMP進行了解是確定的了, 首先就說說其含義

LAMP指的是linux,Apache,Mysql以及Php的簡稱,經過大量的生產環境的實踐證實,在網絡應用和開發環境方面,LAMP組合是很是棒的黃金搭檔,它們的結合提供了很是強大功能。

linux做爲底層的操做系統,提供靈活且可定製性的應用平臺,爲其餘組件穩定高效的運行在其之上提供了保障

Apache做爲Web服務器,提供了功能強大,穩定且支撐能力突出的web平臺,爲網站提供了強力支柱

Mysql也是一款很是優秀的數據庫,從其產生的從多衍生數據庫就可見證實其強大

Php是一種開發源代碼的多用途腳本語言,可嵌入html中,適用於web開發,且其編寫的數據可訪問mysql數據庫及linux提供的動態內容





2、Apache源碼安裝

1.下載Apache及相關依賴包

Apache2.4版本開始不自帶apr庫,因此須要下載相應的庫文件 (百度雲盤:http::/pan.baidu.com/s/1bnL31c7)
1.apr(Apache依賴包)                           http://irrors.hust.edu.cn/apache/apr
2.apr-util (Apache依賴包)                     http://irrors.hust.edu.cn/apache/apr
3.pcre (Apache依賴包)                         http://sourceforge.net/projects/pcre/files/pcre/
4.Apache                                        http://archive.apache.org/dist/httpd/

2.安裝Apache及其相關依賴包

2-1.解壓Apache及相關依賴包( 開始安裝依賴包,注意,須要將解壓包放到apache軟件解壓後的srclib目錄下面也就是這裏的/soft/httpd-2.4.16/srclib/)
[root@localhost soft]#tar -zxvf
[root@localhost soft]#tar -zxvf apr-1.5.2.tar.gz
[root@localhost soft]#tar -zxvf apr-util-1.5.4.tar.g
[root@localhost soft]#tar -zxvf pcre-8.37.tar.g
將相關依賴包放入/soft/httpd-2.4.16/srclib/中
[root@localhost soft]#mv apr-1.5.2 /httpd-2.4.16/srclib/apr
[root@localhost soft]#mv apr-util /httpd-2.4.16/srclib/apr-util

[root@localhost soft]# cd /soft/httpd-2.4.16/srclib/
[root@localhost srclib]# cd apr           在目錄apr下進入configure配置文件將$RM "cfgfile"這一行用#註銷
[root@localhost apr]# ./configure --prefix=/usr/local/apr     
[root@localhost apr]# make && make install                    

[root@localhost srclib]# cd apr-util
[root@localhost apr-util]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
[root@localhost apr-util]# make && make install


[root@localhost srclib]# tar -zxvf pcre-8.37.tar.gz
[root@localhost srclib]# mv pcre-8.37 pcre
[root@localhost pcre-8.37]# ./configure --prefix=/usr/local/pcre
[root@localhost pcre-8.37]# make && make install


[root@localhost soft]# cd httpd-2.4.16 
[root@localhost soft]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --with-z=/usr/local/zlib/  --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-static-support --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre 
[root@localhost soft]# make && make install

安裝詳解
#./configure                              \   #執行當前目錄下軟件自帶的配置命令
#--prefix=/usr/local/apache2              \   #指定Apache軟件安裝的位置
#--sysconfdir=/etc/httpd                  \   #指定Apache服務器配置文件存放位置
# --with-z=/usr/local/zlib/               \   #指定zlib庫文件的位置
# --enable-so                             \   #以動態共享對象(DSO)編譯
# --enable-deflate=shared                 \   #縮小傳輸編碼的支持
# --enable-expires=shared                 \   #期滿頭控制
# --enable-rewrite=shared                 \   #基於規則的URL操控
# --enable-static-support                 \   #創建一個靜態連接版本的支持
#--with-apr=/usr/local/apr                \   #加入apr依賴包安裝路徑
#--with-apr-util=/usr/local/apr-util      \   #加入apr-util依賴包安裝路徑
#--with-pcre=/usr/local/pcre              \   #加入pcre依賴包安裝路徑


進入/etc/httpd/httpd.conf配置文件,任意位置插入一行ServerName localhost:80
[root@localhost httpd]# /usr/local/apache2/bin/apachectl start  
httpd (pid 55493) already running

[root@end ~]# cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd
[root@end ~]# service httpd start
httpd (pid 45005) already running 

[root@localhost httpd]# netstat -na |grep 80
tcp        0      0 :::80                       :::*                        LISTEN        24534/httpd   

進入/etc/init.d/httpd,加入
# chkconfig: 345 61 61
# description:Apache httpd
 
[root@end ~]# chkconfig --add httpd 
[root@end ~]# chkconfig httpd on

關閉iptables
[root@localhost httpd]# iptables -F      清空iptables防火牆策略
[root@localhost httpd]# service iptables stop    關閉防火牆
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
[root@localhost httpd]# chkconfig iptables off       重啓後防火牆依舊處於關閉狀態

關閉selinux
兩種方法
1.使用命令setenforce 0 系統重啓即失效(不須要重啓)
2.編輯配置文件/etc/sysconfig/selinux 將SELINUX=enforcing改成disabled狀態( 須重啓生效)
[root@localhost httpd]# setenforce 0   臨時將selinux改成Permission狀態,重啓系統後失效
 
[root@localhost httpd]# cat /etc/sysconfig/selinux 
 
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled   將selinux改成disabled狀態,須要重啓系統才能生效
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 


4.網頁測試

最後打開網頁,輸入網址http://ip便可查看網頁內容 
網頁顯示It works!就說明apache安裝成功了





3、源碼安裝Mysql

1.下載mysql及相關軟件包

從mysql 5.5版本開始,mysql源碼安裝開始使用cmake了
下載cmake                        http://cmake.org/files/  
下載ncurses                      http://ftp.gnu.org/gnu/ncurses/   
下載bison                        http://ftp.gnu.org/gnu/bison 

2.安裝mysql及其依賴包

[root@localhost mysql]# tar -zxvf cmake-3.4.1.tar.gz
[root@localhost cmake-3.4.1]# ./configure 
[root@localhost cmake-3.4.1]# make ; make install  

[root@localhost mysql]# tar -zxvf bison-3.0.tar.gz 
[root@localhost bison-3.0]# ./configure 
[root@localhost bison-3.0]# make ; make install

[root@localhost mysql]# tar -zxvf ncurses-6.0.tar.gz
[root@localhost ncurses-6.0]# ./configure
[root@localhost ncurses-6.0]# make ; make install

解壓mysql
[root@localhost soft]# tar -zxvf mysql-5.5.45.tar.gz   
安裝mysql
[root@localhost mysql-5.5.46]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
編譯mysql
[root@localhost mysql-5.5.46]#make ; make install   

安裝詳解
# -DCMAKE_INSTALL_PREFIX=/usr/local/mysql          \    #安裝路徑
# -DMYSQL_DATADIR=/usr/local/mysql/data            \    #數據文件存放位置
# -DSYSCONFDIR=/etc                                \    #my.cnf路徑
# -DWITH_MYISAM_STORAGE_ENGINE=1                   \    #支持MyIASM引擎
# -DWITH_INNOBASE_STORAGE_ENGINE=1                 \    #支持InnoDB引擎
# -DWITH_MEMORY_STORAGE_ENGINE=1                   \    #支持Memory引擎
# -DWITH_READLINE=1                                \    #快捷鍵功能(我沒用過)
# -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock               \    #鏈接數據庫socket路徑
# -DMYSQL_TCP_PORT=3306                            \    #端口
# -DENABLED_LOCAL_INFILE=1                         \    #容許從本地導入數據
# -DWITH_PARTITION_STORAGE_ENGINE=1                \    #安裝支持數據庫分區
# -DEXTRA_CHARSETS=all                             \    #安裝全部的字符集
# -DDEFAULT_CHARSET=utf8                           \    #默認字符
# -DDEFAULT_COLLATION=utf8_general_ci              \    #校驗字符


3.配置Mysql服務

[root@end mysql]# groupadd mysql                  建立mysql組
[root@end mysql]# useradd -r -g mysql mysql       建立mysql用戶並添加到mysql組

[root@end mysql]#chown -R mysql:mysql /usr/local/mysql          將mysql目錄下的全部文件的全部者和全部組改成msyql

[root@end mysql]#  chmod 777 scripts/mysql_install_db
[root@end mysql]# scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql


3-4.複製mysql服務啓動配置文件 注意:在CentOS 6.4版操做系統的最小安裝完成後,在/etc目錄下會存在一個my.cnf,須要將此文件改名爲其餘的名字,如:/etc/my.cnf.bak,不然,該文件會干擾源碼安裝的MySQL的正確配置,形成沒法啓動
[root@end mysql]# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf 

[mysqld]
datadir=/usr/local/mysql/data
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

/usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld      將mysqld添加爲服務

[root@end mysql]# chkconfig --add mysqld         將mysqld服務添加到chkconfig中
[root@end mysql]# chkconfig mysqld on            重啓系統後服務自動運行

在文件/etc/profile末尾添加
PATH=/usr/local/mysql/bin:$PATH
[root@end mysql]# source /etc/profile            使修改的環境變量當即生效

[root@end mysql]# service mysqld start
Starting MySQL...                                          [肯定]

[root@end mysql]# netstat -tulnp |grep 3306
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      24351/mysqld 

[root@localhost ncurses-6.0]# ps aux |grep mysql
root     48813  0.0  0.3  11304  1492 pts/2    S    16:47   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/localhost.localdomain.pid
mysql    48979  0.0  9.8 413156 37360 pts/2    Sl   16:47   0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/usr/local/mysql/data/localhost.localdomain.pid --socket=/var/lib/mysql/mysql.sock
root     49018  0.0  0.2 103304   892 pts/2    S+   16:53   0:00 grep mysql

[root@end mysql]# mysql -uroot  登陸到mysql,首次登錄無密碼
 
mysql> SET PASSWORD = PASSWORD('endmoon');   設置mysql密碼
Query OK, 0 rows affected (0.00 sec)

[root@end mysql]# mysql -u root -p
Enter password: endmoon

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.20' IDENTIFIED BY 'password' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

防火牆的3306端口默認沒有開啓,若要遠程訪問,須要開啓這個端口
打開/etc/sysconfig/iptables,在-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT後面添加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
[root@end mysql]# service iptables restart    使更改的防火牆配置生效
iptables:將鏈設置爲政策 ACCEPT:filter                    [肯定]
iptables:清除防火牆規則:                                 [肯定]
iptables:正在卸載模塊:                                   [肯定]
iptables:應用防火牆規則:                                 [肯定]

那麼mysql數據庫的源碼安裝到這裏就結束了


4、源碼安裝PHP

1.下載PHP以及相關庫軟件

從php5.4開始,須要本身下載安裝libXpm-dev了,可是因爲包的依賴性緣由,我就選擇了yum方式來進行安裝,經過網絡yum源直接下載並進行安裝了
下載php以及相關的庫文件(百度網盤:http::/pan.baidu.com/s/1bnL31c7)
gd庫以及php功能特性擴展庫文件
libgd-2.1.1.tar.gz gd庫文件(使php支持如下功能)
jpegsrc.v7.tar.gz jpeg庫文件(使php支持jpeg格式圖片)
zlib-1.2.7.tar.gz 數據壓縮函數庫(使php支持數據壓縮功能)
freetype-2.6.tar.gz freetype庫文件(使php支持 多種字體格式文件
libpng-1.2.56.tar.gz libpng庫文件(使php支持png格式圖片)

2.安裝PHP庫環境

yum -y install libXpm
yum -y install libXpm-devel
安裝完後libXpm配置文件默認在這個目錄/usr/lib64/下

[root@end LAMP-php]# tar -zxvf autoconf-2.69.tar.gz 
[root@end LAMP-php]# cd autoconf-2.69
[root@end autoconf-2.69]# ./configure 
[root@end autoconf-2.69]# make ; make install

[root@end LAMP-php]# tar -zxvf libxml2-2.7.8.tar.gz 
[root@end LAMP-php]# cd libxml2-2.7.8     將$RM "cfgfile"這行用#註釋
[root@end libxml2-2.7.8]# ./configure --prefix=/usr/local/libxml2
[root@end libxml2-2.7.8]# make ; make install 

[root@end LAMP-php]# tar -zxvf libmcrypt-2.5.8.tar.gz 
[root@end LAMP-php]# cd libmcrypt-2.5.8
[root@end libmcrypt-2.5.8]# ./configure --prefix=/usr/local/libmcrypt
[root@end libmcrypt-2.5.8]# make ; make install

[root@end LAMP-php]# tar -zxvf zlib-1.2.7.tar.gz 
[root@end LAMP-php]# cd zlib-1.2.7
[root@end zlib-1.2.7]# ./configure --prefix=/usr/local/zlib
[root@end zlib-1.2.7]# make ; make install

[root@end LAMP-php]# tar -zxvf libpng-1.2.56.tar.gz 
[root@end LAMP-php]# cd libpng-1.2.56
[root@end libpng-1.2.56]# ./configure --prefix=/usr/local/libpng
[root@end libpng-1.2.56]# make ; make install

[root@end LAMP-php]# tar -zxvf jpegsrc.v7.tar.gz   
[root@end LAMP-php]# cd jpeg-7/
[root@end jpeg-7]# mkdir /usr/local/jpeg6                    創建jpeg6軟件安裝目錄
[root@end jpeg-7]# mkdir /usr/local/jpeg6/bin                創建存放命令的目錄
[root@end jpeg-7]# mkdir /usr/local/jpeg6/lib                建立jpeg6庫文件所在目錄
[root@end jpeg-7]# mkdir /usr/local/jpeg6/include            創建存放頭文件目錄
[root@end jpeg-7]# mkdir -p /usr/local/jpeg6/man/man1        創建存放手冊目錄
[root@end jpeg-7]# ./configure \
> --prefix=/usr/local/jpeg6/ \   
> --enable-shared \    創建共享庫使用的GNUd libtool
> --enable-static      創建靜態庫使用的GNUlibtool
./configure --prefix=/usr/local/jpeg6/ --enable-shared  --enable-static
[root@end jpeg-7]# make ; make install

[root@end LAMP-php]# tar -zxvf freetype-2.6.tar.gz 
[root@end LAMP-php]# cd freetype-2.6
[root@end freetype-2.6]# ./configure --prefix=/usr/local/freetype
[root@end freetype-2.6]# make ; make install

[root@end LAMP-php]# tar -zxvf gd-2.0.32.tar.gz 
[root@end LAMP-php]# cd gd-2.0.32
[root@end gd-2.0.32]# ./configure \  進入vim gd_png.c 將16行改成#include "/usr/local/libpng/include/png.h"
> --prefix=/usr/local/gd2/ \                       gd庫文件安裝目錄
> --with-zlib=/usr/local/zlib/ \                   指定zlib安裝路徑
> --with-jpeg=/usr/local/jpeg6/ \                  指定jpeg6安裝路徑
> --with-png=/usr/local/libpng/ \                  指定libpng安裝路徑
> --with-freetype=/usr/local/freetype/             指定freetype安裝路徑
./configure --prefix=/usr/local/gd2/ --with-zlib=/usr/local/zlib/ --with-jpeg=/usr/local/jpeg6/ --with-png=/usr/local/libpng/ --with-freetype=/usr/local/freetype
[root@end gd-2.0.32]# make ; make install 

[root@end AMP]# tar -zxvf php-5.6.9.tar.gz 
[root@end AMP]# cd php-5.6.9
[root@end php-5.6.9]# ./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-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg6 --with-freetype-dir=/usr/local/freetype --with-gd=/usr/local/gd2 --with-zlib-dir=/usr/local/zlib --with-mcrypt=/usr/local/libmcrypt  --with-xpm-dir=/usr/lib64/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets 
[root@end php-5.6.9]# make ; make install

安裝詳解
#./configure                                        \    #執行當前目錄下軟件自帶的配置命令
#--prefix=/usr/local/php/                           \    #設置PHP5的安裝路徑
#--with-config-file-path=/usr/local/php/etc/        \    #指定PHP5配置文件存入的路徑
#--with-apxs2=/usr/local/apache2/bin/apxs/          \    #指定PHP查找Apache2的位置
#--with-mysql=/usr/local/mysql/                     \    #指定mysql的安裝目錄
#--with-libxml-dir=/usr/local/libxml2/              \    #指定php放置libxml2庫的位置
#--with-png-dir=/usr/local/libpng/                  \    #指定php放置libpng庫的位置
#--with-jpeg-dir=/usr/local/jpeg6/                  \    #指定php放置jpeg庫的位置
#--with-freetype-dir=/usr/local/freetype/           \    #指定php放置freetype庫的位置
#--with-gd=/usr/local/gd2/                          \    #指定php放置gd庫的位置
#--with-zlib-dir=/usr/local/zlib/                   \    #指定php放置zlib庫的位置
#--with-mcrypt=/usr/local/libmcrypt/                \    #指定php放置libcrypt庫的位置
#--with-mysql=/usr/local/mysql/bin/mysql_config     \    #變量激活新增長mysqli功能
#--enable-soap                                      \    #變量激活soap和web services支持
#--enable-mbstring=all                              \    #使多字節字符串支持
#--enable-sockets                                   \    #變量激活socket通訊特性


3.配置PHP

cp php.ini-development /usr/local/php/etc/php.ini  

進入Apache主配置文件/etc/httpd/http.conf中加入
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php .php .php4 .php5

建立mkdir /usr/local/apache2/htdocs/test.php
 
進入test.php編輯
<?php
        phpinfo();
?>

[root@localhost php-5.6.9]# service httpd restart


輸入網址http://ip/test.php
看到php的版本信息網頁,表示測試成功!!!



到這裏LAMP源碼部署就完成了,也就是Web的環境就準備穩當了,接下來就陸續會在此環境上部署各類Web應用了,敬請期待!




相關文章
相關標籤/搜索