成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

php教程數(shù)據(jù)處理教程,php詳細(xì)教程

在PHP中怎么解決大量數(shù)據(jù)處理的問題

mysql_query函數(shù)查詢的方式是查詢出全部結(jié)果后緩存到內(nèi)存中,這樣就會(huì)出現(xiàn)超內(nèi)存的現(xiàn)象,使用另外一個(gè)函數(shù)mysql_unbuffered_query可以解決這個(gè)問題,mysql_unbuffered_query不會(huì)緩存結(jié)果集,而是查詢出來數(shù)據(jù)后立馬對(duì)結(jié)果集進(jìn)行操作,也就是便查詢邊返回,這樣就不會(huì)出現(xiàn)超出內(nèi)存的現(xiàn)象,但是使用mysql_unbuffered_query的是時(shí)候不能使用 mysql_num_rows() 和 mysql_data_seek()。并且向 MySQL 發(fā)送一條新的 SQL 查詢之前,必須提取掉所有未緩存的 SQL 查詢所產(chǎn)生的結(jié)果行。例如:

成都創(chuàng)新互聯(lián)提供成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì),品牌網(wǎng)站設(shè)計(jì),1元廣告等致力于企業(yè)網(wǎng)站建設(shè)與公司網(wǎng)站制作,10余年的網(wǎng)站開發(fā)和建站經(jīng)驗(yàn),助力企業(yè)信息化建設(shè),成功案例突破近千家,是您實(shí)現(xiàn)網(wǎng)站建設(shè)的好選擇.

使用緩存結(jié)果集的代碼:

function selecttest()

{

try {

$pdo = new PDO("mysql:host=localhost;dbname=test", 'root', '123456');

// 不使用緩存結(jié)果集方式

// $pdo-setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);

$sth = $pdo-prepare('select * from test');

$sth-execute();

echo '最初占用內(nèi)存大?。? . memory_get_usage() . "\n";

$i = 0;

while ($result = $sth-fetch(PDO::FETCH_ASSOC)) {

$i += 1;

if ($i 10) {

break;

}

sleep(1);

print_r($result);

echo '占用內(nèi)存大小:' . memory_get_usage() . "\n";

}

} catch (Exception $e) {

echo $e-getMessage();

}

}

執(zhí)行時(shí)將會(huì)報(bào)超出內(nèi)存的錯(cuò)誤:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 204800000 bytes) in E:\ProgramDevelopment\RuntimeEnvironment\xampp\htdocs\test\test.php on line 56

Call Stack:

0.0005 135392 1. {main}() E:\ProgramDevelopment\RuntimeEnvironment\xampp\htdocs\test\test.php:0

0.0005 135568 2. test-selecttest() E:\ProgramDevelopment\RuntimeEnvironment\xampp\htdocs\test\test.php:85

0.0050 142528 3. PDOStatement-execute() E:\ProgramDevelopment\RuntimeEnvironment\xampp\htdocs\test\test.php:56

將上面代碼中的$pdo-setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);一行的注釋去掉后將不在緩存結(jié)果集,這時(shí)運(yùn)行該函數(shù)的結(jié)果如下:

最初占用內(nèi)存大小:144808

Array

(

[id] = 1

[a] = v

[b] = w

[c] = i

)

占用內(nèi)存大?。?45544

Array

(

[id] = 2

[a] = b

[b] = l

[c] = q

)

占用內(nèi)存大?。?45544

Array

(

[id] = 3

[a] = m

[b] = p

[c] = h

)

占用內(nèi)存大?。?45536

Array

(

[id] = 4

[a] = j

[b] = i

[c] = b

)

占用內(nèi)存大?。?45536

可以看到,這時(shí)返回一條數(shù)據(jù)內(nèi)存占用非常的小,也就700多字節(jié),這樣就不會(huì)出現(xiàn)超出內(nèi)存的錯(cuò)誤了。

php 視頻教程下載

鏈接:

提取碼:?c9fj

《PHP自學(xué)視頻教程》???分3篇共22章,其中,第1篇為入門篇,主要包括了解PHP、PHP開發(fā)環(huán)境搭建、PHP開發(fā)基礎(chǔ)、PHP流程控制語句、函數(shù)、字符串操作、正則表達(dá)式、PHP數(shù)組、PHP與Web頁面交互、日期和時(shí)間等內(nèi)容;第2篇為提高篇,主要包括MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)、PHP操作MySQL數(shù)據(jù)庫(kù)、Cookie和Session、圖形圖像處理技術(shù)、文件和目錄處理技術(shù)、面向?qū)ο?、PDO數(shù)據(jù)庫(kù)抽象層、程序調(diào)試與錯(cuò)誤處理、Ajax技術(shù)、Smarty模板技術(shù)等內(nèi)容;第3篇為實(shí)戰(zhàn)篇,主要包括明日企業(yè)網(wǎng)、應(yīng)用Smarty模板開發(fā)電子商務(wù)平臺(tái)等兩個(gè)實(shí)戰(zhàn)項(xiàng)目。 ?

