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 \
[email protected] \
--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 [email protected]
    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
相关推荐
lwewan28 分钟前
26考研408目录汇总~
笔记·考研
ljt272496066136 分钟前
Compose笔记(二十三)--多点触控
笔记·android jetpack
2303_Alpha3 小时前
深度学习入门:深度学习(完结)
人工智能·笔记·python·深度学习·神经网络·机器学习
姝孟3 小时前
学习笔记(C++篇)—— Day 6
笔记·学习
霸王蟹4 小时前
React Fiber 架构深度解析:时间切片与性能优化的核心引擎
前端·笔记·react.js·性能优化·架构·前端框架
~巴哥~4 小时前
mcp学习笔记
笔记·学习
lqjun08276 小时前
Pytorch实现常用代码笔记
人工智能·pytorch·笔记
云海听雷6 小时前
C语言中字符串函数的详细讲解
c语言·笔记·学习
wb1897 小时前
Linux远程连接服务
linux·运维·服务器·笔记
烧火大爷7 小时前
现代计算机图形学Games101入门笔记(三)
笔记