解析PHP安裝十大問題_PHP教程
推薦:PHP MySQL分頁顯示分析Web開發(fā)是今后分布式程式開發(fā)的主流,通常的web開發(fā)都要涉及到與數(shù)據(jù)庫打交道,客戶端從服務(wù)器端讀取通常都是以分頁的形式來顯示,一頁一頁的閱讀起來既方便又美觀。所以說寫分頁程序是web
1. unix: 我安裝了 php, 但我每次加載一個(gè)文檔, 會得到下面的消息: 'document contains no data'! 怎么回事?
這可能是因?yàn)槟愕?php 發(fā)生了core-dumping錯(cuò)誤。 查找你的服務(wù)器錯(cuò)誤日志文件,看看是否屬于這種情況。 然后報(bào)告這個(gè)錯(cuò)誤。如果你知道怎樣使用 'gdb',你可以提供一個(gè) backtrace 在你的錯(cuò)誤報(bào)告里。這將會對開發(fā)人員解決 這個(gè)問題有很大幫助。如果你是在將php作為apache模塊使用,那么請按下面的步驟做:
停止 httpd 進(jìn)程
gdb httpd
停止 httpd 進(jìn)程
> run -x -f /path/to/httpd.conf
瀏覽你剛才出錯(cuò)的 url
> run -x -f /path/to/httpd.conf i6>
如果你還有 core dump, gdb 現(xiàn)在會通知你
打入:
在你的 bug report里應(yīng)該包含backtrace 。 這些會被發(fā)往 http://bugs.php.net/
如果你的腳本使用了正則表達(dá)式函數(shù) (ereg() and friends), 你應(yīng)該確保你編譯 php 和 apache 用的是同一個(gè)正則表達(dá)式包。 在 php 和 apache 1.3.x 這個(gè)過程是自動(dòng)進(jìn)行的。
2. unix/windows: 我的php.ini 文件應(yīng)該放在哪?unix下默認(rèn)它應(yīng)該放在 /usr/local/lib 目錄下。 這是它的 /lib. 很多人會在編譯時(shí)改變它,使用--with-config-file-path 標(biāo)志。 例如, 你可以這樣設(shè)它: --with-config-file-path=/etc
然后你可以復(fù)制源程序包里的 php.ini-dist 到 /etc/php.ini ,編輯它滿足你的本地化需求。
windows下 php.ini默認(rèn)的路徑是 windows 系統(tǒng)目錄. 如果你在使用 apache webserver, php.ini 則最先在 apaches 安裝目錄下被查找, 例如: c:\program files\apache group\apache. 這樣你可以有不同的 php.ini 對應(yīng)不同版本的 apache(同一臺機(jī)器上)。更多細(xì)節(jié)請查閱 configuration file.
3. unix: 我使用 rpms 安裝 php , 但apache 不支持 php頁面! 怎么辦?
假設(shè)你安裝了 apache 和 php(從 rpm ) , 你需要反注釋或者增加一些行在你的 http.conf 文件里: # extra modulesaddmodule mod_php.caddmodule mod_php3.caddmodule mod_perl.c# extra modulesloadmodule php_module modules/mod_php.soloadmodule php3_module modules/libphp3.so /* for php 3 */loadmodule php4_module modules/libphp4.so /* for php 4 */loadmodule perl_module modules/libperl.so
and add: addtype application/x-httpd-php3 .php3 /* for php 3 */addtype application/x-httpd-php .php /* for php 4 */
到全局域里, 或者到你想要的 支持php的虛擬域里。
4. 我使用 rpms 安裝 php 3 , 但是它沒有我需要的數(shù)據(jù)庫選項(xiàng)支持! 我該怎么辦?
因?yàn)?php 3 內(nèi)建支持的關(guān)系, 編譯一個(gè)完整的可適于所有應(yīng)用的 php rpm是相當(dāng)困難的。 在 php 4有談到這點(diǎn)。 對 php 3, 我們只好建議你使用install.redhat (在 php包里)描述的機(jī)制。 如果你一定要使用 rpm 版的 php 3, 讀... rpm 包管理器設(shè)置 rpms 簡單的安裝,不帶數(shù)據(jù)庫支持 and 因?yàn)閞pms 使用 /usr/ 而不是標(biāo)準(zhǔn)的 /usr/local/ 目錄存放文件. 你需要告訴 rpm 文件你要支持哪種數(shù)據(jù)庫以及它們的最上級目錄的位置。
下面的例子將解釋在apache模式下怎樣支持通行的數(shù)據(jù)庫mysql.
當(dāng)然所有的這些可以稍作修改,以支持其它的php支持的數(shù)據(jù)庫。我們假設(shè)你安裝了 mysql and apache ,完全是用 rpms 安裝的。
首先,移去 mod_php3 : rpm -e mod_php3 4 *88r:<P?
然后取得rpm包并安裝, 不是 --重編譯 rpm -uvh mod_php3-3.0.5-2.src.rpm =%/
編輯/usr/src/redhat/specs/mod_php3.spec 文件
在 %build 一節(jié)里增加你想要的數(shù)據(jù)庫支持, 以及路徑信息。
對 mysql 你應(yīng)該增加: --with-mysql=/usr \
%build 節(jié)看起來象: ./configure --prefix=/usr \ --with-apxs=/usr/sbin/apxs \ --with-config-file-path=/usr/lib \ --enable-debug=no \ --enable-safe-mode \ --with-exec-dir=/usr/bin \ --with-mysql=/usr \ --with-system-regex w o!t"iYOU
改動(dòng)完成后,象下面這樣重編rpm : rpm -bb /usr/src/redhat/specs/mod_php3.spec ,
then install the rpm rpm -ivh /usr/src/redhat/rpms/i386/mod_php3-3.0.5-2.i386.rpm A?
重啟 apache,你已經(jīng)得到了rpm下的mysql的支持。 注意到這種做法比你重新得到一個(gè) php 3 的tarball 代碼,按照 install.redhat 的指引一步一步做要容易得多。
5. unix: 我用 frontpage 擴(kuò)展包對apache打了補(bǔ)丁, 忽然 php 停止工作。 是php 和 apache frontpage 包不兼容嗎 ?
不是, php 和 frontpage擴(kuò)展包運(yùn)行得很好.。問題是frontpage 包修改了幾個(gè)apache 結(jié)構(gòu)參數(shù),而php要用到它們.在frontpage擴(kuò)展包被打上后, 重新編譯 php (使用 'make clean ; make') ,會解決這個(gè)問題。
6. unix/windows: 我安裝了php,但在瀏覽器里看我的php頁面時(shí),空白一片。
在瀏覽器里用'查看源文件'看你的腳本,你可能會發(fā)現(xiàn)你看到的是源程序。這表示 web server 并沒有送腳本到php去執(zhí)行。肯定是服務(wù)器配置上哪兒出了錯(cuò)。 仔細(xì)檢查php安裝的 server 配置。
7. unix/windows: 我安裝了php,但在瀏覽器里看我的 php頁面時(shí),我得到一個(gè) server 500 error。這是服務(wù)器在運(yùn)行 php 時(shí)發(fā)生了錯(cuò)誤。 為了看到可讀的錯(cuò)誤信息,在命令行,改變目錄到 (php.exe windows)所在目錄, 運(yùn)行 php -i. 如果有任何問題,詳細(xì)的錯(cuò)誤信息就顯示出來了,它會告訴你下一步該做什么。 如果你得到滿屏的html代碼 (phpinfo() 函數(shù)的輸出), 那么php工作正常,這個(gè)錯(cuò)誤就是由于服務(wù)器配置引發(fā)的,應(yīng)該仔細(xì)檢查。
8. windows: 我安裝了php,但在瀏覽器里看我的php頁面, 得到如下錯(cuò)誤: cgi error: the specified cgi application misbehaved by not returning a complete set of http headers. the headers it did return are: !
這是 php 根本沒有產(chǎn)生任何輸出。 為了看到可讀的錯(cuò)誤信息,在命令行,改變目錄到 (php.exe windows)所在目錄, 運(yùn)行 php -i. 如果有任何問題,詳細(xì)的錯(cuò)誤信息就顯示出來了,它會告訴你下一步該做什么。 如果你得到滿屏的html代碼 (phpinfo() 函數(shù)的輸出), 那么php工作正常。
一旦php在命令行模式下工作,再看看你的腳本程序, 它還是失敗,可能是因?yàn)橐韵略?
你的php腳本的權(quán)限許可。 php.exe, php4ts.dll, php.ini 或者任何你可能裝入的php文件,它樣都必須能被匿名 internet 用戶 isur_ 訪問。
腳本文件根本不存在(或者不是你認(rèn)為的位置。)請注意在iis里,你能夠阻塞這個(gè)錯(cuò)誤,做法是在設(shè)置腳本映射目錄時(shí), 選上'check file exists'框。這樣如果腳本不存在,服務(wù)器會返回一個(gè)404錯(cuò)誤。 這樣做也有其它的一些好處, 就是iis僅為你做經(jīng)過授權(quán)的操作。
9. windows: 我嚴(yán)格按照install的要求做,可是還是不能讓我的php在iis下工作。
確定任何想要運(yùn)行php的用戶有操作php.exe的權(quán)限! iis 使用匿名的internet用戶,它是在iis安裝時(shí)系統(tǒng)自動(dòng)增加的。 這個(gè)用戶需要操作 php.exe的權(quán)限. 還有,任何需要授權(quán)的用戶也必須有訪問 php.exe的權(quán)限。 在 iis4下,你要告訴它php是一個(gè)腳本引擎。
10. 某些操作系統(tǒng): 我安裝php沒出錯(cuò),可是我啟動(dòng)apache時(shí),得到一個(gè) undefined symbol errors: [mybox:user /src/php4] root# apachectl configtest apachectl: /usr/local/apache/bin/httpd undefined symbols: _compress _uncompress
這個(gè)問題其實(shí)與 php 無關(guān), 而與 mysql 客戶端庫有關(guān)。 --with-zlib,有些操作系統(tǒng)需要,而有些不需要。mysql faq已經(jīng)講述了這個(gè)問題。
以上就是 PHP需要注意的十大問題!
分享:如何使用PHP中的字符串函數(shù)1)echo,print,printf,sprintf 前兩個(gè)函數(shù)是輸出字符串.字符串中如果有變量名則被替換成其值. 后兩個(gè)函數(shù)類似于C的同名函數(shù). (2)strchr,strlen,strtok,strrchr,strrev,strstr,strtolower
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁面代碼執(zhí)行時(shí)間
- PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問控制的和運(yùn)算符優(yōu)先級介紹
- 關(guān)于PHP語言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國語言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
- 相關(guān)鏈接:
- 教程說明:
PHP教程-解析PHP安裝十大問題
。