>  기사  >  백엔드 개발  >  Mac nginx가 PHP를 지원하지 않으면 어떻게 해야 합니까?

Mac nginx가 PHP를 지원하지 않으면 어떻게 해야 합니까?

藏色散人
藏色散人원래의
2021-09-18 09:08:342161검색

mac nginx는 PHP가 구성되지 않았기 때문에 PHP를 지원하지 않습니다. 해결 방법은 다음과 같습니다. 1. nginx를 설치하려면 homebrew를 사용합니다. 2. nginx에 대한 관리자 권한을 설정합니다. 3. "brew tap josegonzalez/homebrew-php" 명령을 실행하여 설치합니다. PHP.

Mac nginx가 PHP를 지원하지 않으면 어떻게 해야 합니까?

이 글의 운영 환경: macOS10.15 시스템, PHP5.6 버전, MacBook Air 2019 컴퓨터

mac nginx가 PHP를 지원하지 않으면 어떻게 해야 하나요?

Mac에서는 Nginx를 설치하고 PHP를 구성했습니다

저는 이전에 Apache와 PHP를 함께 사용하여 작업했습니다

PHP는 독학하기 때문에 이해하지 못하는 사람이 많습니다(TP는 많이 본 적이 없고 쓸모가 없습니다)

최근 생각하는 것은 nginx와 php를 사용하여 함께 작성하는 것입니다

컴퓨터에 설치했는데 그 과정에서 몇 가지 문제가 발생했기 때문에 아직 nginx와 php를 사용하여 개발한다면 느낌이 좀 남아서 기록해 보겠습니다. 미래에는 참고할 수 있습니다

1. Linux에서는 yum을 사용하여 소프트웨어를 설치합니다. Mac에서는 homebrew를 볼 수 있습니다

2 그런 다음 homebrew를 사용하여 nginx를 설치합니다

하나의 명령으로 설치가 완료됩니다:

brew install nginx

그런 다음 권한을 구성합니다

1》nginx에 대한 관리자 권한 설정 제공: 관리자 권한을 설정하지 않으면 포트 80을 모니터링할 수 없습니다

#这里的目录根据你实际安装的目录来填写,默认是这个目录,不同的只是nginx的版本号而已
sudo chown root:wheel /usr/local/Cellar/nginx/1.10.1/bin/nginx    
sudo chmod u+s /usr/local/Cellar/nginx/1.10.1/bin/nginx

2》launchctl 시작 제어 추가

mkdir -p ~/Library/LaunchAgents
cp /usr/local/opt/nginx/homebrew.mxcl.nginx.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist

3》nginx를 실행

sudo nginx #打开 nginx
nginx -s reload|reopen|stop|quit  #重新加载配置|重启|停止|退出 nginx
nginx -t   #测试配置是否有语法错误

3. PHP를 설치합니다

brew에는 기본 패키지가 없으므로 먼저 다음 명령을 실행합니다.

brew tap homebrew/dupes
brew tap josegonzalez/homebrew-php

php에는 여러 버전이 있으므로 Brew 검색 php를 사용하여

My를 볼 수 있습니다. 컴퓨터는 php5.6이지만 Brew를 사용하여 설치했는데 Mac에는 영향을 미치지 않습니다. 예, 설치가 완료된 후 시스템을 위해 /usr/local/Cellar

brew install php56

에 설치됩니다. 방금 설치한 버전을 사용하세요. 구성이 필요합니다

sudo vim ~/.bash_profile

#在这个文件最后添加下列语句:
export PATH="$(brew --prefix php56)/bin:$PATH"

#保存文件后,source下这个文件,使刚刚添加的环境变量生效
source ~/.bash_profile

완료 후 터미널에서 php -v를 사용하시면 됩니다. 버전을 확인해보세요. 방금 설치한 버전입니다

launchctl 시작 제어 추가

mkdir -p ~/Library/LaunchAgents
cp /usr/local/opt/php56/homebrew.mxcl.php56.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php56.plist

경로 php 설정 파일은 다음과 같습니다

/usr/local/etc/php/5.6/php.ini
/usr/local/etc/php/5.6/php-fpm.conf

완성 후 php로 직접 테스트에 들어갔습니다

그런데 nginx 서비스는 정상인데 PHP가 안 나오네요

이유는 너무 조급해서, nginx가 아직 PHP를 설정하지 않았습니다

nginx 구성 파일 경로는 다음과 같습니다

/usr/local/etc/nginx/nginx.conf


열어서 다음 부분을 찾습니다

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

주석 해제하고 nginx를 다시 시작해도 여전히 작동하지 않습니다. 그 이유는 [/scripts$fastcgi_script_name;] 문장은 [$document_root$fastcgi_script_name;]

그런 다음 nginx를 다시 시작하면 php

에 액세스할 수 있습니다. php-fpm을 시작할 때 몇 가지 작은 문제에 직면했던 것을 기억합니다. 문제의 내용은 다음과 같습니다. 터미널에 표시됩니다

예: [/private/etc/php-fpm.conf] 이 파일은 실제로 동일한 디렉터리에 접미사 [.default]가 있는 파일이 있습니다. 그냥 복사해서 php-fpm.conf로 바꿔보세요

나중에 실행하면 error_log 경로가 틀릴 수도 있습니다. 기본적으로는 [/usr/var] 아래에 로그를 남기는데 경로를 찾을 수 없습니다. 솔루션 방법.

1》없는 폴더가 있으면 생성합니다

2》방금 복사한 php-fpm.conf 파일을 변경하고 다음과 유사한 위치를 찾습니다.

[global]
; Pid file
; Note: the default prefix is /usr/var
; Default Value: none
pid = /usr/local/var/php-fpm/run/php-fpm.pid

; Error log file
; If it's set to "syslog", log is sent to syslogd instead of being written
; in a local file.
; Note: the default prefix is /usr/var
; Default Value: log/php-fpm.log
error_log = /usr/local/var/php-fpm/log/php-fpm.log

pid와 error_log가 모두 주석 처리되었습니다. 이전에는 그냥 편한 위치로 바꿔주시면 됩니다

지금은 특별한 문제가 없다면 nginx와 php는 정상적으로 작동할 수 있습니다.

nginx.conf 및 호스트 파일을 수정하여 자체 액세스 도메인 이름을 구성할 수 있습니다

권장 학습: "PHP 비디오 튜토리얼"

위 내용은 Mac nginx가 PHP를 지원하지 않으면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.