大家有不少都成功實(shí)現(xiàn)apache+php+mysql,網(wǎng)上的文章也有不少,但我發(fā)現(xiàn)不少文章都是抄來(lái)抄去,并且沒(méi)有說(shuō)明白編譯的方式,有的索性apache1.3的編譯方法原封不動(dòng)的搬過(guò)來(lái)套在apache2.0,顯然誤導(dǎo)一些菜鳥(niǎo)!
今天就以apache+mysql+php說(shuō)一下靜態(tài)編譯和DSO動(dòng)態(tài)編譯的區(qū)別,我會(huì)分別拿apache1.3.27和apache2.0.46
說(shuō)明,因?yàn)閮蓚€(gè)版本的編譯命令是有所區(qū)別的。
系統(tǒng)和所需軟件:
Redhat9.0
apache:1.3.27 和 2.0.46
php: 4.3.2
mysql:4.0.13
首先來(lái)安裝mysql,這不是我們的重點(diǎn),所以關(guān)于mysql的安裝配置我就很快過(guò)去了
tar zvxf mysql-4.0.13.tar.gz
cd mysql-4.0.13
./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql &&
make &&
make install
安裝完成!
然后初始化數(shù)據(jù)庫(kù)
/usr/local/mysql/bin/mysql_install_db
設(shè)置權(quán)限:
chown -R root /usr/local/mysql
復(fù)制配置文件;
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
啟動(dòng)mysql:
/use/local/mysql/bin/mysqld_safe --user=root &
修改密碼:初始的root密碼是空的
/usr/local/mysql/bin/mysqladmin -u root -p password 1234
enter password:
把密碼修改為1234,由于初始密碼為空,所以enter password直接回車就行
測(cè)試一下新的密碼:
mysql -u root -p mysql
enter password:1234
如果順利的話就能進(jìn)入mysql。
好了mysql就講這么多,有什么問(wèn)題也不要問(wèn)我,我對(duì)mysql不是很熟悉。
好了下面是我們的重頭戲,我將分別通過(guò)靜態(tài)和動(dòng)態(tài)DSO編譯apache+php
至于什么是靜態(tài),什么是DSO動(dòng)態(tài)我這里就不多講了,本人個(gè)人傾向大家用DSO動(dòng)態(tài)編譯。
首先是apache1.3.29+php4.3.4+mysql4.0.13的靜態(tài)編譯
apache第一次編譯,并不要安裝,因?yàn)閜hp的編譯需要apache至少已經(jīng)編譯過(guò)一次
tar zvxf apache_1.3.27.tar.gz
cd apache_1.3.27
./configure --prefix=/usr/local/apache
編譯php
tar zvxf php4.3.4.tar.gz
cd php4.3.4
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apache=../apache_1.3.27 &&
make &&
make install
第二次編譯安裝apache:
cd ../apache_1.3.29
./configure --prefi=/usr/local/apache --activate-module=src/modules/php4/libphp4.a &&
make &&
make install
cp ../php4.3.4/php.ini.dist /usr/local/php/lib/php.ini
修改/usr/local/apache/conf/httpd.conf
查找
在此范圍添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
注意:apache和php的源碼包在同一個(gè)目錄,--with-apache=../apache_1.3.27是指向源碼解壓的目錄
ok!靜態(tài)編譯完成,大家只要啟動(dòng)一下服務(wù)器
/usr/local/apache/bin/apachectl start
然后些個(gè)php測(cè)試頁(yè)info.php:內(nèi)容如下
phpinfo();
?>
正常的話,應(yīng)該能看到php的信息了,恭喜你靜態(tài)編譯成功?。?!
我們?cè)賮?lái)講講DSO動(dòng)態(tài)編譯的方法:
首先編譯安裝apache
tar zvxf apache_1.3.29
cd apache_1.3.29
./configure --prefix=/usr/local/apache --enable-module=so --enable-module=rewrite --enable-shared=max &&
make &&
make install
so模塊用來(lái)提供DSO支持的apachehe核心模塊,rewrite是地址重寫(xiě)的模塊,如果不需要可以不編譯
enable-shared=max是指除了so以外的所有標(biāo)準(zhǔn)模塊都編譯成DSO模塊。
然后編譯php
tar zvxf php4.3.4.tar.gz
cd php4.3.2
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs=/usr/local/apache/bin/apxs &&
make &&
make install
然后修改httpd.conf,方法同靜態(tài)編譯的方法
OK,DSO動(dòng)態(tài)編譯就完成了,大家應(yīng)該看出明堂來(lái)了吧,中間有什么區(qū)別應(yīng)該看的很清楚了吧?。?!
接下來(lái)我們講apache2.0.46+php4.3.2的編譯方法,我這里只講DSO動(dòng)態(tài)編譯,靜態(tài)編譯實(shí)在沒(méi)有時(shí)間測(cè)試了,
留給大家自己去試了。
一樣現(xiàn)編譯安裝apache
tar zvxf httpd-2.0.46.tar.gz
cd httpd-2.0.46
./configure --prefix=/usr/local/apache2 --enable-so --enable-mods-shared=most &&
make &&
make install
大家注意了--enable-so相當(dāng)與1.3.27的--enable-module=so,而--enable-mods-shared=most又等同與以前的
--enable-shared=max 這些區(qū)別大家要注意了,否則編譯錯(cuò)了不要找我
然后還是編譯PHP
tar zvxf php4.3.2.tar.gz
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache2/bin/apxs &&
make &&
make install
注意這里是apxs2?。?!
修改httpd.conf與1.3.27也有所不同,大家尋找Add Type application/x-tar .tgz 在下面添加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
另外要顯示中文的話,修改:
AddDefaultCharset gb2312
啟動(dòng)一下apache
/usr/local/apache2/bin/apachectl start
用那個(gè)info.php測(cè)試一下,應(yīng)該不會(huì)有多大問(wèn)題哦?。?!
新聞熱點(diǎn)
疑難解答