목차
安装PHP5.6(FPM方式)
PHP5.6 설치(FPM 방식)
安装Nginx
Nginx + PHP-FPM配置
安装MySQL
Memcache
Redis
设置别名
安装其他项目支持
安装Oh My Zsh
백엔드 개발 PHP 튜토리얼 Mac에서 PHP 환경 구축

Mac에서 PHP 환경 구축

Mar 27, 2018 pm 01:28 PM
php 짓다 환경

이 기사에서는 Mac에서 PHP 환경을 구축하는 방법을 주로 공유합니다. 최근 작업 환경이 Mac으로 전환되었으므로 OS X Yosemite(10.10.1)를 예로 들어 설치 과정을 기록해 보세요. Mac의 LNMP 환경을 처음부터 새로

시스템에 xcode가 설치되어 있는지 확인한 다음 한 줄 명령을 사용하여 종속성 관리 도구인 Homebrew를 설치하세요.

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
로그인 후 복사

그런 다음

brew install FORMULA
로그인 후 복사

를 사용하여 필요한 종속성을 설치할 수 있습니다.

brew(양조를 의미함)라는 이름은 매우 흥미롭습니다. 양조 과정에 사용되는 모든 재료/도구는 다음 개념에 해당합니다.

  • Formula(공식) 프로그램 패키지 정의. rb 파일

  • Keg(배럴) 패키지 설치 경로

  • 모든 패키지(배럴)의 Cellar(cellar) 루트 디렉터리

  • Tap(수도꼭지) 패키지 소스

  • Bottle(병) 컴파일 및 패키지 the package

최종 컴파일되고 설치된 프로그램은 양조 와인 한 통입니다

자세한 내용은 Homebrew의 공식 Cookbook을 참조하세요

따라서 Homebrew를 사용하는 일반적인 프로세스는 다음과 같습니다.

  1. 프로그램 소스 추가 (새 수도꼭지 추가) brew tap homebrew/phpbrew tap homebrew/php

  2. 更新程序源 brew update

  3. 安装程序包(按照配方酿酒) brew install git

  4. 查看配置 brew config 可以看到程序包默认安装在/usr/local/Cellar下 (酒桶放在地窖内)

安装PHP5.6(FPM方式)

首先加入Homebrew官方的几个软件源

brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/php
로그인 후 복사

PHP如果采用默认配置安装,会编译mod_php模块并只运行在Apache环境下,为了使用Nginx,这里需要编译php-fpm并且禁用apache,主要通过参数--without-fpm --without-apache来实现。完整的安装指令为

brew install php56 \
--build-from-source \
--without-snmp \
--without-apache \
--with-fpm \
--with-intl \
--with-homebrew-curl \
--with-homebrew-libxslt \
--with-homebrew-openssl \
--with-imap \
--with-mysql \
--with-tidy
로그인 후 복사

由于OSX已经自带了PHP环境,因此需要修改系统路径,优先运行brew安装的版本,在~/.bashrc

프로그램 소스 업데이트 brew update

프로그램 패키지 설치(레시피에 따라 브루잉) brew install git

🎜🎜구성 보기 brew config 패키지가 기본적으로 /usr/local/Cellar 아래에 설치되어 있는 것을 확인할 수 있습니다( 와인통은 지하실에 놓여있습니다)🎜🎜

PHP5.6 설치(FPM 방식)

🎜먼저 여러 공식 Homebrew 소프트웨어 소스를 추가하세요🎜
export PATH="/usr/local/bin:/usr/local/sbin:$PATH"
로그인 후 복사
🎜PHP가 기본 구성으로 설치된 경우 mod_php code> 모듈이 컴파일되고 Apache 환경에서만 실행됩니다. Nginx를 사용하려면 php-fpm을 컴파일하고 Apache를 비활성화해야 합니다. 이는 주로 <code>--without-fpm --without 매개 변수를 통해 수행됩니다. -아파치. 전체 설치 지침은 🎜
brew search php56
로그인 후 복사
🎜입니다. OSX에는 이미 PHP 환경이 제공되므로 시스템 경로를 수정하고 Brew가 설치한 버전을 먼저 실행해야 합니다. 원하는 경우 ~/.bashrc에 🎜<div class="code" style="position:relative; padding:0px; margin:0px;"><pre style="font-family:'Courier New';margin:5px 8px;padding:5px;" class="brush:php;toolbar:false;">brew install php56-memcache php56-memcached php56-mongo  php56-phalcon php56-redis php56-xdebug --build-from-source</pre><div class="contentsignin">로그인 후 복사</div></div>🎜를 추가하세요. 새로운 PHP 확장을 설치하세요. 매번 PHP를 다시 컴파일하지 않고 직접 설치할 수 있습니다. 모든 확장은 🎜
php-fpm -D
killall php-fpm
로그인 후 복사
로그인 후 복사
🎜를 통해 볼 수 있습니다. Phalcon 프레임워크를 지원하는 데 필요한 확장은 다음과 같습니다: 🎜
ln -sfv /usr/local/opt/php56/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.php56.plist
로그인 후 복사
로그인 후 복사
🎜PHP-FPM 로드 시작🎜🎜설치가 완료된 후 다음 명령을 통해 php-fpm을 시작하고 중지할 수 있습니다🎜
php-fpm -D
killall php-fpm
로그인 후 복사
로그인 후 복사

