brew切换php版本不生效的改进方案

mac环境随时随地方便的切换php版本,前提如下: Mac 环境, zsh为默认shell 安装了brew 通过brew 安装了多个版本的php 基本方式 举例,从php.7.4切换到php8.1 brew unlink php7.4 && brew link --overwrite --force php@8.1 到这一步,如果运行 php -v ,那么版本还是7.4 ,因为还需手动更新.zshrc文件中的PATH路径,以确保使用正确的PHP版本。 vim ~/.zshrc #注释掉下面两行 export PATH="/usr/local/opt/php@7.4/bin:$PATH" export PATH="/usr/local/opt/php@7.4/sbin:$PATH" #手动添加如下两行 export PATH="/usr/local/opt/php@8.1/bin:$PATH" export PATH="/usr/local/opt/php@8.1/sbin:$PATH" #保存后运行下面命令之使生效 source ~/.zshrc 改进方式 将上面提到的命令写成bash脚本,一次运行。 #!/bin/zsh if [ "$1" = "7.4" ]; then brew unlink php@8.1 && brew link --overwrite --force php@7.4 sed -i '' '/php@[0-9\.]*\//d' ~/.zshrc echo 'export PATH="/usr/local/opt/php@7.4/bin:$PATH"' >> ~/.zshrc echo 'export PATH="/usr/local/opt/php@7.4/sbin:$PATH"' >> ~/.zshrc elif [ "$1" = "8.1" ]; then brew unlink php@7.4 && brew link --overwrite --force php@8.1 sed -i '' '/php@[0-9\.]*\//d' ~/.zshrc echo 'export PATH="/usr/local/opt/php@8.1/bin:$PATH"' >> ~/.zshrc echo 'export PATH="/usr/local/opt/php@8.1/sbin:$PATH"' >> ~/.zshrc else echo "Invalid argument. Please enter either '7.4' or '8.1'." exit 1 fi source ~/.zshrc 文件需要保存为.zsh后缀,首行声明 #!/bin/zsh , 否则会报错:Oh My Zsh can’t be loaded from: sh. You need to run zsh instead. 因为脚本在Bash中运行,而不是在zsh中运行。解决办法是将脚本转换为zsh脚本,将脚本的文件扩展名从.sh更改为.zsh,然后在脚本的开头添加以下行:#!/usr/bin/env zsh; 或者脚本的开头添加以下行:#!/bin/zsh ...

五月 23, 2023

以root用户运行php-fpm

在开发环境中,为了避免文件权限带来的问题,可以将php-fpm的运行用户设为root. 但在默认情况下,直接修改php的运行用户为root,重启php-fpm进程后会报错 ERROR: [pool www] please specify user and group other than root [26-Jun-2014 00:39:07] ERROR: FPM initialization failed 通过查看php-fpm的文档得知,如果要以root用户运行,需要加上特定参数 # php-fpm --help ... -R, --allow-to-run-as-root Allow pool to run as root (disabled by default) 如何添加这一参数: 找到 php-fpm.service , 可以使用命令 find / -name php-fpm.service 添加参数 ExecStart=/usr/sbin/php-fpm --nodaemonize -R 重启php-fpm. systemctl restart php-fpm 注意,切勿在正式环境中使用root来运行php-fpm Warning: php-fpm.service changed on disk. Run ‘systemctl daemon-reload’ to reload units. 修改后如有这个警告,执行即可。

五月 6, 2023

laravel 和 lumen 两个框架的差异是什么

Laravel 和 Lumen 都是由 Taylor Otwell 开发的 PHP Web 开发框架,它们有很多相似之处,但也有一些明显的差异。 以下是 Laravel 和 Lumen 之间的一些主要差异: 框架大小:Lumen 框架比 Laravel 框架更轻量级。Lumen 框架具有更小的内存占用和更快的启动时间,这使得它成为构建小型微服务和 API 的理想选择。 功能:Lumen 框架的功能比 Laravel 框架更加简洁,去除了一些不必要的组件,比如 Session 和 Cookie 管理等。Lumen 框架的主要重点是快速构建 Web 应用程序和 RESTful API。 性能:由于 Lumen 框架比 Laravel 框架更轻量级,因此它在处理大量请求时表现更佳。Lumen 框架也支持更多的缓存驱动器和队列驱动器,这使得它在高并发环境中表现更加出色。 使用场景:Lumen 框架适用于构建小型 Web 应用程序和 RESTful API,而 Laravel 框架则适用于构建大型 Web 应用程序和企业级应用程序。 总之,Lumen 框架是 Laravel 框架的轻量级版本,它们在设计和实现上都有很多相似之处,但是在应用场景和功能方面有一些显著的不同。

三月 31, 2023