网站首页 > 教程分享 正文
macOS系统下配置PHP开发环境有许多方式,有的人使用集成开发环境如XAMPP、MAMP等,也有的人使用虚拟机(如Virtualbox)搭建LNMP/LAMP环境。
其实macOS系统自带Apache和PHP软件包,只是默认情况下没开启,只需配置开启即可。
系统软件:
- macOS Catalina 10.15.4
- Apache 2.4.41
- PHP 7.3.11
配置Apache+PHP
第一步、查看软件包版本号和安装目录
第二步、启动Apache
执行命令:sudo apachectl start
第三步、配置Apache支持PHP模块
执行命令:sudo vi /private/etc/apache2/httpd.conf
找到行“#LoadModule php7_module libexec/apache2/libphp7.so”将字符“#”删除。
找到行“User _www”改成“User 你的用户名“。
在文件尾部添加以下内容:Include /private/etc/apache2/extra/sites.conf。
第四步、创建站点配置文件
执行命令:sudo vi /private/etc/apache2/extra/sites.conf 输入以下内容:
第五步、重启Apache
执行命令: sudo apachectl restart
第六步、测试PHP环境是否正常。
配置PHP扩展编译环境
macOS系统PHP默认安装一些扩展(查看命令:php -m),但是有些时候我们需要额外安装一些扩展,则需要以源码形式编译。
第一步、关闭macOS Rootless机制
macOS从10.11起默认启动了Rootless机制,也就是不允许用户往/usr、/system、/sbin这3个目录写入操作。
重启macOS,长按Command(Window)键 + 字母R 进入恢复模式
进入恢复模式后,点击顶部实用工具选择"终端"
执行命令:csrutil disable && reboot
第二步、创建Include软链接
执行命令:sudo mount -uw /
执行命令:sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include /usr/include
第三步、安装autoconf
执行命令:brew install autoconf
编译安装PECL扩展
第一步、下载扩展压缩包
登录网站pecl.php.net搜索并下载需要的PECL类库,选择".tgz"版本
第二步、解压压缩包
执行命令:tar xvf XXXX.tgz
第三步、编译扩展
执行命令:cd 解压后目录 && phpize && ./configure && make && sudo make install
第四步、配置启用PHP扩展
执行命令:sudo vi /etc/php.ini输入以下内容
extension = "扩展文件完整路径.so"
第五步、重启Apache
执行命令: sudo apachectl restart
猜你喜欢
- 2024-10-27 安装Apache-php项目运行的lamp环境搭建
- 2024-10-27 我的HTML+php学习第十八天——Apache,域名配置下
- 2024-10-27 CentOS7编译安装PHP7的详细教程(图文)
- 2024-10-27 Mac系统下用Apache和PHP安装Xdebug详细流程
- 2024-10-27 CentOS7 - 安装Apache HTTP Server和PHP
- 2024-10-27 Windows安装PHP8+Apache+JIT(即时编译)
- 2024-10-27 CentOS7如何安装最新版PHP7?Nginx或Apache该如何配置?
- 2024-10-27 phpstudy中apache无法启动怎么解决?
- 2024-10-27 使用Dockerfile基于7.4-apache-buster镜像搭建php7.4微服务环境
- 2024-10-27 windows下的Apache+php+pdo+SQL server环境配置
你 发表评论:
欢迎- 最近发表
-
- 有了这份900多页的Android面试指南,你离大厂Offer还远吗?
- K2 Blackpearl 流程平台总体功能介绍:常规流程功能
- 零基础安卓开发起步(一)(安卓开发入门视频)
- 教程:让你的安卓像Windows一样实现程序窗口化运行
- Android事件总线还能怎么玩?(事件总线有什么好处)
- Android 面试被问“谈谈架构”,到底要怎样回答才好?
- Android开发工具Parcel和Serialize
- Android 中Notification的运用(notification widget安卓)
- Android退出所有Activity最优雅的方式
- MT管理器-简单实战-去除启动页(mt管理器怎么去除软件弹窗)
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)