CentOS 6.5安裝配置LAMP服務器(Apache+PHP5+MySQL)

CentOS 6.5安裝配置LAMP服務器(Apache+PHP5+MySQL)

Apache(2.4.16)+PHP(5.6.11)+MySQL(5.5.45)


LAMP的簡單介紹,lamp框架

LAMP(Linux-Apache-MySQL-PHP)網站架構是目前國際流行的Web框架,該框架包括:Linux操作系統,Apache網絡服務器,MySQL數據庫,PerlPHP或者Python編程語言,所有組成產品均是開源軟件,是國際上成熟的架構框架,很多流行的商業應用都是採取這個架構LAMP具有Web資源豐富、輕量、快速開發等特點

 

爲了初學者的搭建,本次配置寫的較爲詳細,若有錯誤懇請指正

一.LAMP安裝前的準備

selinux:disabled
iptable:stop

1.獲取軟件包

apr-1.5.2.tar.gz       gd-2.0.33.tar.gz        libpng-1.5.4.tar.gz                  php-5.6.11.tar.gz

apr-util-1.5.4.tar.gz    httpd-2.4.16.tar.gz     libxml2-2.7.8.tar.gz                 zlib-1.2.8.tar.gz

autoconf-2.68.tar.gz     jpegsrc.v8c.tar.gz         mysql-5.5.45-linux2.6-x86_64.tar.gz

cmake-2.8.10.2.tar.gz    libgd-2.1.1.tar.gz         mysql-5.6.20.tar.gz

freetype-2.4.6.tar.gz     libmcrypt-2.5.8.tar.gz      pcre-8.36.tar.gz

 

把上面下載的17個源代碼包放到linux系統下的/usr/local/src/LAMP目錄中


源碼包的下載地址:

備註:以上源碼包並不是最新版本的,可以自行在網上下載最新版本的源碼包

這是我的源碼包的地址: http://pan.baidu.com/s/1kT5udyn

2.確認搭建LAMP所需要的環境是否已經安裝

[root@redhat6 ~]# rpm -q make gcc gcc-c++ zlib-devel libaio

make-3.81-20.el6.x86_64

package gcc is not installed

package gcc-c++ is not installed

package zlib-devel is not installed

package libaio is not installed


3.如果沒有安裝則用yum安裝即可

[root@redhat6 LAMP]# yum install make gcc gcc-c++ zlib-devel libaio

備註:GCC是一個用於linux系統下編程的編譯器,其中包括c++

安裝libpng時候需要zlib-devel        安裝mysql時候需要libaio

libaioLinux下的一個異步非阻塞接口,它提供了以異步非阻塞方式來讀寫文件的方式,讀寫效率比較高。


二.開始搭建LAMP環境

安裝時的主要步驟:

1)解壓tar.gz爲後綴的壓縮包軟件

LAMP環境搭建所需要的每個軟件的源代碼文件,都是以.tar.gz提供給我們的打包壓縮文件,所以我們必須將其解壓再解包。可通過命令#tar zxvf tarfile.tar.gz達到目的。

2)在linux系統中源代碼包安裝過程

進行解壓後的目錄,LAMP環境搭建所需要的軟件都使用C語言開發的,所以安裝源代碼文件最少需要配置(configure)、編譯(make)、安裝(make install)三個步驟。

1、確認搭建LAMP所需要的環境是否已經安裝

此步驟前面已經完成。


2、編譯安裝libxml2     [php]

注:libxml2是一個xmlc語言版的解析器,不僅支持c語言,還支持c++phpPascalRubyTcl等語言的綁定

[root@redhat6 LAMP]#pwd

            /usr/local/src/LAMP

[root@redhat6 LAMP]# tar -zxvf libxml2-2.7.8.tar.gz

[root@redhat6 LAMP]#cd libxml2-2.7.8

[root@redhat6 libxml2-2.6.30]# ./configure  --prefix=/usr/local/libxml2/

[root@redhat6 libxml2-2.6.30]#make

