完整的 Magento 电子商务托管指南 2026
Magento 2 是面向严肃在线商人提供的最强大的电子商务平台。选择合适的托管提供商对您的在线商店的成功至关重要。在这份综合指南中,我们涵盖了您需要了解的有关 Magento 托管的一切内容 — 从服务器规范和 VPS 选择,到 Nginx/PHP/MySQL 配置、优化技术、安全加固和商店迁移策略。
目录
什么是 Magento 以及为什么需要特殊托管
Magento 2 是一个建立在 PHP 和 MySQL/MariaDB 上的开源电子商务平台。与 WordPress(通用网站建设者)不同,Magento 2 是专门为认真的电子商务操作设计的,具有全面的功能,包括目录管理、购物车、支付网关集成、客户管理和高级报告。
Magento 2 社区版允许您免费开始,无需任何许可证成本。但是,由于其技术复杂性和广泛的 API 功能,它需要的服务器资源显著多于 WordPress。关键区别包括:
与 WordPress 的关键区别:
Magento 2 的最低服务器要求
在选择托管提供商之前,您必须了解 Magento 2 要求的服务器规范。这些要求基于官方 Magento 文档:
最低要求(开发/测试):
推荐配置(生产 - 小到中等商店):
关键:所有 Magento 2.4.0+ 版本都需要 Elasticsearch 或 OpenSearch 用于目录搜索。MySQL 单独已不再足够。在基础设施中计划这个专用搜索服务。
共享托管是否支持 Magento 或应该使用 VPS
明确答案:不要对生产 Magento 2 商店使用共享托管。虽然技术上可以在共享托管上安装 Magento,但您会遇到严重问题:
共享托管问题:
为什么 VPS 是正确选择:虚拟专用服务器提供:
- 对服务器配置的完全控制
- 不与其他用户共享的专用资源
- 安装必要扩展和服务的能力
- 用于服务器级定制的 Root 访问权限
- 可扩展性 — 随着商店增长添加资源
使用 Linux VPS(CentOS 8、Ubuntu 22.04 LTS 或 AlmaLinux 9),配合托管控制面板(DirectAdmin、cPanel)或通过 SSH 的命令行管理。
在 Linux VPS 上分步安装 Magento 2
让我们逐步介绍在新的 Ubuntu 22.04 LTS VPS 上安装 Magento 2 社区版的过程:
步骤 1:系统准备
首先,更新系统包并安装必需的依赖项:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget vim zip unzip git
步骤 2:安装 PHP 8.2 和所需的扩展
Magento 需要许多 PHP 扩展才能正常运行:
sudo apt install -y php8.2-fpm php8.2-cli php8.2-mysql php8.2-mbstring php8.2-curl php8.2-gd php8.2-intl php8.2-zip php8.2-bcmath php8.2-xml php8.2-json
sudo systemctl start php8.2-fpm
sudo systemctl enable php8.2-fpm
步骤 3:安装 Nginx Web 服务器
Nginx 对 Magento 的性能优于 Apache:
sudo apt install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx
步骤 4:安装 MariaDB
使用 MariaDB 代替 MySQL:
sudo apt install -y mariadb-server mariadb-client
sudo mysql_secure_installation
sudo systemctl start mariadb
sudo systemctl enable mariadb
步骤 5:为 Magento 创建数据库
mysql -u root -p
CREATE DATABASE magento;
CREATE USER 'magento'@'localhost' IDENTIFIED BY 'your_secure_password';
GRANT ALL PRIVILEGES ON magento.* TO 'magento'@'localhost';
FLUSH PRIVILEGES;
EXIT;
步骤 6:安装 Composer
Magento 使用 Composer 进行依赖管理:
cd /tmp
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
步骤 7:下载并安装 Magento 2
设置网络目录并下载 Magento:
sudo mkdir -p /var/www/magento2
sudo chown -R www-data:www-data /var/www/magento2
cd /var/www/magento2
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition .
系统会提示您使用 Magento Marketplace 账户凭证进行身份验证(account.magento.com)。
步骤 8:运行设置
执行 Magento 安装程序:
cd /var/www/magento2
bin/magento setup:install \
--base-url=https://yourdomain.com \
--db-host=localhost \
--db-name=magento \
--db-user=magento \
--db-password='your_secure_password' \
--admin-firstname=Admin \
--admin-lastname=User \
[email protected] \
--admin-user=admin \
--admin-password='YourSecureAdminPassword' \
--language=en_US \
--currency=USD \
--timezone=America/Los_Angeles
步骤 9:设置目录权限
cd /var/www/magento2
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
find ./var -type d -exec chmod 777 {} \;
find ./pub/media -type d -exec chmod 777 {} \;
您的 Magento 安装现已准备就绪。
为 Magento 配置 Nginx + PHP-FPM + MariaDB
正确配置 Nginx、PHP-FPM 和 MariaDB 对 Magento 性能至关重要:
Magento 2 的 Nginx 配置
创建 Nginx 配置:
sudo nano /etc/nginx/sites-available/magento2
添加此配置:
upstream fastcgi_backend {
server 127.0.0.1:9000;
}
server {
listen 80;
listen [::]:80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
root /var/www/magento2;
client_max_body_size 128m;
location / {
try_files $uri $uri/ /index.php?$args;
}
location /media {
expires 7d;
access_log off;
}
location /static {
expires 7d;
access_log off;
}
location ~ \.php$ {
fastcgi_pass fastcgi_backend;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_read_timeout 300;
}
}
启用配置:
sudo ln -s /etc/nginx/sites-available/magento2 /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
PHP-FPM 配置
优化 PHP-FPM 池:
sudo nano /etc/php/8.2/fpm/pool.d/www.conf
调整设置:
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 20
然后重启:
sudo systemctl restart php8.2-fpm
MariaDB 对 Magento 的配置
优化 MySQL 配置:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
添加/修改:
max_connections = 200
innodb_buffer_pool_size = 2G
innodb_flush_log_at_trx_commit = 2
query_cache_size = 128M
query_cache_type = 1
重启 MySQL:
sudo systemctl restart mariadb
性能优化:Redis/Varnish/全页面缓存
由于资源密集性,Magento 需要复杂的缓存。实现三个缓存层:
1. Redis 用于会话和缓存存储
Redis 将 Magento 会话和缓存存储在内存中,比磁盘快得多。安装 Redis:
sudo apt install -y redis-server
sudo systemctl start redis-server
sudo systemctl enable redis-server
配置 Magento 使用 Redis:
cd /var/www/magento2
bin/magento config:set system/full_page_cache/caching_application 3
bin/magento config:set --scope=default --scope-id=0 system/full_page_cache/redis/server 127.0.0.1
bin/magento config:set --scope=default --scope-id=0 system/full_page_cache/redis/port 6379
2. Varnish 用于全页面缓存
Varnish 是一个 HTTP 加速器,缓存整个 HTML 页面,使您的商店速度大幅提升:
sudo apt install -y varnish
# 然后配置 Magento
bin/magento config:set --scope=default --scope-id=0 system/full_page_cache/caching_application 2
3. 定期清除缓存
更新配置时清除缓存:
bin/magento cache:clean
配置了 Redis 和 Varnish 后,即使是具有 10,000+ 产品的 Magento 商店也能平稳处理数千个并发访问者。
服务器上的 Magento 安全加固
在处理客户支付和个人数据时,安全至关重要:
1. HTTPS 和 SSL 证书
使用 Let's Encrypt 安装免费 SSL:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot certonly --nginx -d yourdomain.com
sudo certbot renew --dry-run
更新 Nginx 以强制 HTTPS 并添加 HSTS:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
2. 防火墙配置
设置 UFW 防火墙:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
3. PHP 配置加固
sudo nano /etc/php/8.2/fpm/php.ini
# 设置:
expose_php = Off
disable_functions = exec,passthru,shell_exec,system,proc_open
upload_max_filesize = 256M
post_max_size = 256M
4. Magento 管理员安全
更改管理员 URL:
cd /var/www/magento2
bin/magento setup:config:set --backend-frontname=my_custom_admin_url
为所有管理员用户启用双因素认证。
5. 限制文件访问
通过 Nginx 阻止访问敏感目录:
location ~ ^/(\.well-known|\.git|\.gitignore|\.htaccess|\.php_cs|\.php_cs.dist|\.htpasswd)/ {
deny all;
}
location ~ ^/var {
deny all;
}
location ~ ^/app {
deny all;
}
备份和灾难恢复
对于处理客户数据和交易的电子商务商店,全面的备份策略至关重要:
自动数据库备份
创建备份脚本:
#!/bin/bash
BACKUP_DIR="/backups/magento"
DB_NAME="magento"
DB_USER="magento"
DB_PASS="your_password"
DATE=$(date +%Y-%m-%d_%H-%M-%S)
mkdir -p $BACKUP_DIR
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/magento-$DATE.sql.gz
# 仅保留 30 天的备份
find $BACKUP_DIR -name "*.gz" -mtime +30 -delete
echo "Backup completed: magento-$DATE.sql.gz"
使用 cron 进行调度:
0 2 * * * /path/to/backup-script.sh
文件系统备份
将媒体目录同步到远程存储:
rsync -avz --delete /var/www/magento2/pub/media/ remote_server:/backups/magento-media/
完整服务器备份
使用云备份服务(如 Acronis、Carbonite)或自托管 Bacula 进行完整系统备份,包括所有配置和数据。
将 Magento 商店迁移到新服务器
您可能需要将 Magento 迁移到新服务器以进行升级或更改主机。以下是该过程:
步骤 1:备份旧商店
在旧服务器上:
cd /var/www/magento2
# 备份数据库
mysqldump -u magento -p'your_password' magento > /tmp/magento-backup.sql
# 备份文件
tar -czf /tmp/magento-files.tar.gz /var/www/magento2/
将备份文件下载到您的计算机。
步骤 2:设置新服务器
如上所述在新服务器上配置 Nginx、PHP-FPM 和 MariaDB。
步骤 3:恢复数据库和文件
cd /var/www/magento2
# 将备份文件上传到新服务器,然后:
# 恢复数据库
mysql -u magento -p'your_password' magento < /tmp/magento-backup.sql
# 恢复文件
tar -xzf /tmp/magento-files.tar.gz -C /
步骤 4:更新配置
更新数据库中的基础 URL:
mysql -u magento -p'your_password' magento
UPDATE core_config_data SET value='https://newdomain.com/' WHERE path LIKE 'web/secure/base_url';
UPDATE core_config_data SET value='https://newdomain.com/' WHERE path LIKE 'web/unsecure/base_url';
EXIT;
步骤 5:清除缓存并重新编译
cd /var/www/magento2
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy -f
bin/magento cache:clean
步骤 6:测试和验证
验证:
- 店面正确加载和功能
- 管理面板可访问
- 支付网关集成有效
- 电子邮件通知正确发送