LAMP環境搭建【源碼】及應用

源碼搭建LAMP環境的優勢:

1、能夠使用更新的軟件版本

2、大大提高軟件的性能

3、自定義參數,根據自己的需求進行自定義設置

實驗環境:

Red Hat Enterprise Linux 5.4  httpd-2.4.4     mysql-5.6.10  php-5.4.13

將實驗用到的源碼包上傳到rhel-5.4根目錄下

[root@localhost~]# ll

total 57844

drwxr-xr-x 2 rootroot     4096 Jul 10 17:24 Desktop

-rw-r--r-- 1 rootroot    42184 Aug 30 16:16 INSTALL-SOURCE

-rw-r--r-- 1 rootroot   982243 Aug 30 16:14apr-1.4.6.tar.gz

-rw-r--r-- 1 rootroot   829779 Aug 30 16:14apr-util-1.5.1.tar.gz

-rw-r--r-- 1 rootroot  5768373 Aug 30 16:375pxake-2.8.10.2.tar.gz

-rw-r--r-- 1 rootroot  4780289 Aug 30 16:14httpd-2.4.4.tar.bz2

-rw-r--r-- 1 rootroot 35174149 Aug 30 16:15 mysql-5.6.10.tar.gz

-rw-r--r-- 1 rootroot 11545777 Aug 30 16:15 php-5.4.13.tar.bz2

源碼包安裝順序

Httpdàmysqlàphp

掛載光盤並修改yum安裝的配置文件

[root@localhost~]# mkdir /mnt/cdrom                                #創建光盤掛載點

[root@localhost~]# mount /dev/cdrom /mnt/cdrom                     #掛載光盤到光盤掛載點

mount: blockdevice /dev/cdrom is write-protected, mounting read-only

[root@localhost~]# vim /etc/yum.repos.d/rhel-debuginfo.repo         #編輯yum的配置文件

[rhel-Server]

name=Red HatEnterprise Linux Serverbaseurl=file:///mnt/cdrom/Server

enabled=1

gpgcheck=1

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release

檢驗源碼安裝編譯開發環境

[root@localhost~]# yum grouplist |less

DevelopmentLibraries

Development Tools

Legacy SoftwareDevelopment

X SoftwareDevelopment

系統安裝這四個編譯開發環境能夠應對所有的源碼安裝

Apache的源碼安裝:

Httpd安裝需要有apr-1.4.6(可移植性庫文件)以及apr-util-1.5.1(工具)的支持。

我們在安裝httpd服務的軟件包之前,首先需要把apr-1.4.6apr-util-1.5.1安裝,否則安裝httpd會出現錯誤。

[root@localhost~]# tar -zxvf apr-1.4.6.tar.gz -C /usr/local/src/

[root@localhost~]# tar -zxvf apr-util-1.5.1.tar.gz -C /usr/local/src/

[root@localhostsrc]# cd /usr/local/src/apr-1.4.6/

[[email protected]]# less README                      #通過查看幫助文件瞭解安裝步驟

Configuring andBuilding APR on Unix

====================================


Simply;


  ./configure --prefix=/desired/path/of/apr

  make

  make test

  make install

[[email protected]]# ./configure --prefix=/usr/local/apr    #指明配置文件的存放目錄

[[email protected]]# make &&make install                    #執行編譯後執行安裝

[[email protected]]# cd /usr/local/apr/                     #切換到apr安裝目錄查看安裝產生的文件及目錄

[root@localhostapr]# ll

total 16

drwxr-xr-x 2 rootroot 4096 Sep  6 19:00 bin

drwxr-xr-x 2 rootroot 4096 Sep  6 19:00 build-1

drwxr-xr-x 3 rootroot 4096 Sep  6 19:00 include

drwxr-xr-x 3 rootroot 4096 Sep  6 19:00 lib

[root@localhost/]# vim /etc/ld.so.conf.d/apr.conf                  #創建一個配置文件添加apr安裝產生的庫文件的路徑爲了系統其他軟件能夠調用這些庫文件

[root@localhost/]# ll /etc/ld.so.cache                             #查看系統庫的緩存

-rw-r--r-- 1 rootroot 56723 Jul 11 01:18 /etc/ld.so.cache

[root@localhost/]# ldconfig                                        #刷新系統庫的緩存

[root@localhost/]# ll /etc/ld.so.cache                             #再次查看系統庫的緩

-rw-r--r-- 1 rootroot 56885 Sep  6 19:06 /etc/ld.so.cache            存,發現緩存變大了

[root@localhost/]# ldconfig -pv |grep apr                          #查看有關apr的庫文件

      libgstdataprotocol-0.10.so.0 (libc6)=> /usr/lib/libgstdataprotocol-0.10.so.0

      libaprutil-1.so.0 (libc6) =>/usr/lib/libaprutil-1.so.0

      libapr-1.so.0 (libc6) =>/usr/local/apr/lib/libapr-1.so.0

      libapr-1.so.0 (libc6) =>/usr/lib/libapr-1.so.0

      libapr-1.so (libc6) =>/usr/local/apr/lib/libapr-1.so

[root@localhost/]# ln -s /usr/local/apr/include /usr/include/apr    #給安裝產生的頭文件添加鏈接到系統能夠調用的庫文件目錄

[[email protected]]#./configure--prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config                                 #配置apr-util並設置安裝路徑以及apr的可執行文件的路徑

