1. 程式人生 > >最新ThinkPHP V5在iis、nginx、apache下的安裝過程、包含偽靜態引起的錯誤

最新ThinkPHP V5在iis、nginx、apache下的安裝過程、包含偽靜態引起的錯誤

本文適用於以下問題

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

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版本。


相關推薦

最新ThinkPHP V5在iisnginxapache安裝過程包含靜態引起錯誤

本文適用於以下問題Apache出現No input file specified提示?PHPWAMP出現No input file specified提示?安裝網站程式出現No input file specified提示?Apache如何設定偽靜態,Nginx如何設定偽靜態

Apache使用rewrite實現discuz靜態的配置

偽靜態簡介 偽靜態作用 使用rewrite配置偽靜態 Apache下使用rewrite實現discuz偽靜態的配置1、偽靜態簡介及作用偽靜態是相對真實靜態來講的,通常我們為了增強搜索引擎的友好面,都將文章內容生成靜態頁面,但是有的朋友為了實時的顯示一些信息。或者還想運用動態腳本解決一些問題。不能用

IIsNginxApache三大主流web服務器靜態的詳細設置過程

IIs Nginx Apache 偽靜態 偽靜態什麽設置 此文章裏面的內容就包含了IIs、Nginx、Apache三大主流web服務器偽靜態詳細的設置。 文章地址http://blog.51cto.com/lccee/2068828IIs、Nginx、Apache三大主流web服務器偽靜態

簡析 Tomcat NginxApache 的區別

簡析 Tomcat 、Nginx 與 Apache 的區別 本文講的是簡析 Tomcat 、Nginx 與Apache的區別, 經常在用 apache 和 tomcat 等這些伺服器,可是總感覺還是不清楚他們之間有什麼關係,在用 tomcat 的時候總出現 apache,總是感到迷惑。這可能是很多初學伺服

web伺服器&應用伺服器(ApacheTomcatnginxApache HTTP Server,我們常常稱之為httpd,即常說的Apache。它是目前最流行的web伺服器。

現在也沒有特別搞懂他們之間的區別,只是有個大概的理解,可能會有不對的地方,隨時更新吧。 前提得搞明白代理伺服器和反向代理伺服器的區別。 一、web伺服器 Apache HTTP Server,我們常常稱之為httpd,即常說的Apache。它是目前最流行的web伺服器。 Apache

在Docker安裝Tomcatnginxmysql

安裝Tomcat #搜尋tomcat映象   docker search tomcat     #拉取tomcat映象   docker pull tomcat    #根據映象啟動tomcat容器   docker run --name tomcat1 -d -p 808

window安裝nvmnode.jsnpm的步驟

http cnp node 自帶 ack pre 最新 test 通過 1.下載nvm(nodejs版本管理工具) https://github.com/coreybutler/nvm-windows/releases 下載nvm-noinstall.zip,解壓即可使用2

超多經典 canvas 實例,動態離子背景移動炫彩小球貪吃蛇坦克大戰是男人就100層心形文字等等等

ntb contex lin 如果 maxwidth sel 容器 操作 reat 超多經典 canvas 實例 普及:<canvas> 元素用於在網頁上繪制圖形。這是一個圖形容器,您可以控制其每一像素,必須使用腳本來繪制圖形。 註意:IE 8 以及更早的版本不

centos安裝JDKTOMCAT

tomcat net nbsp log jin blank wget mirrors csdn JDK安裝配置:http://blog.csdn.net/hui_2016/article/details/69941850 JDK安裝文件:在MAC電腦裏或者百度雲裏面

十七vim介紹vim顏色顯示和移動光標vim一般模式移動光標vim一般模式復制剪切和粘

vim介紹 vim一般模式 十七、vim介紹、vim顏色顯示和移動光標、vim一般模式下移動光標、vim一般模式下復制、剪切和粘貼一、vim介紹vim:vi的升級版,區別就是:vi在編輯文本時不會顯示顏色,而vim會。它的配置文件:/etc/vimrc、一些高級的功能可在這個配置文件/root/.vi

Linux centosVMware Vim介紹vim顏色顯示和移動光標vim一般模式移動光標vim一般模式復制剪切和粘貼

vim swd vmw 默認 復制粘貼 passwd roo vim配置文件 -bash 一、Vim介紹 vim 是一款功能強大的文本編輯器,是vi的升級版,帶有顏色顯示, 默認有三種模式:一般模式, 命令模式, 編輯模式 安裝Vim [root@davery ~]#

阿里雲CentOS7.X安裝JAVATomcatMySQL

一、安裝前的準備   1、遠端登入阿里雲賬號,在根目錄下面建立兩個資料夾,分別命名為software和app。其中software資料夾用來存放軟體安裝包,app作為軟體的安裝目錄。   2、將軟體源做成阿里雲的。   操作步驟如下:   1)備份 mv /etc/yum.

win64安裝pythonnumpyscipymatplotlib

1.下載安裝Python 官網地址: https://www.python.org/ftp/python/2.7.13/python-2.7.13.amd64.msi 雙擊執行python-2.7.13.amd64.m

windows安裝cygwinClion中使用編譯器cygwin

windows下安裝cygwin: 從官網https://cygwin.com/install.html上下載cygwin安裝程式,由於我的系統是64位,故下載setup-x86_64.exe。 下載完成後,開啟程式。 選擇install from internet。下一步。

Cent OS 7 安裝JDK環境(免安裝版)

環境:Cent OS 7 JDK版本:jdk-8u162-linux-x64.tar.gz       [PS:如需資源,請私信博主] 1、新建資料夾並複製JDK [[email protect

Git-入門教程(二)-LinuxMacOS和Windows安裝與使用

0.摘要 本文主要介紹在Linux、MacOS和Windows三種系統下Git的安裝與使用,具體的Git命令和詳細使用方法在其他部落格中講解。 1.Linux下的安裝與使用 CentOS:使用yum安裝git yum install -y git -y引數:安裝

linux安裝jdktomcatredis等

一、 安裝JDK 1.1 用JDK安裝包安裝 檢視是否已經安裝JDK:rpm -qa | grep -i java 若有則刪除:rpm -e --nodeps java-xxx,刪除所有相關的java 下載jdk8安裝包,將gz壓縮檔案放到指定目錄如/usr/local,解壓:tar -zx

CentOS安裝fftwatlas和blas庫

給大家推薦個網站 https://pkgs.org 這個網站有各種安裝包 幫了我很大忙。 在Ubuntu下,一下命令就可以安裝fftw、blas和atlas庫     sudo apt-get ins

Linux 關於Docker介紹Linux(Centos7.3)安裝Docker加速器配置Docker-compose安裝以及基本命令的使用介紹

今天給各位同學進行Docker方面的知識介紹,一方面Docker的技術越來越火了,而且現在容器化也是一個發展趨勢,另一方面,Docker確實用起來相當方便,降低了運維的門檻,讓我們開發也能在不需要有太多linux的功底下,快速安裝很多我們所需要的第三方功能

Pycharm 2018IntelliJ 2018 Linux安裝破解與使用

以pycharm為例,IntelliJ操作方法完全一樣需要安裝jdk,未安裝請先搞定一、安裝  1. 官網選Linux版下載,將壓縮包移動至指定目錄,解壓          我選的目錄為 /home/pgg/program/pycharm          使用方法:進入安裝