CentOS 6.3下源碼安裝LAMP(Linux+Apache+Mysql+Php)環境【轉載】

本文轉載自 園友David_Tang的博客,若有侵權請聯繫本人及時刪除,原文地址:php

http://www.cnblogs.com/mchina/archive/2012/11/28/2778779.htmlhtml

CentOS 6.3下源碼安裝LAMP(Linux+Apache+Mysql+Php)環境

1、簡介node

什麼是LAMP
    LAMP是一種Web網絡應用和開發環境,是Linux, Apache, MySQL, Php/Perl的縮寫,每個字母表明瞭一個組件,每一個組件就其自己而言都是在它所表明的方面功能很是強大的組件。
    LAMP這個詞的由來最先始於德國雜誌「c't Magazine」,Michael Kunze在1990年最早把這些項目組合在一塊兒創造了LAMP的縮寫字。這些組件並非開始就設計爲一塊兒使用的,可是,這些軟件都是開源的,能夠很方便的隨時得到並無償使用,這就致使了這些組件常常在一塊兒使用。這些組件的兼容性也在不斷完善,爲了改善不一樣組件之間的協做,已經建立了某些擴展功能,在一塊兒的應用情形變得很是普便,於是成爲目前最流行的web應用基礎架構。
mysql

LAMP的組件
   平臺由四個組件組成,呈分層結構,每一層都提供了整個架構的一個關鍵部分:
   LinuxLinux 處在最底層,提供操做系統。它的靈活性和可定製化的特色意味着它可以產生一種高度定製的平臺,讓其它組件在上面運行。其它組件運行於Linux 之上,可是並不必定侷限於 Linux,也能夠在 Microsoft Windows, Mac OS X 或 UNIX上運行。
   ApacheApache位於第二層,它是一個Web 服務平臺,提供可以讓用戶得到 Web 頁面的機制。Apache 是一款功能強大、穩定、可支撐關鍵任務的Web服務器,Internet 上超過 50% 的網站都使用它做爲 Web 服務器。
   MySQLMySQL 是最流行的開源關係數據庫管理系統,是LAMP的數據存儲端。在 Web 應用程序中,全部賬戶信息、產品信息、客戶信息、業務數據和其餘類型的信息都存儲於數據庫中,經過 SQL 語言能夠很容易地查詢這些信息。
   PHP/PerlPerl是一種靈活的語言,特別是在處理文本要素的時候,這種靈活性使Perl很容易處理經過 CGI接口提供的數據,靈活地運用文本文件和簡單數據庫支持動態要素。PHP 是一種被普遍應用的開放源代碼的多用途腳本語言,它可嵌入到 HTML中,尤爲適合 web 開發。可使用 PHP 編寫能訪問 MySQL 數據庫中的數據和 Linux 提供的一些特性的動態內容。
linux

2、系統環境nginx

系統平臺:CentOS release 5.8 (Final)c++

Apache版本:httpd-2.2.9.tar.gzweb

Mysql 版本:mysql-5.0.41.tar.gzsql

Php版本:php-5.2.6.tar.gzshell

3、安裝前準備

一、庫文件準備

在安裝PHP以前,應先安裝PHP5須要的最新版本庫文件,例如libxml二、libmcrypt以及GD2庫等文件。安裝GD2庫是爲了讓PHP5支 持GIF、PNG和JPEG圖片格式,因此在安裝GD2庫以前還要先安裝最新的zlib、libpng、freetype和jpegsrc等庫文件。並且中間還會穿插安裝一些軟件,讀者能夠按照本節提供的順序安裝。

autoconf-2.61.tar.gz

freetype-2.3.5.tar.gz

gd-2.0.35.tar.gz

jpegsrc.v6b.tar.gz

libmcrypt-2.5.8.tar.gz

libpng-1.2.31.tar.gz

libxml2-2.6.30.tar.gz

zlib-1.2.3.tar.gz

ZendOptimizer-3.2.6-linux-glibc21-i386.tar.gz

phpMyAdmin-3.0.0-rc1-all-languages.tar.gz

二、安裝gcc、gcc-c++編譯器

用gcc -v 命令檢查安裝時使用的編譯工做是否存在

如系統未安裝,在系統聯網的狀況下使用yum install gcc和yum install gcc-c++安裝

三、卸載默認的低版本環境

目前發行的Linux操做系統版本中,若是選擇默認所有安裝,就已經安裝了LAMP環境,可是版本相對都比較低。咱們能夠再安裝一個LAMP環境和原來的並存,可是這樣作沒有必要,由於同時只能開啓一個LAMP環境。所要咱們要在安裝以前,先應檢查一下系統中是否已經安裝了低版本的環境,若是已經安裝過了,中止原來的服務運行,或者把原來的環境卸載掉。

