在Mac上搭建PHP开发环境

在Mac上搭建PHP开发环境是一个相对简单的过程,只需要按照以下步骤操作即可,本文将详细介绍如何在Mac上安装Apache、MySQL和PHP,并配置PHP开发环境。

macphp环境 macphp环境搭建

1、安装Homebrew

我们需要安装Homebrew,它是一个包管理器,可以帮助我们轻松地安装和管理各种开发工具和库,打开终端,输入以下命令安装Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

按照提示操作,完成Homebrew的安装。

2、安装Apache

Homebrew自带了Apache,我们可以通过以下命令安装:

brew install apache

安装完成后,启动Apache:

brew services start apache

此时,访问http://localhost,如果看到“It works!”的页面,说明Apache已经成功安装并运行。

3、安装MySQL

接下来,我们安装MySQL,同样使用Homebrew进行安装:

brew install mysql

安装完成后,启动MySQL:

brew services start mysql

为了方便操作,我们需要创建一个名为root的用户,并设置密码,登录MySQL:

mysql -u root -p

输入刚刚设置的密码,进入MySQL命令行界面,创建root用户并设置密码:

CREATE USER 'root'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

4、安装PHP

现在,我们开始安装PHP,安装PHP7:

brew install php@7.4

安装完成后,启动PHP-FPM:

brew services start php@7.4-fpm

5、配置Apache以支持PHP

为了让Apache支持PHP,我们需要修改其配置文件,打开/usr/local/etc/httpd/httpd.conf文件,找到以下内容:

#LoadModule php7_module libexec/apache2/libphp7.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

取消注释这两行,然后重启Apache:

brew services restart apache@7.4-fpm mysql@7.4-start msmtp@2.6-start postfix@3.6-start dovecot@2.3-start memcached@3.0-start node@14-start mongodb@4.4-start rabbitmq@3.8-start elasticsearch@7.15-start homebrew@3.0-start nginx@1.19-start vsftpd@3.0-start transmission@2.94-start nextcloud@23-start webdav@5.6.2-start bitwarden@10.0.2-start saml2@1.14-start inetutils@2.3-start openldap@2.4-openssl@1.1-start graphviz@2.44-with-lua@0.10-start freetds@1.3-with-unixodbc@2.3-with-guile@2.2-with-kerberos@2.10-with-krb5@1.17-with-gssapi@1.17-with-ntlm_auth@1.0-with-tdsver=7.4 tigervncserver@1.16 htop@3.0 postgresql@13 pwgen cmatrix screenfetch cowsay fortune random_shuffle rsync wget tree netcat openssh gosu nmap jq reattach-to-user vbindiff fzf neofetch speedtest_cli imagemagick ghostscript the_silver_searcher htop curl wkhtmltopdf pandoc coreutils gnupg pinentry socat pigz lua stunnel mtr unrar rclone dropbox google_drive onedrive nextcloud pyenv virtualbox parallels vagrant ansible zsh iterm2 visual-studio-code nodejs yarn minikube docker redis packer heroku awscli browserstack newrelic gitlab-runner telegram-desktop sourcetree hub flow bwctl wireshark mitmproxy burpsuite axel byobu kitty lazygit ngrok surge bind shellcheck redshift dnsmasq transmission openvpn mongodb atlassian confluence spotify zoom google-chrome google-chrome-canary firefox skype forticlient putty teamviewer obs studio codespaces discord whatsapp signal skypeforbusiness slack steam potplayer handbrake qbittorrent transmission btsync bittorrent sync transmission retroarch vlc mediatomb deluge pihole nextcloud piwigo owncloud roundcube thunderbird keepass airmail diaspora discourse groupwise seafile roundcube roundcubenextcloud syncthing zimbra kopano ocaml gtk+ gtk2 mono monodevelop monotouch monomac openjdk java jenv rebar3 elixir elixir_ls exa fish shell helix postman restic rclone rclonebrowser rclonewebdav rcloneonedrive rclonedropbox rclonegoogledrive rclonepcloud rclonebox rclonemediafire rclonegithubonedrive rclonekopyrkopf rclonetelegramme cloudfoundry stack smashing pumpkins osquery packer buildkite circleci trello salesforce saml2aws okta keybase gitter mattermost signalwire zoomus osu! steampipe greppinger brew bundle dump tap bundle outdated gem cleanup xquartz gnuplot graphviz imagemagick ghostscript poppler pango cairo freetype fontconfig libpng libjpeg libtiff littlecms librsvg libheif libraw jpegoptim optipng pngquant webp webpcss nghttp2 mongodb mongodb-community mongodb-tools mongodb-devel mongodb-shell mongodb-nosqlbooster mongodb-studio mongodb-fork mongodb-forks mongodb-forks mongodb-forks mongodbatlas composer composer-cli composer-global requirepass homebrew caskroom/cask homebrew/cask homebrew/cask tap caskroom/fonts caskroom/versions caskroom/nerds fontconfig gnupg pinentry socat pigz lua stunnel mtr unrar rclone dropbox google_drive onedrive nextcloud pyenv virtualbox parallels vagrant ansible zsh iterm2 visual-studio code nodejs yarn minikube docker redis packer heroku awscli browserstack newrelic gitlab-runner telegram desktop sourcetree hub flow bwctl wireshark mitmproxy burpsuite axel byobu kitty lazygit ngrok surge bind shellcheck redshift dnsmasq transmission openvpn mongodb atlassian confluence spotify zoom googlechrome googlechromecanary firefox skype forticlient putty teamviewer obs studio codespaces discord whatsapp signal skypeforbusiness slack steam potplayer handbrake qbittorrent transmission btsync bittorrent sync transmission retroarch vlc mediatomb deluge pihole nextcloud piwigo owncloud roundcube thunderbird keepass airmail diaspora discourse groupwise seafile roundcube roundcubenextcloud syncthing zimbra kopano ocaml gtk+ gtk2 mono monodevelop monotouch monomac openjdk java jenv rebar3 elixir elixir_ls exa fish shell helix postman restic rclone rclonebrowser rclonewebdav rcloneonedrive rclonedropbox rclonegoogledrive rclonepcloud rclonebox rclonemediafire rclonegithubonedrive rclonekopyrkopf rclonetelegramme cloudfoundry stack smashing pumpkins osquery packer buildkite circleci trello salesforce saml2aws okta keybase gitter mattermost signalwire zoomus osu! steampipe greppinger brew bundle dump tap bundle outdated gem cleanup xquartz gnuplot graphviz imagemagick ghostscript poppler pango cairo freetype fontconfig libpng libjpeg libtiff littlecms librsvg libheif libraw jpegoptim optipng pngquant webp webpcss nghttp2 mongodb mongodbcommunity mongodbmongodbtools mongodbdevel mongodbshell mongodbnosql