求一點(diǎn)PHP對(duì)TXT文件和文章的操作教程

PHP教程.安裝PHP

安裝PHP

本章將按下列步驟編譯安裝以下軟件:

* Apache v.1.3.4 -- 世界上最流行的Web服務(wù)器。

* gcc v.2.8.1 -- 來源于GNU的C和C++編譯器。

* MySQL v.3.22.16b-gamma -- 世界范圍內(nèi)許多人使用的數(shù)據(jù)庫(kù)。

* PHP v.3.0.11 -- 本書所主要介紹的軟件。從(或此站點(diǎn)的鏡象站點(diǎn))直接下載可以得到較新的版本。本章的其它步驟仍然適用。

* expact -- 用于讀取和處理XML文檔的函數(shù)庫(kù)。

* phplib -- 用于進(jìn)行會(huì)話管理的PHP函數(shù)庫(kù)。

* libiodbc -- 主要用于存取在非UNIX計(jì)算機(jī)中數(shù)據(jù)庫(kù)的ODBC函數(shù)庫(kù)。

* MyODBC -- PHP、iODBC和MySQL之間的函數(shù)庫(kù)。

即便如此,本章也并不是介紹編譯應(yīng)用程序所需要的那些指令,而只是簡(jiǎn)單的進(jìn)行描述??傊?,本書的重點(diǎn)是介紹PHP語言,而不是C語言。每一個(gè)應(yīng)用程序的編譯對(duì)我來說都十分清楚,希望每個(gè)讀者也能沒有困難的進(jìn)行編譯。假如你確實(shí)碰到了一些問題,可以在某個(gè)IRC頻道中有禮貌的詢問,或者可以嘗試使用新聞組(可以從訪問)得到幫助來解決問題。然而,最好的幫助還是來自 上的PHP郵件列表。

在開始編譯過程之前,讓我們先討論一下如何從錯(cuò)誤中恢復(fù)。在得到有關(guān)錯(cuò)誤的幫助以后,可以采用以下的命令重新初始化源碼目錄:

* rm config.cache--幾乎所有的Linux應(yīng)用程序都使用configure命令來檢查自己的系統(tǒng),以尋找有關(guān)如何剪裁編譯過程的信息。檢查的結(jié)果將存貯在一個(gè)名為config.cache的文件中。如果移走此文件,將迫使配置程序從頭開始重新檢查系統(tǒng)。

* make distclean--所有的用C語言編寫的Linux應(yīng)用程序都是用make程序編譯的。make程序會(huì)尋找每一個(gè)源文件,以確認(rèn)是需要編譯還是已經(jīng)編譯過的。make distclean命令可以“重置”所有的源程序,以便能重新編譯它們。

* make clean--有的應(yīng)用程序不支持make distclean命令,而用make clean命令來代替。make clean命令“重置”所有的源程序,以便能重新編譯它們。

即使要安裝的一些應(yīng)用程序不支持以上的每個(gè)命令,但是試一下這些命令也不會(huì)有什么害處。

注意:Red Hat v5.2使用glibc庫(kù)。如果用戶從互聯(lián)網(wǎng)中下載或更新在本章中安裝的程序時(shí),必須知道glibc的信息。使用者可以使用rpm -q glibc命令來查出已經(jīng)安裝的glibc庫(kù)的版本號(hào)。在作者的系統(tǒng)中,使用rpm -q glibc命令將顯示glibc-2.0.7.29。

2.1 基本概念

也許讀者以前從沒有編譯過Linux應(yīng)用程序,在這里介紹一些基本概念,以便在出現(xiàn)問題時(shí)有可能診斷出問題所在。

tar

tar,即tape archiver,它可以把幾個(gè)文件組合成一個(gè)文件,并可以選擇是否進(jìn)行壓縮。這個(gè)命令過去通常用來進(jìn)行備份,以便使數(shù)據(jù)存儲(chǔ)在磁帶中。當(dāng)tar文件被壓縮時(shí),它們有一個(gè).gz的后綴;當(dāng)tar文件沒有壓縮時(shí),它們有一個(gè).tar的后綴。

