1. php インタープリターをダウンロード
アドレスは http://windows.php.net/download/ スレッド セーフと非スレッド セーフの 2 つのバージョンがあります。スレッド セーフは Apache 用で、スレッド セーフは Apache 用です。非スレッド セーフです。iis 用です。設定したいのは iis なので、非スレッド セーフ バージョンをダウンロードしてください。x86 および x64 の場合は、マシンのシステムに応じて、ダウンロードする対応するバージョンを選択できます。2. PHP インタープリターをインストールする インストールが完了している場合でも、システム ディスクに E:\PHP) フォルダーを配置します。
3. php.ini の設定php.ini-development をコピーし、名前を php.ini に変更し、次の変更を加えます:
< 1>拡張プラグインのパス; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "c:\PHP\ext"
<2> ;どのプラグインを導入するかを設定します
; Windows Extensions ; Note that ODBC support is built in, so no dll is needed for it. ; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5) ; extension folders as well as the separate PECL DLL download (PHP 5). ; Be sure to appropriately set the extension_dir directive. ; ;extension=php_bz2.dll ;extension=php_curl.dll ;extension=php_fileinfo.dll ;extension=php_gd2.dll ;extension=php_gettext.dll ;extension=php_gmp.dll ;extension=php_intl.dll ;extension=php_imap.dll ;extension=php_interbase.dll ;extension=php_ldap.dll extension=php_mbstring.dll ;extension=php_exif.dll ; Must be after mbstring as it depends on it extension=php_mysql.dll extension=php_mysqli.dll ;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client ;extension=php_openssl.dll ;extension=php_pdo_firebird.dll ;extension=php_pdo_mysql.dll ;extension=php_pdo_oci.dll ;extension=php_pdo_odbc.dll ;extension=php_pdo_pgsql.dll ;extension=php_pdo_sqlite.dll ;extension=php_pgsql.dll ;extension=php_shmop.dll
導入するプラグインは、その前のセミコロンを削除するだけです。ここでは mysql、mysqli、mbstring のみを紹介しました。
<3>タイムゾーンの設定
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Asia/Shanghai
<4>短いタグのサポート
; This directive determines whether or not PHP will recognize code between ; <? and ?> tags as PHP source which should be processed as such. It is ; generally recommended that <?php and ?> should be used and that this feature ; should be disabled, as enabling it may result in issues when generating XML ; documents, however this remains supported for backward compatibility reasons. ; Note that this directive does not control the <?= shorthand tag, which can be ; used regardless of this directive. ; Default Value: On ; Development Value: Off ; Production Value: Off ; http://php.net/short-open-tag short_open_tag = On
<5>fastcgiを有効にする
; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate ; security tokens of the calling client. This allows IIS to define the ; security context that the request runs under. mod_fastcgi under Apache ; does not currently support this feature (03/17/2002) ; Set to 1 if running under IIS. Default is zero. ; http://php.net/fastcgi.impersonate fastcgi.impersonate = 1
<6> ; cgi 関連設定 pathinfo
; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. ; http://php.net/cgi.fix-pathinfo cgi.fix_pathinfo=1
<7>cgi 関連設定 redirect
; cgi.force_redirect is necessary to provide security running PHP as a CGI under ; most web servers. Left undefined, PHP turns this on by default. You can ; turn it off here AT YOUR OWN RISK ; **You CAN safely turn this off for IIS, in fact, you MUST.** ; http://php.net/cgi.force-redirect cgi.force_redirect = 0
<8>セッションストレージパス
; where MODE is the octal representation of the mode. Note that this ; does not overwrite the process's umask. ; http://php.net/session.save-path session.save_path = "d:\server\web\session"
<9>database
mysql.default_port = 3306
mysql.default_host = localhostmysql.default_user = root
<10>出力キャッシュ
; Note: This directive is hardcoded to Off for the CLI SAPI ; Default Value: Off ; Development Value: 4096 ; Production Value: 4096 ; http://php.net/output-buffering output_buffering = On//这里应该是填一个值,比如4096
<11>最大アップロード数を制限するファイルサイズ 値
upload_max_filesize = 100M
オンからオフに変更すると、ヘッダーにphpバージョンが表示されなくなります
expose_php = Off
設定が完了したら、php.ini のコピーを c:\windows に配置します。 win7 で iis7 を使用している場合は、
これを行う必要がなくなったことに注意してください。
5. IIS の設定 (IIS はデフォルトでインストールされており、ここでは IIS のインストール方法は紹介しません) <1>HandlerMappings )
# [OK] をクリックすると、ポップアップが表示されます。警告ダイアログボックスが表示されますが、「はい」をクリックしてください。
注: FastCgiModule モジュールは最初は利用できない場合があります。 Windows の機能をオンまたはオフにするには、Web サーバー IIS - 役割サービスの追加 - インストールする CGI を確認します。
#<2>ISAPI および CGI の制限
# < 3>サイトの追加
特定のパスの下にフォルダーを作成し、IIS にサイトを追加し、このフォルダーをサイトとして追加します
##サイトを追加した後、Everyone ユーザーをサイトに追加し、完全な権限を与える必要があることに注意してください。
#<4>サイトのデフォルト ページを設定します
#<5>デフォルト ページを追加しますWeb サイトのルート ディレクトリにindex.php という名前のファイルを作成し、
<?php phpinfo(); ?>
次のようにホストを構成し、構成したばかりの Web サイトのドメイン名を 127.0.0.1 に指定します。
127.0.0.1 yourdomain.com
有可能出现的错误:访问可能出现“FastCGI进程意外退出500错误”。默认已经有一个网站占用了所有端口,现在我们又添加一个网站可能导致冲突,把默认那个网站停止就可以了。
6、集成CodeIgniter框架
<1>下载CodeIgniter
下载地址:http://codeigniter.org.cn/
<2>整合CodeIgniter
解压之后,打开CodeIgniter文件夹,将里面的内容复制粘贴到站点的根目录,会提示是否替换掉原来的index.php文件,选择"是",这样框架就算整合完毕了
打开浏览器访问主页,看到的是CodeIgniter框架的提示信息!
<3>添加favicon图标
每个page都会自动去加载favicon图标,因此应该在index.php目录下放置favicon.ico文件,不然都会报错,显示找不到图标。
7、有可能出现的问题
<1>丢失 MSVCR110.dll
第一次访问php网站可能会出现“无法启动此程序,因为计算机中丢失 MSVCR110.dll”的错误,应该这样解决:
-打开微软下载页面:http://www.microsoft.com/zh-CN/download/details.aspx?id=30679
-点击下载
-选择相应的版本,64就选64,32就选32
-点击下载
-安装
完成之后网站就可以正常访问了。
<2>唯一密钥属性“value”设置…无法添加类型为add
在web.config-files节点改为:
<files> <clear /> <add value="index.php" /> <add value="index.html" /> </files>
<3>服务器部署中常见问题
服务器碰见了一些问题 ,一个就是上面说的value属性,value设置好之后就是cgi问题,没有权限之类的,把php引擎的文件夹设置everyone之后,发现cgi意外退出,直接打开cgi,发现原来是丢失 MSVCR110.dll,把丢失 MSVCR110.dll装上之后好了。
注意,因为把system和application文件夹移到web目录以外,但是程序在访问的时候仍然会访问到这两个文件夹,因此也要把这两个文件夹添加everyone。
<4>升级php7遇到的问题
升级php7传说中性能可以提升很多倍。php5竟然是10多年前的产物...
配置php.ini没碰到什么问题,主要一个是mysql.dll的选项没了,配置数据库的port、username等都不是mysql而是mysqli,这些我就没弄了,在CI里面会有配置,应该没什么大问题。
开始运行,cgi异常。直接打开cgi发现报错:丢失VCRUNTIME140.dll。这个错误是因为最新版的php7(php7.1)需要安装Visual C++Redistributable 2015。
下载地址:https://www.microsoft.com/en-US/download/details.aspx?id=48145,下载安装就好了。
<5>最便捷的解决方案
今天调试刚买的服务器,发现无论怎么弄都会报FastCgi错误,错误代码是***0005,即5号代码的错误。怎么弄都不行,一度怀疑此云服务器的FastCgiModule被阉割了,不能正常运行。
直到找到了这样一个解决方案,https://php.iis.net,可以在线安装。踏破铁鞋无觅处,得来全不费功夫。
8、在本地配置https
本地测试为了可以跟线上一致,以https来测试,必须要配置ssl证书。
以上がIIS での PHP サーバーの構成の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。