a. 卸載Apache

# rpm -qa | grep httpd

說明:檢查是否安裝了httpd軟件包

# rpm -e httpd-2.2.3-63.el5.centos --nodeps

說明:卸載軟件包, --nodeps 若是有連帶關係,也強制卸載

# cd /etc/httpd/

# rm -rf *

說明:到原來的apache安裝目錄下,將其全部的安裝目錄和文件都刪掉

b. 卸載Mysql

# rpm -qa | grep mysql

# rpm -e mysql-5.0.77-4.el5_4.2 --nodeps

說明:卸載mysql

c. 卸載Php

# rpm -qa | grep php

# rpm -e php-common-5.1.6-27.el5 --nodeps

# rpm -e php-ldap-5.1.6-27.el5 --nodeps

# rpm -e php-cli-5.1.6-27.el5 --nodeps

# rpm -e php-5.1.6-27.el5 --nodeps

說明:卸載PHP

四、關閉selinux,清空防火牆規則

五、使用ssh shell將windows下的13個源碼包上傳到/usr/local/src

六、解包

編寫一個shell腳本tar.sh進行解包。

#!/bin/sh  
cd /usr/local/src
ls *.tar.gz > ls.list        
for TAR in `cat ls.list`  
do
tar -zxvf $TAR
done

執行腳本tar.sh進行解包

七、將源碼包*.tar.gz全都刪除

4、安裝LAMP

一、安裝libxml2

# cd /usr/local/src/libxml2-2.6.30
# ./configure --prefix=/usr/local/libxml2
# make && make install

二、安裝libmcrypt

# cd /usr/local/src/libmcrypt-2.5.8
# ./configure --prefix=/usr/local/libmcrypt
# make && make install

三、安裝zlib

# cd /usr/local/src/zlib-1.2.3
# ./configure
# make && make install

四、安裝libpng

# cd /usr/local/src/libpng-1.2.31
# ./configure --prefix=/usr/local/libpng
# make && make install

五、安裝jpeg6

這個軟件包安裝有些特殊,其它軟件包安裝時若是目錄不存在,會自動建立,但這個軟件包安裝時須要手動建立。

# mkdir /usr/local/jpeg6
# mkdir /usr/local/jpeg6/bin
# mkdir /usr/local/jpeg6/lib
# mkdir /usr/local/jpeg6/include
# mkdir -p /usr/local/jpeg6/man/man1

# cd /usr/local/src/jpeg-6b
# ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
# make && make install

六、安裝freetype

# cd /usr/local/src/freetype-2.3.5
# ./configure --prefix=/usr/local/freetype
# make
# make install

七、安裝autoconf

# cd /usr/local/src/autoconf-2.61
# ./configure
# make && make install

八、安裝GD庫

# cd /usr/local/src/gd-2.0.35
# ./configure \
--prefix=/usr/local/gd2/ \
--enable-m4_pattern_allow \
--with-zlib=/usr/local/zlib/ \
--with-jpeg=/usr/local/jpeg6/ \
--with-png=/usr/local/libpng/ \
--with-freetype=/usr/local/freetype/

# make

出現錯誤:

