我写了个脚本,一键部署WooCommerce独立站——但后来发现根本不需要

0 阅读4分钟

起因:一个程序员的"职业病"

帮朋友快速搭建独立站这件事,触发了我的"职业病"——看到重复性工作,就想自动化。

每次帮朋友搭 WooCommerce 站,流程都是:装 Ubuntu、装 Nginx、装 PHP、装 MySQL、装 WordPress、装 WooCommerce、配支付、配 SSL、配安全……这些步骤,对于一个程序员来说,重复做太多次就很烦。

于是某个周末,我决定写一个一键部署脚本。

脚本设计:让建站从 8 小时变成 5 分钟

#!/bin/bash
# woo-commerce-deploy.sh
# 一键部署 WooCommerce 独立站
# 目标:在干净的 Ubuntu 22.04 上,5 分钟内完成部署

set -e

# === 配置变量 ===
DOMAIN="yourdomain.com"
EMAIL="admin@yourdomain.com"
DB_NAME="woocommerce"
DB_USER="wcuser"
DB_PASS=$(openssl rand -base64 32)

echo "[1/6] 更新系统 & 安装依赖..."
apt update && apt upgrade -y
apt install -y nginx mysql-server php8.1-fpm php8.1-mysql \
  php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml \
  php8.1-zip php8.1-intl php8.1-redis redis-server \
  certbot python3-certbot-nginx

echo "[2/6] 配置 MySQL..."
mysql -e "CREATE DATABASE ${DB_NAME} CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql -e "CREATE USER '${DB_USER}'@'localhost' IDENTIFIED BY '${DB_PASS}';"
mysql -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'localhost';"
mysql -e "FLUSH PRIVILEGES;"

echo "[3/6] 下载 & 配置 WordPress..."
cd /var/www
wget -q https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
mv wordpress ${DOMAIN}
chown -R www-data:www-data ${DOMAIN}

# 配置 wp-config.php
cp ${DOMAIN}/wp-config-sample.php ${DOMAIN}/wp-config.php
sed -i "s/database_name_here/${DB_NAME}/" ${DOMAIN}/wp-config.php
sed -i "s/username_here/${DB_USER}/" ${DOMAIN}/wp-config.php
sed -i "s/password_here/${DB_PASS}/" ${DOMAIN}/wp-config.php

# 生成 Salt
curl -s https://api.wordpress.org/secret-key/1.1/salt/ > /tmp/wp-salt.txt
sed -i "/AUTH_KEY/r /tmp/wp-salt.txt" ${DOMAIN}/wp-config.php
sed -i "/AUTH_KEY/,/NONCE_SALT/d" ${DOMAIN}/wp-config.php

echo "[4/6] 配置 Nginx..."
cat > /etc/nginx/sites-available/${DOMAIN} << 'NGINXEOF'
server {
    listen 80;
    server_name ${DOMAIN} www.${DOMAIN};
    root /var/www/${DOMAIN};
    index index.php;
    
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    
    location ~ .php$ {
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    
    # 安全加固
    location = /xmlrpc.php { deny all; return 403; }
    location ~ /. { deny all; }
}
NGINXEOF

ln -s /etc/nginx/sites-available/${DOMAIN} /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

echo "[5/6] 配置 SSL..."
certbot --nginx -d ${DOMAIN} -d www.${DOMAIN} --non-interactive --agree-tos -m ${EMAIL}

echo "[6/6] 安装 WooCommerce 插件..."
cd /var/www/${DOMAIN}
wp plugin install woocommerce --activate --allow-root
wp plugin install wordfence --activate --allow-root
wp plugin install rank-math --activate --allow-root
wp plugin install updraftplus --activate --allow-root

echo "=== 部署完成 ==="
echo "域名: https://${DOMAIN}"
echo "数据库: ${DB_NAME}"
echo "数据库用户: ${DB_USER}"
echo "数据库密码: ${DB_PASS}"
echo "请保存以上信息,数据库密码不会再次显示。"

这个脚本确实能跑。在干净的 Ubuntu 22.04 上,5 分钟就能把一个 WooCommerce 站搭起来,SSL 配置好了,安全基础加固了,常用插件也装好了。

但问题是——建站只是第一步。

脚本的局限性:自动化不了的事

写完脚本之后,我帮朋友用了一次。然后发现,脚本只能解决 30% 的问题:

# 脚本能做的事(30%)
✅ 安装服务器环境
✅ 配置 Nginx + PHP + MySQL
✅ 安装 WordPress + WooCommerce
✅ 配置 SSL
✅ 安装基础插件
✅ 基础安全加固

# 脚本做不了的事(70%)
❌ 支付网关对接——PayPal 和 Stripe 需要手动配置 API 密钥
❌ 主题定制——每个卖家的需求不一样
❌ 物流配置——不同国家运费规则不同
❌ 税费配置——欧盟 VAT、美国各州税率不同
❌ 多语言配置——翻译内容需要人工
❌ 产品上传——图片、描述、SKU 都需要人工
❌ 性能优化——每个站的情况不同,需要针对性调整
❌ SEO 配置——关键词、描述、Schema 都需要人工

换句话说,脚本能自动化的是"体力活",但真正花时间的"脑力活"——支付对接、样式定制、功能配置——脚本做不了。

反思:为什么我后来放弃了脚本,直接找外包建站?

帮朋友搭了几个站之后,我得出一个结论:对于独立站建站来说,自动化脚本的价值有限。

原因很简单:脚本只能帮你省掉 30% 的工作,剩下 70% 还是得手动做。而这些手动做的工作——支付对接、主题定制、多语言配置——恰恰是最容易出问题、最花时间的部分。脚本省掉的 30%,反而是最简单的部分。

后来我帮朋友建站,就不再自己写脚本了。直接找外包建站——比如星火跨境XINGHUOS,建站几百块,源码加数据库直接交付,两天出站。几百块,他们帮你搞定 100% 的工作,包括脚本能做的和脚本做不了的。你只需要准备产品资料,然后照着部署文档花一个小时部署上线。

几百块,换我一个周末不用写脚本、不用 debug、不用半夜接电话帮朋友修网站——这个交易,我觉得很值。

结论:自动化很好,但要知道边界

作为一个程序员,我热爱自动化。但这次经历让我学到:自动化要解决的是"高频重复"的问题,而不是"低频但复杂"的问题。

独立站建站属于后者——每个站的需求不同,情况不同,一次建好之后可能几年都不会重来。这种场景下,自动化脚本的 ROI 很低。不如直接找外包建站,几百块搞定,把精力留给更有价值的事情。

如果你需要运营支持,星火跨境XINGHUOS的出海会员,几十块一个月,有课程有社群,不包含建站,但覆盖了广告投放、SEO、内容运营等方向。如果你需要全包,蓝海会员从建站到社媒运营一站式搞定。