Magento2项目部署笔记

一.去获取Adobe Commerce的个人秘钥

Adobe Commerce Extensions & Themes for Your Online Store | Marketplace

这个个人秘钥不收费,用于作为下载Magento2源代码的凭证

二. 检查Magento2最新版本 以及最新版本对应的环境要求

System requirements | Adobe Commerce

例如

三. 根据第二步的需求安装好对应的环境

1.数据库部分笔记

选取需要的使用,不要盲目使用

选取需要的使用,不要盲目使用

选取需要的使用,不要盲目使用

移除现有的 MySQL 安装
bash 复制代码
sudo systemctl stop mysql
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo rm -rf /etc/mysql /var/lib/mysql /var/log/mysql
sudo apt-get update
sudo apt-get install mysql-server
安装指定版本的MariaDB

添加 MariaDB 官方仓库

bash 复制代码
sudo apt-get install software-properties-common
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mariadb.mirror.globo.tech/repo/10.6/ubuntu focal main'

更新包列表并安装 MariaDB 10.6

bash 复制代码
sudo apt-get update
sudo apt-get install mariadb-server=1:10.6.*
重新创建目录并设置权限
bash 复制代码
sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
sudo chmod 755 /var/run/mysqld
重置 root 用户密码

启动 MariaDB 并跳过权限表

bash 复制代码
sudo mysqld_safe --skip-grant-tables &

登录 MariaDB 并重置 root 用户密码

bash 复制代码
mysql -u root
USE mysql;
UPDATE mysql.user SET authentication_string='' WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;
EXIT;

停止 MariaDB 并重新启动

bash 复制代码
sudo killall mysqld
sudo systemctl start mysql
sudo systemctl status mysql

设置 root 用户密码

bash 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
FLUSH PRIVILEGES;
EXIT;
检查 MariaDB 版本
bash 复制代码
mysql --version
修改绑定地址
bash 复制代码
sudo nano /etc/mysql/my.cnf

添加以下配置

bash 复制代码
[mysqld]
bind-address = 0.0.0.0
创建数据库和用户
bash 复制代码
CREATE DATABASE magento;
CREATE USER 'magento_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON magento.* TO 'magento_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

允许远程访问

bash 复制代码
GRANT ALL PRIVILEGES ON magento.* TO 'magento_user'@'%' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
查询用户和数据库

查询用户和数据库

bash 复制代码
SELECT host, user FROM mysql.user WHERE user = 'magento_user';

连接到远程数据库

bash 复制代码
mysql -u magento_user -pyour_password -h 172.21.238.165 -P 3306
其他

使用数据库并删除特定模块

bash 复制代码
USE magento;
DELETE FROM setup_module WHERE module = 'Magento_BundleSampleData';
DELETE FROM setup_module WHERE module LIKE 'Magento_%SampleData';

显示数据库列表

bash 复制代码
mysql -u magento_user -pyour_password -h 172.21.238.165 -P 3306 -e "SHOW DATABASES;"

登录 MariaDB 并显示数据库和表

bash 复制代码
mysql -u root -p
SHOW DATABASES;
USE magento;
SHOW TABLES;
SHOW GRANTS FOR 'magento_user'@'localhost';
配置文件设置

编辑 MariaDB 配置文件

bash 复制代码
sudo nano /etc/mysql/my.cnf

示例

bash 复制代码
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

[mysqld_safe]
log-error = /var/log/mysql/error.log
pid-file = /var/run/mysqld/mysqld.pid

2.OpensSearch部分笔记

选取需要的使用,不要盲目使用

选取需要的使用,不要盲目使用

选取需要的使用,不要盲目使用

下载 OpenSearch
bash 复制代码
wget https://artifacts.opensearch.org/releases/bundle/opensearch/2.3.0/opensearch-2.3.0-linux-x64.tar.gz
解压安装包
bash 复制代码
tar -xzf opensearch-2.3.0-linux-x64.tar.gz
进入 OpenSearch 目录
bash 复制代码
cd opensearch-2.3.0
安装 OpenSearch
bash 复制代码
./opensearch-tar-install.sh
启动 OpenSearch