[root@redhat6 libxml2-2.6.30]#make install

注:選項--prefix=/usr/local/libxml2作用是將軟件安裝到/usr/local/libxml2 目錄下。

如果安裝成功以後,在/usr/local/libxml2/目錄下將生成bin,include,lib,man,share五個目錄。在後面安裝 PHP5源代碼的配置時,會通過在configure命令的選項中加上"--with-libxml-dir=/usr/local/libxml2"選項,用於指定安裝libxml2庫文件的位置


3.編譯安裝libmcrypt    [php]

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

[root@redhat6 LAMP]# pwd

/usr/local/src/LAMP

[root@redhat6 LAMP]# tar -zxvf libmcrypt-2.5.8.tar.gz 

[root@redhat6 LAMP]# cd libmcrypt-2.5.8

[root@redhat6 libmcrypt-2.5.8]# ./configure -prefix=/usr/local/libmcrypt

[root@redhat6 libmcrypt-2.5.8]# make

[root@redhat6 libmcrypt-2.5.8]# make install

如果安裝成功就會在/usr/local/libmcrypt/目錄下生成bin,include,lib,man,share五個目錄。然後在安 裝PHP5源代碼包的配置時,就可以通過configure命令加上“--with-mcrypt-dir=/usr/local/libmcrypt” 選項,指定這個libmcrypt庫文件的位置。

[出現的問題:]

./configure時報錯:configure: error: C++ compiler cannot create executables 

解決方案:

運行下面命令,然後重新configure(配置)

yum install gcc gcc-c++ gcc-g77 


4.編譯安裝zlib     [php]

注:zlib是提供數據壓縮用的函式庫    

[root@redhat6 LAMP]# pwd

/usr/local/src/LAMP

[root@redhat6 LAMP]# tar -zxvf zlib-1.2.8.tar.gz 

[root@redhat6 LAMP]# cd zlib-1.2.8

[root@redhat6 zlib-1.2.3]# ./configure -prefix=/usr/local/zlib

[root@redhat6 zlib-1.2.3]# make 

[root@redhat6 zlib-1.2.3]# make install

如果安裝成功將會在/usr/local /zlib目錄下生成include,lib,share三個目錄。在安裝PHP5配置時,在configure命令的選項中加上“--with- zlib-dir=/usr/local/libmcrypt”選項,用於指定zlib庫文件位置。


5.編譯安裝libpng     [GD2]

[root@redhat6 LAMP]# pwd

/usr/local/src/LAMP

[root@redhat6 LAMP]# tar -zxvf libpng-1.5.4.tar.gz 

[root@redhat6 LAMP]# cd libpng-1.5.4

[root@redhat6 libpng-1.2.31]# ./configure -prefix=/usr/local/libpng -enable-shared

[root@redhat6 libpng-1.2.31]# make 

[root@redhat6 libpng-1.2.31]# make install

如果安裝成功將會在/usr/local/libpng目錄下生成bin,include,libshare四個目錄。在安裝GD2庫配置時,通 過在configure命令選項中加上“--with-png=/usr/local/libpng”選項,指定libpng庫文件的位置。


[編譯的時候遇到的問題:]

./configure --prefix=/usr/local/libpng這步最後會提示:configure: error: ZLib not installed

解決方法如下:

1)進入zlib的源文件目錄,執行命令 make clean,清除zlib

2)重新配置 ./configure,後面不要接--prefix參數;

3make && make install

4)進入libpng目錄,執行命令 ./configure --prefix=/usr/local/libpng;

5make && make install

6)安裝成功. 


6、編譯安裝jpeg      [GD2]

注:安裝GD2庫前所需的jpeg8庫文件,需要自己手動創建安裝需要的目錄,它們在安裝時不能自動創建。

[root@redhat6 LAMP]# pwd

/usr/local/src/LAMP

[root@redhat6 LAMP]# tar -zxvf jpegsrc.v8c.tar.gz 

