Magento(现Adobe Commerce)是功能最强大的开源电商系统之一,适合中大型电商网站。相比WooCommerce,Magento内置了更完善的产品管理、库存控制、多店铺支持等企业级功能。本文介绍在VPS上部署Magento 2的完整流程。
Tip: Magento对服务器资源要求较高,建议至少4GB内存的VPS。推荐搬瓦工CN2 GIA-E 4核4GB方案。
Magento 2对服务器配置有较高要求:
| 组件 | 最低要求 | 推荐配置 |
|---|---|---|
| 内存 | 2GB | 4GB+ |
| CPU | 2核 | 4核+ |
| 磁盘 | 20GB SSD | 80GB+ SSD |
| PHP | 8.1 | 8.2 |
| MySQL | 8.0 | 8.0 |
| Elasticsearch | 7.17 | 8.x |
| Redis | 可选 | 强烈推荐 |
| Composer | 2.x | 2.x |
# Ubuntu 22.04
apt update && apt upgrade -y
apt install nginx -y
# 安装PHP 8.2及Magento所需扩展
apt install php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd \
php8.2-mbstring php8.2-xml php8.2-zip php8.2-intl \
php8.2-soap php8.2-bcmath php8.2-xsl php8.2-sockets -y
# 安装MySQL 8.0
apt install mysql-server -y
mysql_secure_installation
# 安装Elasticsearch(Magento 2必须)
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-8.x.list
apt update && apt install elasticsearch -y
systemctl enable --now elasticsearch
apt install redis-server -y
systemctl enable --now redis-server
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
mysql -u root -p
CREATE DATABASE magento DEFAULT CHARACTER SET utf8mb4;
CREATE USER 'magento'@'localhost' IDENTIFIED BY '你的强密码';
GRANT ALL ON magento.* TO 'magento'@'localhost';
FLUSH PRIVILEGES;
EXIT;
需要先在 marketplace.magento.com 注册账号并获取Access Keys。
cd /var/www
composer create-project --repository-url=https://repo.magento.com/ \
magento/project-community-edition magento2
cd /var/www/magento2
bin/magento setup:install \
--base-url=https://yourdomain.com \
--db-host=localhost \
--db-name=magento \
--db-user=magento \
--db-password='你的数据库密码' \
--admin-firstname=Admin \
--admin-lastname=User \
--admin-email=admin@yourdomain.com \
--admin-user=admin \
--admin-password='管理员密码' \
--language=en_US \
--currency=USD \
--timezone=America/Los_Angeles \
--search-engine=elasticsearch8 \
--elasticsearch-host=localhost \
--elasticsearch-port=9200
chown -R www-data:www-data /var/www/magento2
find /var/www/magento2 -type f -exec chmod 644 {} \;
find /var/www/magento2 -type d -exec chmod 755 {} \;
chmod -R 775 /var/www/magento2/var /var/www/magento2/generated \
/var/www/magento2/pub/static /var/www/magento2/pub/media
Magento提供了Nginx配置模板,位于 /var/www/magento2/nginx.conf.sample。创建虚拟主机配置:
upstream fastcgi_backend {
server unix:/var/run/php/php8.2-fpm.sock;
}
server {
listen 80;
server_name yourdomain.com;
set $MAGE_ROOT /var/www/magento2;
include /var/www/magento2/nginx.conf.sample;
client_max_body_size 64M;
}
然后配置SSL证书:
certbot --nginx -d yourdomain.com
bin/magento setup:config:set --cache-backend=redis --cache-backend-redis-server=127.0.0.1 --cache-backend-redis-port=6379 --cache-backend-redis-db=0
bin/magento setup:config:set --session-save=redis --session-save-redis-host=127.0.0.1 --session-save-redis-port=6379 --session-save-redis-db=2
bin/magento deploy:mode:set production
bin/magento setup:static-content:deploy
bin/magento cache:flush
bin/magento cron:install
# 验证cron是否正常
crontab -u www-data -l
# /etc/php/8.2/fpm/php.ini
memory_limit = 768M
max_execution_time = 600
opcache.enable = 1
opcache.memory_consumption = 256
opcache.max_accelerated_files = 65536
realpath_cache_size = 10M
realpath_cache_ttl = 7200
composer update 后执行 bin/magento setup:upgradebin/magento cache:cleanbin/magento indexer:reindexmysqldump -u magento -p magento > backup.sqlvar/log/system.log 和 var/log/exception.log4核4GB内存,80GB SSD,足以运行Magento + Elasticsearch + Redis。
价格:$56.99/月起,使用优惠码 NODESEEK2026 再省6.77%。
Tip: 如果预算有限,WooCommerce对服务器要求更低,请参考WooCommerce搭建教程。