程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 靜態/動態編譯在Apache+Php+Mysql的應用

靜態/動態編譯在Apache+Php+Mysql的應用

編輯:關於PHP編程

大家有不少都成功實現apache+php+mysql,網上的文章也有不少,但我發現不少文章都是抄來抄去,並且沒有說明白編譯的方式,有的索性apache1.3的編譯方法原封不動的搬過來套在apache2.0,顯然誤導一些菜鳥!

今天就以apache+mysql+php說一下靜態編譯和DSO動態編譯的區別,我會分別拿apache1.3.27和apache2.0.46

說明,因為兩個版本的編譯命令是有所區別的。

系統和所需軟件:
Redhat9.0
apache:1.3.27 和 2.0.46
php: 4.3.2
mysql:4.0.13

首先來安裝mysql,這不是我們的重點,所以關於mysql的安裝配置我就很快過去了

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

安裝完成!

然後初始化數據庫

/usr/local/mysql/bin/mysql_install_db

設置權限:

chown -R root /usr/local/mysql

復制配置文件;

cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf

啟動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直接回車就行

測試一下新的密碼:

mysql -u root -p mysql
enter password:1234

如果順利的話就能進入mysql。

好了mysql就講這麼多,有什麼問題也不要問我,我對mysql不是很熟悉。好了下面是我們的重頭戲,我將分別

通過靜態和動態DSO編譯apache+php

至於什麼是靜態,什麼是DSO動態我這裡就不多講了,本人個人傾向大家用DSO動態編譯。

首先是apache1.3.29+php4.3.4+mysql4.0.13的靜態編譯

apache第一次編譯,並不要安裝,因為php的編譯需要apache至少已經編譯過一次

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的源碼包在同一個目錄,--with-apache=../apache_1.3.27是指向源碼解壓的目錄

#ok!靜態編譯完成,大家只要啟動一下服務器

/usr/local/apache/bin/apachectl start

然後些個php測試頁info.php:內容如下

phpinfo();
?>

正常的話,應該能看到php的信息了,恭喜你靜態編譯成功!!!

我們再來講講DSO動態編譯的方法:

首先編譯安裝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模塊用來提供DSO支持的apachehe核心模塊,rewrite是地址重寫的模塊,如果不需要可以不編譯
enable-shared=max是指除了so以外的所有標准模塊都編譯成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,方法同靜態編譯的方法

OK,DSO動態編譯就完成了,大家應該看出明堂來了吧,中間有什麼區別應該看的很清楚了吧!!!

接下來我們講apache2.0.46+php4.3.2的編譯方法,我這裡只講DSO動態編譯,靜態編譯實在沒有時間測試了,留給大家自己去試了。

一樣現編譯安裝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相當與1.3.27的--enable-module=so,而--enable-mods-shared=most又等同與以前的
--enable-shared=max 這些區別大家要注意了,否則編譯錯了不要找我

然後還是編譯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

啟動一下apache

/usr/local/apache2/bin/apachectl start

用那個info.php測試一下,應該不會有多大問題哦!!!

好了寫了這麼多,希望對大家有所幫助!!!

【相關文章】


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved