Windows 上 Nginx + PHP5 的安装与配置
Windows 下 Nginx + PHP5 的安装与配置
安装 PHP5
首先,从 http://windows.php.net/download/ 下载最新的 PHP 5.3 Windows 版本,这里 PHP 以 FastCGI 模式运行,所以请下载 None Thead Safe 版本。
解压至 C:\php5,把压缩包中的 php.ini-recommended,更名为 php.ini,然后打开修改几个选项:
1234567891011 로그인 후 복사 |
<span style="color: #000099;">error_reporting</span> <span style="color: #000066; font-weight: bold;">=</span><span style="color: #660066;"> E_ALL</span><span style="color: #000099;">display_errors</span> <span style="color: #000066; font-weight: bold;">=</span><span style="color: #660066;"> On</span><span style="color: #000099;">extension_dir</span> <span style="color: #000066; font-weight: bold;">=</span> <span style="color: #993333;">"C:\php5\ext"</span>?<span style="color: #666666; font-style: italic;">; 动态扩展,可以根据需要去掉 extension 前面的注释 ; </span><span style="color: #666666; font-style: italic;">; 如加载 PDO, MySQL</span><span style="color: #000099;">extension</span><span style="color: #000066; font-weight: bold;">=</span><span style="color: #660066;">php_pdo.dll</span><span style="color: #000099;">extension</span><span style="color: #000066; font-weight: bold;">=</span><span style="color: #660066;">php_pdo_mysql.dll</span>?<span style="color: #666666; font-style: italic;">; CGI 设置</span>cgi.fix_pathinfo <span style="color: #000066; font-weight: bold;">=</span><span style="color: #660066;"> 1</span> 로그인 후 복사 |
?
PHP 加载扩展需要注意依赖性,比如 php_exif.dll 需要 php_mbstring.dll,你必须要把 php_mbstring.dll 放在 php_exif.dll 前面才能加载成功。有些扩展依赖额外的 dll 文件,如 PHP 5.0+ ,php_mysqli.dll 依赖 libmysql.dll,而 php_oci8.dll,你则需要安装 Oracle 8 的客户端。如果你对这些依赖性不是太了解,可以参考一下安装包中的 install.txt 文件。
依赖文件的搜索顺序:首先是 php.exe 所在的目录,如果是 ISAPI 模式,那么会搜索 Web Server 的启动位置,比如 Apache 的 bin 目录;其次是 Windows PATH 环境变量中的目录。这里不要复制任何文件到 Windows 目录中,有必要的话,可以把 C:\php5 加到 PATH 中,便于以后 PHP 的升级。
安装 Nginx
从 v0.7.52 开始,Nginx 开始发布 Windows 版本的 Nginx,你可以在其官方网站上面下载:
http://nginx.net
如果需要老版本的 Nginx for Windows,可以在 Kevin Worthington 的网站上面找找。
我使用的是 0.8.29,下载好以后,解压释放文件到 C:\nginx。
那么如何配置 Nginx,使其可以和 PHP 协同工作?
配置 PHP FastCGI
Nginx 需要和 FastCGI Server 配合才能处理请求,有两种方式运行 PHP FastCGI Server,一种就是使用 PHP 内置的 FastCGI 管理器:
1 로그인 후 복사 | C:<span style="color: #000000; font-weight: bold;">/</span>php5<span style="color: #000000; font-weight: bold;">/</span>php-cgi.exe <span style="color: #660033;">-b</span> 127.0.0.1:<span style="color: #000000;">9000</span> <span style="color: #660033;">-c</span> C:<span style="color: #000000; font-weight: bold;">/</span>php5<span style="color: #000000; font-weight: bold;">/</span>php.ini 로그인 후 복사 |
另外一种方式是使用第三方工具,比如 PHP-FPM 、cgi-fcgi 等。显然!要在 Windows 中使用这些工具是件极其痛苦的事情,你可能需要 Cygwin 之类的东西才行,的确有人这么做了,虽然我觉得那是自寻烦恼。
下一步,修改 Nginx ,将 php 请求转发至 PHP FastCGI Server:
123456 로그인 후 복사 로그인 후 복사 | <span style="color: #adadad; font-style: italic;"># pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000</span>location ~ ^(.+\.php)(.*)$ { root D:/public_html; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; <span style="color: #00007f;">include</span> php.conf;} 로그인 후 복사 |
root 也就是 $document_root 指的是你的 php scripts 根目录,设置为你的网站根目录。在 Windows 下,需要注意的是 root 的路径,最好使用 "/" 作为路径分隔符,而不是 Windows 默认的 "\",否则容易出问题,比如,这个路径:D:\public_html\test,就不会起作用,Nginx 会抛出 500 错误,原因是 \test 中 \t 被解析为制表符。当然再加上一个反斜杠转义也是可以的,如:D:\\public_html\\test。
php.conf 配置文件:
123456789101112 로그인 후 복사 로그인 후 복사 | <span style="color: #adadad; font-style: italic;"># 连接到本机 9000 端口,这里的端口是指 PHP FastCGI Server 开启的端口,</span><span style="color: #adadad; font-style: italic;"># 请与 php-cgi.exe 开启的端口保持一致</span><span style="color: #adadad; font-style: italic;"># 当 Nginx 收到 php 文件的请求时,会自动转发到 PHP FastCGI Server</span>fastcgi_pass 127.0.0.1:<span style="color: #ff0000;">9000</span>;fastcgi_index index.php;?<span style="color: #adadad; font-style: italic;"># Nginx 默认是不支持 CGI PATH_INFO,SCRIPT_NAME 的值也不标准(糅合了 PATH_INFO)</span><span style="color: #adadad; font-style: italic;"># 下面的两行指令,可以从 SCRIPT_NAME 中剥离出 PATH_INFO</span>fastcgi_split_path_info ^(.+\.php)(.*)$;fastcgi_param PATH_INFO $fastcgi_path_info;?<span style="color: #00007f;">include</span> fastcgi_params; 로그인 후 복사 |
创建一个独立的 php.conf 保存配置,纯粹是为了精简 nginx.conf,个人习惯而已,也可以全部写在主配置文件中。
修改 php.ini,设置 cgi.fix_pathinfo = 1,这非常重要,PHP 会修正 SCRIPT_FILENAME 为真实的文件地址,否则 PHP 将无法找到需要处理的 php 文件。
一些其他的设置,主服务器:
1234567891011121314 로그인 후 복사 | <span style="color: #adadad; font-style: italic;"># 默认开启的进程数</span>worker_processes <span style="color: #ff0000;">1</span>;?error_log logs/error.log;<span style="color: #adadad; font-style: italic;">#error_log logs/error.log notice;</span><span style="color: #adadad; font-style: italic;">#error_log logs/error.log info;</span>?<span style="color: #adadad; font-style: italic;">#pid logs/nginx.pid;</span>?events {<span style="color: #adadad; font-style: italic;"># 一个进程所处理的最大连接数上限,</span><span style="color: #adadad; font-style: italic;"># 本地开发,不需要默认的 1024,这里改为 64</span> worker_connections <span style="color: #ff0000;">64</span>;} 로그인 후 복사 |
当某个目录下面不存在默认 index.php index.html 等首页文件时,Nginx 会抛出 403 ERROR,如果你需要罗列此目录,则可以在 http {… } 中加入如下命令:
123 로그인 후 복사 | autoindex <span style="color: #0000ff;">on</span>;autoindex_exact_size <span style="color: #0000ff;">on</span>;autoindex_localtime <span style="color: #0000ff;">on</span>; 로그인 후 복사 |
OK,整合到一起
创建 start_nginx.bat,用于同时启动 PHP FastCGI 和 Nginx:
123456789101112 로그인 후 복사 로그인 후 복사 | <span style="color: #33cc33;">@</span><span style="color: #b1b100; font-weight: bold;">echo</span> off<span style="color: #808080; font-style: italic;">REM Windows 下无效</span><span style="color: #808080; font-style: italic;">REM set PHP_FCGI_CHILDREN=5</span><span style="color: #808080; font-style: italic;">REM 每个进程处理的最大请求数,或设置为 Windows 环境变量</span><span style="color: #b1b100; font-weight: bold;">set</span> PHP_FCGI_MAX_REQUESTS=1000?<span style="color: #b1b100; font-weight: bold;">echo</span> Starting PHP FastCGI...RunHiddenConsole C:/php5/php-cgi.exe -b 127.0.0.1:9000 -c C:/php5/php.ini?<span style="color: #b1b100; font-weight: bold;">echo</span> Starting nginx...C:/nginx/nginx.exe -p C:/nginx 로그인 후 복사 |
RunHiddenConsole.exe 是一个用来隐藏 DOS 窗口的小程序,可以在这里下载。
start_nginx.bat 开启后,也会有 DOS 窗口,但是可以安全的关掉,并不会关闭 Nginx 和 php-cgi.exe。
同样 stop_nginx.bat,用来关闭:
123456 로그인 후 복사 로그인 후 복사 | <span style="color: #33cc33;">@</span><span style="color: #b1b100; font-weight: bold;">echo</span> off<span style="color: #b1b100; font-weight: bold;">echo</span> Stopping nginx...taskkill /F /IM nginx.exe <span style="color: #33cc33;">></span> <span style="color: #0000ff; font-weight: bold;">nul</span><span style="color: #b1b100; font-weight: bold;">echo</span> Stopping PHP FastCGI...taskkill /F /IM php-cgi.exe <span style="color: #33cc33;">></span> <span style="color: #0000ff; font-weight: bold;">nul</span><span style="color: #00b100; font-weight: bold;">exit</span> 로그인 후 복사 |
到这里基本配置完毕了。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

