1. <strike id="x5xg0"><small id="x5xg0"><ruby id="x5xg0"></ruby></small></strike>
      <code id="x5xg0"></code>

      <code id="x5xg0"></code>

      <del id="x5xg0"><em id="x5xg0"><optgroup id="x5xg0"></optgroup></em></del>

      <th id="x5xg0"></th>
      <object id="x5xg0"><option id="x5xg0"></option></object><strike id="x5xg0"><video id="x5xg0"></video></strike>

      當前位置 主頁 > iis相關 >

        關于IIS+PHP出現“500 - 內部服務器錯誤”的問題解決

        欄目:iis相關 時間:2018-09-14 15:07

          借著騰訊云的活動筆者成功租賃了一臺系統為WindowsServer2012R2的服務器,目前服務端構成是IIS+PHP+MySQL。不過最近在使用PHP操作MySQL數據庫的時候遇到了問題。有時會出現“500-內部服務器錯誤”,如下圖:
         
          但是問題來了,實際上PHP代碼在本地測試的時候(Windows10+Apache+PHP+MySQL)卻正常,沒有報錯。如下圖,同樣的代碼和相同的參數,訪問同樣的數據庫。
         
          看樣子是IIS+PHP的組合出了問題。為了解決問題,我們要排除500的錯誤可能是哪些,根據查閱的資料,筆者首先把IIS本身可能會產生500錯誤的地方全部進行了排查,比如讀寫權限等等。那么剩下的問題可能就出在php上面了。進一步查閱資料,有人在之前遇到了類似的情況,最后是通過對PHP工作目錄下的php.ini進行參數的修改解決的。php.ini中需要修改的內容如下(修改或者添加):
         
          display_errors=On
         
          error_log="C:\windows\Temp\php-5.x.yy_errors.log"
         
          error_reporting=E_ALL
         
          fastcgi.logging=0
         
          html_errors=On
         
          log_errors=On
         
          筆者按照上面的內容對服務器的php.ini進行了修改,但是出現了新的問題。如圖:
         
          500錯誤終于是沒了,然后出現了新的問題,What???PHP什么時候用變量要定義了(扶額)……
         
          只能硬著頭皮繼續找去掉解決方案,最終找到了兩種解決方案:
         
          一、修改php.ini
         
          error_reporting=E_ALL&~E_NOTICE
         
          register_globals=On
         
          這個問題其實主要出在error_reporting的參數,下面的register_globals筆者在php.ini中沒有找到(筆者使用的是php7),不添加也沒有問題。
         
          二、在php文件的頭部添加如下代碼
         
          ini_set("error_reporting","E_ALL&~E_NOTICE");
         
          這個方案適合沒有php.ini讀寫權限或者不想進行ini配置的情況,也能夠解決問題。
         
          再次訪問相同的頁面,終于沒有500錯誤和未定義變量的提示了,沒有比無報錯更讓人淚流滿面的事情了。
         
      縮小 縮小 縮小 縮小
      雅彩彩票登录