同时可以将php-fpm加入开机启动

ln -sfv /usr/local/opt/php56/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.php56.plist
로그인 후 복사
로그인 후 복사

安装Nginx

brew install nginx
로그인 후 복사

安装完毕后可以通过

nginx
nginx -s quit
로그인 후 복사

启动和关闭,同时也支持重载配置文件等操作

nginx -s reload|reopen|stop|quit
로그인 후 복사

nginx安装后默认监听8080端口,可以访问http://localhost:8080查看状态。如果要想监听80端口需要root权限,运行

sudo chown root:wheel /usr/local/Cellar/nginx/1.6.2/bin/nginx
sudo chmod u+s /usr/local/Cellar/nginx/1.6.2/bin/nginx
로그인 후 복사

并使用root权限启动

sudo nginx
로그인 후 복사

开机启动

ln -sfv /usr/local/opt/nginx/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
로그인 후 복사

Nginx + PHP-FPM配置

Nginx一般都会运行多个域名,因此这里参考了@fish的方法,按Ubuntu的文件夹结构来存放Nginx的配置文件

mkdir -p /usr/local/var/logs/nginx
mkdir -p /usr/local/etc/nginx/sites-available
mkdir -p /usr/local/etc/nginx/sites-enabled
mkdir -p /usr/local/etc/nginx/conf.d
mkdir -p /usr/local/etc/nginx/ssl
로그인 후 복사

编辑Nginx全局配置

vim /usr/local/etc/nginx/nginx.conf
로그인 후 복사
worker_processes  1;
error_log   /usr/local/var/logs/nginx/error.log debug;
pid        /usr/local/var/run/nginx.pid;

events {
    worker_connections  256;
}