GiteEpages 정적 웹 사이트 배포 실패 : 404 오류 문제 해결 및 해결시 Gitee ...

H5 프로젝트를 실행하려면 다음 단계가 필요합니다. Web Server, Node.js, 개발 도구 등과 같은 필요한 도구 설치. 개발 환경 구축, 프로젝트 폴더 작성, 프로젝트 초기화 및 코드 작성. 개발 서버를 시작하고 명령 줄을 사용하여 명령을 실행하십시오. 브라우저에서 프로젝트를 미리보고 개발 서버 URL을 입력하십시오. 프로젝트 게시, 코드 최적화, 프로젝트 배포 및 웹 서버 구성을 설정하십시오.

PHP8에서 매치 표현식은 표현식의 값에 따라 다른 결과를 반환하는 새로운 제어 구조입니다. 1) 스위치 명령문과 유사하지만 실행 명령문 블록 대신 값을 반환합니다. 2) 경기 표현식은 엄격하게 비교되어 (===) 보안을 향상시킵니다. 3) 스위치 명세서에서 가능한 파손을 피하고 코드의 단순성과 가독성을 향상시킵니다.

프론트 엔드 개발에서 Windows와 같은 구현 방법 ...

느린 Photoshop 스타트 업 문제를 해결하려면 다음을 포함한 다중 프론트 접근 방식이 필요합니다. 하드웨어 업그레이드 (메모리, 솔리드 스테이트 드라이브, CPU); 구식 또는 양립 할 수없는 플러그인 제거; 정기적으로 시스템 쓰레기 및 과도한 배경 프로그램 청소; 주의를 기울여 관련없는 프로그램 폐쇄; 시작하는 동안 많은 파일을 열지 않도록합니다.

PHP에서는 예측할 수없는 토큰을 사용하여 CSRF 공격을 효과적으로 방지 할 수 있습니다. 특정 방법은 다음과 같습니다. 1. 형태로 CSRF 토큰을 생성하고 포함시킨다. 2. 요청을 처리 할 때 토큰의 유효성을 확인하십시오.

PHP의 ... (SPLAT) 연산자는 기능 매개 변수 및 배열을 포장하여 코드 단순성 및 효율성을 향상시키는 데 사용됩니다. 1) 함수 매개 변수 풀기 : 배열 요소를 함수로 매개 변수로 전달합니다. 2) 배열 풀기 : 배열을 다른 배열 또는 함수 매개 변수로 포장합니다.
