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
相关推荐
烟锁迷城33 分钟前
软考中级 软件设计师 第一章 第十节 可靠性
笔记
胡楚昊34 分钟前
B站pwn教程笔记-1
笔记
Bunny02126 小时前
SpringMVC笔记
java·redis·笔记
贾贾202312 小时前
配电网的自动化和智能化水平介绍
运维·笔记·科技·自动化·能源·制造·智能硬件
xiaocao_102314 小时前
手机备忘录:安全存储与管理个人笔记的理想选择
笔记·安全·智能手机
索然无味io14 小时前
XML外部实体注入--漏洞利用
xml·前端·笔记·学习·web安全·网络安全·php
王磊鑫15 小时前
Java入门笔记(1)
java·开发语言·笔记
安冬的码畜日常15 小时前
【Vim Masterclass 笔记22】S09L40 + L41:同步练习11:Vim 的配置与 vimrc 文件的相关操作(含点评课内容)
笔记·vim·vim配置·vim同步练习·vim options·vim option-list
追Star仙16 小时前
基于Qt中的QAxObject实现指定表格合并数据进行word表格的合并
开发语言·笔记·qt·word
安冬的码畜日常17 小时前
【Vim Masterclass 笔记24】S10L43 + L44:同步练习10 —— 基于 Vim 缓冲区的各类基础操作练习(含点评课)
笔记·vim·自学笔记·vim同步练习·vim缓冲区·vim buffer·vim缓冲区练习