在m1/m2 mac上成功运行thinkphp需三者对齐:php扩展(mbstring/openssl/pdo_mysql/fileinfo)、web服务器documentroot指向public目录、storage/runtime目录由_web进程用户(如_www)拥有读写权;缺一则报class 'think\app' not found、404或permission denied。

在M1/M2芯片Mac上成功运行ThinkPHP,关键不是装完就完事,而是让PHP扩展、Web服务入口路径、storage/runtime目录权限三者全部对齐——少一个,就会报Class 'think\App' not found、404路由错误或mkdir(): Permission denied。
确认PHP环境是否真正可用
先执行which php:输出必须是/opt/homebrew/bin/php,否则说明你正在用系统残留的x86_64 PHP或Rosetta转译版本,后续Composer和ThinkPHP必崩。
再执行php -m | grep -E '^(mbstring|openssl|pdo_mysql|fileinfo)$':四者缺一不可。尤其mbstring缺失会导致Call to undefined function mb_strlen(),ThinkPHP连autoload都进不去。
如果php -v报错、版本低于7.2、或which php指向/usr/bin/php,别修,直接重装:brew install php。Homebrew会自动安装ARM64原生PHP 8.3+,并写入正确路径。
装完若php -v仍无效,检查~/.zshrc是否含export PATH="/opt/homebrew/bin:$PATH",然后运行source ~/.zshrc。
Web服务器配置:DocumentRoot必须指向public
Apache用户请修改虚拟主机配置(如/opt/homebrew/etc/httpd/extra/httpd-vhosts.conf):
把DocumentRoot "/path/to/your/project"改为DocumentRoot "/path/to/your/project/public";
对应<directory></directory>块内,必须有AllowOverride All和Require all granted;
【切勿把整个项目拖进/Library/WebServer/Documents/】——这是90%“首页能打开、点链接全404”的根源,因为ThinkPHP强制所有请求经public/index.php入口,而默认DocumentRoot暴露的是app/目录结构。
Nginx用户请在server块中设root /path/to/your/project/public;,并确保location / { try_files $uri $uri/ /index.php?$query_string; }已启用。
storage与runtime目录权限修复
第一步:查Web进程用户。执行ps aux | grep -E '(httpd|nginx)' | head -1,看第三列:
Apache通常为_www,Nginx多为www或nobody;
macOS 微信消息自动化工具。通过 GUI 自动化实现:发送消息给指定联系人、读取聊天内容、监控新消息。适用于需要自动化微信操作的场景,如定时发送、批量回复、消息备份等。依赖 peekaboo 进行屏幕截图和 UI 交互。仅支持 macOS。开源地址:https://github.com/chairmanmia...
第二步:修正权限。假设用Apache且项目在~/Sites/thinkphp:
sudo chown -R _www:staff ~/Sites/thinkphp/storage ~/Sites/thinkphp/runtime;
第三步:验证可写性。进入项目根目录,执行sudo -u _www php -r "file_put_contents('runtime/test.txt', 'ok'); echo file_get_contents('runtime/test.txt');",输出ok即成功;
【禁用chmod 777】——Mac上对目录设777反而触发SIP保护,导致Web进程拒绝写入;必须用chown绑定到实际运行Web服务的用户。
创建ThinkPHP项目并验证
方法一:用Composer创建(推荐)
确保已按前述步骤装好Homebrew版Composer(非brew install composer,而是curl -sS https://getcomposer.org/installer | php && sudo mv composer.phar /opt/homebrew/bin/composer && sudo chmod +x /opt/homebrew/bin/composer);
执行composer create-project topthink/think myapp,等待完成;
将Web服务器DocumentRoot指向myapp/public,重启服务(sudo apachectl restart 或 brew services restart nginx);
浏览器访问http://localhost,看到ThinkPHP欢迎页即成功。
方法二:快速测试(不依赖Web服务)
进入项目根目录,执行php think run;
访问http://127.0.0.1:8000,可绕过Apache/Nginx配置直接验证框架是否跑通。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