gcc

gcc 是GNU的C編譯器。它的工作是把人可以看懂的源代碼文件編譯成機(jī)器可以讀懂的目標(biāo)文件。C源文件通常有.c的后綴名,目標(biāo)文件通常有.o的后綴名。如果編譯工作不能正常進(jìn)行,就是碰到了一個(gè)編譯期的錯(cuò)誤,或者說:語法錯(cuò)誤。在大多數(shù)情況下,不徹底的編譯通常是編譯器找不到一個(gè)或幾個(gè)包含文件而產(chǎn)生的。包含文件都有一個(gè).h的擴(kuò)展名,通常用來定義不同的系統(tǒng)信息,以及將多個(gè)不同的.c文件所共有的信息收集在一起。

make

make是一個(gè)常用的工具程序,是用來幫助進(jìn)行編譯的。它的工作是用來只編譯那些還沒有編譯過的源文件。編譯.c文件將生成一個(gè).o文件,如果.c文件比.o文件更新,也就是說到上次編譯之前,源文件被編輯過,那么make將會(huì)重新編譯.c文件。make指令一般是尋找一個(gè)Makefile文件,在這個(gè)文件中包含有一個(gè)或多個(gè)能執(zhí)行的目標(biāo),例如,make clean會(huì)告訴make執(zhí)行清除目標(biāo)。

ld

ld是GNU的鏈接程序。它的工作是把所有的目標(biāo)文件和庫(kù)鏈接起來,創(chuàng)建一個(gè)單一的可執(zhí)行文件。幸運(yùn)的是,基本上不用手工運(yùn)行這個(gè)程序,因?yàn)镸akefile將會(huì)考慮到所有的編譯細(xì)節(jié)。

ldconfig

ldconfig會(huì)為在多個(gè)庫(kù)目錄(在/etc/ld.so.conf中指定)中尋找共享庫(kù)。共享庫(kù)常被多個(gè)的應(yīng)用程序使用,它們的文件名中的某個(gè)地方有.so,例如,libqt.so.1.42是一個(gè)共享庫(kù)。在編譯完畢之后,有可能需要在/etc/ld.so.conf文件中增加一個(gè)目錄,并且運(yùn)行l(wèi)dconfig -v命令。

./configure

configure將會(huì)在計(jì)算機(jī)中尋找一些關(guān)鍵信息,例如,安裝的是哪一種C編譯器,包含文件在哪里等等。然后,configure將會(huì)按照所用的計(jì)算機(jī)配置重新修改Makefile文件。應(yīng)該使用./configure來在當(dāng)前目錄下運(yùn)行程序,以避免偶然運(yùn)行$PATH環(huán)境變量中的目錄下的其他程序。

符號(hào)連接

符號(hào)連接允許使用者可以為一個(gè)已經(jīng)現(xiàn)有的文件指定另一個(gè)不同的名字。例如,使用者有可能想把一個(gè)名為libqt.so.1.42的文件稱為libqt.so.1。符號(hào)連接基本上可以使用戶把一個(gè)文件復(fù)制到另一個(gè)不同的目錄下面,但事實(shí)上并沒有真正復(fù)制此文件。第二個(gè)文件實(shí)例只是簡(jiǎn)單地指向第一個(gè)文件實(shí)例。使用符號(hào)連接至少可以有兩點(diǎn)好處,第一點(diǎn)是符號(hào)連接可以節(jié)省硬盤空間,少到只有16字節(jié);第二點(diǎn)有一點(diǎn)微妙,讓我們先看一下一個(gè)名為libqt.so.1且指向libqt.so.1.42的符號(hào)連接。如果需要升級(jí)到libqt.so.1.88,該怎么辦呢?用戶只要簡(jiǎn)單地改變符號(hào)連接,使libqt.so.1指向libqt.so.1.88,而非libqt.so.1.42即可。這意味著涉及到libqt.so.1的程序?qū)⒆詣?dòng)地使用這個(gè)庫(kù)的新版本。按照慣例,符號(hào)連接常用于完整的發(fā)布版本號(hào)。換句話說,libqt.so.1.88和libqt.so.2.32應(yīng)該有兩個(gè)不同的動(dòng)態(tài)連接(分別為libqt.so.1和libqt.so.2)。

2.2 編譯前的準(zhǔn)備工作

以下步驟將為系統(tǒng)做好編譯前的準(zhǔn)備工作。

