目次
要求
必备知识
运行环境
下载地址
ホームページ バックエンド開発 PHPチュートリアル wnmp (windows+nginx+mysql+php) 環境構築と設定

wnmp (windows+nginx+mysql+php) 環境構築と設定

Aug 08, 2016 am 09:26 AM
cgi fastcgi nginx php

要求

    • 必备知识

      熟悉基本编程环境搭建。

    • 运行环境

      windows 7(64位);
      nginx-1.4.7;
      MySQL Server 5.5
      php-5.4.39-nts

    • 下载地址

      环境下载

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:新浪、网易、腾讯等。
ログイン後にコピー

上面这段介绍,摘自百度! 看了介绍就知道nginx很有逼格了shi不shi啊!那么问题来了,这么有逼格的配置,在windows下如何搭建呢? 好吧,就让我给大家介绍一下,windows下如何搭建 nginx+mysql+php 环境吧。

官方下载地址

  • Nginx
  • MySql
  • PHP

至于我使用的版本已经上传到百度云提供大家下载了哦,请戳以下链接:

  • http://pan.baidu.com/s/1gdpLa6n

Nginx

这么有逼格的服务器,我就不多做介绍,前面也提到了一些。我就直接安装吧,把下载下来的nginx-1.4.7.zip文件,解压到指定的目录就OK了,下面贴一下我的目录结构哦

下面是nginx的一些基本操作指令,当然你也可以直接双击nginx.exe文件来启动服务器(^_^)

start nginx    <span>//</span><span>启动服务</span>
 nginx -s stop    <span>//</span><span> 停止nginx</span>
nginx -s reload    <span>//</span><span> 重新加载配置文件</span>
nginx -s quit    <span>//</span><span> 退出nginx</span>
ログイン後にコピー

在浏览器地址中输入localhost ,如出现下图说明安装成功了!

MySql

关于mysql的安装,请自行去解决(^_^),我不想多说了!好吧,可以参考我之前写一篇文章,里面有详细的介绍哦,你会明白的(^_^)

  • windows下搭建Apache+Mysql+PHP开发环境

PHP

关于PHP的安装,我也不想说了! 额,你其实也可以参考。。。你会懂的,哈哈!好吧,往下看吧!

php提供了两种版本可以选择,即线程安全和非线程安全

  • TS:Thread Safe 线程安全, 执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源
  • NTS:Non Thread Safe 非线程安全, 在执行时不进行线程(Thread)安全检查

PHP的两种执行方式:ISAPI和FastCGI。

  • CGI(通用网关接口/Common Gateway Interface)一般是可执行程序,例如EXE文件,和WEB服务器各自占据着不同的进程,而且一般一个CGI程序只能处理一个用户请求。这样,当用 户请求数量非常多时,会大量占用系统的资源,如内存、CPU时间等,造成效能低下。
  • ISAPI(Internet Server Application Program Interface)是微软提供的一套面向WEB服务的API接口,它能实现CGI提供的全部功能,并在此基础上进行了扩展,如提供了过滤器应用程序接 口。ISAPI应用大多数以DLL动态库的形式使用,可以在被用户请求后执行,,在处理完一个用户请求后不会马上消失,而是继续驻留在内存中等待处理别的 用户输入。此外,ISAPI的DLL应用程序和WEB服务器处于同一个进程中,效率要显著高于CGI。所以如果是以ISAPI来执行PHP,建议选择Thread Safe版本
  • FastCGI是可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。传统的CGI解释器的反复加载是 CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性等。nginx下php是以FastCGI的方式运行,所以我们下载Non Thread Safe版本.

我知道你已经懂了,shi不shi呀! 不过网上有些人下的TS有的人下的NTS的,选择困难症有犯了,哈哈~~~!下非线程安全的吧,因为我就下的就是这个,待会自己去百度云下的时候别选错了哦~~

将压缩文件解压到指定的文件夹(这里你爱咋整就咋整,可以参考我上面的目录结构)。配置php.ini文件,php提供了两个模板,php.ini-development和php.ini-production,前者适合开发程式使用(测试用),后者拥有较高的安全性设定,则适合上线当产品使用。这里我们将php.ini-development文件改为php.ini做配置文件使用。

修改扩展dll文件目录:

