文章出處

  • Centos6.5 LAMP環境源碼包安裝與配置   http://blog.csdn.net/zhulindan/article/details/72901140 

http://pan.baidu.com/s/1nvNruzv 安裝包百度網盤地址 
LAMP是一種web網絡應用和開發環境,是linux,Apache,MySQL,php/perl的縮寫,每一個字母代表了一個組件,每個組件就其本身而言都是在它所代表的方面功能非常強大的組件。 
Linux:Linux 處在最底層,提供操作系統。它的靈活性和可定制化的特點意味著它能夠產生一種高度定制的平臺,讓其它組件在上面運行。其它組件運行于Linux 之上,但是并不一定局限于 Linux,也可以在 Microsoft Windows, Mac OS X 或 UNIX上運行。 
Apache:Apache位于第二層,它是一個Web 服務平臺,提供可讓用戶獲得 Web 頁面的機制。Apache 是一款功能強大、穩定、可支撐關鍵任務的Web服務器,Internet 上超過 50% 的網站都使用它作為 Web 服務器。 
MySQL:MySQL 是最流行的開源關系數據庫管理系統,是LAMP的數據存儲端。在 Web 應用程序中,所有帳戶信息、產品信息、客戶信息、業務數據和其他類型的信息都存儲于數據庫中,通過 SQL 語言可以很容易地查詢這些信息。 
PHP/Perl:Perl是一種靈活的語言,特別是在處理文本要素的時候,這種靈活性使Perl很容易處理通過 CGI接口提供的數據,靈活地運用文本文件和簡單數據庫支持動態要素。PHP 是一種被廣泛應用的開放源代碼的多用途腳本語言,它可嵌入到 HTML中,尤其適合 web 開發。可以使用 PHP 編寫能訪問 MySQL 數據庫中的數據和 Linux 提供的一些特性的動態內容。

  • 系統環境

系統平臺:CentOS release 6.5 
Apache版本:httpd-2.2.9.tar.gz 
Mysql 版本:mysql-5.5.20.tar.gz 
Php版本:php-5.3.22.tar.gz

安裝前準備: 
安裝gcc、gcc-c++編譯器 
用gcc –v命令檢查安裝時使用的編譯工作是否存在

如果未安裝,在聯網的情況下使用: 
yum install gcc和yum install gcc-c++安裝

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

rpm -q make cmake gcc gcc-c++ zlib-devel libtool libtool-ltdl libtool-ltdl-devel bison ncurses-devel
備注:安裝libpng時需要zlib-devel
    安裝php時需要libtool、libtool-ltdl、libtool-ltdl-devel
    安裝mysql時需要bison、ncurses-devel

如果以上所需環境沒安裝則yum安裝:

yum -y install make cmake gcc gcc-c++ zlib-devel libtool libtool-ltdl libtool-ltdl-devel bison ncurses-devel

在安裝PHP之前,應先安裝PHP5需要的最新版本庫文件,例如libxml2、libmcrypt以及GD2庫等文件。安裝GD2庫是為了讓PHP5支 持GIF、PNG和JPEG圖片格式,所以在安裝GD2庫之前還要先安裝最新的zlib、libpng、freetype和jpegsrc等庫文件。而且中間還會穿插安裝一些軟件

ps -ef|grep mysqld      #查看是否有mysqld進程
        ps 命令用于查看當前正在運行的進程。
        grep 是搜索
ps -aux | grep java     #-aux 顯示所有狀態
 kill 命令用于終止進程
例如: kill -9 [PID]       #-9 表示強迫進程立即停止
通常用 ps 查看進程 PID ,用 kill 命令終止進程
ps [選項]
    -e 顯示所有進程,環境變量
    -f 全格式
    -h 不顯示標題
    -l 長格式
    -w 寬輸出
    a 顯示終端上地所有進程,包括其他用戶地進程
    r 只顯示正在運行地進程
    x 顯示沒有控制終端地進程

查看是否安裝httpd、MySQL、PHP是否安裝:如果安裝了就將其舊版本卸載

  • 卸載Apache