进入 OpenSearch 目录并启动 OpenSearch

bash 复制代码
cd ~/OpenSearch/opensearch-2.12.0
./bin/opensearch
访问 OpenSearch

OpenSearch 默认运行在 http://localhost:9200。如果你需要从远程访问,可以使用服务器的 IP 地址,例如 http://172.21.238.165:9200

如果一切正常,你应该会看到类似于以下的 JSON 响应

bash 复制代码
{
  "name" : "your-node-name",
  "cluster_name" : "opensearch",
  "cluster_uuid" : "your-cluster-uuid",
  "version" : {
    "number" : "2.3.0",
    "build_type" : "tar",
    "build_hash" : "your-build-hash",
    "build_date" : "your-build-date",
    "build_snapshot" : false,
    "lucene_version" : "your-lucene-version",
    "minimum_wire_compatibility_version" : "your-minimum-wire-compatibility-version",
    "minimum_index_compatibility_version" : "your-minimum-index-compatibility-version"
  },
  "tagline" : "The OpenSearch Project: https://opensearch.org/"
}

3.安装Composer

选取需要的使用,不要盲目使用

选取需要的使用,不要盲目使用

选取需要的使用,不要盲目使用

没有安装 PHP,可以使用以下命令安装
bash 复制代码
sudo apt-get update
sudo apt-get install php php-cli
下载 Composer 安装脚本
bash 复制代码
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
验证安装脚本的完整性
bash 复制代码
HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
验证下载的安装脚本
bash 复制代码
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
安装 Composer
bash 复制代码
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
删除安装脚本
bash 复制代码
php -r "unlink('composer-setup.php');"
验证 Composer 安装
bash 复制代码
composer --version

你应该会看到类似于以下的输出

bash 复制代码
Composer version 2.x.x 2023-xx-xx xx:xx:xx

4.获取Magento2资源

二选一

Magento Open Source

bash 复制代码
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition <install-directory-name>

Adobe Commerce

bash 复制代码
composer create-project --repository-url=https://repo.magento.com/ magento/project-enterprise-edition <install-directory-name>

出现提示时,输入您的身份验证密钥。 在Commerce Marketplace中创建并配置公钥和私钥。

5. 设置文件权限

bash 复制代码
cd /var/www/html/<magento install directory>
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 . # Ubuntu
chmod u+x bin/magento

6.安装应用程序

示例

bash 复制代码
sudo -u www-data php bin/magento setup:install \
--base-url=http://172.21.238.165/ \
--db-host=172.21.238.165 \
--db-name=magento \
--db-user=magento_user \
--db-password=your_password \
--admin-firstname=admin \
--admin-lastname=admin \
--admin-email=111@qq.com \
--admin-user=admin \
--admin-password=admin123 \
--language=zh_Hans_CN \
--currency=CNY \
--timezone=Asia/Shanghai \
--use-rewrites=1 \
--search-engine=opensearch \
--opensearch-host=172.21.238.165 \
--opensearch-port=9200 \
--opensearch-enable-auth=1 \
--opensearch-username=admin \
--opensearch-password=Str0ngP@ssw0rd! \
--opensearch-index-prefix=magento2 \
--opensearch-timeout=15

7.配置 Apache 虚拟主机以运行 Magento

创建虚拟主机配置文件
bash 复制代码
sudo nano /etc/apache2/sites-available/magento.conf

在文件中添加以下内容

bash 复制代码
<VirtualHost *:80>
    ServerAdmin 111@qq.com
    DocumentRoot /home/ccsbridge/magento/magento
    ServerName 172.21.238.165
    <Directory /home/ccsbridge/magento/magento>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
启用虚拟主机配置
bash 复制代码
sudo a2ensite magento.conf
启用 Apache 重写模块
bash 复制代码
sudo a2enmod rewrite
重启 Apache 服务
bash 复制代码
sudo systemctl restart apache2
检查 Apache 服务状态
bash 复制代码
sudo systemctl status apache2
重新加载 Apache 配置
bash 复制代码
sudo systemctl reload apache2