[root@redhat6 LAMP]# cd jpeg-8c/

[root@redhat6 jpeg-8c]# mkdir /usr/local/jpeg

[root@redhat6 jpeg-8c]# mkdir /usr/local/jpeg/bin

[root@redhat6 jpeg-8c]# mkdir /usr/local/jpeg/lib

[root@redhat6 jpeg-8c]# mkdir /usr/local/jpeg/include

[root@redhat6 jpeg-8c]# mkdir /usr/local/jpeg/man/man1

[root@redhat6 jpeg-8c]# ./configure -prefix=/usr/local/jpeg \

> -enable-shared \      

> -enable-static     (建立共享庫使用的GNUlibtool和靜態庫使用的GNUlibtool

-enable-shared 和  -enable-static 是什麼意思?

這是 configure 常用的兩個參數,表示啓用動態庫版本還是靜態庫版本。

如果你要編譯一個庫的源代碼,可以把它編譯成靜態庫,也可以把它編譯成動態庫。如果你想編譯成靜態庫,就用 --enable-shared參數;如果你想編譯成靜態庫,就用--enable-static參數。  

[root@redhat6 jpeg-8c]#make

[root@redhat6 jpeg-8c]#make install 

在安裝GD2庫配置時,可以在configure命令的選項中加上“--with-jpeg=/usr/local/jpeg”選項,指定jpeg6庫文件的位置。安裝PHP時也要指定該庫文件的位置。

7、編譯安裝freetype      [GD2]

[root@redhat6 LAMP]# pwd

/usr/local/src/LAMP

[root@redhat6 LAMP]# tar -zxvf freetype-2.4.6.tar.gz 

[root@redhat6~LAMP LAMP]# cd freetype-2.4.6

[root@redhat6~LAMP freetype-2.4.6]# ./configure --prefix=/usr/local/freetype --enable-shared

[root@redhat6 freetype-2.4.6]# make 

[root@redhat6 freetype-2.4.6]# make install

如果安裝成功將會在/usr/local/freetype目錄下存在bin,include,libshare四個目錄。並在安裝GD2庫時,通過configure命令選項中加上“--with-freetype=/usr/local/freetype/”選項,指定freetype庫文件位置。

 

8、編譯安裝autoconf    

唯一注意的地方是configure時,不用指定路徑。

[root@redhat6 LAMP]# pwd

/usr/local/src/LAMP

[root@redhat6 LAMP]# tar -zxvf autoconf-2.68.tar.gz 

[root@redhat6 autoconf-2.68]# ./configure 

[root@redhat6 autoconf-2.68]# make 

[root@redhat6 autoconf-2.68]# make install

 

9 編譯安裝GD     [PHP]

[root@redhat6 LAMP]# pwd

/usr/local/src/LAMP

[root@redhat6~LAMP LAMP]# tar -zxvf libgd-2.1.1.tar.gz 

[root@redhat6~LAMP LAMP]# cd libgd-2.1.1

[root@redhat6 gd-2.0.33]# ./configure \       //配置命令

> --prefix=/usr/local/gd \                   //指定安裝軟件的位置

> --with-jpeg=/usr/local/jpeg \              //指定去哪找jpeg庫文件

> --with-png=/usr/local/libpng/ \            //指定去哪找png庫文件    

> --with-zlib=/usr/local/zlib/ \              //指定去哪找zlib庫文件

> --with-freetype=/usr/local/freetype/        //指定去哪找freetype 2.x字體庫的位置

[root@redhat6 gd-2.0.33]# make

[root@redhat6 gd-2.0.33]# make install

遇到的問題:

如果報錯:unrecognized option –with-zlib

那就重新安裝一次zlib,注意,需要把原先解壓出來的源碼刪掉,重新解壓進行安裝。

 

三、 安裝apache

AprApache可移殖運行庫,可以讓Apache跨操作系統安裝(相當於一個虛擬機),Apr-util是給Apr提供接口

1.查看是否安裝了apr apr-util這兩個包

[root@redhat6 LAMP]# rpm -q apr apr-util

package apr is not installed

package apr-util is not installed

 

如果安裝了,卸載aprapr-util

[root@redhat6 LAMP]#yum remove apr apr-util


2.編譯安裝apr-1.5.2.tar.gz

[root@redhat6 LAMP]# tar -zxvf apr-1.5.2.tar.gz 

[root@redhat6 apr-1.5.2]# ./configure --prefix=/usr/local/apr-httpd

[root@redhat6 apr-1.5.2]# make 

[root@redhat6 apr-1.5.2]# make install


(3).編譯安裝apr-util-1.5.4.tar.gz

[root@redhat6 LAMP]# tar -zxvf apr-util-1.5.4.tar.gz 

[root@redhat6 apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util-httpd \

> --with-apr=/usr/local/apr-httpd/

[root@redhat6 apr-util-1.5.4]# make 

[root@redhat6 apr-util-1.5.4]# make install

 

4.編譯安裝pcre-8.36.tar.gz

[root@redhat6 LAMP]# tar -zxvf pcre-8.36.tar.gz 

[root@redhat6 pcre-8.36]# ./configure --prefix=/usr/local/pcre

[root@redhat6 pcre-8.36]# make

[root@redhat6 pcre-8.36]# make install

 

5.編譯安裝apache

[root@redhat6 LAMP]# tar -zxvf httpd-2.4.16.tar.gz 

[root@redhat6 LAMP]# cd httpd-2.4.16

[root@redhat6 httpd-2.4.16]# ./configure \

> --prefix=/usr/local/apache-2.4.16 \

> --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 \

> --sysconfdir=/etc/httpd \

> --with-zlib=/usr/local/zlib/ \

> --with-apr=/usr/local/apr-httpd/ \

> --with-apr-util=/usr/local/apr-util-httpd/ \

> --with-pcre=/usr/local/pcre/ \

> --disable-userdir

make && make install

安裝完成後,進入/usr/local/apache-2.4.16/目錄下,檢查是否有以下文件:

bin build  cgi-bin  error htdocs icons  include  logs  man  manual  modules

啓動Apache服務器,並查端口是否開啓,啓動Apache服務器的命令行如下:

[root@redhat6 apache-2.4.16]# /usr/local/apache-2.4.16/bin/apachectl start

 

提示信息:

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using ::1. Set the 'ServerName' directive globally to suppress this message

解決方案:

[root@redhat6 apache-2.4.16]# vim /etc/httpd/httpd.conf 

加上下面一行,重啓apache

ServerName localhost:80

查看端口命令行如下:

[root@redhat6 apache-2.4.16]# netstat -tnl | grep 80

tcp        0      0 :::80                 :::*                     LISTEN      

測試安裝結果,打開瀏覽器,在地址欄中輸入URL爲:http://192.168.146.129/

如果瀏覽器中出現It works!則表明Apache服務器可以使用。

即顯示以下的頁面即可


每種服務器軟件都有必要製成開機時自動啓動,Apache服務器開機自動啓動,只要在“/etc/rc.d/rc.local”文件,加上 Apache服務器的啓動命令即可。可以直接打開“/etc/rc.d/rc.local”文件,在最後一行寫入Apache啓動命令,也可以用echo 命令追加進去,如下命令行示:

方法一:

開機自動啓動apache的第一種方法:

修改/etc/rc.local文件

# vim /etc/rc.local

在文件中添加/usr/local/apache/bin/apachectl start

即以下操作:

[root@redhat6 apache-2.4.16]# echo "/usr/local/apache-2.4.16/bin/apachectl start" >> /etc/rc.d/rc.local 

方法二:

[root@redhat6 apache-2.4.16]# cp /usr/local/apache-2.4.16/bin/apachectl /etc/init.d/httpd

[root@redhat6 apache-2.4.16]# chmod +x /etc/init.d/httpd 

[root@redhat6 apache-2.4.16]# /etc/init.d/httpd start


[下面這一部分操作的時候有問題,理論上應該是沒有問題的]

[root@redhat6 apache-2.4.16]# chkconfig --add httpd

注意:如果提示service httpd does not support chkconfig錯誤

解決辦法:編輯/etc/rc.d/init.d/httpd在文件第二行加入

           #chkconfig:2345 10 90

           #description:Activates/Deactivates Apache Web Server

2345是設爲要啓動的運行級別,10是啓動優先級,90是殺死進程的優先級,誰優先誰先掛的意思

[root@redhat6 apache-2.4.16]# chkconfig --add httpd

[root@redhat6 apache-2.4.16]# chkconfig --level 2345 httpd on

[root@redhat6 apache-2.4.16]# service httpd restart

四、安裝mysql    

[root@redhat6~LAMP LAMP]# tar -zxvf mysql-5.5.45-linux2.6-x86_64.tar.gz

[root@redhat6~LAMP LAMP]# cd /usr/local/

[root@redhat6~LAMP local]# mv /usr/local/src/LAMP/mysql-5.5.45-linux2.6-x86_64 .

[root@redhat6~LAMP local]# ln -sv mysql-5.5.45-linux2.6-x86_64/ mysql

 

(1)創建用戶、組和目錄

[root@centos6 ~]# groupadd mysql

[root@centos6 ~]# useradd mysql -g mysql

[root@centos6 ~]# passwd mysql                         //設置密碼爲:mysql

[root@resource mysql]# pwd

/usr/local/mysql                                       //mysql安裝目錄

[root@localhost mysql]# chown -R root.mysql .          //設置安裝目錄下所有文件的權限

[root@resource mysql]# chown -R mysql.mysql ./data     //設置數據倉庫目錄data的權限

(2)初始化數據庫

執行前需賦給scripts/mysql_install_db文件執行權限:

[root@centos6 ~]# pwd

/usr/local/mysql //mysql安裝目錄

[root@centos6 ~]# chmod 755 scripts/mysql_install_db

[root@centos6 ~]# scripts/mysql_install_db --user=mysql  \ 

> --basedir=/usr/local/mysql  \

> --datadir=/usr/local/mysql/data

 

[root@redhat6~LAMP mysql]# cp support-files/my-medium.cnf /usr/local/mysql/my.cnf

在這裏面添加兩項

basedir=/usr/local/mysql 

datadir=/usr/local/mysql/data

 

(3)設置mysqld的開機啓動

[root@centos6 ~]# cp support-files/mysql.server /etc/init.d/mysql

[root@centos6 ~]# chmod 755 /etc/init.d/mysql

[root@centos6 ~]# chkconfig mysql on

可使用chkconfig –list | grep mysql 命令查詢剛纔的設置情況。

 

再修改root密碼:

/usr/local/mysql/bin/mysqladmin -u root password 'mysql'

啓動mysql服務:

[root@centos6 ~]# /etc/init.d/mysql start

啓動完成之後用ps -ef |grep mysql 命令查看是否啓動

 

(4)爲MySQL配置環境變量

mysqlbin目錄加到PATH中,有利於以後管理和維護,在/etc/prof

ile中加入myslq/bin,同時增加兩個別名方便操作。

注:後面兩個別名不加也可以,加上以後的操作更方便。

[root@centos6 ~]# export PATH=$PATH:/usr/local/mysql/bin

[root@redhat6~LAMP ~]# source /etc/profile

登陸mysql

[root@centos6 ~]# mysql -u root -p

[輸入密碼後如果可以正常登錄則證明安裝ok]


五、編譯安裝php

安裝PHP之前,需要先安裝libXpm-devel,否則在安裝php的時候會出現下面的錯誤:

/usr/local/src/LAMP/php-5.5.14/ext/gd/gd.c:57:22: error: X11/xpm.h: No such file or directorymake: *** [ext/gd/gd.lo] Error 1

 

(1)編譯安裝libXpm-devel

[root@redhat6 ~]# yum install -y libXpm-devel

[root@redhat6 ~]# rpm -ql libXpm-devel

/usr/bin/cxpm

/usr/bin/sxpm

/usr/include/X11/xpm.h

/usr/lib64/libXpm.so

/usr/lib64/pkgconfig/xpm.pc

/usr/share/man/man1/cxpm.1.gz

/usr/share/man/man1/sxpm.1.gz

查找到libXpm-devel的安裝位置爲/usr/lib64/libXpm.so選項--with-xpm-dir=/usr/lib64添加php的配置選項中

 

[root@redhat6 LAMP]# tar -zxvf php-5.6.11.tar.gz 

[root@redhat6 php-5.6.11]# ./configure 

> --prefix=/usr/local/php \

> --with-config-file-path=/usr/local/php/etc \ //配置文件路徑,指定php.ini位置

> --with-apxs2=/usr/local/apache-2.4.16/bin/apxs \ // apxs功能是使用mod_so中的

//  LoadModule指令,加載指定模塊到 apache,要求 apache 要打開SO模塊

> --with-mysql=/usr/local/mysql \ //mysql安裝目錄,對mysql的支持

> --with-mysqli=/usr/local/mysql/bin/mysql_config \ //mysqli文件目錄,優化支持

> --with-libxml-dir=/usr/local/libxml2 \ //打開libxml2庫的支持

> --with-png-dir=/usr/local/libpng \ //打開對png圖片的支持

> --with-jpeg-dir=/usr/local/jpeg \ //打開對jpeg圖片的支持

> --with-freetype-dir=/usr/local/freetype \ //打開對freetype字體庫的支持

> --with-gd=/usr/local/gd \ //打開gd庫的支持

> --with-zlib-dir=/usr/local/zlib \ //打開zlib庫的支持

> --with-mcrypt=/usr/local/libmcrypt \ //打開libmcrypt庫的支持

> --with-xpm-dir=/usr/lib64 \  //打開libXpm庫的支持

> --enable-soap \ //

> --enable-mbstring=all \ //多字節,字符串的支持

> --enable-sockets //打開 sockets 支持


(2)進行如下所示的配置

安裝完成後,需要建立PHP配置文件。在使用configure命令安裝配置時使用“--with-config-file-path=/usr /local/php/etc/”選項,指定了配置文件的位置。將源碼包下面的php.ini-development 文件複製到/usr/local /php/etc/中,並改名爲php.ini即可,如下所示:

[root@localhost   php-5.4.11]# cp php.ini-development  /usr/local/php/etc/php.ini

修改php.ini ;date.timezone 前面的分號去掉,改成date.timezone ="PRC"

 

更改apache的配置文件,達到解析php文件的目的

編輯配置文件/etc/httpd/httpd.conf,在LoadModule最後面添加以下內容

LoadModule php5_module        modules/libphp5.so  

##通常正確編譯安裝PHP後會自動增加,如果沒有,需要手工添加。

接下來要檢查apache目錄下生成的php動態連接庫文件,在目錄/usr/local/apache/modules,找到是否存在libphp5.so文件。若不存在呢?則說明php安裝不正確。


[root@centos6 ~]# vim /etc/httpd/httpd.conf

在/etc/httpd/conf/httpd.conf文件中添加如下內容:

AddType application/x-compress .Z

AddType application/x-gzip .gz .tgz

Addtype application/x-httpd-php .php .phtml

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

 

將下面一行:

DirectoryIndex index.html

修改爲:

DirectoryIndex  index.php index.html

 

(3)配置結束後重啓Apache

 [root@centos6 ~]#service httpd restart

(4)驗證

Apache服務器的根目錄默認爲:/usr/local/apache/htdocs/,此目錄下面存放資源:

[root@centos6 ~]# vim /usr/local/apache-2.4.16/htdocs/index.php

添加內容爲

<?php

    echo phpinfo();

?>

在客服端驗證,出現下圖說明php搭建成功



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