在macos系统中, 自带已经安装了php, 根据不同的macos版本php的版本号可能不同, 我们可以通过 which php 命令来查看mac自带的默认php安装路径, 不过注意这个只是php的执行文件路径.
系统自带php文件列表
一下就是macos默认安装的php文件列表.
macos 10.15内置PHP文件列表
配置文件
/private/etc/php-fpm.conf.default
/private/etc/php-fpm.d
/private/etc/php.ini.default
可执行文件路径
/usr/bin/php
/usr/bin/php-config
/usr/bin/phpize/usr/sbin/php-fpm
内置PHP的源码和扩展目录
/usr/lib/php/build
/usr/lib/php/extensions资源文件
/usr/share/php
/usr/share/man/man1/php-config.1
/usr/share/man/man1/php.1
/usr/share/man/man1/phpize.1
/usr/share/man/man8/php-fpm.8
macos系统自带php卸载方法
如果需要删除macos系统中自带的php,直接删除上面的这些文件或者目录即可. 删除方法 sudo rm -rf 文件. 或者直接使用下面的shell脚本, 保存下面的代码到 uninstall_php.sh 然后执行 sh uninstall_php.sh 即可
#!/bin/bash
#macos 系统自带php卸载脚本
#配置文件
sudo rm -rf /private/etc/php-fpm.conf.default
sudo rm -rf /private/etc/php-fpm.d
sudo rm -rf /private/etc/php.ini.default
#可执行文件路径
sudo rm -rf /usr/bin/php
sudo rm -rf /usr/bin/php-config
sudo rm -rf /usr/bin/phpize
sudo rm -rf /usr/sbin/php-fpm
#内置PHP的源码和扩展目录
sudo rm -rf /usr/lib/php/build
sudo rm -rf /usr/lib/php/extensions
#资源文件
sudo rm -rf /usr/share/php
sudo rm -rf /usr/share/man/man1/php-config.1
sudo rm -rf /usr/share/man/man1/php.1
sudo rm -rf /usr/share/man/man1/phpize.1
sudo rm -rf /usr/share/man/man8/php-fpm.8
echo "系统自带PHP卸载成功!"
Operation not permitted 异常解决方法
如果出现 Operation not permitted ,如下图
出现这个的原因是在acos10.11之后mac默认启用了Rootless机制, 这个是mac系统的内核保护机制, 既对于 /system、/sbin、/usr 三个目录下的文件,即使我们使用sudo 也不允许操作.
解决方法就是关闭mac, 然后 在按电源键开机的同时按住 Command+R,进入恢复模式,在菜单栏中打开Terminal 使用命令 csrutil disable 来关闭Rootless机制
Read-only file system 解决方法
如果在关闭Rootless机制重启后操作/system、/sbin、/usr 三个目录下的文件任然提示 Read-only file system , 则需要再执行一个命令 sudo mount -uw / 然后在执行删除或者改名操作即可, 如:
系统自带php批量重命名shell脚本
保存下面的代码到 rename_php.sh 然后执行 sh rename_php.sh 即可将系统自带的php 改名为 php_bk , 这样我们就可以使用 port 或者brew 来安装和管理我们想要的PHP版本了. 当然,如果希望使用系统自带的php版本, 直接执行 php_bk 既可以
#内置php可执行文件 改名_bk 脚本
sudo mv /usr/bin/php /usr/bin/php_bk
sudo mv /usr/bin/php-config /usr/bin/php-config_bk
sudo mv /usr/bin/phpize /usr/bin/phpize_bk
sudo mv /usr/sbin/php-fpm /usr/sbin/php-fpm_bk