1. mkdir /usr/local/src -- 我選用/usr/local樹作為所安裝應(yīng)用程序的根目錄。其他人可能選用/usr/opt、/opt或/var目錄。為了更方便的按照本章中的指令操作,請(qǐng)選用/usr/local目錄作為根目錄。當(dāng)編譯完成以后,用戶可以把這些文件復(fù)制到不同的目錄中。

注意:為了能完成本章中的其它步驟,使用者必須具備root權(quán)限。

2. cd /usr/local/src--轉(zhuǎn)到源文件目錄下。

3. 下載以下文件(可以從站點(diǎn)下載),或者從本書隨機(jī)附帶的光盤中,復(fù)制這些文件到/usr/local/src目錄下:

. apache_1.3.4.tar.gz

. gcc-2.8.1.tar.gz

. mysql-3.22.16b-gamma.tar.gz

. php-3.0.11.tar.gz

. expat.tar.gz

. phplib.tar.gz

. libiodb-2.50.3

. myodbc-2.50.24-src

4. 使用tar命令解壓縮以上文件。tar的x選項(xiàng)為解開選項(xiàng),v選項(xiàng)將在屏幕上顯示文檔中解出來的文件名,z選項(xiàng)為解壓縮選項(xiàng),f選項(xiàng)用于在命令行中指定.tar文件名。

tar xvzf apache_1.3.4.tar.gz

tar xvzf gcc-2.8.1.tar.gz

tar xvzf mysql-3.22.16b-gamma.tar.gz

tar xvzf php-3.0.11.tar.gz

tar xvzf expat.tar.gz

tar xvzf phplib.tar.gz

5. gcc -v

確定系統(tǒng)中現(xiàn)有g(shù)cc的版本。如果你的系統(tǒng)不是v2.7.2.3,在下面的操作步驟中采用你的gcc版本號(hào)替換v.2.7.2.3。

6. cp `which gcc` /usr/bin/gcc-2.7.2.3

如果需要,把現(xiàn)有的gcc備份,以便以后使用。Linux的另一個(gè)優(yōu)點(diǎn)是可以很容易在目錄下存儲(chǔ)一個(gè)程序的多個(gè)版本。

7. httpd -v

確定系統(tǒng)中的Apache的版本號(hào)。如果你的系統(tǒng)中的Apache不是v1.3.4,在下面的操作步驟中使用你的版本號(hào)替換v1.3.4。

8. mv `which httpd` /usr/sbin/httpd-1.3.4

如果需要,把現(xiàn)有的Apache備份,以便以后使用。

2.3 編譯C編譯器gcc

使用者應(yīng)該安裝、編譯程序的第一個(gè)程序就是C編譯器。隨Red Hat v5.2附帶的C編譯器是gcc v2.7.2.3,由于它的版本比較低,以至于不能正確的編譯PHP。然而gcc v.2.7.3可以用來編譯版本較高的gcc v2.8.1。

編譯新版本的gcc需要執(zhí)行:

1. cd /usr/local/src/gcc-2.8.1

轉(zhuǎn)到gcc的頂級(jí)目錄下。

2. ./configure -prefix=/usr/local/gcc

運(yùn)行配置程序,強(qiáng)制安裝程序在后面的安裝過程中使用/usr/local/gcc作為gcc的安裝目錄。

3. make bootstrap LANGUAGES="c c++" BOOT_CFLAGS="-g -02"

編譯新的C和C++編譯器。

4. make install LANGUAGES="c c++" BOOT_CFLAGS="-g -02"

安裝新的C和C++編譯器。

5. mv /usr/local/gcc/bin/gcc /usr/local/gcc/bin/gcc-2.8.1

把新的gcc編譯器重新命名,使它的名字中含有版本號(hào)。

6. ln -s \

/usr/local/gcc/bin/gcc-2.8.1 \

/usr/bin/gcc-

給新編譯過的gcc可執(zhí)行文件創(chuàng)建一個(gè)符號(hào)連接/usr/bin/gcc。

7. gcc -v

顯示gcc的版本號(hào)。如果編譯和安裝都正常的話,將顯示v.2.8.1。

2.3 編譯MySQL

現(xiàn)在來編譯MySQL。在編譯工作完成之后,就可以使用MySQL的應(yīng)用程序來測(cè)試安裝。

1. cd /usr/src/mysql-3.22.16a-gamma

轉(zhuǎn)到MySQL的頂級(jí)目錄下。

2. ./configure --prefix=/usr/local/mysql

運(yùn)行配置程序,強(qiáng)制安裝程序在后面的安裝過程中使用/usr/local/mysql作為MySQL的安裝目錄。

3. make

編譯MySQL。

