<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. php語言

    解決PHP的failed opening required問題的方法

    時間:2025-04-26 19:05:50 php語言 我要投稿
    • 相關推薦

    解決PHP的failed opening required問題的方法

      人要想學習一點東西,就應該先學會謙遜。以下是小編為大家搜索整理的解決PHP的failed opening required問題的方法,希望對大家有所幫助!更多精彩內容請及時關注我們應屆畢業生考試網!

      環境:WIN2003+IIS6+PHP5

      本機,2003下IIS6,配置php5,mysql ,phpMyAdmin。

      現在php及mysql都可以正常運行,架phpwind論壇也能正常運行。

      配置好ecshop的幾個參數后(就是那幾個用戶名,密碼什么的),在瀏覽器中運行ecshop,

      返回如下提示:

      Warning: require(../includes/init.php) [function.require]: failed to open stream: No such file or directory in C:AppServwwwindex.php on line 22

      Fatal error: require() [function.require]: Failed opening required '../includes/init.php' (include_path='.;C:php5pear') in C:AppServwwwindex.php on line 22

      原來原因是這樣的:PHP程序到服務器,只能在目錄中運行,無法在網站根目錄運行,還是目錄權限的問題。 / www.phpky.cn

      解決方法如下

      看下,D盤權限為administrator,下面有一目錄為網站目錄Web,權限為administrator,然后Web目錄下面是各個網站的目錄,比如說ecshop目錄,平時的建法是ecshop目錄權限為administrator,下面再建Data目錄和Web目錄,這兩個目錄的權限是權限為administrator+web_ecshop(IIS運行帳號),這樣問題就來了,放根目錄的PHP程序就會出現各種各樣的問題,就是不能正常運行,這應該是目錄權限繼承的問題。

      正確的權限設定是ecshop目錄權限為administrator+web_ecshop(IIS運行帳號),下面的兩個目錄權限為繼承,也就是網站根目錄的上級目錄的權限要和網站根目錄權限一樣這才樣就沒問題了。

      【相關閱讀】

      解決PHP無法訪問遠程MySQL的問題

      問題是這樣的:有A,B,C三臺服務器,C為服務器,B可以用PHP成功連接上C機器的mysql,而A機器則不能連接!

      可以說,肯定不是代碼有什么問題,服務器上的mysql設置也是沒什么問題的,因為B機器都是可以的。

      肯定是A機器的設置有問題!

      在網上一頓搜,各種說mysql授權問題的,以及修改php.ini的,修改防火墻的,事實上都不是這些問題導致的。

      最后想到了SELINUX的問題,對比了下AB兩臺機器,果然設置不一樣!估計就是它的問題,有戲!

      進行了如下設置:

      root下,用vim打開文件文件/etc/selinux/config

      修改SELINUX的值:

      #SELINUX=enforcing

      SELINUX=disabled

      保存并退出。

      重啟生效,如果不想重啟,命令行輸入

      setenforce 0

      回車,OK

      簡述php各種應用亂碼問題的解決方法

      1) 使用 標簽設置頁面編碼

      這個標簽的作用是聲明客戶端的瀏覽器用什么字符集編碼顯示該頁面,xxx 可以為 GB2312、GBK、UTF-8(和 MySQL 不同,MySQL 是 UTF8)等等。因此,大部分頁面可以采用這種方式來告訴瀏覽器顯示這個頁面的時候采用什么編碼,這樣才不會造成編碼錯誤而產生亂碼。但是有的時候我們會發現有了這句還是不行,不管 xxx 是哪一種,瀏覽器采用的始終都是一種編碼,這個情況我后面會談到。

      請注意, 是屬于 HTML 信息的,僅僅是一個聲明,僅表明服務器已經把 HTML 信息傳到了瀏覽器。

      2) header("content-type:text/html; charset=xxx");

      這個函數 header() 的作用是把括號里面的信息發到 http 標頭。如果括號里面的內容為文中所說那樣,那作用和 標簽基本相同,大家對照第一個看發現字符都差不多的。但是不同的是如果有這段函數,瀏覽器就會永遠采用你所要求的 xxx 編碼,絕對不會不聽話,因此這個函數是很有用的。為什么會這樣呢?那就得說說 http 標頭和 HTML信息的差別了:

      http 標頭是服務器以 http 協議傳送 HTML 信息到瀏覽器前所送出的字串。而 標簽是屬于 HTML 信息的,所以 header() 發送的內容先到達瀏覽器,通俗點就是 header() 的優先級高于 (不知道可不可以這樣講)。假如一個 php 頁面既有header("content-type:text/html;charset=xxx"),又有,瀏覽器就只認前者 http 標頭而不認 meta 了。當然這個函數只能在 php 頁面內使用。

      同樣也留有一個問題,為什么前者就絕對起作用,而后者有時候就不行呢?這就是接下來要談的Apache 的原因了。

      3) AddDefaultCharset

      Apache 根目錄的 conf 文件夾里,有整個 Apache 的配置文檔 httpd.conf。

      用文本編輯器打開 httpd.conf,第 708 行(不同版本可能不同)有 AddDefaultCharset xxx,xxx為編碼名稱。這行代碼的意思:設置整個服務器內的網頁文件 http 標頭里的字符集為你默認的 xxx字符集。有這行,就相當于給每個文件都加了一行 header("content-type:text/html; charset=xxx")。這下就明白為什么明明 設置了是 utf-8,可瀏覽器始終采用 gb2312 的原因。

      如果網頁里有 header("content-type:text/html; charset=xxx"),就把默認的字符集改為你設置的字符集,所以這個函數永遠有用。如果把 AddDefaultCharset xxx 前面加個"#",注釋掉這句,而且頁面里不含 header("content-type…"),那這個時候就輪到 meta 標簽起作用了。

      下面列出以上的優先順序:

      .. header("content-type:text/html; charset=xxx")

      .. AddDefaultCharset xxx

      如果你是 web 程序員,建議給你的每個頁面都加個header("content-type:text/html;charset=xxx"),這樣就可以保證它在任何服務器都能正確顯示,可移植性也比較強。

      4) php.ini 中的 default_charset 配置:

      php.ini 中的 default_charset = "gb2312" 定義了 php 的默認語言字符集。一般推薦注釋掉此行,讓瀏覽器根據網頁頭中的 charset 來自動選擇語言而非做一個強制性的規定,這樣就可以在同臺服務器上提供多種語言的網頁服務。

      PHP截取漢字亂碼問題解決方法mb_substr函數的應用。

    【解決PHP的failed opening required問題的方法】相關文章:

    php關閉warning問題的解決方法10-11

    php各種應用亂碼問題的解決方法05-31

    解決php fsockopen的方法07-14

    php處理json時中文問題的解決方法09-27

    解決PHP中文亂碼問題05-27

    PHP解決session死鎖的解決方法09-17

    PHP查詢大量數據內存耗盡問題的解決方法07-24

    php錯誤提示failed to open stream10-07

    完美解決PHP中文亂碼問題07-18

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人