[[email protected]]# make && make install                #編譯並安裝

[[email protected]]# cd /usr/local/apr-util/             #切換到apr-util安裝目錄查看產生的文件及目錄

[root@localhostapr-util]# ll

total 12

drwxr-xr-x 2 rootroot 4096 Sep  6 20:04 bin

drwxr-xr-x 3 rootroot 4096 Sep  6 20:04 include

drwxr-xr-x 4 rootroot 4096 Sep  6 20:04 lib

同樣需要編寫配置文件將安裝產生的庫文件加載到系統,爲了系統其他軟件能夠調用這些庫文件,通過鏈接的方式將產生的頭文件鏈接到系統能夠調用的庫文件目錄

[root@localhostapr-util]# vim /etc/ld.so.conf.d/apr-util.conf        #編寫加載庫文件的配置文件(寫入apr-util庫文件所在路徑)並命名爲apr-util.conf

[root@localhostapr-util]# ldconfig                                   #刷新系統庫文件緩存

[root@localhostapr-util]# ll /etc/ld.so.cache                        #查看系統庫文件緩存文件

-rw-r--r-- 1 rootroot 57073 Sep  6 20:12 /etc/ld.so.cache

[root@localhostapr-util]# ldconfig -pv |grep apr-util                 #查看庫文文件是否已

      libaprutil-1.so.0 (libc6) =>/usr/local/apr-util/lib/libaprutil-1.so.0 加載到系統中

      libaprutil-1.so (libc6) =>/usr/local/apr-util/lib/libaprutil-1.so              

[root@localhostapr-util]# ln -s /usr/local/apr-util /usr/include/apr-util#產生的頭文件鏈接到系統能夠調用的路徑

爲了能夠系統在任何位置能夠調用安裝目錄bin下的可執行文件,我們可以將bin目錄的路徑添加到系統中的PATH環境變量中就可以實現任意調用。

[root@localhostapr-util]# ll bin/

total 8

-rwxr-xr-x 1 rootroot 6453 Sep  6 20:04 apu-1-config

[root@localhostapr-util]# vim /etc/profile                            #系統變量配置文件中追加可執行文件(aprapr-util)的bin目錄路徑

44PATH=$PATH:/usr/local/apr-util/bin:/usr/local/apr/bin               #44行追加的內容

45 export PATHUSER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC

Apache依賴的共享庫以及工具包已經安裝好了,接下來安裝apache

[root@localhost~]# tar -jxvf httpd-2.4.4.tar.bz2 -C /usr/local/src/   #源碼拆解

[root@localhost httpd-2.4.4]#less INSTALL                             #查看源碼安裝的說明文件INSTALL

For completeinstallation documentation, see [ht]docs/manual/install.html or

 http://httpd.apache.org/docs/2.4/install.html                       #指出安裝的主要步驟

    $ ./configure --prefix=PREFIX

    $ make

    $ make install

    $ PREFIX/bin/apachectl start

[root@localhost httpd-2.4.4]#./configure –help                       #查看幫助可以添加自定義的參數

[[email protected]]# ./configure \        

>--prefix=/usr/local/apache \                                         #自定義安裝路徑

>--sysconfdir=/etc/httpd \                                            #自定義配置文件存放路徑

> --enable-so \                                                       #啓用模塊化

>--enable-mods-shared=most \                                          #啓用大部分共享模塊

> --enable-ssl\                                                       #啓用ssl加密訪問

>--enable-mpms-shared=all \                                           #啓用所有的mpms

>--enable-rewrite \                                                   #啓用地址重寫功能

>--with-apr=/usr/local/apr/bin/apr-1-config \                         #指明apr可執行文件路徑

>--with-apr-util=/usr/local/apr-util/bin/apu-1-config \               #指明apr-util的執行文件路徑

> --with-z      \                                                     #使用特殊的zlib

>--with-pcre                                                          #使用擴展的PCRE庫,系統首先已安裝pcrepcre-devel兩個軟件包,否則會報錯。

[[email protected]]# make && make install                     #編譯並安裝

[root@localhostapache]# ll

total 52

drwxr-xr-x  2 root root 4096 Sep  7 09:26 bin

drwxr-xr-x  2 root root 4096 Sep  7 09:27 build

drwxr-xr-x  2 root root 4096 Sep  7 09:26 cgi-bin

drwxr-xr-x  3 root root 4096 Sep  7 09:26 error

drwxr-xr-x  2 root root 4096 Sep  6 20:38 htdocs

drwxr-xr-x  3 root root 4096 Sep  7 09:26 icons

drwxr-xr-x  2 root root 4096 Sep  7 09:27 include

drwxr-xr-x  2 root root 4096 Sep  7 09:26 logs

drwxr-xr-x  4 root root 4096 Sep  7 09:27 man

drwxr-xr-x 14 rootroot 12288 Feb 19  2013 manual

drwxr-xr-x  2 root root 4096 Sep  7 09:26 modules

將產生的bin目錄下的系統服務文件路徑添加到系統環境變量文件中,紅色字體是44行追加內容

44PATH=$PATH:/usr/local/apr-util/bin:/usr/local/apr/bin:/usr/local/apache/bin

45 export PATHUSER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC

安裝產生的頭文件使用鏈接的方式添加到系統能夠調用的頭文件目錄

