您好,登錄后才能下訂單哦!
本文適用于以下問題
Apache出現No input file specified提示?
PHPWAMP出現No input file specified提示?
安裝網站程序出現No input file specified提示?
Apache如何設置偽靜態,Nginx如何設置偽靜態,iis如何設置偽靜態?
友情提示:案例采用的程序是TP5,其他php程序請按照此方式對號入座!
針對不同的WEB服務器,ThinkPHP V5需要的偽靜態內容是不一樣的,
而且在Apache服務器上,模塊化運行與采用FCGI運行方式的偽靜態也有差別
友情提示:案例中用的偽靜態是TP5的,如果你是其他php程序,請使用對應程序的偽靜態文件。
---------------------------apache、nginx、iis、安裝TP5之Apache篇開始---------------------------
特別一提的地方(重要)
在Apache服務器上,采用模塊化運行與采用FCGI運行方式的偽靜態也是有差別的、
所以有的人在安裝ThinkPHP V5的時候就會出現No input file specified.的錯誤提示
下面這個偽靜態是Apache采用模塊運行方式時需要配置的偽靜態內容,詳細的運行方式可查看我以往的博客內容
(如果您當前的Apache采用Fcgi模式運行PHP,那么這個偽靜態就會出現“No input file specified.”的錯誤提示)
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule>
上面的偽靜態為什么有的人能正常使用,而有的人使用確出現“No input file specified.”的提示呢?
那是因為Apache只有采用fastcgi模式的時候,才出現不能識別PATH_INFO的情況,所以在windows下很多人安裝ThinkPHP V5的時候都沒出現這個問題,因為大部分windows用戶安裝的Apache是采用模塊化運行方式的,而在linux上以及在windows系統下采用FCGI運行模式的都出現了“No input file specified.”提示。
如果你采用FCGI運行方式的時候出現此類提示,只需要把
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
改寫成
RewriteRule ^(.*)$ index.php [E=PATH_INFO:$1,QSA,PT,L] 即可,改寫后的偽靜態如下(注意E=PATH_INFO:$1)
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [E=PATH_INFO:$1,QSA,PT,L] </IfModule>
友情提示:PHPWAMP支持多模式,主界面默認站點是模塊化運行方式,站點管理是Fcgi模式,
所以主界面的默認站點可以直接使用ThinkPHP V5默認的偽靜態,而站點管理需要使用修改后的偽靜態。
選擇相關設置切換php版本后選擇這里啟動Apache2.4
選擇這里默認的三個版本都可以啟動Apache2.4,這里選擇的版本僅僅是默認站點的版本
默認站點采用的常見的模塊運行方式,所以可以直接使用上面第一個未經改動的偽靜態文件。
啟動后在站點管理界面添加站點,復制上面修改過的偽靜態進去就可以了,因為站點管理是FCGI模式
在添加站點的時候,網站根目錄應該選擇public文件夾,這樣就可以打開默認的ThinkPHP V5頁面了。
如果你在上個步驟使用默認的偽靜態,由于站點管理是FCGI模式,那么就會出現下面的No input file specified.”提示
所以我們必須改用修改后的偽靜態,啟用修改后的偽靜態就可以正常打開http://localhost:8033/index/index/index這個頁面了
---------------------------apache、nginx、iis、安裝TP5之nginx篇開始---------------------------
在Nginx服務器上安裝ThinkPHP V5的偽靜態如下所示
if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; }
具體流程如下圖,點擊菜單相關設置,然后我們先啟用Nginx服務器
打開nginx站點管理添加站點,網站目錄選擇public文件夾,就不用在url后面添加public訪問了
添加站點后,我們會發現添加的站點根目錄自動生成了屬于Nginx服務器的偽靜態文件“nginx.htaccess”
打開此偽靜態文件,里面默認集成了常見網站的偽靜態,找到屬于TP5的偽靜態,去掉前面#號后即可(重啟Nginx)
你也可以把里面默認的偽靜態全部刪掉,直接復制前面我提供的Nginx下TP5的偽靜態也是可行的(設置須重啟Nginx)
如果你的Nginx偽靜態設置錯誤,通常訪問如下路徑“http://localhost:8088/index/index/index/”將會出現404錯誤
如果正確的設置了Nginx下TP5程序的偽靜態,打開該頁面才能正常顯示
---------------------------apache、nginx、iis、安裝TP5之iis篇開始---------------------------
在iis服務器上安裝ThinkPHP V5的偽靜態還需要額外的這幾個步驟
1、服務器需要安裝:URL Rewrite
URL Rewrite下載地址http://down.51cto.com/data/2439396
2、在IIS的高版本下面可以配置web.Config,在中間添加rewrite節點:
加在 <system.webServer>里面就可以了
<rewrite> <rules> <rule name="OrgPage" stopProcessing="true"> <match url="^(.*)$" /> <conditions logicalGrouping="MatchAll"> <add input="{HTTP_HOST}" pattern="^(.*)$" /> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="index.php/{R:1}" /> </rule> </rules> </rewrite>
具體步驟,打開PHPWAMP的相關設置,點擊IIS站點管理
此IIS站點管理可以操作系統內置的IIS服務器,快速添加PHP站點,可以多個PHP版本同時運行
添加后的站點可以在phpwamp的iis站點管理進行修改,也可以在系統的iis管理器里面修改,通用。
添加一個iis站點,php版本任意選,而且還可以自定義php版本,支持32位/64位PHP任選。
添加站點后,就會發現添加的站點根目錄自動生成了屬于IIS服務器的偽靜態文件“web.config”
添加網站后重啟iis,然后訪問路徑http://localhost:8088/index/index/index會出現404,因為還沒設置偽靜態web.config文件
在設置偽靜態web.config文件之前,我們必須先安裝偽靜態模塊,在前面提供的urlrewrite2.exe文件下載地址下載后,
進行urlrewrite2.exe的安裝,安裝完成后需要重啟動電腦,然后導入IIS服務器下TP5的偽靜態即可,下面繼續詳細步驟
安裝偽靜態可能出現的原因與解決方案
如果安裝偽靜態時提示出現了已安裝,你可以搜索以下文件,刪掉“rewrite.dll”文件即可,該文件一般在C:\Windows\System32\inetsrv目錄下
友情提示:安裝偽靜態后最好是重啟一下電腦,如果安裝偽靜態過程中遇到任何問題,可按照此步驟重裝偽靜態模塊
安裝完偽靜態后,我們點擊此處打開系統的iis管理器
打開后就會發現如下圖標,多了“URL重寫”這個圖標,說明安裝好了偽靜態模塊。
安裝偽靜態模塊成功之后,就可以在網站根目錄的web.config文件里面添加上面的偽靜態規則了,
早在前面我們添加站點的時候已經自動在站點根目錄下面生成web.config文件了,如下圖紅框所示。
我們可以直接打開它,添加上面的偽靜態內容即可,修改文件web.Config,
在中間添加rewrite節點,加在 <system.webServer>里面就可以了,如下圖添加
保存后刷新http://localhost:8088/index/index/index,我們就發現能正常打開,不再出現404提示了。
至此,Nginx、Apache、IIS三大主流WEB服務器設置偽靜態的詳細過程講解完畢,
如果按照操作出現錯誤,請多次熟讀本文中的內容,不要只看圖片,文字敘述才是重點。
本文采用的是PHPWAMP_IN2全能自定義環境,可一鍵自定義Apache、Nginx、PHP、Mysql版本。
Lccee老師視頻教程:edu.51cto.com/lecturer/10514884.html
其他的PHPWAMP應用文章可點此查看:https://blog.51cto.com/lccee
歡迎大家關注我的博客獲取最新資訊,如果您有什么建議可以私信我。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。