4. make install

安裝MySQL。

5. echo "/usr/local/mysql/lib/mysql" /etc/ld.so.conf

將MySQL庫(kù)所在的目錄添加進(jìn)配置文件中。這樣,當(dāng)Linux啟動(dòng)或者執(zhí)行l(wèi)dconfig命令時(shí),將會(huì)在該配置文件中的目錄里搜索庫(kù)文件。

6. ldconfig -v | grep libmysqlclient

ldconfig命令能讀取/etc/ld.so.conf文件中列出的目錄,并對(duì)在那些目錄里找到的庫(kù)文件進(jìn)行緩沖。grep命令在ldconfig命令的大量輸出結(jié)果中查找MySQL庫(kù)文件,并限定文本以類似下面方式進(jìn)行顯示:

libmysqlclient.so.6 = libmysqlclient.so.6.0.0.

7. echo "/usr/local/mysql/bin/safe_mysqld /dev/null " /etc/rc.d/rc.local

將MySQL啟動(dòng)指令添加到/etc/rc.d/rc.local文件中,這樣每次啟動(dòng)Linux后就會(huì)自動(dòng)運(yùn)行MySQL。

8. ./scripts/mysql_install_db

初始化數(shù)據(jù)庫(kù)。

9. /usr/local/mysql/bin/safe_mysqld /dev/null

啟動(dòng)MySQL服務(wù)器作為后臺(tái)程序,為了測(cè)試安裝,MySQL服務(wù)器必須啟動(dòng)。

10. ln -s \

/usr/local/mysql/bin/mysql \

/usr/bin/mysql

我比較喜歡在/usr/bin目錄下為安裝目錄建立符號(hào)鏈接。這一方法減少了PATH環(huán)境變量中的目錄數(shù)量,還可以將不希望其他人運(yùn)行的MySQL工具程序隱藏起來,(例如,mysqladmin命令)。另一方法是將命令PATH="$PATH:/usr/local/mysql/bin"放在/etc/profile文件中。以上兩種方法都很可以采用。

11. ln -s\

/usr/local/mysql/bin/mysqlshow \

/usr/bin/mysqlshow

該指令是讓一般用戶都可以運(yùn)行mysqlshow命令。

2.4 測(cè)試MySQL

在繼續(xù)Apache和PHP編譯之前,首先來測(cè)試MySQL的安裝是否成功。正式發(fā)布的MySQL帶有許多有用的工具,這里我們只使用mysql和mysqlshow命令來進(jìn)行測(cè)試。(如果對(duì)數(shù)據(jù)庫(kù)不熟悉,請(qǐng)不用擔(dān)心,諸如用戶、表、記錄等數(shù)據(jù)庫(kù)的概念將在第六章“數(shù)據(jù)庫(kù)和SQL”中加以介紹。)

mysqladmin的作用是建立和刪除數(shù)據(jù)庫(kù)、檢查SQL的狀態(tài),以及其他一些用途。首先,通過檢查版本號(hào)以確認(rèn)是否已經(jīng)正確安裝了MySQL:

PATH="usr/local/mysql/bin:$PATH"

mysqladmin version

Ver 7.8 Distrib 3.22.16a-gamma, for pc-linux-gun on i686 TCX Datakonsult AB, by Monty

Server version 3.22.16a-gamma

Protocol version 10

Connection Localhost via UNIX socket

UNIX socket /tmp/mysql.sock

Uptime: 2 hours 30 min 39 sec

Threads: 1 Questions: 7 Slow queries: 0

Opens: 6 Flush tables: 1 Open tables: 2

可以用以下命令觀看mysqladmin的所有功能.

mysqladmin --help | less

也許mysqlshow是更讓人激動(dòng)的工具,它能夠列出數(shù)據(jù)庫(kù)、表和字段名,如下所示:

清單2.1 mysqlshow--顯示數(shù)據(jù)庫(kù),表和字段名清單

Page 18(第13行)-19(倒數(shù)第10行) , 清單 2.1

最后要介紹的MySQL工具是mysql,這個(gè)程序?qū)⑸钊氲組ySQL的中心,并且可以使你可以立刻在Linux命令行提示下執(zhí)行SQL語句。在shell模式下運(yùn)行mysql。

Page 19(倒數(shù)第5行)-20(倒數(shù)第5行)

小心:設(shè)置密碼要使用password()函數(shù)。如果需要進(jìn)一步了解,請(qǐng)查閱MySQL文檔。

小心:在系統(tǒng)進(jìn)入正常工作模式的時(shí)候,請(qǐng)選用一個(gè)比“password”更好的root密碼。