[root@localhostapache]# ln -s /usr/local/apache/include/ /usr/include/apache

[root@localhostapache]# vim /etc/man.config                           #編輯系統man手冊的配置文件,添加httpd產生的man手冊所在目錄的路徑,在系統下能夠查看有關httpdman手冊

43 MANPATH/usr/man

44 MANPATH/usr/share/man

45 MANPATH/usr/local/man

46 MANPATH/usr/local/share/man

47 MANPATH/usr/X11R6/man

48 MANPATH/usr/local/apache/man   #47行下邊追加apacheman目錄的路徑

[root@localhostapache]# cd /etc/init.d/                               #系統服務控制腳本存放目錄

[[email protected]]# vim httpd                                     #編寫httpd的服務控制腳本

#!/bin/sh

#set -x

HTTPD='/usr/local/apache/bin/httpd'                                   #變量httpd執行文件的路徑

CONFFILE='/etc/httpd/httpd.conf'                                      #變量conffile配置文件的路徑

#description: httpserver                                              #chkconfig說明文字,可以

#chkconfig: 234588 60                                                 #使用chkconfig控制開機自啓動

start(){

     [ -f /var/lock/subsys/httpd ]&&echo "apache is started" && exit

    echo -n "starting apache......"

       sleep 1

    $HTTPD -f $CONFFILE && RETVAL=0 ||RETVAL=1

    [ $RETVAL -eq 0 ]&& touch/var/lock/subsys/httpd && echo "ok" || echo"fail"    

}

stop(){

    [ ! -f /var/lock/subsys/httpd ] && echo "httpd is stoped..."&& exit

    echo -n "stoping httpd........"

       sleep 1

    /bin/rm -rf /var/lock/subsys/httpd

    $HTTPD -k stop  && RETVAL=0||RETVAL=1

    [ $RETVAL -eq 0 ] && rm -rf/var/lock/subsys/httpd && echo "ok" || echo "fail"

}

case $1 in

start)

       start

       ;;

stop)

       stop

       ;;

restart)

      stop

      start

       ;;

*)

       echo "start|stop|restart"

       ;;

esac

[[email protected]]# chmod a+x httpd                                   #添加可執行權限

[[email protected]]# service httpd start                               #打開httpd服務

startingapache......ok

[[email protected]]# netstat -tupln |grep httpd                        #查看有關httpd的端口

tcp   0    0:::80        :::*                    LISTEN      21780/httpd    

能夠看到下面這個網頁頁面說明我們的apache搭建已經ok

[[email protected]]# service httpd stop                      #停止httpd服務

stopinghttpd........ok

[[email protected]]# netstat -tupln |grep httpd              #查看有關httpd服務的端口

Httpd服務一旦停止,我們就無法訪問我們的站點網頁。

[[email protected]]# chkconfig --add httpd                     #添加chkconfig管理httpd

[[email protected]]# chkconfig --list |grep httpd              #httpd服務在運行級別下的默認狀態

httpd                 0:off       1:off       2:on       3:on       4:on       5:on       6:off  

[[email protected]]# ll /etc/rc3.d/ |grep httpd                #查看httpd在運行級別3下的狀態信息

lrwxrwxrwx 1 rootroot 15 Sep  7 10:46 S88httpd ->../init.d/httpd  

mysql的二進制安裝:

我們的httpd服務已經搭建好了,接下來我們就需要安裝mysql,因爲安裝mysql的源碼包太浪費時間,少則二十分鐘,根據PC機硬件的不同,具體時間不確定。爲了節約時間,這裏就是用綠色免安裝的二進制mysql代替。

[root@localhost~]# tar -zxcf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local/   #拆解mysql到用戶本地目錄

[root@localhost~]# cd /usr/local                                                #切換到軟件包拆解目錄並查看目錄及文件

[root@localhostlocal]# ll

total 88

drwxr-xr-x 13 rootroot 4096 Sep  7 09:39 apache

drwxr-xr-x  6 root root 4096 Sep  6 19:00 apr

drwxr-xr-x  5 root root 4096 Sep  6 20:04 apr-util

drwxr-xr-x  2 root root 4096 Aug  8  2008bin

drwxr-xr-x  2 root root 4096 Aug  8  2008etc

drwxr-xr-x  2 root root 4096 Aug  8  2008games

drwxr-xr-x  2 root root 4096 Aug  8  2008include

drwxr-xr-x  2 root root 4096 Aug  8  2008lib

drwxr-xr-x  2 root root 4096 Aug  8  2008libexec

drwxr-xr-x 13 rootroot 4096 Sep  7 11:13mysql-5.5.15-linux2.6-i686

drwxr-xr-x  2 root root 4096 Aug  8  2008sbin

drwxr-xr-x  4 root root 4096 Jul 11 01:02 share

drwxr-xr-x  5 root root 4096 Sep  6 20:38 src

[root@localhostlocal]# ln -s mysql-5.5.15-linux2.6-i686 mysql     #爲訪問目錄的方便,創建目錄的鏈接

[root@localhostlocal]# cd mysql                                   #切換到mysql目錄

[root@localhostmysql]# ll

total 76

-rw-r--r--  1 7161 wheel 17987 Jul 14  2011 COPYING

-rw-r--r--  1 7161 wheel 7604 Jul 14  2011 INSTALL-BINARY

-rw-r--r--  1 7161 wheel 2552 Jul 14  2011 README

