nginx가 php-fpm을 호출할 때 오류를 해결하는 방법
nginx와 php-5.5를 설치하고 nginx에서 php를 호출하도록 구성한 후 php-fpm을 시작합니다.
다음 명령을 사용하세요
코드 복사 코드는 다음과 같습니다:
/usr/local/php/sbin/php-fpm
시작하시면 됩니다.
nginx 디렉토리에 index.php PHP 감지 스크립트를 생성하세요
결과적으로 http://localhost/index.php
를 열 때 열 수 없다는 비극이 발생합니다. 로그 파일을 확인하고 오류 원인을 확인하세요
코드 복사 코드는 다음과 같습니다:
2013/07/01 22:34:26 [error] 3214#0: *64 fastcgi sent in stderr: " 업스트림에서 응답 헤더를 읽는 동안 "주 스크립트 알 수 없음", 클라이언트: 192.168.168.19, 서버: localhost, 요청: "get /index.php http/1.1", 업스트림: "fastcgi://127.0.0.1:9000", 호스트: "192.168.168.140"
포트를 확인하세요. php-fpm의 9000 포트가 오픈된 것을 보면 php-fpm에는 문제가 없다는 뜻입니다. 문제는 nginx에 있습니다. 내 구성 파일에 문제가 있을 수 있습니다.
nginx가 PHP 구성을 로드하는 부분을 찾으세요. 또한 온라인에서 nginx 구성 파일을 참조하세요.
69행에 호출 스크립트 경로가 있습니다
코드 복사 코드는 다음과 같습니다.
fastcgi_param script_filename /scripts$fastcgi_script_name;
경로를 다음과 같이 변경했습니다.
코드 복사 코드는 다음과 같습니다.
fastcgi_param script_filename $document_root$fastcgi_script_name;
http://localhost/index.php
php의 버전 정보가 나타날 수 있습니다.
아래 구성 방법을 참조할 수도 있습니다.
php-fpm은 더 이상 lighttpd의 generate-fcgi와 같은 다른 fastcgi 실행 프로그램에 의존할 필요가 없습니다.
php-fpm은 php-fpm.ini 파일에 구성되어 있어 사용하기가 매우 편리합니다.
시작 및 재시작은 php/sbin/php-fpm에서 수행할 수 있습니다.
php를 직접 수정할 수 있다는 점이 더 편리합니다. php-fpm reload를 사용하면 프로세스를 종료하지 않고 php.ini의 수정 및 로딩을 완료할 수 있습니다. 결과는 php-fpm을 사용하면 PHP로 제어되는 프로세스의 CPU 재활용 속도가 크게 향상될 수 있음을 보여줍니다. -fpm이 상대적으로 느립니다. .메모리가 매우 균등하게 할당됩니다.
spawn-cgi로 제어되는 프로세스의 CPU가 매우 빠르게 저하되고 메모리 할당도 상대적으로 고르지 않습니다.
할당되지 않은 것처럼 보이는 프로세스가 많이 있습니다. 매우 혼잡합니다.
프로세스 때문일 수도 있습니다. 작업의 불균등한 분배로 인해 전체 응답 속도도 감소합니다
그리고 php-fpm의 합리적인 분배는 전체 응답 및 평균 작업에 대한 언급으로 이어집니다
php 사용 -fpm은 PHP 소스 코드를 패치해야 합니다. 그런 다음 php
1을 다시 컴파일하세요. php-fpm
wget http:/ /php-fpm.anight.org/downloads/head/php-5.2.8-fpm-0.5.10.diff.gz
php-5.2.9
gzip과 동일한 디렉토리에 - cd php-5.2.8-fpm -0.5.10.diff.gz | patch -d php-5.2.9 -p1
패치 적용 후 PHP 컴파일 시 다음 매개변수가 추가됩니다.
–enable-fpm은 fpm을 활성화합니다. fastcgi 모드 지원
– -fpm-conf php-fpm 구성 파일 포함(기본값은 prefix/etc/php-fpm.conf)
– with-fpm-log php-fpm 로그 파일(기본값은 prefix/logs/php- fpm.log)
–with-fpm-pid php-fpm의 pid 파일(기본값은 prefix/logs/php-fpm.pid)
./configure --prefix=/ebs/php
--with-config-file- path=/ebs /php/etc
--enable-fastcgi
--enable-fpm
--others
참고: --enable-fastcgi는 --enable-fpm 앞에 와야 합니다. 그렇지 않으면 fpm을 컴파일할 수 없습니다. .
2.php를 컴파일한 후 구성 파일을 수정합니다.
다음 구성에 주의해야 합니다
PHP의 fastcgi 프로세스에서 모니터링하는 IP 주소와 포트를 나타냅니다.
PHP의 fastcgi 프로세스는 어떤 사용자 및 사용자 그룹으로 실행됩니까? 이 줄은 기본적으로 주석 처리되어 있으며 활성화해야 합니다.
PHP 오류를 표시할지 여부 message
최대 하위 프로세스 수
Run php-fpm:
php-fpm은 fastcgi 프로세스를 제어하는 프로그램을 사용합니다. 이 파일은 $prefix/sbin에 있습니다. /php-fpm
/usr/ local/php/sbin/php-fpm
이 프로그램에는 다음 매개변수가 있습니다:
start는 php의 fastcgi 프로세스를 시작합니다
stop은 php의 fastcgi 프로세스를 강제로 종료합니다
quit는 php의 fastcgi 프로세스를 원활하게 종료합니다. php
restart는 php
reload의 fastcgi 프로세스를 다시 시작합니다. php의 php.ini
logrotate는 로그 파일을 다시 활성화합니다.
즉, php.ini를 수정한 후
/usr/local/php/sbin/php-를 사용할 수 있습니다. fpm reload
이렇게 하면 php의 로그 파일이 유지됩니다. fastcgi 프로세스가 계속 실행되는 동안 php.ini가 다시 로드됩니다.
코드 복사 코드는 다음과 같습니다.
user www www;
worker_processes 10;
error_loglogs/error.log attention;
pidlogs/nginx.pid;
#은 이 프로세스에서 열 수 있는 최대 파일 설명자의 값을 지정합니다.
worker_rlimit_nofile 51200;
events
{# ;
#tcp_nopush on;
keepalive_timeout 60 ;
tcp_nodelay on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 8k;
gzip_http_version 1.1;
gzip_types text/plain application/x-javascript text/css text/html application/xml;
{
들어봐 80;
server_name 192.168.1.2;
index index.html index.htm index.php;
root /ebs/www;
if (-d $request_filename)
{
다시 쓰기 ^/(.*)([^/])$ http: //$host/$1$2/ 영구;
}
위치 ~ .*.php?$
{
include fcgi.conf
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}
log_format 액세스 '$ 원격_주소 - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
access_log 로그/access.log 액세스;
}
}
새로운 버전:
/usr/local/nginx/conf/fcgi.conf
注:nginx自带了一个配置文件,/usr/local/nginx/conf/fastcgi_ 매개변수, 该配置文件缺少粗体字体的part分,会造成访问php文件时报404错误。
复代码 代码如下:
fastcgi_param Gateway_interface cgi/1.1;
fastcgi_param query_string $query_string;
fastcgi_param request_method $request_method;
fastcgi_param content_length $content_length;
fastcgi_param script_filename $document_root$fastcgi_script_name;fastcgi_param script_name $fastcgi_script_name;
fastcgi_param request_uri $request_uri;fastcgi_param document_uri $document_uri;
fastcgi_param document_root $document_root;fastcgi_param 서버_프로토콜 $server_protocol;
fastcgi_param remote_addr $remote_addr;fastcgi_param remote_port $remote_port;
fastcgi_param server_addr $server_addr;
fastcgi_param server_port $server_port;
fastcgi_param server_name $server_name;
# php 전용, php가 --enable-force-cgi-redirect로 빌드된 경우 필수
에디토리얼 -1.2.2.tar.gz
cd xcache-1.2.2
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --enable-xcache --enable-xcache-optimizer
make
make install
2、计算密码的md5值
echo -n "password"|md5sum
5f4dcc3b5aa765d61d8327deb882cf99
3、配置xcache
; 참고:zend_extension,사용来加载zend의 확장, 是绝对路径, 확장 기능은 是是상对路径, 上对于extension_dir적의상对路径, 비zend扩展
如果你更改路径以后, 一定要apachectl stop后再start, 而不要要.
vi /usr/local/php /etc/php.ini
添加:
复代码 代码如下:
[xcache-common]
zend_extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/xcache.so
[xcache.admin]
; xcache.admin.user를 원하는 로그인 이름으로 변경하세요
xcache.admin.user = "admin"
; xcache.admin.pass를 비밀번호의 md5 지문으로 변경하세요
; 지문을 찾으려면 md5 -s "your_secret_password"를 사용하세요
xcache.admin.pass = "5f4dcc3b5aa765d61d8327deb882cf99"
[xcache]
; xcache.size를 변경하여 opcode 캐시의 크기를 조정하세요
xcache.size = 24m
xcache.shm_scheme = "mmap"
xcache.count = 2
xcache.slots = 8k
xcache.ttl = 0
xcache.gc_interval = 0
; 변수 캐시의 크기를 조정하려면 xcache.var_size를 변경하세요
xcache.var_size = 8m
xcache.var_count = 1
xcache.var_slots = 8k
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache. 테스트 = off
xcache.readonly_protection = on
xcache.mmap_path = "/tmp/xcache"
xcache.coredump_directory = ""
xcache.cacher = on
xcache.stat = on
xcache.optimizer = off
[xcache.coverager ]
xcache.coverager = on
xcache.coveragedump_directory = ""
5、중고php模块
수정常load 지,
재phpinfo显는 다음과 같이 표시됩니다.
zend这快应该会加上xcache的内容
6、另外两种加速模块:
我们的测试中,效果都要好于xcache,这3中加速不能同时存在两种,有冲突。
6.1 apc
复system代码 代码如下:
wget http: //pecl.php.net/get/apc-3.0.19.tgz
cd apc-3.0.19
/usr/local/php/bin/phpize
./configure --enable-apc --enable-apc- mmap --with-apxs=/ebs/apache/bin/apxs --with-php-config=/ebs/php/bin/php-config
make
make install
6.2 eaccelerator
wget http://bart.eaccelerator .net/source/0.9.5.3/eaccelerator-0.9.5.3.zip
cd eaccelerator-0.9.5.3
/usr/local/php/bin/phpize
./configure --enable-eaccelerator=shared --with-php -config=/ebs/php/bin/php-config
make
make install
vi php.ini
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator. debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_기간="0"
eaccelerator.shm_only="0"
eaccelerator.compress=" 1"
eaccelerator.compress_level="9"
五、使用nginx对应多台facgi服务器
思路:前端一台nginx,용于做为负载均衡와处리静态页면。利사용 nginx의 업스트림은 php请求php-fpm을 공유하는 php-fpm은 더 많은 php-fpm을 사용하고 있으며, 只起php-fpm은 php-fpm을 사용하고 있습니다.当于少了一层。
위 내용은 nginx가 php-fpm을 호출할 때 오류를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 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)