2.5 編譯iODBC和MyODBC

iODBC是一個(gè)實(shí)現(xiàn)開放性數(shù)據(jù)庫(kù)互連(Open Database connectivity)協(xié)議的函數(shù)庫(kù)。它主要用于連接運(yùn)行于Microsoft Windows的數(shù)據(jù)庫(kù)引擎。

1. cd /usr/local/src/libiodbc-2.50.3

轉(zhuǎn)到iODBC目錄。

2. ./configure \

--prefix=/usr/local/iodbc \

--with-iodbc-inidir=/usr/local/etc

運(yùn)行配置程序,并強(qiáng)制設(shè)置iODBC為安裝到目錄/usr/local/iodbc下。此外,應(yīng)確認(rèn)odbc的初始化文件為/etc/odbc.ini。

3. make

4. make install

把庫(kù)文件復(fù)制到目錄/usr/local/iodbc/lib下,并且把包含文件復(fù)制到目錄/usr/local/iodbc/include下。

5. cd /usr/local/src/myodbc-2.50.24

轉(zhuǎn)到MyODBC目錄下。

6. ./configure \

--prefix=/usr/local/myodbc \

--with-mysql-sources=/usr/local/mysql-3.22.16a-gamma \

--with-odbc-ini=/etc/odbc.ini \

--with-iodbc=/usr/local/iodbc

運(yùn)行MyODBC配置程序。

7. make

8. make install

把庫(kù)復(fù)制到目錄/usr/local/myodbc/lib下。

2.6 編譯PHP

編譯PHP比編譯以前的應(yīng)用程序更復(fù)雜,這是因?yàn)榫幾gPHP事實(shí)上是expat、Apache和PHP的組合。編譯的結(jié)果將生成一個(gè)帶有PHP的Apache版本。為了要編譯PHP,可以采用以下步驟:

1. cd /usr/local/src/expat

轉(zhuǎn)到expat目錄。

2. make

編譯expat源文件。

3. 把以下命令加到Makefile文件中,必須保證在輸入ar和ralib之前使用的是Tab鍵。

libexpat.a: $(OBJS)

ar -rc $@ $(OBJS)

ranlib $@

4. make libexpat.a

把expat目標(biāo)文件組合成庫(kù)文件。

5. mv libexpat.a /usr/local/lib

PHP配置文件在/usr/local/lib目錄下尋找libexpat.a文件。把libexpat.a文件移到PHP配置文件已知的目錄下,可以為以后的操作減少麻煩。

6. cd /usr/local/src/php-3.0.11

轉(zhuǎn)到PHP的頂級(jí)目錄下。

7. mkdir /usr/local/include/xml

確認(rèn)/usr/local/include/xml目錄是存在的。

8. ln -s \

/usr/local/src/expat/xmltok/xmltok.h \

/usr/local/include/xml/xmltok.h

當(dāng)能創(chuàng)建符號(hào)連接時(shí),為什么還要復(fù)制呢?

9. ln -s \

/usr/local/src/expat/xmlparse.h \

/usr/local/include/xml/xmlparse.h

這是PHP為了能夠正確地被編譯所需要的另一個(gè)包含文件。

10. cd /usr/local/src/apache_1.3.4

轉(zhuǎn)到Apache的頂級(jí)目錄下。

11. ./configure -prefix=/usr/local/apache

運(yùn)行配置程序,強(qiáng)制設(shè)置Apache安裝目錄為/usr/local/apache。

12. cd /usr/local/src/php-3.0.11

轉(zhuǎn)到PHP的頂級(jí)目錄下。

13. ./configure \

--with-apache=../apache_1.3.4 \

--with-iodbc=/usr/local/iodbc \

--with-mysql=/usr/local/mysql \

--with-xml

運(yùn)行配置程序,并且告訴配置程序支持Apache、MySQL和XML。

14. make

編譯PHP源文件。

15. make install

安裝已編譯的文件。PHP庫(kù)文件會(huì)被放在Apache的模塊目錄下,這樣可以在編譯Apache時(shí)能找到它們。

16. cd /usr/local/src/apache_1.3.4

轉(zhuǎn)到Apache的頂級(jí)目錄下。

17. ./configure \

--prefix=/usr/local/apache \

--active-module=src/modules/php3/libphp3.a

再一次配置Apache,這次告訴Apache要加載PHP模塊。

18. make

編譯Apache源文件。

19. make install

安裝已編譯的文件。

20. mv \

/usr/local/apache/bin/httpd \