drwxr-xr-x  2 root root  4096 Sep  7 11:13 bin

drwxr-xr-x  4 root root  4096 Sep  7 11:13 data

drwxr-xr-x  2 root root  4096 Sep  7 11:13 docs

drwxr-xr-x  3 root root  4096 Sep  7 11:13 include

drwxr-xr-x  3 root root  4096 Sep  7 11:13 lib

drwxr-xr-x  4 root root  4096 Sep  7 11:13 man

drwxr-xr-x 10 rootroot   4096 Sep  7 11:13 mysql-test

drwxr-xr-x  2 root root  4096 Sep  7 11:13 scripts

drwxr-xr-x 27 rootroot   4096 Sep  7 11:13 share

drwxr-xr-x  4 root root  4096 Sep  7 11:13 sql-bench

drwxr-xr-x  2 root root  4096 Sep  7 11:13 support-files

[root@localhostmysql]# vim INSTALL-BINARY                          #查看安裝說明文件,可以根據這些步驟順利的安裝mysql軟件包。

76    To install and use a MySQL binarydistribution, the basic command

77    sequence looks like this:

78 shell>groupadd mysql                                          

79 shell>useradd -r -g mysql mysql

80 shell> cd/usr/local

81 shell> tarzxvf /path/to/mysql-VERSION-OS.tar.gz

82 shell> ln -sfull-path-to-mysql-VERSION-OS mysql

83 shell> cdmysql

84 shell> chown-R mysql .

85 shell> chgrp-R mysql .

86 shell>scripts/mysql_install_db --user=mysql

87 shell> chown-R root .

88 shell> chown-R mysql data

89 # Next commandis optional

90 shell> cpsupport-files/my-medium.cnf /etc/my.cnf

91 shell>bin/mysqld_safe --user=mysql &

92 # Next commandis optional

93 shell> cpsupport-files/mysql.server /etc/init.d/mysql.server

[root@localhostmysql]# groupadd -r mysql                            #創建mysql

[root@localhostmysql]# useradd -r -g mysql mysql -s /sbin/nologin   #mysql組創建mysql用戶並指定shell的存放路徑

[root@localhostmysql]# chown -R mysql:mysql .                       #目錄下所有文件改變所屬用戶以及所屬組爲mysql,爲了mysql數據庫初始化

[root@localhostmysql]# ll

total 76

-rw-r--r--  1 mysql mysql 17987 Jul 14  2011 COPYING

-rw-r--r--  1 mysql mysql 7604 Jul 14  2011 INSTALL-BINARY

-rw-r--r--  1 mysql mysql 2552 Jul 14  2011 README

drwxr-xr-x  2 mysql mysql 4096 Sep  7 11:13 bin

drwxr-xr-x  4 mysql mysql 4096 Sep  7 11:13 data

drwxr-xr-x  2 mysql mysql 4096 Sep  7 11:13 docs

drwxr-xr-x  3 mysql mysql 4096 Sep  7 11:13 include

drwxr-xr-x  3 mysql mysql 4096 Sep  7 11:13 lib

drwxr-xr-x  4 mysql mysql 4096 Sep  7 11:13 man

drwxr-xr-x 10mysql mysql  4096 Sep  7 11:13 mysql-test

drwxr-xr-x  2 mysql mysql 4096 Sep  7 11:13 scripts

drwxr-xr-x 27mysql mysql  4096 Sep  7 11:13 share

drwxr-xr-x  4 mysql mysql 4096 Sep  7 11:13 sql-bench

drwxr-xr-x  2 mysql mysql 4096 Sep  7 11:13 support-files

[root@localhostmysql]# scripts/mysql_install_db --user=mysql           #初始化數據庫

Installing MySQLsystem tables...

OK

Filling helptables...

OK


To start mysqld atboot time you have to copy

support-files/mysql.serverto the right place for your system


PLEASE REMEMBER TOSET A PASSWORD FOR THE MySQL root USER !

To do so, startthe server, then issue the following commands:


./bin/mysqladmin-u root password 'new-password'

./bin/mysqladmin-u root -h localhost.localdomain password 'new-password'


Alternatively youcan run:

./bin/mysql_secure_installation


which will alsogive you the option of removing the test

databases andanonymous user created by default.  Thisis

stronglyrecommended for production servers.


See the manual formore instructions.


You can start theMySQL daemon with:

cd . ;./bin/mysqld_safe &


You can test theMySQL daemon with mysql-test-run.pl

cd ./mysql-test ;perl mysql-test-run.pl


Please report anyproblems with the ./bin/mysqlbug script!

[root@localhostmysql]# chown -R root .                  #將目錄下所有文件所屬用戶改爲root

[root@localhostmysql]# chown -R mysql data/             #因爲data目錄的特殊性,需要使用mysql用戶寫入數據,改變所屬用戶爲mysql

[root@localhostmysql]# ll                               #改變所屬用戶後的目錄信息

total 76

-rw-r--r--  1 root mysql 17987 Jul 14  2011 COPYING

-rw-r--r--  1 root mysql  7604 Jul 14  2011 INSTALL-BINARY

-rw-r--r--  1 root mysql  2552 Jul 14  2011 README

drwxr-xr-x  2 root mysql  4096 Sep  7 11:13 bin

drwxr-xr-x  5 mysql mysql 4096 Sep  7 11:28 data