http {    include       mime.types;
    default_type  application/octet-stream;

    log_format main '$remote_addr - $remote_user [$time_local] '        '"$request" $status $body_bytes_sent '        '"$http_referer" "$http_user_agent" '        '"$http_x_forwarded_for" $host $request_time $upstream_response_time $scheme '        '$cookie_evalogin';

    access_log  /usr/local/var/logs/access.log  main;

    sendfile        on;
    keepalive_timeout  65;
    port_in_redirect off;    include /usr/local/etc/nginx/sites-enabled/*;
}
로그인 후 복사

这样一来首先可以把一些可复用配置独立出来放在/usr/local/etc/nginx/conf.d下,比如fastcgi的设置就可以独立出来

vim /usr/local/etc/nginx/conf.d/php-fpm
로그인 후 복사

内容为

location ~ \.php$ {
    try_files                   $uri = 404;
    fastcgi_pass                127.0.0.1:9000;
    fastcgi_index               index.php;
    fastcgi_intercept_errors    on;    include /usr/local/etc/nginx/fastcgi.conf;
}
로그인 후 복사

然后/usr/local/etc/nginx/sites-enabled目录下可以一个文件对应一个域名的配置,比如web服务器目录是/opt/htdocs

vim /usr/local/etc/nginx/sites-enabled/default
로그인 후 복사
server {
    listen       80;
    server_name  localhost;
    root         /opt/htdocs/;

    location / {
        index  index.html index.htm index.php;        include     /usr/local/etc/nginx/conf.d/php-fpm;
    }
}
로그인 후 복사

此时启动了php-fpm并且启动了Nginx后,就可以通过http://localhost来运行php程序了

安装MySQL

brew install mysql
로그인 후 복사

可以通过

mysql.server start
mysql.server stop
로그인 후 복사

来启动/停止,启动后默认应为空密码,可以通过mysqladmin设置一个密码

mysqladmin -uroot password "mypassword"
로그인 후 복사

但是在操作的时候出现了空密码无法登入的情况,最终只能通过mysqld_safe来设置

sudo mysqld_safe --skip-grant-tables
mysql -u root
mysql> UPDATE mysql.user SET Password=PASSWORD('mypassword') WHERE User='root';
mysql> FLUSH PRIVILEGES;
로그인 후 복사

最后将MySQL加入开机启动

cp /usr/local/Cellar/mysql/5.6.22/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
로그인 후 복사

Memcache

brew install memcached
로그인 후 복사

启动/停止指令

memcached -d
killall memcached
로그인 후 복사

加入开机启动

cp /usr/local/Cellar/memcached/1.4.20/homebrew.mxcl.memcached.plist ~/Library/LaunchAgents/
로그인 후 복사

Redis

brew install redis
로그인 후 복사

Redis默认配置文件不允许以Deamon方式运行,因此需要先修改配置文件

vim /usr/local/etc/redis.conf
로그인 후 복사

将daemonize修改为yes,然后载入配置文件即可实现后台进程启动

redis-server /usr/local/etc/redis.conf
로그인 후 복사

加入开机启动

cp /usr/local/Cellar/redis/2.8.19/homebrew.mxcl.redis.plist ~/Library/LaunchAgents/
로그인 후 복사

设置别名

最后可以对所有服务的启动停止设置别名方便操作

vim ~/.bash_profile
로그인 후 복사

加入

alias nginx.start='launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist'
alias nginx.stop='launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist'
alias nginx.restart='nginx.stop && nginx.start'
alias php-fpm.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist"
alias php-fpm.stop="launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist"
alias php-fpm.restart='php-fpm.stop && php-fpm.start'
alias mysql.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist"
alias mysql.stop="launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist"
alias mysql.restart='mysql.stop && mysql.start'
alias redis.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist"
alias redis.stop="launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist"
alias redis.restart='redis.stop && redis.start'
alias memcached.start="launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist"
alias memcached.stop="launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist"
alias memcached.restart='memcached.stop && memcached.start'
로그인 후 복사

安装其他项目支持

brew install composer node
로그인 후 복사

安装Oh My Zsh

brew install zsh-completions
chsh -s /usr/local/bin/zsh
vim ~/.zshenv
로그인 후 복사

加入内容

export PATH=/usr/local/bin:$PATH
로그인 후 복사

然后

vim ~/.zshrc
로그인 후 복사

加入内容

fpath=(/usr/local/share/zsh-completions $fpath)
autoload -Uz compinit
compinit -u
로그인 후 복사

最后运行

rm -f ~/.zcompdump; compinit
로그인 후 복사

查看正在使用的shell

dscl localhost -read Local/Default/Users/$USER UserShell
로그인 후 복사

安装Oh My Zsh

wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
로그인 후 복사

               

위 내용은 Mac에서 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 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

이전에 몰랐던 후회되는 PHP 함수 7가지 이전에 몰랐던 후회되는 PHP 함수 7가지 Nov 13, 2024 am 09:42 AM

숙련된 PHP 개발자라면 이미 그런 일을 해왔다는 느낌을 받을 것입니다. 귀하는 상당한 수의 애플리케이션을 개발하고, 수백만 줄의 코드를 디버깅하고, 여러 스크립트를 수정하여 작업을 수행했습니다.

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. Apr 05, 2025 am 12:04 AM

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

문자열로 모음을 계산하는 PHP 프로그램 문자열로 모음을 계산하는 PHP 프로그램 Feb 07, 2025 pm 12:12 PM

문자열은 문자, 숫자 및 기호를 포함하여 일련의 문자입니다. 이 튜토리얼은 다른 방법을 사용하여 PHP의 주어진 문자열의 모음 수를 계산하는 방법을 배웁니다. 영어의 모음은 A, E, I, O, U이며 대문자 또는 소문자 일 수 있습니다. 모음이란 무엇입니까? 모음은 특정 발음을 나타내는 알파벳 문자입니다. 대문자와 소문자를 포함하여 영어에는 5 개의 모음이 있습니다. a, e, i, o, u 예 1 입력 : String = "Tutorialspoint" 출력 : 6 설명하다 문자열의 "Tutorialspoint"의 모음은 u, o, i, a, o, i입니다. 총 6 개의 위안이 있습니다

PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? Feb 07, 2025 am 11:57 AM

이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다

PHP에서 늦은 정적 결합을 설명하십시오 (정적 : :). PHP에서 늦은 정적 결합을 설명하십시오 (정적 : :). Apr 03, 2025 am 12:04 AM

정적 바인딩 (정적 : :)는 PHP에서 늦은 정적 바인딩 (LSB)을 구현하여 클래스를 정의하는 대신 정적 컨텍스트에서 호출 클래스를 참조 할 수 있습니다. 1) 구문 분석 프로세스는 런타임에 수행됩니다. 2) 상속 관계에서 통화 클래스를 찾아보십시오. 3) 성능 오버 헤드를 가져올 수 있습니다.

php magic 방법 (__construct, __destruct, __call, __get, __set 등)이란 무엇이며 사용 사례를 제공합니까? php magic 방법 (__construct, __destruct, __call, __get, __set 등)이란 무엇이며 사용 사례를 제공합니까? Apr 03, 2025 am 12:03 AM

PHP의 마법 방법은 무엇입니까? PHP의 마법 방법은 다음과 같습니다. 1. \ _ \ _ Construct, 객체를 초기화하는 데 사용됩니다. 2. \ _ \ _ 파괴, 자원을 정리하는 데 사용됩니다. 3. \ _ \ _ 호출, 존재하지 않는 메소드 호출을 처리하십시오. 4. \ _ \ _ get, 동적 속성 액세스를 구현하십시오. 5. \ _ \ _ Set, 동적 속성 설정을 구현하십시오. 이러한 방법은 특정 상황에서 자동으로 호출되어 코드 유연성과 효율성을 향상시킵니다.

See all articles