在 macOS Catalina 10.15 搭建 PHP 开发环境包括PHP的redis扩展

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
简介: 在 macOS Catalina 10.15 搭建 PHP 开发环境包括PHP的redis扩展

本文已参与「掘力星计划」,赢取创作大礼包,挑战创作激励金。

2019 年 10 月 8 日,苹果公司正式发布了新一代 macOS,版本为 Catalina (11.15)。

macOS Catalina 预装了 Ruby (2.6.3)、PHP (7.3.9)、Perl (5.18.4)、Python (2.7.16) 等常用的脚本语言,以及 Apache (2.4.41) Web 服务器。

需要注意的是,在新版本中,zsh 已取代 bash 成为新版操作系统中的默认 shell。需要个性化配置 zsh 的同学,可以参考少数派的这篇文章:让你的 Mac 提前用上 macOS Catalina 的 Shell——Oh My Zsh 配置指南。本文不再复述。

以下是我的 MNMP(macOS-nginx-MySQL-PHP)的安装过程。

本教程用使用了三处代替:

  • 使用 iTerm2 代替了系统自带的命令行终端
  • 使用 nginx 代替了系统自带的 Apache
  • 使用 自行安装的 PHP7.4 代替了系统自带的 PHP7.3.9

安装 iTerm2

推荐 iTerm2,iTerm2 功能强大,可以替代系统默认的命令行终端。下载解压后,将 iTerm2 直接拖入 "应用程序" 目录。

安装 PhpStorm

推荐 JetBrains PhpStorm 作为集成开发工具。

安装 Xcode

Xcode 是苹果出品的包含一系列工具及库的开发套件。通过 AppStore 安装最新版本的 Xcode (9.0)。我们一般不会用 Xcode 来开发后端项目。但这一步也是必须的,因为 Xcode 会附带安装一些如 Git 等必要的软件。

安装 Command Line Tools for Xcode

这一步会帮你安装许多常见的基于 Unix 的工具。Xcode 命令行工具作为 Xcode 的一部分,包含了 GCC 编译器。在命令行中执行以下命令即可安装:

xcode-select --install # 安装 Xcode Command Line Tools

当 Xcode 和 Xcode Command Line Tools 安装完成后,你需要启动 Xcode,并点击同意接受许可协议,然后关闭 Xcode 就可以了。这一步骤也是必须的,否则 Xcode 包含的一系列开发工具都将不可用。

安装 Homebrew

Homebrew 作为 macOS 不可或缺的套件管理器,用来安装、升级以及卸载常用的软件。在命令行中执行以下命令即可安装:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" # 使用系统自带的 ruby 安装 Homebrew

安装后可以修改 Homebrew 源,国外源一直不是很给力,这里我们将 Homebrew 的 git 远程仓库改为中国科学技术大学开源软件镜像

cd "$(brew --repo)"
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git # 替换brew.git:
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git # 替换homebrew-core.git:
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.zshrc # 替换Homebrew Bottles源:
source ~/.zshrc

安装 PHP 7.4

安装 PHP7.4.* 来代替系统自带的 PHP7.3:

brew install php

启动 php 服务:

brew services start php

替换系统自带的 php-fpm:

echo 'export PATH="/usr/local/opt/php/sbin:$PATH"' >> ~/.zshrc
source ~/.zshrc

查看版本信息:

php -v
php-fpm -v

安装 MySQL

推荐 MySQL 8.0 作为数据库服务器:

brew install mysql

当然,你也可以选择安装 PostgreSQL 或者 MariaDB。

安装完成后,启动 MySQL:

brew services start mysql

进入 MySQL 服务器:

mysql -u root -p

设置 root 密码、安全等级等参数:

mysql_secure_installation

按照步骤提示一步一步来即可。

安装 Redis

安装 redis 服务器:

brew install redis

安装完成后,启动 Redis:

brew services start redis

使用 redis 客户端:

redis-cli

安装 nginx

这里我们选择 nginx 代替系统自带的 Apache,作为我们的 Web 服务器:

brew install nginx

启动 nginx 服务:

brew services start nginx

查看已安装的 brew services:

brew services list

配置 nginx.conf 文件

通过以下命令可以查看 nginx.conf 文件的位置:

nginx -h

输出:

nginx version: nginx/1.17.3
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]
Options:
-?,-h : this help
-v : show version and exit
-V : show version and configure options then exit
-t : test configuration and exit
-T : test configuration, dump it and exit
-q : suppress non-error messages during configuration testing
-s signal : send signal to a master process: stop, quit, reopen, reload
-p prefix : set prefix path (default: /usr/local/Cellar/nginx/1.17.3_1/)
-c filename : set configuration file (default: /usr/local/etc/nginx/nginx.conf)
-g directives : set global directives out of configuration file