8.配置 Magento 的 Cron 作业

选取需要的使用,不要盲目使用

选取需要的使用,不要盲目使用

选取需要的使用,不要盲目使用

检查 www-data 用户的 Crontab
bash 复制代码
sudo -u www-data crontab -l
进入 Magento 目录
bash 复制代码
cd /home/ccsbridge/magento/magento
安装 Magento Cron 作业
bash 复制代码
sudo -u www-data php bin/magento cron:install --force

执行后,你应该会看到类似于以下的输出

bash 复制代码
Crontab has been generated and saved
验证 Crontab 配置
bash 复制代码
sudo -u www-data crontab -l

你应该会看到类似于以下的输出

bash 复制代码
#~ MAGENTO START 39885cdc4e7da4088e0d5f9013aa938115817c6b494c886cd6d63888767a1200
* * * * * /usr/bin/php8.3 /home/ccsbridge/magento/magento/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /home/ccsbridge/magento/magento/var/log/magento.cron.log
#~ MAGENTO END 39885cdc4e7da4088e0d5f9013aa938115817c6b494c886cd6d63888767a1200
手动运行 Cron 作业
bash 复制代码
sudo -u www-data php bin/magento cron:run

执行后,你应该会看到类似于以下的输出

bash 复制代码
Ran jobs by schedule.

9.Magento 示例数据安装和开发模式切换

切换到 Magento 目录
bash 复制代码
cd /home/ccsbridge/magento/magento
清理生成的代码和元数据
bash 复制代码
sudo -u www-data rm -rf generated/metadata/* generated/code/*
切换到模式
bash 复制代码
sudo -u www-data php bin/magento deploy:mode:set developer
bash 复制代码
sudo -u www-data php bin/magento deploy:mode:set production
bash 复制代码
sudo -u www-data php bin/magento deploy:mode:set default

验证当前模式

bash 复制代码
sudo -u www-data php bin/magento deploy:mode:show
安装和重置示例数据

移除现有的示例数据

bash 复制代码
sudo -u www-data php bin/magento sampledata:remove

重置示例数据

bash 复制代码
sudo -u www-data php bin/magento sampledata:reset

部署示例数据

bash 复制代码
sudo -u www-data php bin/magento sampledata:deploy

升级数据库以应用示例数据

bash 复制代码
sudo -u www-data php bin/magento setup:upgrade
部署静态内容和清理缓存

部署静态内容

bash 复制代码
sudo -u www-data php bin/magento setup:static-content:deploy -f

清理缓存

bash 复制代码
sudo -u www-data php bin/magento cache:clean

刷新缓存

bash 复制代码
sudo -u www-data php bin/magento cache:flush
卸载 Magento

没错,是卸载,从入门到卸载一条路服务!

bash 复制代码
sudo -u www-data php bin/magento setup:uninstall
相关推荐
DKPT2 小时前
Java桥接模式实现方式与测试方法
java·笔记·学习·设计模式·桥接模式
巴伦是只猫4 小时前
【机器学习笔记Ⅰ】13 正则化代价函数
人工智能·笔记·机器学习
X_StarX10 小时前
【Unity笔记02】订阅事件-自动开门
笔记·学习·unity·游戏引擎·游戏开发·大学生
MingYue_SSS10 小时前
开关电源抄板学习
经验分享·笔记·嵌入式硬件·学习
巴伦是只猫10 小时前
【机器学习笔记 Ⅱ】1 神经网络
笔记·神经网络·机器学习
weixin_4373982110 小时前
转Go学习笔记(2)进阶
服务器·笔记·后端·学习·架构·golang
teeeeeeemo11 小时前
回调函数 vs Promise vs async/await区别
开发语言·前端·javascript·笔记
致***锌15 小时前
期权标准化合约是什么?
笔记
Wilber的技术分享16 小时前
【机器学习实战笔记 14】集成学习:XGBoost算法(一) 原理简介与快速应用
人工智能·笔记·算法·随机森林·机器学习·集成学习·xgboost
V我五十买鸡腿17 小时前
顺序栈和链式栈
c语言·数据结构·笔记·算法