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,然后打开修改几个选项:
1 2 3 4 5 6 7 8 9 10 11 로그인 후 복사 |
<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:
1 2 3 4 5 6 로그인 후 복사 로그인 후 복사 |
<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 配置文件:
1 2 3 4 5 6 7 8 9 10 11 12 로그인 후 복사 로그인 후 복사 |
<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 文件。
一些其他的设置,主服务器:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 로그인 후 복사 |
<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 {… } 中加入如下命令:
1 2 3 로그인 후 복사 |
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:
1 2 3 4 5 6 7 8 9 10 11 12 로그인 후 복사 로그인 후 복사 |
<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,用来关闭:
1 2 3 4 5 6 로그인 후 복사 로그인 후 복사 |
<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)

뜨거운 주제











PHP는 MySQLI 및 PDO 확장 기능을 사용하여 데이터베이스 작업 및 서버 측 로직 프로세싱에서 상호 작용하고 세션 관리와 같은 기능을 통해 서버 측로 로직을 처리합니다. 1) MySQLI 또는 PDO를 사용하여 데이터베이스에 연결하고 SQL 쿼리를 실행하십시오. 2) 세션 관리 및 기타 기능을 통해 HTTP 요청 및 사용자 상태를 처리합니다. 3) 트랜잭션을 사용하여 데이터베이스 작업의 원자력을 보장하십시오. 4) SQL 주입 방지, 디버깅을 위해 예외 처리 및 폐쇄 연결을 사용하십시오. 5) 인덱싱 및 캐시를 통해 성능을 최적화하고, 읽을 수있는 코드를 작성하고, 오류 처리를 수행하십시오.

PHP는 동적 웹 사이트를 구축하는 데 사용되며 해당 핵심 기능에는 다음이 포함됩니다. 1. 데이터베이스와 연결하여 동적 컨텐츠를 생성하고 웹 페이지를 실시간으로 생성합니다. 2. 사용자 상호 작용 및 양식 제출을 처리하고 입력을 확인하고 작업에 응답합니다. 3. 개인화 된 경험을 제공하기 위해 세션 및 사용자 인증을 관리합니다. 4. 성능을 최적화하고 모범 사례를 따라 웹 사이트 효율성 및 보안을 개선하십시오.

nginx가 시작되었는지 확인하는 방법 : 1. 명령 줄을 사용하십시오 : SystemCTL 상태 nginx (linux/unix), netstat -ano | Findstr 80 (Windows); 2. 포트 80이 열려 있는지 확인하십시오. 3. 시스템 로그에서 nginx 시작 메시지를 확인하십시오. 4. Nagios, Zabbix 및 Icinga와 같은 타사 도구를 사용하십시오.

PHP와 Python은 고유 한 장점과 단점이 있으며 선택은 프로젝트 요구와 개인 선호도에 달려 있습니다. 1.PHP는 대규모 웹 애플리케이션의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 데이터 과학 및 기계 학습 분야를 지배합니다.

Linux에서는 다음 명령을 사용하여 nginx가 시작되었는지 확인하십시오. SystemCTL 상태 Nginx 판사 명령 출력에 따라 : "active : running"이 표시되면 Nginx가 시작됩니다. "Active : 비활성 (죽음)"이 표시되면 Nginx가 중지됩니다.

Linux에서 Nginx를 시작하는 단계 : Nginx가 설치되어 있는지 확인하십시오. systemctl start nginx를 사용하여 nginx 서비스를 시작하십시오. SystemCTL을 사용하여 NGINX를 사용하여 시스템 시작시 NGINX의 자동 시작을 활성화하십시오. SystemCTL 상태 nginx를 사용하여 시작이 성공했는지 확인하십시오. 기본 환영 페이지를 보려면 웹 브라우저의 http : // localhost를 방문하십시오.

Docker 이미지 생성 단계 : 빌드 지침이 포함 된 Dockerfile을 작성하십시오. Docker 빌드 명령을 사용하여 터미널에 이미지를 빌드하십시오. Docker 태그 명령을 사용하여 이미지를 태그하고 이름과 태그를 지정하십시오.

Windows에서 Nginx를 구성하는 방법은 무엇입니까? nginx를 설치하고 가상 호스트 구성을 만듭니다. 기본 구성 파일을 수정하고 가상 호스트 구성을 포함하십시오. 시작 또는 새로 고침 Nginx. 구성을 테스트하고 웹 사이트를보십시오. SSL을 선택적으로 활성화하고 SSL 인증서를 구성하십시오. 포트 80 및 443 트래픽을 허용하도록 방화벽을 선택적으로 설정하십시오.