rpm -qa | grep httpd        #檢查是否安裝了httpd軟件包
rpm -e httpd-2.2.3-63.el5.centos --nodeps       
#卸載軟件包, --nodeps: 如果有連帶關系,也強制卸載
cd /etc/httpd/
rm -rf *     #到原來的apache安裝目錄下,將其所有的安裝目錄和文件都刪掉
  • 卸載Mysql
rpm -qa | grep mysql            #檢查是否安裝了mysql軟件包
rpm -e mysql-5.0.77-4.el5_4.2 --nodeps      #卸載mysql
  • 卸載Php
rpm -qa | grep php          #檢查是否安裝了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,清空防火墻規則

    一、查看SELinux狀態命令:

/usr/sbin/sestatus -v   #如果SELinux status參數為enabled即為開啟狀態
    SELinux status:                 enabled

    getenforce                 ##也可以用這個命令檢查

關閉SELinux方法:

        1、臨時關閉(不用重啟機器):
        代碼如下:
        setenforce 0 #設置SELinux 成為permissive模式
        setenforce 1 #設置SELinux 成為enforcing模式
        2、修改配置文件需要重啟機器:
        修改vim /etc/selinux/config 文件
        將SELINUX=enforcing 改為 SELINUX=disabled
        重啟機器即可

使用ssh shell將windows下的13個源碼包上傳到/usr/local/src 解包 
編譯安裝過程介紹: 
1)解壓tar.gz為后綴的壓縮軟件包:LAMP環境搭建所需要的每個軟件的軟代碼文件,都是以tar.gz或.tgz提供給我們的打包壓縮文件,所以我們必須將其解壓再解包。命令如下:

       tar–zxvf *.tar.gz

2)在linux系統中源代碼包安裝過程:LAMP環境搭建所需要的軟件都是使用C語言開發的,所以安裝源代碼文件最少需要配置、編譯和安裝三個步驟 
配置(configure)、編譯(make)、安裝(makeinstall)

  • 安裝LAMP

1、安裝libxml2

cd /usr/local/src/libxml2-2.6.30

./configure --prefix=/usr/local/libxml2

make && make install

2、安裝libmcrypt

cd /usr/local/src/libmcrypt-2.5.8

./configure --prefix=/usr/local/libmcrypt

make && make install

3、安裝zlib

cd /usr/local/src/zlib-1.2.3

CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/zlib/
(用64位元的方法進行編譯)

make && make install

4、安裝libpng

cd /usr/local/src/libpng-1.2.31

./configure --prefix=/usr/local/libpng --enable-shared
    #--enable-shared(建立共享庫使用的GNU的libtool)

make && make install

5、安裝jpeg 
這個軟件包安裝有些特殊,其它軟件包安裝時如果目錄不存在,會自動創建,但這個軟件包安裝時需要手動創建。

mkdir /usr/local/jpeg && mkdir /usr/local/jpeg/bin && mkdir /usr/local/jpeg/lib && mkdir /usr/local/jpeg/include && mkdir -p /usr/local/jpeg/man/man1
    #   mkdir /usr/local/jpeg (創建jpeg軟件的安裝目錄)
    #   mkdir /usr/local/jpeg/bin(創建存放命令的目錄)
    #   mkdir /usr/local/jpeg/lib   (創建jpeg庫文件所在目錄)
    #   mkdir /usr/local/jpeg/include(創建存放頭文件目錄)
    #   mkdir -p /usr/local/jpeg/man/man1(建立存放手冊的目錄)

cd /usr/local/src/jpeg-6b

./configure --prefix=/usr/local/jpeg --enable-shared --enable-static
        #>--enable-shared  \  (生成動態鏈接庫)
        #>--enable-static   (生成靜態鏈接庫)

make && make install

執行make時如果出現如下錯誤:

./libtool --mode=compile gcc-O2  -I. -c ./jcapimin.c
make: ./libtool: Command notfound
make: *** [jcapimin.lo] Error 127

解決方法: 
默認已安裝libtool及libtool-ltdl-devel(如需幫助請看過程2)

[root@localhostjpeg-6b]# find / -name config.sub
/usr/share/libtool/config/config.sub
[root@localhostjpeg-6b]# find / -name config.guess
/usr/share/libtool/config/config.guess

操作如下:
[root@localhostjpeg-6b]# cp -vRp /usr/share/libtool/config/config.sub .

