Linux+Apache+Mysql+Perl/PHP/Python一組常用來搭建動態(tài)網(wǎng)站或者服務器的開源軟件,本身都是各自獨立的程序,但是因為常被放在一起使用,擁有了越來越高的兼容度,共同組成了一個強大的Web應用程序平臺。隨著開源潮流的蓬勃發(fā)展,開放源代碼的LAMP已經(jīng)與J2EE和.Net商業(yè)軟件形成三足鼎立之勢,并且該軟件開發(fā)的項目在軟件方面的投資成本較低,因此受到整個IT界的關注。
最流行的PHP框架結構
下載教大家如何在 Ubuntu 上搭建Lamp環(huán)鏡
一:準備軟件包,存放/home/xiutuo/software/目錄下。
主要軟件包,
(這里沒有選擇mysql-standard-5.0.20-linux-i686.tar.gz,
呆會再說明原因。)
httpd-2.2.0.tar.gz
mysql-max-5.0.21-linux-i686-glibc23.tar.gz
php-5.1.2.tar.gz
安裝php所需的軟件包
(其中l(wèi)ibxml2是安裝php5必須的,為什么還需要perl呆會說明原因。)
libxml2-2.6.19.tar.gz
libxslt-1.1.15.tar.gz
ActivePerl-5.8.8.817-i686-linux-2.2.17-gcc-257965.rpm
curl-7.15.0.tar.gz
GD庫所需要軟件包
(有人說PHP源碼包里自帶了GD2.0.28和zlib,
只要安裝GD的三個支持包:jpg,png和freetype,但是我們還是下載)
gd-2.0.33.tar.gz
freetype-2.1.10.tar.gz
jpegsrc.v6b.tar.gz
libpng-1.2.8.tar.gz
zlib-1.2.3.tar.gz
相關下載
(根據(jù)自己的linux版本下載相應的包,
查看操作系統(tǒng)版本:
# uname -r )
http://ftp.gnome.org/pub/GNOME/s … bxml2-2.6.19.tar.gz
http://ftp.gnome.org/pub/GNOME/s … bxslt-1.1.15.tar.gz
http://downloads.activestate.com … .638-i686-linux.rpm
http://curl.haxx.se/download/curl-7.15.0.tar.gz
http://www.boutell.com/gd/http/gd-2.0.33.tar.gz
http://keihanna.dl.sourceforge.n … etype-2.1.10.tar.gz
http://www.ijg.org/files/jpegsrc.v6b.tar.gz
http://nchc.dl.sourceforge.net/s … libpng-1.2.8.tar.gz
http://www.zlib.net/zlib-1.2.3.tar.gz
把以上所有軟件包下載到:/home/xiutuo/software/目錄下。
二:安裝apache2。
# cd /home/xiutuo/software/
進入目錄/home/xiutuo/software/
# tar -zvxf httpd-2.2.0.tar.gz
解壓httpd-2.2.0.tar.gz
# cd httpd-2.2.0
進入httpd-2.2.0目錄
# mkdir -p /usr/local/apache2
生成/usr/local/apache2目錄
# ./configure –prefix=/usr/local/apache
或者
# ./configure –prefix=/usr/local/apache –enable-modules=so –enable-rewrite
# make; make install
安裝apache
# vi /usr/local/apache/conf/httpd.conf
#ServerName www.example.com:80 在其下增加
ServerName www.xiutuo.com:80
保存退出,現(xiàn)在就這么簡單配置apache。
# /usr/local/apache/bin/apachectl -k start
啟動apahce,
用瀏覽器查看http://www.xiutuo.com,得到it works,說明apache已經(jīng)配置成功了。
# /usr/local/apache/bin/apachectl -k stop
停止apache。
三:安裝mysql
# cd /home/xiutuo/software/
# tar -zvxf mysql-max-5.0.21-linux-i686-glibc23.tar.gz
# mkdir -p /usr/local/mysql (省略也可)
# cp -r mysql-max-5.0.21-linux-i686-glibc23.tar.gz /usr/local/mysql
# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
添加mysql用戶及用戶組
# groupadd mysql
# useradd -g mysql mysql
修改mysql目錄權限
# chown -R root /usr/local/mysql
# chgrp -R mysql /usr/local/mysql
# chown -R mysql /usr/local/mysql/data
生成mysql系統(tǒng)數(shù)據(jù)庫
# /usr/local/mysql/scrīpts/mysql_install_db –user=mysql&
啟動mysql服務
# /usr/local/mysql/bin/mysqld_safe –user=mysql&
如出現(xiàn) Starting mysqld daemon with databases from /usr/local/mysql/data
代表正常啟動mysql服務了, 按Ctrl + C 跳出
修改 mysql 的 root 密碼
# /usr/local/mysql/bin/mysqladmin -u root -p password “123456″
四:安裝GD庫(讓PHP支持GIF,PNG,JPEG)
a.安裝 jpeg6
建立目錄:
# mkdir -p /usr/local/jpeg6
# mkdir -p /usr/local/jpeg6/bin
# mkdir -p /usr/local/jpeg6/lib
# mkdir -p /usr/local/jpeg6/include
# mkdir -p /usr/local/jpeg6/man
# mkdir -p /usr/local/jpeg6/man1
# mkdir -p /usr/local/jpeg6/man/man1
# cd /home/xiutuo/software/
# tar -zvxf jpegsrc.v6b.tar.gz
# cd jpeg-6b
# ./configure –prefix=/usr/local/jpeg6/ –enable-shared –enable-static
# make; make install
b.安裝libpng
# cd /home/xiutuo/software/
# tar -zvxf libpng-1.2.8.tar.gz
# cd libpng-1.2.8
# cp scrīpts/makefile.std makefile
# make; make install
c.安裝 freetype
# cd /home/xiutuo/software/
# tar -zvxf freetype-2.1.10.tar.gz
# cd freetype-2.1.10
# mkdir -p /usr/local/freetype
# ./configure –prefix=/usr/local/freetype
# make;make install
d.:安裝zlib
# cd /home/xiutuo/software/
#tar -zxvf zlib-1.2.3.tar.gz
#cd zlib.1.2.3
# ./configure
# make;make install
e.安裝GD庫
# cd /home/xiutuo/software/
# tar -zvxf gd-2.0.33.tar.gz
# mkdir -p /usr/local/gd2
# cd gd-2.0.33
# ./configure –prefix=/usr/local/gd2 –with-jpeg=/usr/local/jpeg6/
–with-png=/usr/local/lib/
–with-zlib=/usr/local/lib/
–with-freetype=/usr/local/freetype/
# make; make install
e.安裝Curl庫
# cd /home/xiutuo/software/
# tar -zxf curl-7.15.0.tar.gz
# mkdir -p /usr/local/curl
# ./configure –prefix=/usr/local/curl
# make; make install
五:安裝php5,php5必須有l(wèi)ibxml2支持!
a.安裝libxml2
# cd /home/xiutuo/software/
# tar -zxf libxml2-2.6.19.tar.gz
# cd libxml2-2.6.19
# mkdir -p /usr/local/libxml2
# ./configure –prefix=/usr/local/libxml2
# make; make install
b.安裝 libxslt(可選安裝,你可以不安裝)
# cd /home/xiutuo/software/
# tar -zxf libxslt-1.1.15.tar.gz
# mkdir -p /usr/local/libxslt
# cd libxslt-1.1.15
# ./configure –prefix=/usr/local/libxslt –with-libxml-prefix=/usr/local/libxml2
# make; make install
c.安裝php5
# cd /home/xiutuo/software/
# tar -zvxf php-5.1.2.tar.gz
# mkdir -p /usr/local/php
# cd php-5.05
# ./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache/bin/apxs –with-mysql=/usr/local/mysql/ –with-curl=/usr/local/curl –enable-ftp –with-libxml-dir=/usr/local/libxml2 –with-expat-dir=/usr/lib –enable-soap –with-xsl=/usr/local/libxslt –enable-xslt -with-gd=/usr/local/gd2/ –with-jpeg-dir=/usr/local/jpeg6/ –with-zlib-dir=/usr/local/lib/ –with-png=/usr/local/lib/ –with-freetype-dir=/usr/local/freetype/
+——————————————————————–+
| License: |
| This software is subject to the PHP License, available in this |
| distribution in the file LICENSE. By continuing this installation |
| process, you are bound by the terms of this license agreement. |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point. |
+——————————————————————–+
Thank you for using PHP.
# make
# make install
# cp php.ini-dist /usr/local/php/lib/php.ini (別忘記了呵呵)
其中./configure 后的
–prefix=/usr/local/php
–with-apxs2=/usr/local/apache/bin/apxs
–with-mysql=/usr/local/mysql/
–with-libxml-dir=/usr/local/libxml2
是必要的選項
–with-gd=/usr/local/gd2/
–with-jpeg-dir=/usr/local/jpeg6/
–with-png=/usr/local/lib
–with-zlib-dir=/usr/lib
–with-freetype-dir=/usr/local/freetype
這是讓PHP支持GD庫的配置選項
–with-curl=/usr/local/curl 支持CURL庫
–enable-ftp 打開FTP庫函數(shù)支持
–enable-soap –with-xsl=/usr/local/libxslt –enable-xslt
讓PHP支持SOAP, 上面這些一般用得少, 可以去掉
六:重新配置apache2讓他支持php。
配置 httpd.conf 讓apache支持PHP
# vi /usr/local/apache/conf/httpd.conf
找到 AddType application/x-gzip .gz .tgz 在其下添加如下內(nèi)容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
重啟apache
# /usr/local/apache2/bin/apachectl restart
在htdocs目錄里建一內(nèi)容為 <? phpinfo(); ?> PHP文件, 輸入URL地址查看PHP配置是否正確
ok,web環(huán)境apache2+mysql5+php5就介紹到這里。
更詳細的apache2的配置和mysql配置和php.ini的配置參考相應文檔。
——————————————————–
安裝時候遇到的問題:
由于本人的系統(tǒng)是redhat9,自定義安裝了php,mysql,apache。
所以在安裝最新的php,mysql,apache版本時候,本人對相關的rpm進行了
卸載,忽略依賴關系強制卸載apache;由于php,mysql與perl的bt依賴關系,
一氣之下刪除了所有的相關文件。
問題
1.當你看到mysql有很多版本,如:
mysql-max-5.0.21-linux-i686-glibc23.tar.gz和
mysql-max-5.0.21-linux-i686.tar.gz
這倆個到底選哪個呢,請你使用如下命令來決定
# rpm -qa | grep glibc
glibc-kernheaders-2.4-8.10
glibc-common-2.3.2-11.9
glibc-2.3.2-11.9
glibc-devel-2.3.2-11.9
如果出現(xiàn)以上信息,請選擇mysql-max-5.0.21-linux-i686-glibc23.tar.gz版本
2:編譯php時出現(xiàn)
./configure: /usr/local/apache2/bin/apxs: /replace/with/path/to/perl/interpreter:
bad interpreter: No such file or directory
這是找不到perl解釋器的緣故。
修改/usr/local/apache2/bin/apxs文件中:
/replace/with/path/to/perl/interpreter
把他替換成perl所在的路徑如/opt/ActivePerl-5.8/bin/perl,
(如果你下載的是active perl5.8的rpm,他默認安裝路徑是/opt/ActivePerl-5.8/bin/perl)
3.安裝了perl后,發(fā)現(xiàn)所有的文本編輯器都不能用了。
運行vi或者gedit時候,提示找不到libperl.so
到perl的安裝目錄下找一個libperl.so放到/usr/lib目錄下就解決問題了
我的libperl.so在/opt/ActivePerl-5.8/lib/5.8.8/i686-linux-thread-multi-CORE/目錄下。
如果不知道libperl.so在什么地方,可以用
# locate libperl.so
查找,或者用find命令
4.當我使用mysql-standard-5.0.20,編譯php時出現(xiàn)mysql錯誤:
checking for mSQL support… no
checking for MSSQL support via FreeTDS… no
checking for MySQL support… yes
checking for specified location of the MySQL UNIX socket… no
checking for MySQL UNIX socket location… /tmp/mysql.sock
checking for mysql_close in -lmysqlclient… no
checking for mysql_error in -lmysqlclient… no
configure: error: mysql configure failed. Please check config.log for more information.
網(wǎng)查找說:安裝PHP的時候沒有指定一下mysql的安裝目錄。但是我已經(jīng)指定了,所以這個說法是錯誤的,其實主要原因是 mysql-level沒有裝,也就是mysql的版本不對,應該換
mysql-max-5.0.21版本(包含所有mysql相關內(nèi)容的軟件包)
5.編譯php時出現(xiàn)
configure: error: freetype2 not found!
沒有安裝freetype-level
configure: error: libpng.(a|so) not found.
沒有安裝libpng-devel
6忘了mysql的root口令怎么辦
# /usr/local/mysql/support-files/mysql.server stop
# mysqld_safe –skip-grant-tables &
# mysqladmin -u user password ‘newpassword’
# mysqladmin flush-privileges