服务器要求
云服务器:推荐使用腾讯云、阿里云等主流服务商,配置建议为2核4G内存以上(生产环境需更高配置)。
操作系统:Ubuntu 20.04/22.04 LTS或CentOS 8(推荐Ubuntu以简化依赖管理)。
远程连接工具
FileZilla:用于文件传输(SFTP协议)。
Putty/MobaXterm:用于SSH终端操作。
Ubuntu系统安装
bash
sudo apt update sudo apt install mysql-server-8.3 # 指定版本避免自动升级
设置root密码(复杂度要求:大小写字母+数字+特殊符号)。
删除匿名用户(Remove anonymous users?
选Y
)。
禁止root远程登录(Disallow root login remotely?
选Y
)。
删除测试数据库(Remove test database and access to it?
选Y
)。
重新加载权限表(Reload privilege tables now?
选Y
)。
安全配置:
bash
sudo mysql_secure_installation
按提示完成以下操作:
CentOS系统安装
bash
sudo yum install https://dev.mysql.com/get/mysql80-community-release-el8-6.noarch.rpm sudo yum install mysql-community-server sudo systemctl start mysqld sudo systemctl enable mysqld
获取临时密码:
bash
sudo grep 'temporary password' /var/log/mysqld.log
修改密码:
bash
mysql -u root -p ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
登录MySQL
bash
mysql -u root -p
创建数据库和用户
sql
CREATE DATABASE magento CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'magento_usr'@'localhost' IDENTIFIED BY '强密码'; GRANT ALL PRIVILEGES ON magento.* TO 'magento_usr'@'localhost'; FLUSH PRIVILEGES;
远程访问配置(如需):
sql
CREATE USER 'magento_usr'@'%' IDENTIFIED BY '强密码'; GRANT ALL PRIVILEGES ON magento.* TO 'magento_usr'@'%';
验证数据库
bash
mysql -u magento_usr -p -e "SHOW DATABASES;"
若看到magento
数据库,则配置成功。
Ubuntu系统安装
bash
sudo add-apt-repository ppa:ondrej/php sudo apt update sudo apt install php8.3 php8.3-mysql php8.3-gd php8.3-json php8.3-curl php8.3-dom php8.3-mcrypt php8.3-simplexml php8.3-xsl php8.3-intl php8.3-mbstring php8.3-zip php8.3-xmlwriter
CentOS系统安装
bash
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo yum install https://rpms.remirepo.net/enterprise/remi-release-8.rpm sudo yum-config-manager --enable remi-php83 sudo yum install php php-mysqlnd php-gd php-json php-curl php-dom php-mcrypt php-simplexml php-xsl php-intl php-mbstring php-zip php-xmlwriter
验证PHP安装
bash
php -v php -m | grep mysql # 检查mysql扩展是否加载
全局安装
bash
sudo apt install curl php8.3-cli git # Ubuntu sudo yum install curl php-cli git # CentOS curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
验证安装
bash
composer -V
下载Magento
bash
composer create-project --repository=https://repo.magento.com/ magento/project-community-edition=2.4.7 /var/www/html/magento2
认证配置:
根据提示输入Magento Marketplace的公钥和私钥(需提前在Magento账号中生成)。
设置文件权限
bash
cd /var/www/html/magento2 find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} + find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} + chown -R www-data:www-data . # Ubuntu chown -R apache:apache . # CentOS
浏览器访问
打开浏览器,访问http://服务器IP/magento2
,进入安装界面。
数据库配置
数据库类型:MySQL
主机:localhost
(或远程数据库IP)
数据库名:magento
用户名:magento_usr
密码:之前设置的密码
网站配置
语言:选择中文(简体)
时区:Asia/Shanghai
货币:CNY
管理员账户
用户名:admin
密码:设置强密码(建议使用密码管理器生成)
完成安装
点击“Install Now”,等待安装完成(约5-10分钟)。
MySQL连接失败
检查MySQL服务是否运行:
bash
sudo systemctl status mysql
验证数据库用户权限:
sql
SELECT host, user FROM mysql.user;
确保防火墙允许3306端口(如使用远程数据库):
bash
sudo ufw allow 3306 # Ubuntu sudo firewall-cmd --add-port=3306/tcp --permanent # CentOS
现象:安装向导提示“无法连接到数据库”。
解决:
PHP扩展缺失
安装缺失的扩展(如php8.3-soap
):
bash
sudo apt install php8.3-soap # Ubuntu sudo yum install php-soap # CentOS
重启Web服务:
bash
sudo systemctl restart apache2 # Ubuntu sudo systemctl restart httpd # CentOS
现象:安装向导提示“缺少PHP扩展”。
解决:
Composer认证失败
重新生成公钥和私钥(Magento Marketplace)。
更新auth.json
文件(位于~/.composer/auth.json
):
json
{ "http-basic": { "repo.magento.com": { "username": "公钥", "password": "私钥" } } }
现象:下载Magento时提示“认证失败”。
解决:
定期备份
使用mysqldump
备份数据库:
bash
mysqldump -u magento_usr -p magento > magento_backup.sql
备份Magento文件:
bash
tar -czvf magento_backup.tar.gz /var/www/html/magento2
性能优化
MySQL配置:
修改/etc/mysql/mysql.conf.d/mysqld.cnf
:
ini
innodb_buffer_pool_size = 2G # 根据服务器内存调整 query_cache_size = 64M
PHP-FPM配置:
修改/etc/php/8.3/fpm/pool.d/www.conf
:
ini
pm = dynamic pm.max_children = 50 pm.start_servers = 10 pm.min_spare_servers = 5 pm.max_spare_servers = 15
安全加固
禁用危险函数:
修改/etc/php/8.3/fpm/php.ini
:
ini
disable_functions = exec,passthru,shell_exec,system
启用HTTPS:
使用Let's Encrypt免费证书:
bash
sudo apt install certbot python3-certbot-nginx # Ubuntu sudo certbot --nginx -d 你的域名.com