뜨거운 주제











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

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

클라우드 서버에서 nginx 도메인 이름을 구성하는 방법 : 클라우드 서버의 공개 IP 주소를 가리키는 레코드를 만듭니다. Nginx 구성 파일에 가상 호스트 블록을 추가하여 청취 포트, 도메인 이름 및 웹 사이트 루트 디렉토리를 지정합니다. Nginx를 다시 시작하여 변경 사항을 적용하십시오. 도메인 이름 테스트 구성에 액세스하십시오. 기타 참고 : HTTPS를 활성화하려면 SSL 인증서를 설치하고 방화벽에서 포트 80 트래픽을 허용하고 DNS 해상도가 적용되기를 기다립니다.

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

Nginx 서버를 시작하려면 다른 운영 체제에 따라 다른 단계가 필요합니다. Linux/Unix System : Nginx 패키지 설치 (예 : APT-Get 또는 Yum 사용). SystemCTL을 사용하여 nginx 서비스를 시작하십시오 (예 : Sudo SystemCtl start nginx). Windows 시스템 : Windows 바이너리 파일을 다운로드하여 설치합니다. nginx.exe 실행 파일을 사용하여 nginx를 시작하십시오 (예 : nginx.exe -c conf \ nginx.conf). 어떤 운영 체제를 사용하든 서버 IP에 액세스 할 수 있습니다.

질문에 대한 답변 : 304 수정되지 않은 오류는 브라우저가 클라이언트 요청의 최신 리소스 버전을 캐시했음을 나타냅니다. 솔루션 : 1. 브라우저 캐시를 지우십시오. 2. 브라우저 캐시를 비활성화합니다. 3. 클라이언트 캐시를 허용하도록 nginx를 구성합니다. 4. 파일 권한을 확인하십시오. 5. 파일 해시를 확인하십시오. 6. CDN 또는 리버스 프록시 캐시를 비활성화합니다. 7. nginx를 다시 시작하십시오.

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

Nginx 403 금지 된 오류를 수정하는 방법은 무엇입니까? 파일 또는 디렉토리 권한을 확인합니다. 2. 확인 파일을 확인하십시오. 3. nginx 구성 파일 확인; 4. nginx를 다시 시작하십시오. 다른 가능한 원인으로는 방화벽 규칙, Selinux 설정 또는 응용 프로그램 문제가 있습니다.