drwxr-xr-x  2 root mysql  4096 Sep  7 11:13 docs

drwxr-xr-x  3 root mysql  4096 Sep  7 11:13 include

drwxr-xr-x  3 root mysql  4096 Sep  7 11:13 lib

drwxr-xr-x  4 root mysql  4096 Sep  7 11:13 man

drwxr-xr-x 10root  mysql  4096 Sep 7 11:13 mysql-test

drwxr-xr-x  2 root mysql  4096 Sep  7 11:13 scripts

drwxr-xr-x 27root  mysql  4096 Sep 7 11:13 share

drwxr-xr-x  4 root mysql  4096 Sep  7 11:13 sql-bench

drwxr-xr-x  2 root mysql  4096 Sep  7 11:13 support-files

[root@localhostmysql]# cp support-files/my-medium.cnf /etc/my.cnf       #拷貝樣例配置文件到系統etc目錄下並命名爲my.cnf

[root@localhostmysql]# cp support-files/mysql.server /etc/init.d/mysqld #拷貝樣例控制腳本到系統服務目錄並命名爲mysqld

root@localhostmysql]# ll /etc/init.d/mysqld                             #查看mysql的控制腳本的權限

-rwxr-xr-x 1 rootroot 10650 Sep  7 11:30/etc/init.d/mysqld

[root@localhostmysql]# service mysqld start                             #啓動mysqld服務

StartingMySQL...                                         [  OK  ]

[root@localhostmysql]# netstat -tupln |grep mysqld                      #查看到mysqld3306端口打開  

tcp   0     0 :::3306         :::*              LISTEN     22512/mysqld  

[root@localhostmysql]# service mysqld stop                              #停止mysqld服務

Shutting downMySQL.                                      [  OK  ]

[root@localhostmysql]# netstat -tupln |grep mysqld                      #再次查看mysqld的服務端口

[root@localhostmysql]# service mysqld restart                           #重啓mysqld服務

Shutting downMySQL.                                      [  OK  ]

StartingMySQL..                                           [ OK  ]  

[root@localhostmysql]# cd bin/

[root@localhostbin]# ls                                                 #可以看到很多的執行文件

innochecksum                mysql_secure_installation  mysqld_multi

msql2mysql                  mysql_setpermission        mysqld_safe

my_print_defaults           mysql_tzinfo_to_sql        mysqldump

myisam_ftdump               mysql_upgrade              mysqldumpslow

myisamchk                   mysql_waitpid              mysqlhotcopy

myisamlog                   mysql_zap                  mysqlimport

myisampack                  mysqlaccess                mysqlshow

mysql                       mysqlaccess.conf           mysqlslap

mysql_client_test           mysqladmin                 mysqltest

mysql_client_test_embedded  mysqlbinlog                mysqltest_embedded

mysql_config                mysqlbug                   perror

mysql_convert_table_format  mysqlcheck                 replace

mysql_find_rows             mysqld                     resolve_stack_dump

mysql_fix_extensions        mysqld-debug               resolveip

[root@localhostmysql]# vim /etc/profile                                #爲了能夠在任意地方使用這些執行文件,我們需要把bin目錄的路徑添加到系統變量文件中

44PATH=$PATH:/usr/local/apr-util/bin:/usr/local/apr/bin:/usr/local/apache/bin:/usr/local/mysql/bin #紅色字體爲44行追加內容

45 export PATHUSER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC  

[root@localhostbin]# . /etc/profile                                    #可以選擇重啓系統或者使用此命令刷新系統環境變量

[root@localhostbin]# echo $PATH                                        #輸出系統環境變量

/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/apr-util/bin:/usr/local/apr/bin:/usr/local/apache/bin:/usr/local/mysql/bin:/root/bin:/usr/local/apr-util/bin:/usr/local/apr/bin:/usr/local/apache/bin:/usr/local/mysql/bin

[root@localhostmysql]# ls lib/

libmysqlclient.a          libmysqlclient_r.so         libmysqlservices.a

libmysqlclient.so         libmysqlclient_r.so.18      libtcmalloc_minimal.so

libmysqlclient.so.18      libmysqlclient_r.so.18.0.0  libtcmalloc_minimal.so.0

libmysqlclient.so.18.0.0  libmysqld-debug.a           plugin

libmysqlclient_r.a        libmysqld.a      

[root@localhostmysql]# vim /etc/ld.so.conf.d/mysql.conf            #在系統下編輯一個庫文件配置文件

/usr/local/mysql/lib                                               #配置文件內容爲庫文件路徑

[root@localhost mysql]# ldconfig                                   #刷新系統庫文件緩存

[root@localhost mysql]# ldconfig -pv |grep mysql                   #檢查mysql庫文件是否加載到系統庫

libtcmalloc_minimal.so.0 (libc6) =>/usr/local/mysql/lib/libtcmalloc_minimal.so.0

libmysqlclient.so.18 (libc6) =>/usr/local/mysql/lib/libmysqlclient.so.18

libmysqlclient.so (libc6) =>/usr/local/mysql/lib/libmysqlclient.so

[root@localhost mysql]# ln -s /usr/local/mysql/include//usr/include/mysql  #鏈接頭文件到系統能夠識別的頭文件目錄下

[root@localhost mysql]# mysql                                              #進入mysql數據庫

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.5.15-log MySQL Community Server (GPL)


