在macOS中配置apache+php+mysql

由 月琳 发布
  | 1913 次浏览

前言:

本文为自己记录所用,不一定会与你一致。
因为最近又重装了系统,而且刚好需要用到本地调试环境,于是就做了一下记录,方便以后又重装系统。

提示:需要homebrew,官网:https://brew.sh/index_zh-cn,没安装的可以直接使用命令安装:

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

一、 安装mysql

  1. 使用brew安装mysql

    $ brew install mysql

  2. 启动mysql服务

    $ sudo brew services start mysql

二、安装PHP

(如果不需要各种拓展的话,可以直接使用系统自带的php;编译也可,不过编译拓展库简直折磨人)

  1. 使用brew安装php

    先查找php的包名,命令:$ brew search php,我这里目前是“php@7.3”

    安装:$ brew install php@7.3

  2. 切换首选的PHP

    (本步骤实际上在brew安装php之后,终端有给提示,建议去你的终端复制!)

    由于macOS系统自带了php,我们需要将默认php切换到刚刚安装的php:

      # 注意:“php@7.3”是我当前安装的版本,“.zshrc”是因为我用的是zsh,请如实填写
      echo 'export PATH="/usr/local/opt/php@7.3/bin:$PATH"' >> ~/.zshrc
      echo 'export PATH="/usr/local/opt/php@7.3/sbin:$PATH"' >> ~/.zshrc
      export LDFLAGS="-L/usr/local/opt/php@7.3/lib"
      export CPPFLAGS="-I/usr/local/opt/php@7.3/include"

    编辑apache的httpd.conf配置文件,路径是/etc/apache2/httpd.conf,在头部写入以下内容并保存:

    LoadModule php7_module /usr/local/opt/php@7.3/lib/httpd/modules/libphp7.so
    # 注意:“php@7.3”是我当前安装的版本
    <FilesMatch \.php$>
        SetHandler application/x-httpd-php
    </FilesMatch>
  3. 启动php服务

    brew services start php@7.3

  4. 安装后的文件路径(仅留作记录)

    php.ini在: /usr/local/etc/php/7.3/

三、启用apache

  1. 由于macOS系统自带了apache,默认是关闭的,我们直接启动它即可使用,终端命令:
$ sudo apachectl start
  1. (可选)修改apache的运行路径根目录:

$ sudo vim /etc/apache2/httpd.conf

找到以下类似代码,将xxx修改为你想改的路径

DocumentRoot "xxx"
<Directory "xxx">

测试

自行写个php连接数据库的demo,如果连接失败遇到报错:“The server requested authentication method unknown to the client”,则终端连接mysql后,输入以下命令,

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxYourPassword';
# ‘xxxYourPassword’中填写你即将更改的mysql新密码,

这个问题参考文章:https://blog.csdn.net/xiaoxinshuaiga/article/details/82798919



使用系统自带的php方式:

配置php.ini

  1. 生成一份php.ini,终端执行命令:

sudo cp /etc/php.ini.default /etc/php.ini

  1. 编辑php.ini,取消掉所需模块的注释:

sudo vim /etc/php.ini

例如;extension=pdo_mysql,取消掉注释以启用pdo_mysql模块——也就是去掉“;”号:

先make一遍源码,参考->某文章,(php.ini里的extensions路径在系统文件里的话需要解除系统只读状态)

make编译之后,单独安装pdo:

cd 到 源码/ext/pdo
$./ext/pdo/phpize
$./ext/pdo/configure --with-php-config=/usr/bin/php-config
$ make && make install

再安装pdo_mysql:

cd 到 源码/ext/pdo_mysql
$./ext/pdo_mysql/phpize
$./ext/pdo_mysql/configure --with-php-config=/usr/bin/php-config --with-pdo-mysql=/usr/local/Cellar/mysql/8.0.19/

fatal error: 'php.h' file not found,没救了,再见。用brew安装吧。


版权属于:月琳cc
本文链接:https://kerrinz.com/archives/24.html
作品采用《知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议》进行许可,转载请务必注明出处!

暂无评论

发表评论