打开配置文件:

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

在文件末尾可以看到:

include servers/*;

它将同目录下的 servers 目录里的文件都包含了进来,由此,我们可以在 servers 文件里创建开发项目的配置信息:

cd /usr/local/etc/nginx/servers/
vi test.conf

将以下配置信息,写入 test.conf 文件中:

server {
    listen 8099;
    server_name localhost;
    root /home/www/php-project;
    rewrite . /index.php;
    location / {
    index index.php index.html index.htm;
    autoindex on;
    }
    #proxy the php scripts to php-fpm
    location ~ \.php$ {
        include /usr/local/etc/nginx/fastcgi.conf;
        fastcgi_intercept_errors on;
        fastcgi_pass 127.0.0.1:9000;
    }
}

在上述的 /home/www/php-project 的目录下,我们创建一个 index.php 文件:

vim /home/www/php-project/index.php

写入内容:

<?php
    phpinfo();

重启 nginx:

brew services restart nginx

打开浏览器,访问 http://localhost:8099,即可访问到关于 PHP 配置的信息。

安装 Composer

Composer 是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。

安装并替换镜像:

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ # 改为阿里云的国内源

安装 PHP 扩展

以 php-redis 扩展为例,有下载源码包来进行安装或者 pecl install 安装:

wget https://pecl.php.net/get/redis-5.1.0.tgz # 下载源码包
tar -zxvf redis-5.1.0.tgz # 解压
cd redis-5.1.0 # 进入目录
phpize # 生成编译配置
./configure # 编译配置检测
make # 编译
make install # 安装

扩展安装完成后,我们还需最后一步,修改 php.ini 文件,并重启 PHP 服务:

vi /usr/local/etc/php/7.4/php.ini # 追加 extension=redis.so
brew services restart php # 重启 php 服务
php -m |grep redis # 查看是否安装成功

或者使用 pecl 安装:

pecl install redis

详细步骤可参考官方文档:phpredis install


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
22天前
|
IDE PHP 开发工具
【PHP开发专栏】Xdebug在PHP调试中的应用
Xdebug 是一个功能强大的 PHP 扩展,提供调试、代码分析和性能分析等功能。本文介绍了 Xdebug 的基本概念、安装配置方法及在 PHP 调试中的应用技巧,包括断点调试、堆栈跟踪、远程调试和性能分析等。通过合理使用 Xdebug,可以显著提高调试效率和代码质量。
31 3
|
22天前
|
XML JSON API
【PHP开发专栏】PHP RESTful API设计与开发
随着互联网技术的发展,前后端分离成为Web开发的主流模式。本文介绍RESTful API的基本概念、设计原则及在PHP中的实现方法。RESTful API是一种轻量级、无状态的接口设计风格,通过HTTP方法(GET、POST、PUT、DELETE)操作资源,使用JSON或XML格式传输数据。在PHP中,通过定义路由、创建控制器、处理HTTP请求和响应等步骤实现RESTful API,并强调了安全性的重要性。
25 2
|
26天前
|
存储 NoSQL PHP
PHP与Redis结合使用,提升数据存储性能
随着互联网应用的发展,PHP与Redis的结合成为提升数据存储性能的重要手段。PHP作为流行的服务器端语言,常用于网站开发;Redis作为高性能内存数据库,以其快速读写能力,有效优化数据访问速度,减轻数据库压力。两者结合通过缓存机制显著提升应用响应速度,支持高并发场景下的稳定性和可扩展性。
|
1月前
|
存储 NoSQL 关系型数据库
PHP 使用 Redis
10月更文挑战第22天
31 6
|
2月前
|
iOS开发 MacOS
MacOS环境-手写操作系统-40-进程消息通讯 和 回车键处理
MacOS环境-手写操作系统-40-进程消息通讯 和 回车键处理
23 2
|
2月前
|
Linux iOS开发 MacOS
MacOS环境-手写操作系统-35-Shell控制台
MacOS环境-手写操作系统-35-Shell控制台
20 2
|
2月前
|
Web App开发 Shell Linux
MacOS环境-手写操作系统-41-mem 第一个控制台程序
MacOS环境-手写操作系统-41-mem 第一个控制台程序
17 1
|
2月前
|
iOS开发 MacOS
MacOS环境-手写操作系统-36-Tab键切换窗口
MacOS环境-手写操作系统-36-Tab键切换窗口
52 1
|
2月前
|
存储 C语言 iOS开发
MacOS环境-手写操作系统-48-让内核从错误中恢复
MacOS环境-手写操作系统-48-让内核从错误中恢复
39 0
|
2月前
|
存储 API C语言
MacOS环境-手写操作系统-46,47-C语言开发应用程序
MacOS环境-手写操作系统-46,47-C语言开发应用程序
35 0