[root@localhostjpeg-6b]# cp -vRp /usr/share/libtool/config/config.guess .

也就是把libtool里面的兩個配置文件拿來覆蓋掉jpeg-6b目錄下的對應文件 
make clean 再重新configure

./configure --prefix=/usr/local/jpeg --enable-shared --enable-static

make && make install

6、安裝freetype

cd /usr/local/src/freetype-2.3.5

./configure --prefix=/usr/local/freetype --enable-shared
        #>--enable-shared(建立共享庫使用的GUN的libtool)

make

安裝 freetype make [install] 錯誤 1 (忽略) 報錯問題

當 make install 時總是:
rm -f /usr/local/modules/freetype/include/freetype2/freetype/cache/*
rmdir /usr/local/modules/freetype/include/freetype2/freetype/cache
rm -f /usr/local/modules/freetype/include/freetype2/freetype/internal/*
rmdir /usr/local/modules/freetype/include/freetype2/freetype/internal
rmdir: ‘/usr/local/modules/freetype/include/freetype2/freetype/internal’: 沒有那個文件或目錄
make: [install] 錯誤 1 (忽略)
/usr/bin/install -c -m 644 ./builds/unix/ft2unix.h \
          /usr/local/modules/freetype/include/ft2build.h
/usr/bin/install -c -m 644 ./builds/unix/ftconfig.h                        \
          /usr/local/modules/freetype/include/freetype2/freetype/config/ftconfig.h
/usr/bin/install -c -m 644 /opt/src/lamp/freetype-2.2.1/objs/ftmodule.h                          \
          /usr/local/modules/freetype/include/freetype2/freetype/config/ftmodule.h
/usr/bin/install -c -m 755 ./builds/unix/freetype-config \
          /usr/local/modules/freetype/bin/freetype-config
/usr/bin/install -c -m 644 ./builds/unix/freetype2.m4 \
          /usr/local/modules/freetype/share/aclocal/freetype2.m4
/usr/bin/install -c -m 644 ./builds/unix/freetype2.pc \
          /usr/local/modules/freetype/lib/pkgconfig/freetype2.pc
(報錯)

解決辦法:

mkdir /usr/local/freetype/include/freetype2/freetype/internal
#需要在freetype的安裝目錄下創建internal 這個目錄然后,
make install

7、安裝autoconf

        cd /usr/local/src/autoconf-2.61

        ./configure

        make && make install

8、安裝GD庫

        cd /usr/local/src/gd-2.0.35

    ./configure --prefix=/usr/local/gd --enable-m4_pattern_allow --with-zlib=/usr/local/zlib/ --with-jpeg=/usr/local/jpeg/ --with-png=/usr/local/libpng/ --with-freetype=/usr/local/freetype/
    #>--enable-m4_pattern_allow \
    #>--with-zlib=/usr/local/zlib/ \  (指定zlib庫文件的位置)
    #>--with-jpeg=/usr/local/jpeg/ \    (指定jpeg庫文件的位置)
    #>--with-png=/usr/local/libpng/ \   (指定png庫文件的位置)
#>--with-freetype=/usr/local/freetype/(指定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沒有找到導致的。 
解決: 
[root@localhostgd-2.0.35]# find / -name gd_png.c 
/usr/local/src/gd-2.0.35/gd_png.c 
[root@localhostgd-2.0.35]# find / -name png.h 
/usr/local/libpng/include/png.h 
[root@localhostgd-2.0.35]# vi gd_png.c 
在編譯文件里

vi gd_png.c

將include “png.h” 改成 include “/usr/local/libpng/include/png.h” 
這里寫圖片描述
其中/usr/local/libpng/為libpng安裝路徑。

make install

9、安裝Apache

    cd /usr/local/src/httpd-2.2.9

./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite
#> --enable-so \      (以動態共享對象編譯)讓apache核心裝載DSO
#>--enable-rewrite  (基于規則的URL操控)啟用重寫功能

     make

     make install

將apache加入開機啟動

cp -vRp /usr/local/apache2/bin/apachectl /etc/init.d/httpd

chmod +x /etc/init.d/httpd 

添加apache服務↓

chkconfig --add httpd

執行chkconfig時,如果出現如下錯誤: 
不支持 chkconfig service httpd does not supportch kconfig apache 
解決方法: 
用chkconfig將自編譯設置為系統服務的時候,httpd 服務不支持chkconfig。 
解決過程如下: 
1.編輯

vim /etc/init.d/httpd
#!/bin/bash
添加:
#chkconfig:345 61 61
#description:Apache httpd

保存后再執行chkconfig

        chkconfig --add httpd
        chkconfig --list|grep httpd
        chkconfig --level 2345 httpd on
        service httpd start

啟動服務時,如果出現如下錯誤:

httpd: Could not reliablydetermine the server's fully qualified domain name, using localhost.localdomainfor ServerName

解決方法:

[root@localhosthttpd-2.2.9]# vi /usr/local/apache2/conf/httpd.conf

找到#ServerName localhost.com:80 把#去掉,再重啟apache即可沒事了

配置Apache

啟動Apache
    # /usr/local/apache2/bin/apachectl start
關閉Apache
    # /usr/local/apache2/bin/apachectl stop
查看80端口是否開啟
    # netstat -tnl|grep 80

訪問Apache服務器 
這里寫圖片描述 
防火墻 
打開防火墻80端口,以使外部網絡可以訪問

    vi /etc/sysconfig/iptables

    -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

    service iptables restart

外部網絡通過瀏覽器訪問

  • 編譯安裝mysql

(最新版本都需要cmake編譯安裝) 
如何清除 cmake 編譯腳本 
刪除文件夾下的文件 rm CMakeCache.txt 
重新編譯即可。 
編譯安裝 MySQL5.5.20

[root@localhostsrc]# groupadd mysql     #添加一個mysql標準組
[root@localhostsrc]# useradd -g mysql mysql #添加mysql用戶并加到mysql組中
[root@localhostlinux]# tar -zxvf mysql-5.5.20.tar.gz
[root@localhostlinux]# cd /usr/local/src/mysql-5.5.20
[root@localhostmysql-5.5.20]#
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ -DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_INNODB_MEMCACHED=1 -DWITH_DEBUG=OFF -DWITH_ZLIB=bundled -DENABLED_LOCAL_INFILE=1 -DENABLED_PROFILING=ON -DMYSQL_MAINTAINER_MODE=OFF -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_TCP_PORT=3306 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1

#cmake-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \           (安裝根目錄)
#-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \   (UNIX socket文件)
#-DDEFAULT_CHARSET=utf8 \     (默認字符集)
#-DDEFAULT_COLLATION=utf8_general_ci \  (默認編碼)
#-DWITH_EXTRA_CHARSETS=utf8,gbk \         (額外的編碼)
#-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \(啟用PERFSCHEMA引擎支持)
#-DWITH_FEDERATED_STORAGE_ENGINE=1 \   (啟用FEDERATED引擎支持)
# -DWITH_PARTITION_STORAGE_ENGINE=1\     (啟用PARTITION引擎支持)
#-DWITH_ARCHIVE_STORAGE_ENGINE=1 \         (啟用ARCHIVE引擎支持)
#-DWITH_READLINE=1 \(使用readline功能)
#-DMYSQL_DATADIR=/usr/local/mysql/data \  (數據庫數據目錄)
#-DMYSQL_TCP_PORT=3306                              (TCP/IP端口)

**mysql常用參數**
# -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                           \    #默認字符

    make

    make install
cp  /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf

修改配置文件

[root@localhostmysql-5.5.20]# vi /etc/my.cnf

[mysqld]
     basedir=/usr/local/mysql
     datadir=/usr/local/mysql/data
     log-error=/usr/local/mysql/data/error.log
     pid-file=/usr/local/mysql/data/mysql.pid

初始化數據庫文件

[root@localhostmysql-5.5.20]# /usr/local/mysql/scripts/mysql_install_db --defaults-flie=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysql.pid --user=mysql

權限設置↓(進入MySQL文件下)

 cd /usr/local/mysql
[root@localhostmysql]# chown -R root .
[root@localhostmysql]# chown -R mysql data
[root@localhostmysql]# chgrp -R mysql .

將mysql加入開機啟動

[root@localhostmysql]# cp -vRp support-files/mysql.server /etc/init.d/mysqld
[root@localhostmysql]# chmod +x /etc/init.d/mysqld

添加mysql服務

[root@localhostmysql]# chkconfig --add mysqld
[root@localhostmysql]# chkconfig --level 345 mysqld on
[root@localhostmysql]# service mysqld start 

無法啟動? 
MySQL: Starting MySQL….. ERROR! The server quit without updating PID file解決辦法 
原因:沒有初始化權限表

[root@localhost ~]# cd /usr/local/mysql
[root@localhost mysql]# chown -R mysql.mysql .
[root@localhost mysql]# su - mysql
[mysql@localhost ~]$ cd /usr/local/mysql
[mysql@localhost mysql]$ scripts/mysql_install_db
[mysql@localhost mysql]$ /usr/local/mysql/bin/mysqld_safe --user=mysql &
[root@localhostmysql]# service mysqld start
或者
[mysql@localhost mysql]$ /etc/init.d/mysqld start

配置mysql

[root@localhostmysql]# bin/mysql

如果mysql進不去MySQL:

ln -s /usr/local/mysql/bin/mysql /usr/bin

有時候安裝好MySQL程序的時候,直接輸入命令MySQL或mysqladmin會發現提示命令不存在,這是由于系統默認會查找/usr/bin下的命令,如果這個命令不在這個目錄下,當然會找不到命令,我們需要做的就是映射一個鏈接到/usr/bin目錄下,相當于建立一個鏈接文件。

首先得知道mysql命令或mysqladmin命令的完整路徑,比如mysql的路徑是:/usr/local/mysql/bin/mysql,我們則可以這樣執行命令:

ln -s /usr/local/mysql/bin/mysql(mysqladmin) /usr/bin  
mysql> deletefrom mysql.user where Host!='localhost'; #(只留允許本機登錄的帳號)
mysql> flushprivileges;  #(刷新授權表)
mysql> setpassword for 'root'@'localhost'=password('123456');  #(設置用戶密碼)
mysql> exit
[root@localhostmysql]# bin/mysql -h localhost -u root -p123456 #(登錄mysql)

編譯安裝php

[root@localhostlinux]# tar -zxvf php-5.3.22.tar.gz
[root@localhostlinux]# cd /usr/local/src/php-5.3.22
[root@localhostphp-5.3.22]# 
./configure --prefix=/usr/local/php --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/jpeg/ --with-freetype-dir=/usr/local/freetype/ --with-gd=/usr/local/gd/ --with-mcrypt=/usr/local/libmcrypt/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets  

**如果出錯,將  --with-gd=/usr/local/gd/  改為 --with-gd  系統gd**

    #./configure --prefix=/usr/local/php \
    #--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/jpeg/ \
    #--with-freetype-dir=/usr/local/freetype/ \
    #--with-gd=/usr/local/gd/ \
    #--with-mcrypt=/usr/local/libmcrypt/ \
    #--with-mysqli=/usr/local/mysql/bin/mysql_config \
    #--enable-soap\         (變量激活SOAP和web services支持)
    #--enable-mbstring=all \    (使多字節字符串支持)
    #--enable-sockets                (變量激活socket通訊特性)
[root@localhostphp-5.3.22]# make
[root@localhostphp-5.3.22]# make install
[root@localhostphp-5.3.22]# cp -vRp php.ini-development /etc/php.ini
[root@localhostphp-5.3.22]# vi /usr/local/apache2/conf/httpd.conf
找到:
    AddType  application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    在后面添加:
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .php5   
找到:
    <IfModule dir_module>
    DirectoryIndex index.html
    </IfModule>
    添加:在index.html后面添加index.php就行啦!
[root@localhostphp-5.3.22]# service httpd stop
[root@localhostphp-5.3.22]# service httpd start
[root@localhostphp-5.3.22]# vi /usr/local/apache2/htdocs/phpinfo.php
添加內容為:
<?php
       phpinfo();
?>  

打開瀏覽器進行訪問,如果出現PHP版本界面,及安裝成功。 
http://xxx.xxx.xxx.xxx./phpinfo.php


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()