/usr/local/apache/bin/httpd-1.3.4

重新命名新創(chuàng)建的httpd可執(zhí)行文件,這樣就能夠安裝多種版本。

21. ln -s \

/usr/local/apache/bin/httpd-1.3.4 \

/usr/sbin/httpd

建立一個(gè)指向新的可執(zhí)行文件的符號(hào)鏈接。

22. httpd -v

證實(shí)可以訪問新的可執(zhí)行文件。該命令的執(zhí)行結(jié)果將顯示版本1.3.4,而且建立日期也應(yīng)該正確無誤。

23. 編輯/usr/local/apache/conf/http.conf文件,搜索AddType并確認(rèn)下列行未加注釋。

AddType application/x-httpd-php3 .phtml

AddType application/x-httpd-php3 .php3

AddType application/x-httpd-php3-source .phps

24. 接著編輯/usr/local/apache/conf/http.conf文件,搜索DirectoryIndex并將index.php3放在行尾。

25. 創(chuàng)建一個(gè)名為/usr/local/local/php3.ini的文件,該文件應(yīng)包含如下的命令行:

include_path=.:/usr/local/apache/php/

auto_prepend_file=/usr/local/apache/php/prepend.php3

track_vars = on

magic_quotes_gpc = on

sendmail_path /usr/sbin/sendmail -t

26. ln -s \

/usr/local/src/php-3.0.11/doc/manual.html \

/usr/local/src/php-3.0.11/doc/index.html

建立一個(gè)符號(hào)鏈接,這樣絕大多數(shù)Web瀏覽器就會(huì)正確地自動(dòng)顯示PHP文件起始頁。

27. ln -s \

/usr/local/src/php-3.0.11/doc \

/usr/local/apache/htdocs/phpdocs

建立一個(gè)符號(hào)鏈接,這樣就可以通過, 來訪問PHP文檔。

28. 創(chuàng)建一個(gè)叫做/usr/local/apache/htdocs/robots.txt的文件,這樣就可避免搜索引擎為PHPLIB,phpMyAdmin和PHP文件建立索引,新創(chuàng)建的文件應(yīng)包括如下設(shè)置行:

#robots.txt for (hostname)

User-agent *

Disallow: /phpdocs/

Disallow: /php/

Disallow:/phpMyAdmin/

2.7 安裝PHPLIB

在閱讀第15章“處理并發(fā)的訪問”之前,應(yīng)先安裝PHPLIB,可以按照下列步驟進(jìn)行安裝:

1. 以root用戶或其他任何可以在/usr/local/apache目錄下寫文件的用戶注冊(cè)。

2. cd /usr/local/apache/

在開始下載文件之前,進(jìn)入到Web服務(wù)器的頂級(jí)目錄下。

3. 從如下Web網(wǎng)址下載最新版本的文件,注意gz后綴的文件名,以免它的文件名phplib.tar.gz被改動(dòng)。

4. tar xv2f phplib.tar.gz

解壓縮PHPLIB模塊。

5. 編輯/usr/local/lib/php3.ini文件,應(yīng)包括下列設(shè)置內(nèi)容:

include_path=.:/usr/local/apache/phplib-6.1/php

auto_prepend_file = /usr/local/apache/phplib-

6.1/php/prepend.php3

track_vars = on

magic_quotes_gpc = on

sendmail_path /usr/sbin/sendmail -t

6. 建立一個(gè)名為poe_sessions的mysql數(shù)據(jù)庫(kù)。我一般使用phpMyAdmin,如果愿意,也可以使用SQL命令創(chuàng)建數(shù)據(jù)庫(kù)。

7. cd /usr/local/apache/phplib-6.1/stuff

進(jìn)入建表目錄下。

8. mysql php_book --user=root --password

create_database.mysql

創(chuàng)建PHPLIB所需要的數(shù)據(jù)庫(kù)表。

9. 使用以下值在mysql數(shù)據(jù)庫(kù)表中增加一條新記錄:

host: %

password: -- no password.

select_priv: Yes

insert_priv: Yes

update_priv: Yes

delete_priv: Yes

for users named "kris","user01",and "user02".

注意:也可以使用如下SQL語句:

INSERT INTO

user

(

Host

,User

,Password

,Select_priv

,Insert_priv

,Update_priv

,Delete_priv

)

VALUES (

'%'

, 'kris'

, ''

, 'Y', 'Y', 'Y', 'Y'

)

10. 使用以下值在mysql數(shù)據(jù)庫(kù)的db表中增加一條新記錄:

host: %

db: poe_sessions

