源碼搭建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.6和apr-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 #系統變量配置文件中追加可執行文件(apr和apr-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庫,系統首先已安裝pcre和pcre-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手冊所在目錄的路徑,在系統下能夠查看有關httpd的man手冊
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行下邊追加apache的man目錄的路徑
[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 #查看到mysqld的3306端口打開
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 #mysqld在2、3、4、5運行級別都是默認開啓的服務
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 #php與mysql結合文件
[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(); apache與php的結合
?>
[root@localhosthtdocs]# vim index.php
<html><body><h1>Itworks!</h1></body></html>
<?php #追加內容測試php與mysql的結合
$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服務再次測試php與mysql的結合
Shutting down MySQL. [ OK ]
經過測試,apache、mysql與php三者能夠很好的結合在一起,我們的LAMP環境已經搭建好了。
案例1:discuz論壇安裝
[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擴展,我們可以登錄我們的數據庫進行數據庫管理了
案例2:wordpress博客網站
[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