make[2]: *** [gd_png.lo] Error 1
make[2]: Leaving directory `/usr/local/src/gd-2.0.35'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/gd-2.0.35'
make: *** [all] Error 2

分析:這個問題是由於gd庫中的gd_png.c這個源文件中包含png.h時,png.h沒有找到致使的。

解決:

在編譯文件裏

# vi gd_png.c

將include 「png.h」 改爲 include 「/usr/local/libpng/include/png.h」

其中/usr/local/libpng/爲libpng安裝路徑。

# make install

九、安裝Apache

# cd /usr/local/src/httpd-2.2.9
# ./configure \
--prefix=/usr/local/apache2 \
--sysconfdir=/etc/httpd \
--with-z=/usr/local/zlib \
--with-included-apr \
--enable-so \
--enable-deflate=shared \
--enable-expires=shared \
--enable-rewrite=shared \
--enable-static-support
# make && make install

十、配置Apache

啓動Apache
# /usr/local/apache2/bin/apachectl start

關閉Apache
# /usr/local/apache2/bin/apachectl stop

查看80端口是否開啓
# netstat -tnl|grep 80

訪問Apache服務器

添加自啓動
# echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local

十一、安裝Mysql

添加一個mysql標準組
# groupadd mysql

添加mysql用戶並加到mysql組中
# useradd -g mysql mysql

# cd /usr/local/src/mysql-5.0.41
# ./configure \
--prefix=/usr/local/mysql/ \
--with-extra-charsets=all

出現錯誤:

checking for tgetent in -lncurses... no
checking for tgetent in -lcurses... no
checking for tgetent in -ltermcap... no
checking for tgetent in -ltinfo... no
checking for termcap functions library... configure: error: No curses/termcap library found

分析:缺乏ncurses安裝包

解決:

# yum install ncurses-devel

# make && make install

十二、配置Mysql

建立MySQL數據庫服務器的配置文件
# cp support-files/my-medium.cnf /etc/my.cnf

用mysql用戶建立受權表,建立成功後,會在/usr/local/mysql目錄下生成一個var目錄
# /usr/local/mysql/bin/mysql_install_db --user=mysql

將文件的全部屬性改成root用戶
# chown -R root /usr/local/mysql

將數據目錄的全部屬性改成mysql用戶
# chown -R mysql /usr/local/mysql/var

將組屬性改成mysql組
# chgrp -R mysql /usr/local/mysql

啓動數據庫
# /usr/local/mysql/bin/mysqld_safe --user=mysql &

查看3306端口是否開啓
# netstat -tnl|grep 3306

簡單的測試
# /usr/local/mysql/bin/mysqladmin version

查看全部mysql參數
# /usr/local/mysql/bin/mysqladmin variables

設置Mysql開機自啓動
# cp /usr/local/src/mysql-5.0.41/support-files/mysql.server /etc/rc.d/init.d/mysqld
# chown root.root /etc/rc.d/init.d/mysqld
# chmod 755 /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# chkconfig --list mysqld
# chkconfig --levels 245 mysqld off

1三、Mysql安全性設置

沒有密碼能夠直接登陸本機服務器
# /usr/local/mysql/bin/mysql -u root

查看mysql用戶權限信息
mysql> select * from mysql.user;

刪除非localhost的主機
mysql> DELETE FROM mysql.user WHERE Host='localhost' AND User='';

刷新受權表
mysql> FLUSH PRIVILEGES;

爲root用戶添加密碼
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('abc123');

再次進入Mysql客戶端
# /usr/local/mysql/bin/mysql -u root -h localhost -p

關閉MySQL數據庫
# /usr/local/mysql/bin/mysqladmin -u root -p shutdown

1四、安裝PHP

# cd /usr/local/src/php-5.2.6
# ./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-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-soap  \
--enable-mbstring=all \
--enable-sockets
# make && make install

1五、配置PHP

建立配置文件
# cp php.ini-dist /usr/local/php/etc/php.ini

使用vi編輯apache配置文件
# vi /etc/httpd/httpd.conf

添加這一條代碼
Addtype application/x-httpd-php .php .phtml

重啓Apache
# /usr/local/apache2/bin/apachectl restart

以上安裝步驟能夠寫成一個shell script,詳細參考http://files.cnblogs.com/mchina/lamp.rar

1六、安裝Zend加速器

# cd /usr/local/src/ZendOptimizer-3.2.6-linux-glibc21-i386/
# ./install.sh

1七、安裝phpMyAdmin

拷貝目錄到指定位置並更名爲phpmyadmin
# cp -a  phpMyAdmin-3.0.0-rc1-all-languages /usr/local/apache2/htdocs/phpmyadmin
# cd /usr/local/apache2/htdocs/phpmyadmin/
# cp config.sample.inc.php config.inc.php

1八、配置phpMyAdmin

# vi /usr/local/apache2/htdocs/phpmyadmin/config.inc.php
將auth_type 改成http
$cfg['Servers'][$i]['auth_type'] = 'http';

5、測試

一、編寫info.php文件,查看php配置詳細

# vi /usr/local/apache2/htdocs/info.php

<?php
phpinfo();
?>

經過瀏覽器訪問http://10.0.0.154/info.php,得到php的詳細配置信息

二、Zend加速器信息

三、訪問phpMyAdmin

至此LAMP環境配置完畢。

 

關於LNMP(linux+nginx+mysql+php)服務器環境配置,請參考:

http://www.cnblogs.com/mchina/archive/2012/05/17/2507102.html

 


如下是園友David_Tang的聯繫方式:

David Camp

  • 技術交流,請加QQ羣:

    系統運維技術分享Ⅲ:416491168

  • 業務合做,請聯繫做者QQ:562866602
  • 個人微信號:mchina_tang
  • 給我寫信:mchina_tang@qq.com
  • 個人地址:江蘇·蘇州

咱們永遠相信,分享是一種美德 | We Believe, Great People Share Knowledge...

公告
相關文章
相關標籤/搜索