Copyright (c) 2000, 2010, Oracle and/or its affiliates.All rights reserved.


Oracle is a registered trademark of Oracle Corporationand/or its

affiliates. Other names may be trademarks of theirrespective

owners.


Type 'help;' or '\h' for help. Type '\c' to clear thecurrent input statement.


mysql> show database;                                                      #查看mysql默認數據庫

ERROR 1064 (42000): You have an error in your SQL syntax;check the manual that corresponds to your MySQL server version for the rightsyntax to use near 'database' at line 1

mysql> show databases;

+--------------------+

| Database          |

+--------------------+

| information_schema |

| mysql             |

| performance_schema |

| test              |

+--------------------+

4 rows in set (0.00 sec)


mysql> q

   -> \q

Bye

[root@localhost mysql]# mysqladmin -u root -p password'123'                #爲了數據庫的安全性,爲mysql數據庫賬戶添加密碼

Enter password:

[root@localhost support-files]# vim /etc/init.d/mysqld                     #查看mysqld的控制腳本,可以看到chkconfig的聲明文件已存在

# chkconfig: 2345 64 36

# description: A very fast and reliable SQL databaseengine.

[root@localhost support-files]# chkconfig --add mysqld                      #mysqld添加到系統默認級別開啓的chkconfig

[root@localhost support-files]# chkconfig --list |grepmysqld                            #mysqld2345運行級別都是默認開啓的服務

mysqld               0:off       1:off       2:on       3:on       4:on       5:on       6:off

php的源碼安裝:

[root@localhost ~]# tar -jxvf php-5.4.13.tar.bz2 -C /usr/local/src/          #拆解php源碼包

[root@localhost ~]# cd /usr/local/src/php-5.4.13/                            #切換到拆解的源碼包目錄

[root@localhost php-5.4.13]# vim INSTALL                                     #通過查看目錄下的安裝說明文件,根據步驟安裝php

368 Apache 2.x on Unix systems

370    This  section contains notes and hints specific to Apache 2.x installs

371    of PHP onUnix systems.

396  1. Obtain  the Apache HTTP server from the location listed above, and

397        unpackit:

398 gzip -d httpd-2_x_NN.tar.gz

399 tar -xf httpd-2_x_NN.tar

401     2. Likewise, obtain and unpack the PHP source:

402 gunzip php-NN.tar.gz

403 tar -xf php-NN.tar

405     3.Build  and install Apache. Consult theApache install documentation

406        for moredetails on building Apache.

407 cd httpd-2_x_NN

408 ./configure --enable-so

409 make

410 make install

411

412   4. Now  you have  Apache  2.x.NN available under /usr/local/apache2,

413  configured  with loadable  module  support and  the  standard MPM

414       prefork.  To test  the  installation use your normal procedure for

415       startingthe Apache server, e.g.:

416 /usr/local/apache2/bin/apachectl start

418        and stopthe server to go on with the configuration for PHP:

419 /usr/local/apache2/bin/apachectl stop

420

421   5. Now,  configure and build PHP. This is where youcustomize PHP with

422   various  options, like  which  extensions will  be  enabled. Run

423 ./configure --help for a list of available options. In our example

424      we'll do asimple configure with Apache 2 and MySQL support.

425       If you  built  Apache from  source, as described above,the below

426       example  will match your path for apxs, but if youinstalled Apache

427       someother way, you'll need to adjust the path to apxs accordingly.

428       Note thatsome distros may rename apxs to apxs2.

429 cd ../php-NN

430 ./configure --with-apxs2=/usr/local/apache2/bin/apxs--with-mysql

431 make

432 make install

441     6. Setupyour php.ini

442 cp php.ini-development /usr/local/lib/php.ini

449     7.Edit  your httpd.conf to load the PHPmodule. The path on the right

450       hand sideof the LoadModule statement must point to the path of the

451     PHP module  on  your system. The make install from above may have

452     already added this for you, but be sure tocheck.

453 LoadModule php5_module modules/libphp5.so

通過以上說明文件及步驟能夠順利的安裝php

[root@localhost php-5.4.13]# ./configure \

> --prefix=/usr/local/php \                                    #指定安裝路徑

> --sysconfdir=/etc/php \                                      #指定配置文件路徑

> --with-apxs2=/usr/local/apache/bin/apxs \                    #共享使用apache的模塊工具

> --with-gd \                                                  #圖形的支持

> --with-jpeg-dir \                                            #jpeg圖片支持

> --with-png-dir \                                             #png圖片支持

> --with-zlib-dir \                                            #壓縮文件的支持

> --enable-mbstring \                                          #字符串的支持

> --with-mysql=/usr/local/mysql \                              #結合使用mysql數據庫

> --with-mysqli=/usr/local/mysql/bin/mysql_config #phpmysql結合文件

[root@localhost php-5.4.13]# make && make install              #執行編譯並安裝

[root@localhost php-5.4.13]# cd /usr/local/php                 #切換到php安裝目錄查看產生文件及目錄

[root@localhost php]# ll

total 16

drwxr-xr-x 2 root root 4096 Sep  7 16:33 bin

drwxr-xr-x 3 root root 4096 Sep  7 16:33 include

drwxr-xr-x 3 root root 4096 Sep  7 16:32 lib

drwxr-xr-x 3 root root 4096 Sep  7 16:32 php

[root@localhost php]# bin/php –m                              #查看php支持的模塊