//这里根据自己的实际情况而定
extension_dir = "E:\2015\wnmp\php\ext"
ログイン後にコピー

加入扩展:

选择需要运行哪些扩展,只需将extension前面的注释去掉,例如:

extension=php_mysql.dll
extension=php_mysqli.dll
ログイン後にコピー

CGI 设置

enable_dl =<span> On
cgi.force_redirect </span>= 0<span>
cgi.fix_pathinfo</span>=1<span>
fastcgi.impersonate </span>= 1<span>
cgi.rfc2616_headers </span>= 1
ログイン後にコピー

配置Nginx

这里所说的配置,主要是讲如何让Nginx对PHP提供支持!!打开nginx目录下conf文件夹里的nginx.conf(这就是我的配置文件了)

修改如下代码,位置如下

修改网站的根目录,添加index.php的默认页支持,修改后的代码如下。

location /<span> {
            root   E:</span>/2015/wnmp/nginx/<span>html;
            index  index.html index.htm index.php;
}</span>
ログイン後にコピー

让nginx支持PHP的设置,代码位置如下

先将前面的“#”去掉,同样将root  html;改为root  E:/2015/wnmp/nginx/html;。再把“/scripts”改为“$document_root”,这里的“$document_root”就是指前面“root”所指的站点路径,改完后的代码如下:

location ~<span> \.php$ {
            root           E:</span>/2015/wnmp/nginx/<span>html;
            fastcgi_pass   </span>127.0.0.1:9000<span>;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
}</span>
ログイン後にコピー

上述配置改为后,别玩了要重启nginx哦,操作指令我已经到上面给出了啊!

测试

启动php内置的cgi程序,在9000端口监听nginx发过来的请求:

E:\2015\wnmp\php>php-cgi.exe -b 127.0.0.1:9000-c E:\wnmp\php\php.ini
ログイン後にコピー

PS:上一步操作中如果没有重启nginx的话,现在重启一遍吧!!

在网站更目录(上步操作中root所指向的路径我这里是 E:/2015/wnmp/nginx/html)下创建phpinfo.php文件,代码如下

<?php <span>phpinfo</span>(); ?>
ログイン後にコピー

在浏览器地址栏中输入http://localhost/phpinfo.php,一次性点亮,是不是很Happy!!

RunHiddenConsole配置

首先把下载好的RunHiddenConsole.zip包解压到nginx目录内,RunHiddenConsole.exe的作用是在执行完命令行脚本后可以自动关闭脚本,而从脚本中开启的进程不被关闭。

创建start_nginx.bat文件

<span>@echo off
REM Windows 下无效
REM set PHP_FCGI_CHILDREN</span>=5<span>

REM 每个进程处理的最大请求数,或设置为 Windows 环境变量
set PHP_FCGI_MAX_REQUESTS</span>=1000<span>
 
echo Starting PHP FastCGI...
RunHiddenConsole E:</span>/2015/wnmp/php/php-cgi.exe -b 127.0.0.1:9000 -c E:/2015/wnmp/php/<span>php.ini
 
echo Starting nginx...
RunHiddenConsole E:</span>/2015/wnmp/nginx/nginx.exe -p E:/2015/wnmp/nginx
ログイン後にコピー

创建stop_nginx.bat脚本,对应的是用来关闭nginx服务

<span>@echo off
echo Stopping nginx...  
taskkill </span>/F /IM nginx.exe ><span> nul
echo Stopping PHP FastCGI...
taskkill </span>/F /IM php-cgi.exe ><span> nul
exit</span>
ログイン後にコピー

文件目录结构如下

好吧,整个就弄好了!!是不是比较复杂,没关系! 请问你有到linux下交叉编译安装过服务器环境吗?(^_^)hahah~~~。关于linux下服务器环境的“一揽子安装计划”,将到后续的文章中介绍!!点关注就对了(^_^)

如以上文章或链接对你有帮助的话,别忘了在文章结尾处轻轻点击一下 “还不错”按钮或到页面右下角点击 “赞一个” 按钮哦。你也可以点击页面右边“分享”悬浮按钮哦,让更多的人阅读这篇文章。

作者:Li-Cheng

微博:http://weibo.com/licheng0426