select_priv: Yes

insert_priv: Yes

update_priv: Yes

delete_priv: Yes

for users named "kris","user01",and "user03".

注意:也可以使用如下SQL程序。

INSERT INTO

db

(

Host

,Db

,User

,Select_priv

,Insert_priv

,Update_priv

,Delete_priv

)

VALUES (

'%'

, 'poe_sessions '

, 'kris'

, 'Y', 'Y', 'Y', 'Y'

)

11. /usr/local/mysql/bin/mysqladmin -u root -p reload

重新裝載MySQL權(quán)限表。

12. 在php_book數(shù)據(jù)庫(kù)中創(chuàng)建兩個(gè)PHPLIB已認(rèn)證的用戶(user01和user02),可以使用如下SQL語句:

INSERT INTO

auto_user

(

uid

,username

,password

,perms

) VALUES (

'c14cbf141ab1b7cd009356f555b1234'

,'user01'

,'test'

,'admin'

)

INSERT INTO

auth_user

(

uid

,username

,password

,perms

) VALUES (

'c14cbf141ab1b7cd009356f555b3241'

,'user02'

,'test'

,'admin'

)

13. mv\ /use/local/apache/phplib-6.1/pages \

/use/local/apach/htdocs

將演示子目錄置于Web服務(wù)器的根目錄下,這樣就可以用瀏覽器訪問它。

14. 編輯文本文件/usr/local/apache/htdocs/robots.txt,使它包括如下內(nèi)容:

Disallow: /phplib/

15. 使用Web瀏覽器訪問。將會(huì)看到如圖2.1所示頁面。

Page 29 圖2.1

圖2.1 重新裝載兩次以后出現(xiàn)的PHPLIB演示頁面

2.8 測(cè)試Linux環(huán)境下的ODBC

對(duì)所裝軟件進(jìn)行基本測(cè)試是很重要的,特別是需要手工編輯配置文件時(shí)。如下的測(cè)試可確保你的MySQL驅(qū)動(dòng)程序運(yùn)行正常,并且編譯的iODBC庫(kù)文件也是正確無誤的。

1. 使用清單2.1所列的內(nèi)容,建立一個(gè)名為/usr/local/etc/odbc.ini的文件。

清單 2.2 /usr/local/etc/odbc.ini- 系統(tǒng)ODBC 配置文件

;

;odbc.ini

;

[ODBC Data Sources]

mysql = mysql

[php_book]

driver = /usr/local/myodbc/lib/libmyodbc.so

host = localhost

database = mysql

user = root

2. cd /usr/local/src/libiodbc-2.50.3/samples

3. ./odbctest

運(yùn)行ODBC測(cè)試程序。

4. DSN=mysql;PWD=password

告訴測(cè)試程序要訪問的數(shù)據(jù)源。

5. select host,user from user

在提示符下執(zhí)行一個(gè)SQL語句,如果有回應(yīng),說明iODBC和MySQL已經(jīng)可以使用了。

現(xiàn)在,在計(jì)算機(jī)中已經(jīng)安裝好了ODBC,由于它的安裝步驟不太清晰而且文檔又很少,所以本章中講述了其安裝和測(cè)試指令,然而鑒于ODBC主要是一項(xiàng)Microsoft技術(shù),且很少在Linux中用到,所以這里是本書中最后一次有關(guān)介紹。

2.9 總結(jié):

本章講述了如何獲取PHP,及在計(jì)算機(jī)中進(jìn)行安裝所需要的步驟,編譯了內(nèi)建PHP的特定版本Apache 服務(wù)器。同時(shí),還安裝了將在第15章“中場(chǎng)四:處理并發(fā)訪問”中用所到的PHPLIB。

新聞標(biāo)題:php教程數(shù)據(jù)處理教程,php詳細(xì)教程
網(wǎng)址分享:http://jinyejixie.com/article46/hsiehg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司云服務(wù)器、自適應(yīng)網(wǎng)站微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)
恩施市| 图们市| 双城市| 汝阳县| 息烽县| 和静县| 固原市| 湟中县| 湟中县| 云安县| 张家港市| 湘乡市| 九江市| 三都| 台前县| 庆元县| 赤水市| 南京市| 旬邑县| 永清县| 武城县| 普安县| 涿鹿县| 溧阳市| 云霄县| 永州市| 恩平市| 重庆市| 古交市| 榆树市| 永和县| 宿州市| 晋中市| 阿图什市| 高淳县| 正镶白旗| 金溪县| 锡林郭勒盟| 社旗县| 长岭县| 墨玉县|