MacOS 通过Shell 脚本一步到位配置nginx+Php环境

在实际开发中有时需要借助服务端验证一些功能或测试一些加密等算法,本文主要介绍了在Mac电脑上通过脚本一步到位配置nginx+php环境,实测非常给力。脚本主要以AI工具生成,分享给有需要的开发同学,具体如下:

bash 复制代码
#!/bin/bash

# 更新 Homebrew 并清理缓存
echo "🔄 正在更新 Homebrew..."
brew update && brew cleanup

# 安装必要工具链
echo "🔧 安装基础开发套件..."
brew install nginx php@8.5

# 启动服务后台守护进程
echo "🚀 初始化 Nginx 与 PHP-FPM 服务..."
sudo brew services start nginx
sudo brew services start php@8.5

# 获取当前用户组权限信息
USER=$(whoami)
GROUP=$(id -gn)

# 创建默认网站根目录
WEBROOT="/usr/local/var/www"
mkdir -p $WEBROOT

# 设置系统级访问控制策略(适配 macOS 新版安全机制)
echo "🔐 授权 Nginx 访问用户目录..."
sudo chown -R "$USER":$GROUP /usr/local/var/run/
sudo chmod -R 755 $WEBROOT

# 自动备份原始配置文件
NGINX_CONF="/usr/local/etc/nginx/nginx.conf"
if [ ! -f "$NGINX_CONF.bak" ]; then
    cp "$NGINX_CONF" "$NGINX_CONF.bak"
fi

# 写入全新高性能配置模板
cat > "$NGINX_CONF" <<EOL
worker_processes auto;
events {
    worker_connections 1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile      on;
    keepalive_timeout 65;

    # PHP-FPM 连接池设定
    upstream php-fpm {
        server 127.0.0.1:9000;
    }

    server {
        listen 80;
        root $WEBROOT;
        index index.php index.html;
        
        location ~ \\.php\$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
            include fastcgi_params;
        }
        
        location / {
            try_files \$uri \$uri/ =404;
        }   
    }
}
EOL

# 输出测试首页内容至 webroot/index.php
cat > "$WEBROOT/index.php" <<EOL
<?php
echo "<h1 style='text-align:center;margin-top:50px;'>🎉 Nginx + PHP 8.5 成功运行!</h1>";
echo "<div style='font-family:sans-serif;text-align:center;color:#555;'>";
echo "<p>服务器时间:" . date('Y-m-d H:i:s') . "</p>";
echo "<pre>" . shell_exec('uname -a') . "</pre>";
phpinfo();
?>
EOL

# 刷新并重启关键服务确保生效
echo "🔁 应用新配置并重载服务..."
sudo brew services restart nginx
sudo brew services restart php@8.5

# 打印最终状态摘要
echo "
✅ 环境已就绪!

🌐 默认站点地址:
   http://localhost/

📂 文档根目录位置:
   $WEBROOT

⚙️  配置参考路径:
   $NGINX_CONF
   
💡 查看实时日志指令:
   tail -f /usr/local/var/log/nginx/*.log
"

执行:

bash 复制代码
#nginx+php8.5一站配置.sh 脚本名,已实际名称为准
bash nginx+php8.5一站配置.sh
相关推荐
catchadmin6 小时前
NativePHP v4 让 Blade 构建原生 iOS 与 Android 界面
android·ios·ai·php
Linux-lucky7 小时前
28-Linux学习之旅之Maven与Nexus制品库
linux·运维·学习·nginx·tomcat·maven
Sagittarius_A*8 小时前
Burst Lab | PHP 审计 13|反序列化(三):POP 链构造与 Gadget Chain 分析
开发语言·web安全·php·代码审计·反序列化
蓝速科技8 小时前
蓝速科技丨新旧楼宇混杂场景下会议室预约门牌屏一体化改造方案
开发语言·科技·php
钱栈up11 小时前
Mac 开发机一键发版不用切环境:我这样改造了团队的后端部署脚本Maven编译卡住20分钟?我靠两步定位到2处隐蔽编译错误
开发语言·python·macos
Sagittarius_A*11 小时前
Burst Lab | PHP 审计 14|反序列化(四):字符串逃逸与绕过技巧
开发语言·安全·php·web·反序列化
Xxtaoaooo11 小时前
600 元 HP 小主机装 macOS:从启动盘、BIOS 到核显加速完整教程
macos·黑苹果·cpolar·mac mini·实战教程
小波波啊12 小时前
nginx 转发超时故障排查实录
运维·nginx
筱璦13 小时前
PHP+ VUE3机构级股票分仓管理交易系统源码可出
开发语言·php·vue3·量化·股票分仓
那年窗外下的雪.13 小时前
AIDC 学习日志|第 14 天|MAC Flapping 与 EVPN 多归属分层排障
网络·git·学习·macos·github·spine