Linux下LAMP PHP開發(fā)環(huán)境搭建
發(fā)布日期:2022-04-18 13:23 | 文章來源:gibhub
本想輕松順利的看到phpinfo顯示在我的頁面上,沒想到安裝環(huán)境時(shí)一路的error,不停的google折騰了半天終于看到了phpinfo。在此把遇到的問題總結(jié)一下,給大家提供一個(gè)參考。
我的OS是ubuntu 9.10,得益于apt-get強(qiáng)大的功能參考了一下這篇文章http://wiki.ubuntu.org.cn/index.php?title=Apache&variant=zh-cn#.E5.AE.89.E8.A3.85LAMP,輕松的完成了LAMP的搭建。
來手癢癢的不行,把環(huán)境全刪了重新用源碼包搭建了一遍。步驟如下:
(由于用非root賬戶登錄,在需要root權(quán)限時(shí)用sudo執(zhí)行)
一、build-essential的安裝
# bulid-essential是編譯源碼包(C/C++程序)所需的編譯工具
# ubuntu 下默認(rèn)沒有安裝,ubuntu下可以執(zhí)行sudo apt-get install build-essential
安裝包 build-essential_11.4.tar.gz
# 安裝命令
tar -zxvf build-essential_11.4.tar.gz
cd build-essential-11.4
./configure
make
sudo make install
make clean
二、MySql的安裝
step.1
ncurses的安裝
# 如果缺少ncurses包mysql編譯會(huì)報(bào)No curses/termcap library found的錯(cuò)誤
安裝包 ncurses-5.6.tar.gz
tar -zxvf ncurses-5.6.tar.gz
cd ncurses-5.6
./configure --prefix=/usr/local/ncurses --with-shared --without-debug --enable-widec
make
sudo make install
make clean
step.2
mysql的安裝
安裝包 mysql-5.1.42.tar.gz
step.a
# 安裝命令
tar -zxvf mysql-5.1.42.tar.gz
cd mysql-5.1.42
./configure --prefix=/usr/local/mysql --with-named-curses-libs=/usr/local/ncurses/lib/libncursesw.so.5.6 --with-charset=gbk
# --prefix=/usr/local/mysql mysql的安裝路徑
# 關(guān)于mysql配置文件路徑的說明:mysql按照下列順序搜索my.cnf
# /etc,mysql安裝目錄如 /usr/local/mysql/etc,安裝目錄下的data目錄如 /usr/local/mysql/data,以最先找到的為準(zhǔn)。/etc下my.cnf的配置是全局設(shè)置
# --with-named-curses-libs=/usr/local/ncurses/lib/libncursesw.so.5.6 ncurses庫文件安裝路徑
# --localstatedir=/usr/local/mysql/var 數(shù)據(jù)庫默認(rèn)存放路徑(可以設(shè)置其它路徑如,/var/lib/mysql)
# --with-charset=gbk 設(shè)置數(shù)據(jù)庫支持中文字符集
make
sudo make install
step.b
# 拷貝mysql配置文件到目標(biāo)目錄/usr/local/mysql/etc
# 新建/usr/local/mysql/etc目錄(該目錄沒有自動(dòng)創(chuàng)建)
sudo mkdir /usr/local/mysql/etc
sudo cp support-files/my-medium.cnf /usr/local/mysql/etc/my.cnf
# 刪除安裝產(chǎn)生的臨時(shí)文件(一定要在拷貝完配置文件后在執(zhí)行,不然my-medium.cnf會(huì)被刪除)
make clean
step.c
# 添加一個(gè)名為mysql的linux系統(tǒng)群組(可以參考mysql手冊(cè)2.8.1. 源碼安裝概述)
sudo groupadd mysql
# 新建一個(gè)名為mysql的linux系統(tǒng)用戶,并將其添加到mysql系統(tǒng)群組中
# 如果Linux只啟動(dòng)命令行界面,可以用下面的操作添加需要的賬戶
# sudo useradd -M -s /bin/false -g mysql mysql
# -M 該選項(xiàng)不會(huì)建立用戶目錄
# -s 指定新建用戶使用的shell,/bin/false表示該用戶不能登錄系統(tǒng)
# -g mysql 將用戶mysql添加到組mysql中
# 我現(xiàn)在用的時(shí)桌面系統(tǒng),用如上命令添加賬戶。系統(tǒng)啟動(dòng)時(shí)在登錄界面會(huì)顯示mysql用戶雖然它不登錄
# 改用下面命令,mysql賬戶就不會(huì)顯示在登錄界面了
sudo useradd -r -s /bin/false -g mysql mysql
# -r 建立系統(tǒng)賬戶,不創(chuàng)建用戶目錄,用戶分配的uid小于1000
step.d
# 創(chuàng)建mysql授權(quán)表
# 如果用root運(yùn)行命令,應(yīng)當(dāng)使用--user選項(xiàng)。選項(xiàng)的值應(yīng)與你在stpe.czz中創(chuàng)建的登錄賬戶相同。如果用該用戶登錄來運(yùn)行命令,可以省略--user選項(xiàng)
sudo /usr/local/mysql/bin/mysql_install_db --user=mysql
step.e
# 進(jìn)入mysql的安裝目錄(/usr/local/mysql)
cd /usr/local/mysql
# 將文件的所有屬性改為root用戶
sudo chown -R root .
# 將數(shù)據(jù)目錄的所有屬性改為mysql用戶(即在step.c中創(chuàng)建的用戶)
sudo chown -R mysql var
# 將組屬性改為mysql組
sudo chgrp -R mysql .
step.f
# 啟動(dòng)mysql服務(wù)
sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
# 登錄數(shù)據(jù)庫
/usr/local/mysql/bin/mysql -uroot
mysql安裝完成了
三、Apache的安裝
# 使用DSO動(dòng)態(tài)編譯,關(guān)于動(dòng)態(tài)編譯與靜態(tài)編譯的區(qū)別可以參考http://www.ha97.com/2612.html
安裝包 httpd-2.2.14.tar.gz
tar -zvxf httpd-2.2.14.tar.gz
cd httpd-2.2.14
./configure --prefix=/usr/local/apache --enable-mods-shared=most --enable-so
# --prefix=/usr/local/apache 將apache安裝到/usr/local/apache路徑
# --enable-mods-shared=most 將所有標(biāo)準(zhǔn)模塊都動(dòng)態(tài)編譯為DSO模塊
# --enable-so apache核心裝載DSO,但是不實(shí)際編譯任何動(dòng)態(tài)模塊
make
make install
make clean
# 啟動(dòng)apache
sudo /usr/local/apache/bin/apachectl start
# 打開瀏覽器輸入瀏覽器會(huì)看到It works!
apache安裝完成了
四、PHP的安裝
step.1
freetype的安裝
安裝包 freetype-2.3.11.tar.gz
# 安裝命令
tar -zxvf freetype-2.3.11.tar.gz
cd freetype-2.3.11
./configure --prefix=/usr/local/freetype
make
sudo make install
make clean
step.2
zlib的安裝
安裝包 zlib-1.2.3.tar.gz
# 安裝命令
tar -zxvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure
make
sudo make install
make clean
# 安裝時(shí)更改過zlib的安裝目錄如/usr/local/zlib,改后libpng的安裝也成功了,當(dāng)是到安裝gd庫時(shí)一直失敗,不得已又把zlib安裝到默認(rèn)路徑,后邊才順利通過
step.3
libpng的安裝
安裝包 libpng-1.4.0.tar.gz
# 安裝命令
tar -zxvf libpng-1.4.0.tar.gz
cd libpng-1.4.0
./configure --prefix=/usr/local/libpng
make
sudo make install
make clean
# 很多人這樣操作 cp scripts/makefile.std makefile 代替了./configure (兩者區(qū)別有待查證)
step.4
jpeg的安裝
安裝包 jpegsrc.v7.tar.gz
# 安裝命令
tar -zxvf jpegsrc.v7.tar.gz
cd jpeg-7
./configure --prefix=/usr/local/jpeg7
make
sudo make install
make clean
# 很多人手動(dòng)建立 jpeg的目錄結(jié)構(gòu)不知道是因?yàn)椴煌€是有其它原因(有待查證)
# 以上包都是gd庫所需要的組成庫,下面安裝gd庫
step.5
gd庫的安裝
安裝包 gd-2.0.35.tar.gz
# 安裝命令
step.a
tar -zxvf gd-2.0.35.tar.gz
cd gd-2.0.35
./configure --prefix=/usr/local/gd2 --with-freetype=/usr/local/freetype --with-png=/usr/local/libpng --with-jpeg=/usr/local/jpeg7
step.b
# 編輯 Makefile 文件, 找到 232 行左右
# 看到類似內(nèi)容 CPPFLAGS = -I/usr/local/freetype/include/freetype2 -I/usr/local/freetype/include -I/usr/local/freetype/include -I/usr/local/jpeg7/include
# 修改為 CPPFLAGS = -I/usr/local/freetype/include/freetype2 -I/usr/local/freetype/include -I/usr/local/freetype/include -I/usr/local/libpng/include -I/usr/local/jpeg7/include
step.c
# 編輯 gd_png.c 文件 找到 if (!png_check_sig (sig, 8)) { /* bad signature */
# 修改為 if (png_sig_cmp (sig, 0, 8)) {
step.d
# 執(zhí)行命令
make
sudo make install
make clean
# gd庫安裝完成
step.6
libxml2的安裝
# libxml2用來解析xml
# 安裝命令
tar -zxvf libxml2-2.6.26.tar.gz
cd libxml2-2.6.26
./configure --prefix=/usr/local/libxml
make
make install
make clean
step.7
php的安裝
安裝包 php-5.3.1.tar.gz
# 安裝命令
step.a
tar -zxvf php-5.3.1.tar.gz
cd php-5.3.1.tar
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-libxml-dir=/usr/local/libxml2 --with-zlib --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg7 --with-freetype-dir=/usr/local/freetype --with-gd=/usr/local/gd2
make
sudo make install
make clean
step.b
拷貝PHP配置文件
sudo cp php.ini-development /usr/local/php/lib/php.ini
# php配置文件名稱不同本版名稱會(huì)有差異,當(dāng)前版本中有兩個(gè)文件 php.ini-development(開發(fā)環(huán)境中用的) php.ini-production(生產(chǎn)環(huán)境中用的)
step.d
修改apache配置文件/usr/local/apache/conf/httpd.conf
# 添加對(duì)php的支持
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php
step.e
# 如果用root賬戶登錄跳過這一步
# 更目錄web目錄權(quán)限
sudo chown -R 登錄用戶:登錄用戶 /usr/local/apache/htdocs
step.f
#重啟apache
sudo /usr/local/apache/bin/apachectl restart
好了到此linux配置環(huán)境配置完了,由于各種問題這篇文章拖了好幾天才寫完。這中間還發(fā)生了未保存而丟失文檔的杯俱淚奔啊!其中各個(gè)包的安裝./configure涉及到的參數(shù)只是一些基本的參數(shù),LAMP之旅剛剛開始。走過了會(huì)發(fā)現(xiàn)沒有想象的那么困難了,好了。GOOD LUCK!
我的OS是ubuntu 9.10,得益于apt-get強(qiáng)大的功能參考了一下這篇文章http://wiki.ubuntu.org.cn/index.php?title=Apache&variant=zh-cn#.E5.AE.89.E8.A3.85LAMP,輕松的完成了LAMP的搭建。
來手癢癢的不行,把環(huán)境全刪了重新用源碼包搭建了一遍。步驟如下:
(由于用非root賬戶登錄,在需要root權(quán)限時(shí)用sudo執(zhí)行)
一、build-essential的安裝
# bulid-essential是編譯源碼包(C/C++程序)所需的編譯工具
# ubuntu 下默認(rèn)沒有安裝,ubuntu下可以執(zhí)行sudo apt-get install build-essential
安裝包 build-essential_11.4.tar.gz
# 安裝命令
tar -zxvf build-essential_11.4.tar.gz
cd build-essential-11.4
./configure
make
sudo make install
make clean
二、MySql的安裝
step.1
ncurses的安裝
# 如果缺少ncurses包mysql編譯會(huì)報(bào)No curses/termcap library found的錯(cuò)誤
安裝包 ncurses-5.6.tar.gz
tar -zxvf ncurses-5.6.tar.gz
cd ncurses-5.6
./configure --prefix=/usr/local/ncurses --with-shared --without-debug --enable-widec
make
sudo make install
make clean
step.2
mysql的安裝
安裝包 mysql-5.1.42.tar.gz
step.a
# 安裝命令
tar -zxvf mysql-5.1.42.tar.gz
cd mysql-5.1.42
./configure --prefix=/usr/local/mysql --with-named-curses-libs=/usr/local/ncurses/lib/libncursesw.so.5.6 --with-charset=gbk
# --prefix=/usr/local/mysql mysql的安裝路徑
# 關(guān)于mysql配置文件路徑的說明:mysql按照下列順序搜索my.cnf
# /etc,mysql安裝目錄如 /usr/local/mysql/etc,安裝目錄下的data目錄如 /usr/local/mysql/data,以最先找到的為準(zhǔn)。/etc下my.cnf的配置是全局設(shè)置
# --with-named-curses-libs=/usr/local/ncurses/lib/libncursesw.so.5.6 ncurses庫文件安裝路徑
# --localstatedir=/usr/local/mysql/var 數(shù)據(jù)庫默認(rèn)存放路徑(可以設(shè)置其它路徑如,/var/lib/mysql)
# --with-charset=gbk 設(shè)置數(shù)據(jù)庫支持中文字符集
make
sudo make install
step.b
# 拷貝mysql配置文件到目標(biāo)目錄/usr/local/mysql/etc
# 新建/usr/local/mysql/etc目錄(該目錄沒有自動(dòng)創(chuàng)建)
sudo mkdir /usr/local/mysql/etc
sudo cp support-files/my-medium.cnf /usr/local/mysql/etc/my.cnf
# 刪除安裝產(chǎn)生的臨時(shí)文件(一定要在拷貝完配置文件后在執(zhí)行,不然my-medium.cnf會(huì)被刪除)
make clean
step.c
# 添加一個(gè)名為mysql的linux系統(tǒng)群組(可以參考mysql手冊(cè)2.8.1. 源碼安裝概述)
sudo groupadd mysql
# 新建一個(gè)名為mysql的linux系統(tǒng)用戶,并將其添加到mysql系統(tǒng)群組中
# 如果Linux只啟動(dòng)命令行界面,可以用下面的操作添加需要的賬戶
# sudo useradd -M -s /bin/false -g mysql mysql
# -M 該選項(xiàng)不會(huì)建立用戶目錄
# -s 指定新建用戶使用的shell,/bin/false表示該用戶不能登錄系統(tǒng)
# -g mysql 將用戶mysql添加到組mysql中
# 我現(xiàn)在用的時(shí)桌面系統(tǒng),用如上命令添加賬戶。系統(tǒng)啟動(dòng)時(shí)在登錄界面會(huì)顯示mysql用戶雖然它不登錄
# 改用下面命令,mysql賬戶就不會(huì)顯示在登錄界面了
sudo useradd -r -s /bin/false -g mysql mysql
# -r 建立系統(tǒng)賬戶,不創(chuàng)建用戶目錄,用戶分配的uid小于1000
step.d
# 創(chuàng)建mysql授權(quán)表
# 如果用root運(yùn)行命令,應(yīng)當(dāng)使用--user選項(xiàng)。選項(xiàng)的值應(yīng)與你在stpe.czz中創(chuàng)建的登錄賬戶相同。如果用該用戶登錄來運(yùn)行命令,可以省略--user選項(xiàng)
sudo /usr/local/mysql/bin/mysql_install_db --user=mysql
step.e
# 進(jìn)入mysql的安裝目錄(/usr/local/mysql)
cd /usr/local/mysql
# 將文件的所有屬性改為root用戶
sudo chown -R root .
# 將數(shù)據(jù)目錄的所有屬性改為mysql用戶(即在step.c中創(chuàng)建的用戶)
sudo chown -R mysql var
# 將組屬性改為mysql組
sudo chgrp -R mysql .
step.f
# 啟動(dòng)mysql服務(wù)
sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
# 登錄數(shù)據(jù)庫
/usr/local/mysql/bin/mysql -uroot
mysql安裝完成了
三、Apache的安裝
# 使用DSO動(dòng)態(tài)編譯,關(guān)于動(dòng)態(tài)編譯與靜態(tài)編譯的區(qū)別可以參考http://www.ha97.com/2612.html
安裝包 httpd-2.2.14.tar.gz
tar -zvxf httpd-2.2.14.tar.gz
cd httpd-2.2.14
./configure --prefix=/usr/local/apache --enable-mods-shared=most --enable-so
# --prefix=/usr/local/apache 將apache安裝到/usr/local/apache路徑
# --enable-mods-shared=most 將所有標(biāo)準(zhǔn)模塊都動(dòng)態(tài)編譯為DSO模塊
# --enable-so apache核心裝載DSO,但是不實(shí)際編譯任何動(dòng)態(tài)模塊
make
make install
make clean
# 啟動(dòng)apache
sudo /usr/local/apache/bin/apachectl start
# 打開瀏覽器輸入瀏覽器會(huì)看到It works!
apache安裝完成了
四、PHP的安裝
step.1
freetype的安裝
安裝包 freetype-2.3.11.tar.gz
# 安裝命令
tar -zxvf freetype-2.3.11.tar.gz
cd freetype-2.3.11
./configure --prefix=/usr/local/freetype
make
sudo make install
make clean
step.2
zlib的安裝
安裝包 zlib-1.2.3.tar.gz
# 安裝命令
tar -zxvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure
make
sudo make install
make clean
# 安裝時(shí)更改過zlib的安裝目錄如/usr/local/zlib,改后libpng的安裝也成功了,當(dāng)是到安裝gd庫時(shí)一直失敗,不得已又把zlib安裝到默認(rèn)路徑,后邊才順利通過
step.3
libpng的安裝
安裝包 libpng-1.4.0.tar.gz
# 安裝命令
tar -zxvf libpng-1.4.0.tar.gz
cd libpng-1.4.0
./configure --prefix=/usr/local/libpng
make
sudo make install
make clean
# 很多人這樣操作 cp scripts/makefile.std makefile 代替了./configure (兩者區(qū)別有待查證)
step.4
jpeg的安裝
安裝包 jpegsrc.v7.tar.gz
# 安裝命令
tar -zxvf jpegsrc.v7.tar.gz
cd jpeg-7
./configure --prefix=/usr/local/jpeg7
make
sudo make install
make clean
# 很多人手動(dòng)建立 jpeg的目錄結(jié)構(gòu)不知道是因?yàn)椴煌€是有其它原因(有待查證)
# 以上包都是gd庫所需要的組成庫,下面安裝gd庫
step.5
gd庫的安裝
安裝包 gd-2.0.35.tar.gz
# 安裝命令
step.a
tar -zxvf gd-2.0.35.tar.gz
cd gd-2.0.35
./configure --prefix=/usr/local/gd2 --with-freetype=/usr/local/freetype --with-png=/usr/local/libpng --with-jpeg=/usr/local/jpeg7
step.b
# 編輯 Makefile 文件, 找到 232 行左右
# 看到類似內(nèi)容 CPPFLAGS = -I/usr/local/freetype/include/freetype2 -I/usr/local/freetype/include -I/usr/local/freetype/include -I/usr/local/jpeg7/include
# 修改為 CPPFLAGS = -I/usr/local/freetype/include/freetype2 -I/usr/local/freetype/include -I/usr/local/freetype/include -I/usr/local/libpng/include -I/usr/local/jpeg7/include
step.c
# 編輯 gd_png.c 文件 找到 if (!png_check_sig (sig, 8)) { /* bad signature */
# 修改為 if (png_sig_cmp (sig, 0, 8)) {
step.d
# 執(zhí)行命令
make
sudo make install
make clean
# gd庫安裝完成
step.6
libxml2的安裝
# libxml2用來解析xml
# 安裝命令
tar -zxvf libxml2-2.6.26.tar.gz
cd libxml2-2.6.26
./configure --prefix=/usr/local/libxml
make
make install
make clean
step.7
php的安裝
安裝包 php-5.3.1.tar.gz
# 安裝命令
step.a
tar -zxvf php-5.3.1.tar.gz
cd php-5.3.1.tar
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-libxml-dir=/usr/local/libxml2 --with-zlib --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg7 --with-freetype-dir=/usr/local/freetype --with-gd=/usr/local/gd2
make
sudo make install
make clean
step.b
拷貝PHP配置文件
sudo cp php.ini-development /usr/local/php/lib/php.ini
# php配置文件名稱不同本版名稱會(huì)有差異,當(dāng)前版本中有兩個(gè)文件 php.ini-development(開發(fā)環(huán)境中用的) php.ini-production(生產(chǎn)環(huán)境中用的)
step.d
修改apache配置文件/usr/local/apache/conf/httpd.conf
# 添加對(duì)php的支持
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php
step.e
# 如果用root賬戶登錄跳過這一步
# 更目錄web目錄權(quán)限
sudo chown -R 登錄用戶:登錄用戶 /usr/local/apache/htdocs
step.f
#重啟apache
sudo /usr/local/apache/bin/apachectl restart
好了到此linux配置環(huán)境配置完了,由于各種問題這篇文章拖了好幾天才寫完。這中間還發(fā)生了未保存而丟失文檔的杯俱淚奔啊!其中各個(gè)包的安裝./configure涉及到的參數(shù)只是一些基本的參數(shù),LAMP之旅剛剛開始。走過了會(huì)發(fā)現(xiàn)沒有想象的那么困難了,好了。GOOD LUCK!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
相關(guān)文章