静态/动态编译在Apache+Php+Mysql的应用
大家有不少都成功实现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测试一下,应该不会有多大问题哦!!!
好了写了这么多,希望对大家有所帮助!!!
【相关文章】

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在建立虛擬機器時,系統會要求您選擇磁碟類型,您可以選擇固定磁碟或動態磁碟。如果您選擇了固定磁碟,後來意識到需要動態磁碟,或者相反,該怎麼辦?好!你可以把一種轉換成另一種。在這篇文章中,我們將看到如何將VirtualBox固定磁碟轉換為動態磁碟,反之亦然。動態磁碟是一種虛擬硬碟,它最初具有較小的大小,隨著您在虛擬機器中儲存數據,其大小會相應增長。動態磁碟在節省儲存空間方面非常高效,因為它們只佔用所需的主機儲存空間。然而,隨著磁碟容量的擴展,可能會稍微影響電腦的效能。固定磁碟和動態磁碟是虛擬機器中常用的

華為手機如何實現雙微信登入?隨著社群媒體的興起,微信已成為人們日常生活中不可或缺的溝通工具之一。然而,許多人可能會遇到一個問題:在同一部手機上同時登入多個微信帳號。對於華為手機用戶來說,實現雙微信登入並不困難,本文將介紹華為手機如何實現雙微信登入的方法。首先,華為手機自帶的EMUI系統提供了一個很方便的功能-應用程式雙開。透過應用程式雙開功能,用戶可以在手機上同

從主畫面中刪除了重要內容並試圖將其取回?您可以透過多種方式將應用程式圖示放回螢幕。我們已經討論了您可以遵循的所有方法,並將應用程式圖示放回主畫面如何在iPhone中撤消從主畫面中刪除正如我們之前提到的,有幾種方法可以在iPhone上恢復此變更。方法1–替換應用程式庫中的應用程式圖示您可以直接從應用程式庫將應用程式圖示放置在主畫面上。步驟1–橫向滑動以尋找應用程式庫中的所有應用程式。步驟2–找到您先前刪除的應用程式圖示。步驟3–只需將應用程式圖示從主庫拖曳到主畫面上的正確位置即可。這是將應用程式圖

PHP中箭頭符號的作用及實踐應用在PHP中,箭頭符號(->)通常用於存取物件的屬性和方法。物件是PHP中物件導向程式設計(OOP)的基本概念之一,在實際開發中,箭頭符號在操作物件時發揮重要作用。本文將介紹箭頭符號的作用以及實踐應用,並提供具體的程式碼範例來幫助讀者更好地理解。一、箭頭符號的作用存取物件的屬性箭頭符號可以用來存取物件的屬性。當我們實例化一個對

程式語言PHP是一種用於Web開發的強大工具,能夠支援多種不同的程式設計邏輯和演算法。其中,實作斐波那契數列是一個常見且經典的程式設計問題。在這篇文章中,將介紹如何使用PHP程式語言來實作斐波那契數列的方法,並附上具體的程式碼範例。斐波那契數列是一個數學上的序列,其定義如下:數列的第一個和第二個元素為1,從第三個元素開始,每個元素的值等於前兩個元素的和。數列的前幾元

Linuxtee命令是一個非常有用的命令列工具,它可以在不影響已有輸出的情況下,將輸出寫入檔案或將輸出送到另一個命令。在本文中,我們將深入探索Linuxtee命令的各種應用場景,從入門到精通。 1.基本用法首先,我們來看看tee指令的基本用法。 tee指令的語法如下:tee[OPTION]...[FILE]...該指令會從標準輸入讀取數據,並將數據

如何在華為手機上實現微信分身功能隨著社群軟體的普及和人們對隱私安全的日益重視,微信分身功能逐漸成為人們關注的焦點。微信分身功能可以幫助使用者在同一台手機上同時登入多個微信帳號,方便管理和使用。在華為手機上實現微信分身功能並不困難,只需要按照以下步驟操作即可。第一步:確保手機系統版本和微信版本符合要求首先,確保你的華為手機系統版本已更新至最新版本,以及微信App

Go語言是一種由Google開發的開源程式語言,於2007年首次發布。它被設計成一種簡單易學、高效、並發性強的語言,受到越來越多開發者的青睞。本文將探討Go語言的優勢,並介紹一些適合Go語言的應用場景,同時給出具體的程式碼範例。優勢並發性強:Go語言內建支援輕量級執行緒-goroutine,能夠輕鬆實現並發程式設計。透過使用go關鍵字就可以啟動goroutin