[PHP Modules]

Core

ctype

date

dom

ereg

fileinfo

filter

gd

hash

iconv

json

libxml

mbstring

mysql

mysqli

pcre

PDO

pdo_sqlite

Phar

posix

Reflection

session

SimpleXML

SPL

sqlite3

standard

tokenizer

xml

xmlreader

xmlwriter

zlib


[Zend Modules]

[root@localhost php]# vim /etc/profile                            #php產生的執行文件目錄bin添加到系統環境變量

44PATH=$PATH:/usr/local/apr-util/bin:/usr/local/apr/bin:/usr/local/apache/bin:/usr/local/mysql/bin:/usr/local/php/bin

45 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZEINPUTRC

[root@localhost php]# . /etc/profile                              #刷新系統環境變量

[root@localhost php]# vim /etc/httpd/httpd.conf                   #查看httpd的配置文件

147 LoadModule php5_module        modules/libphp5.so              #在配置文件中已添加php的模塊

[root@localhost ~]# vim /etc/httpd/httpd.conf                     #編輯httpd的配置文件

246 AddType application/x-httpd-php .php .html                    #添加對php網頁的支持,在246行追加的內容

247 <IfModule dir_module>

248    DirectoryIndex index.php index.html                        #紅色字體是追加的內容,能夠處理類似index.php網頁

249 </IfModule>                            

[root@localhost ~]# service httpd restart

stoping httpd........ok

starting apache......ok

測試環境:

做到這裏,我們的源碼搭建LAMP環境已經ok了,我們就做個測試。

[root@localhost htdocs]# mv index.html index.php

[root@localhost htdocs]# vim  index.php                           #編輯httpd默認主頁

<html><body><h1>Itworks!</h1></body></html>

<?php                                                             #追加php語法,測試

phpinfo();                                                        apachephp的結合

?>

[root@localhosthtdocs]# vim index.php                                

<html><body><h1>Itworks!</h1></body></html>

<?php                                             #追加內容測試phpmysql的結合

$link=mysql_connect('127.0.0.1','root','123');    #輸入mysql數據庫的地址及賬號密碼

if($link)

echo"ok";                                         #連接mysql數據庫成功輸出顯示“ok

else

echo"error";                                      #連接mysql數據庫不成功輸出顯示“error

?>

[root@localhost htdocs]# service mysqld stop      #停止mysqld服務再次測試phpmysql的結合

Shutting down MySQL.                                       [  OK  ]

經過測試,apachemysqlphp三者能夠很好的結合在一起,我們的LAMP環境已經搭建好了。

案例1discuz論壇安裝

[root@localhost ~]# ll

total 10328

drwxr-xr-x 2 root root     4096 Jul 10 17:24Desktop

-rw-r--r-- 1 root root 10485407 Aug 26 16:38 Discuz_X3.0_SC_GBK.zip

-rw------- 1 root root     1176 Jul 11 01:19anaconda-ks.cfg

-rw-r--r--  1 root root   35236 Jul 11 01:19 install.log

-rw-r--r-- 1 root root     3995 Jul 11 01:17install.log.syslog

drwxr-xr-x 2 root root     4096 Aug  2 14:17 readme

drwxr-xr-x 12 root root     4096 Aug 2 14:17 upload

drwxr-xr-x 4 root root     4096 Aug  2 14:17 utility

[root@localhost ~]# mv ./upload//var/www/html/discus   #將網站目錄上傳到站點默認主目錄

[root@localhost html]# service httpdrestart                     #重啓httpd服務再次查看安裝頁面

Stopping httpd:                                          [  OK  ]

Starting httpd:                                          [  OK  ]

[root@localhost discuz]# ls -a

.         archiver         data         index.php   portal.php template

..        config           favicon.ico  install    robots.txt  uc_client

admin.php connect.php      forum.php    member.php search.php  uc_server

api       cp.php           group.php    misc.php   source      userapp.php

api.php   crossdomain.xml  home.php     plugin.php static

[root@localhostdiscuz]# chmod -R a+w config data uc_client uc_server        #這些目錄要求可寫入,爲了目錄安全性,我們只需將安裝環境需要可寫入的目錄設置爲可寫,由於我們是做實驗,我們就簡化這些操作,不再一一修改權限。

安裝數據庫需要我們添加相關信息,如果某些參數填寫與實際不符,必將產生錯誤

安裝數據庫

安裝完成

論壇主頁

登錄論壇後臺(管理中心)

在論壇的後臺可以任意添加修改板塊以及其他衆多設置

[root@localhost ~]# mysql -u root –p          #使用root賬戶及密碼登錄mysql數據庫

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 16

Server version: 5.0.77 Source distribution


Type 'help;' or '\h' for help. Type '\c' toclear the buffer.


mysql> show databases;                        #查看安裝discuz論壇產生的數據庫

+--------------------+

| Database           |

+--------------------+

| information_schema |

| discuz            |

| mysql            |

| test             |

+--------------------+

4 rows in set (0.00 sec)


mysql> use discuz;

Reading table information for completion oftable and column names

You can turn off this feature to get aquicker startup with -A


Database changed

mysql> show tables;                          #論壇數據庫建立了286張表

+-----------------------------------+

| Tables_in_discuz                  |

+-----------------------------------+

| pre_common_admincp_cmenu          |


| pre_ucenter_notelist              |

| pre_ucenter_pm_indexes           |

| pre_ucenter_pm_lists              |

| pre_ucenter_pm_members          |

| pre_ucenter_pm_messages_0        |

| pre_ucenter_pm_messages_1        |

| pre_ucenter_pm_messages_2        |

| pre_ucenter_pm_messages_3        |

| pre_ucenter_pm_messages_4        |

| pre_ucenter_pm_messages_5        |

| pre_ucenter_pm_messages_6        |

| pre_ucenter_pm_messages_7        |

| pre_ucenter_pm_messages_8        |

| pre_ucenter_pm_messages_9        |

| pre_ucenter_protectedmembers      |

| pre_ucenter_settings               |

| pre_ucenter_sqlcache              |

| pre_ucenter_tags                  |

| pre_ucenter_vars                  |

+-----------------------------------+

286 rows in set (0.01 sec)

由於字符界面的管理數據庫有些麻煩,我們可以藉助phpmyadmin在網頁上管理我們的數據庫。

[root@localhost ~]# mvphpMyAdmin-2.11.10.1-all-languages    /var/www/html/phpmyadmin                          #將解壓後的phpmyadmin目錄移動到網站主目錄

[root@localhost ~]# cd/var/www/html/phpmyadmin/

[root@localhost phpmyadmin]# cp -p config.sample.inc.php config.inc.php      #拷貝樣例配置文件進行修改,解決遇到的無法登錄數據庫的錯誤

登錄頁面出現“無法加載mcrypt擴展”,只需將mcrypt的軟件包安裝即可

[root@localhost ~]# ls

libmcrypt-2.5.7-5.el5.i386.rpm          php-mcrypt-5.1.6-5.el5.i386.rpm      Discuz_X3.0_SC_GBK.zip  readme     wordpress_v3.0.5-zh_CN.zip

[root@localhost ~]# rpm -ivh     php-mcrypt-5.1.6-5.el5.i386.rpm

warning: php-mcrypt-5.1.6-5.el5.i386.rpm:Header V3 DSA signature: NOKEY, key ID 217521f6

error: Failed dependencies:

      libmcrypt.so.4is needed by php-mcrypt-5.1.6-5.el5.i386

安裝出現依賴關係,先安裝依賴共享庫的軟件包

[root@localhost ~]# rpm -ivh      libmcrypt-2.5.7-5.el5.i386.rpm  

warning: libmcrypt-2.5.7-5.el5.i386.rpm: Header V3 DSAsignature: NOKEY, key ID 217521f6

Preparing...        ###########################################[100%]

1:libmcrypt         ########################################### [100%]

[root@localhost ~]# rpm -ivh   php-mcrypt-5.1.6-5.el5.i386.rpm

warning: php-mcrypt-5.1.6-5.el5.i386.rpm:Header V3 DSA signature: NOKEY, key ID 217521f6

Preparing...       ########################################### [100%]

1:php-mcrypt       ########################################### [100%]

解決mcrypt擴展,我們可以登錄我們的數據庫進行數據庫管理了

案例2wordpress博客網站

[root@localhost ~]#unzip  wordpress_v3.0.5-zh_CN.zip

[root@localhost wordpress-3.0.5-zh_CN]# mvwordpress/ /var/www/html/wordpress     #解壓網站文件並上傳網站主目錄

[root@localhost wordpress-3.0.5-zh_CN]# cd/var/www/html/wordpress/

[root@localhost wordpress]# ls -a

.                wp-atom.php           wp-includes        wp-rss.php

..               wp-blog-header.php    wp-links-opml.php  wp-rss2.php

index.php        wp-comments-post.php  wp-load.php        wp-settings.php

license.txt      wp-commentsrss2.php   wp-login.php       wp-signup.php

readme.html      wp-config-sample.php  wp-mail.php        wp-trackback.php

wp-activate.php  wp-content            wp-pass.php        xmlrpc.php

wp-admin         wp-cron.php           wp-rdf.php

wp-app.php       wp-feed.php           wp-register.php

安裝出現錯誤,需要實現配置wp-config.php配置文件,可以通過本頁面建立,處於安全的考慮,最好是手動創建。

[root@localhost ~]# mysql -u root –p                        #使用root賬戶及密碼登錄數據庫

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 87

Server version: 5.0.77 Source distribution


Type 'help;' or '\h' for help. Type '\c' toclear the buffer.


mysql> create database wordpress;                    #先創建我們博客網站的數據庫

Query OK, 1 row affected (0.00 sec)                   再拷貝樣例配置文件進行修改

首次訪問博客網站,進行網站配置

mysql> show databases;                                  #查看博客網站的數據庫

+--------------------+

| Database           |

+--------------------+

| information_schema |

| discuz             |

| mysql              |

| test               |

| wordpress          |

+--------------------+

5 rows in set (0.00 sec)

使用管理員身份進入博客網站後臺

查看我們的博客網站前臺頁面

這個頁面看着有點沒個性,那麼我們可以在下載一些博客主題,將主題解壓縮移動到博客網站的主題目錄,再次訪問即可實現更換主題的效果。

[root@localhost wordpress]# llwp-content/themes/             #查看網站的主題存放目錄

total 8

-rw-r--r-- 1 root root   30 Feb 8  2011 index.php

drwxr-xr-x 4 root root 4096 Feb  8  2011twentyten




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