出处: http://www.cnblogs.com/Li-Cheng/p/4399149.html

由于本人水平有限,文章在表述和代码方面如有不妥之处,欢迎批评指正。留下你的脚印,欢迎评论哦。你也可以关注我,一起学习哦!

(^_^)如果您觉得此文对您有帮助的话,打个赏喝个咖啡吧,么么哒(^_^)

以上就介绍了wnmp(windows+nginx+mysql+php)环境搭建和配置,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Nginxが開始されるかどうかを確認する方法 Nginxが開始されるかどうかを確認する方法 Apr 14, 2025 pm 01:03 PM

nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

Windowsでnginxを構成する方法 Windowsでnginxを構成する方法 Apr 14, 2025 pm 12:57 PM

Windowsでnginxを構成する方法は? nginxをインストールし、仮想ホスト構成を作成します。メイン構成ファイルを変更し、仮想ホスト構成を含めます。 nginxを起動またはリロードします。構成をテストし、Webサイトを表示します。 SSLを選択的に有効にし、SSL証明書を構成します。ファイアウォールを選択的に設定して、ポート80および443のトラフィックを許可します。

Nginxが起動されているかどうかを確認する方法は? Nginxが起動されているかどうかを確認する方法は? Apr 14, 2025 pm 12:48 PM

Linuxでは、次のコマンドを使用して、nginxが起動されるかどうかを確認します。SystemCTLステータスNGINXコマンド出力に基づいて、「アクティブ:アクティブ(実行)」が表示された場合、NGINXが開始されます。 「アクティブ:非アクティブ(dead)」が表示されると、nginxが停止します。

Linuxでnginxを開始する方法 Linuxでnginxを開始する方法 Apr 14, 2025 pm 12:51 PM

Linuxでnginxを開始する手順:nginxがインストールされているかどうかを確認します。 systemctlを使用して、nginxを開始してnginxサービスを開始します。 SystemCTLを使用して、NGINXがシステムスタートアップでNGINXの自動起動を有効にすることができます。 SystemCTLステータスNGINXを使用して、スタートアップが成功していることを確認します。 Webブラウザのhttp:// localhostにアクセスして、デフォルトのウェルカムページを表示します。

nginxサーバーを開始する方法 nginxサーバーを開始する方法 Apr 14, 2025 pm 12:27 PM

NGINXサーバーを起動するには、異なるオペレーティングシステムに従って異なる手順が必要です。Linux/UNIXシステム:NGINXパッケージをインストールします(たとえば、APT-GetまたはYumを使用)。 SystemCtlを使用して、NGINXサービスを開始します(たとえば、Sudo SystemCtl Start NGinx)。 Windowsシステム:Windowsバイナリファイルをダウンロードしてインストールします。 nginx.exe実行可能ファイルを使用してnginxを開始します(たとえば、nginx.exe -c conf \ nginx.conf)。どのオペレーティングシステムを使用しても、サーバーIPにアクセスできます

nginx403エラーを解く方法 nginx403エラーを解く方法 Apr 14, 2025 pm 12:54 PM

サーバーには、要求されたリソースにアクセスする許可がなく、NGINX 403エラーが発生します。ソリューションには以下が含まれます。ファイル許可を確認します。 .htaccess構成を確認してください。 nginx構成を確認してください。 SELINUXアクセス許可を構成します。ファイアウォールルールを確認してください。ブラウザの問題、サーバーの障害、その他の可能なエラーなど、他の原因をトラブルシューティングします。

PHP:データベースとサーバー側のロジックの処理 PHP:データベースとサーバー側のロジックの処理 Apr 15, 2025 am 12:15 AM

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

Nginxクロスドメインの問題を解決する方法 Nginxクロスドメインの問題を解決する方法 Apr 14, 2025 am 10:15 AM

Nginxクロスドメインの問題を解決するには2つの方法があります。クロスドメイン応答ヘッダーの変更:ディレクティブを追加して、クロスドメイン要求を許可し、許可されたメソッドとヘッダーを指定し、キャッシュ時間を設定します。 CORSモジュールを使用します。モジュールを有効にし、CORSルールを構成して、ドメインクロスリクエスト、メソッド、ヘッダー、キャッシュ時間を許可します。

See all articles