如何在 Debian 11 上安装 Magento
在此页
- 先决条件
- 安装 Apache、PHP 和其他必需的扩展
- 安装和配置 MySQL 服务器
- 安装作曲家
- 安装Magento2
- 创建 Apache 虚拟主机配置文件
- 访问 Magento2 网络界面
- 结论
Magento 是一款免费的开源电子商务应用程序,可让您托管在线商店。它是用 PHP 编写的,并使用 Zend 框架。它用途广泛且可扩展,适用于小型、中型到大型商店。它允许您在没有任何编程知识的情况下托管一个功能齐全的在线购物车系统。由于其简单性和用户友好性,它被成千上万的在线商店使用。
在本教程中,我将向您展示如何在 Debian 11 上安装 Magento2。
先决条件
- 运行 Debian 11 的服务器。
- 用您的服务器 IP 指向的有效域名。
- 在服务器上配置了根密码。
安装 Apache、PHP 和其他必需的扩展
首先,您需要在服务器上安装 Apache、PHP 和其他必要的 PHP 扩展。您可以使用以下命令安装所有这些:
apt-get install apache2 php libapache2-mod-php php-common php-gmp php-curl php-soap php-bcmath php-intl php-mbstring php-xmlrpc php-mysql php-gd php-xml php-cli php-zip -y
安装所有包后,编辑 php.ini 文件并更改一些默认设置:
nano /etc/php/7.4/apache2/php.ini
更改以下值:
file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 512M
upload_max_filesize = 128M
max_execution_time = 3600
保存并关闭文件,然后重新启动 Apache 服务以应用更改:
systemctl restart apache2
安装和配置 MySQL 服务器
Magento2 使用 MariaDB 或 MySQL 作为数据库后端。默认情况下,MariaDB 10.5 版本包含在 Debian 11 默认存储库中,Magento2 不支持该版本。所以你需要在你的服务器上安装 MySQL Server 8。
首先,使用以下命令下载 MySQL 包文件:
wget https://repo.mysql.com//mysql-apt-config_0.8.18-1_all.deb
接下来,使用以下命令安装它:
apt install ./mysql-apt-config_0.8.18-1_all.deb -y
系统将要求您选择要安装的 MySQL 版本:

选择 MySQL Server 8 并单击确定按钮。
接下来,使用以下命令更新存储库并安装 MySQL 服务器 8:
apt-get update -y
apt-get install mysql-server -y
安装 MySQL 后,使用以下命令连接到 MySQL:
mysql -u root -p
登录后,使用以下命令为 Magento2 创建数据库和用户:
mysql> CREATE DATABASE magento2;
mysql> CREATE USER 'magento2'@'localhost' IDENTIFIED BY 'password';
接下来,授予 Magento2 数据库的所有权限:
mysql> GRANT ALL PRIVILEGES ON magento2.* TO 'magento2'@'localhost';
接下来,使用以下命令刷新权限并退出 MySQL:
mysql> FLUSH PRIVILEGES;
mysql> EXIT;
完成后,您可以继续下一步。
安装作曲家
Composer 是 PHP 的依赖管理器,用于管理项目所需的 PHP 依赖项。
首先,使用以下命令安装 curl 命令行工具:
apt-get install curl -y
接下来,使用以下命令安装 Composer:
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
您将获得以下输出:
All settings correct for using Composer
Downloading...
Composer (version 2.1.12) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer
接下来,使用以下命令验证 Composer 版本:
composer --version
您应该看到以下输出:
Composer version 2.1.12 2021-11-09 16:02:04
安装Magento2
接下来,将目录更改为 Apache web 根目录并使用以下命令下载最新版本的 Magento2:
cd /var/www/html
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento2
您将被要求提供您的 Magento 帐户用户名和密码,如下所示:
Creating a "magento/project-community-edition" project at "./magento2"
Warning from repo.magento.com: You haven't provided your Magento authentication keys. For instructions, visit https://devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html
Authentication required (repo.magento.com):
Username: a6b333ad41629bac913eaabb9b8e053c
Password:
使用公钥作为您的用户名,使用私钥作为您的密码,然后按回车键。您将获得以下输出:
Do you want to store credentials for repo.magento.com in /root/.config/composer/auth.json ? [Yn] Y
Installing magento/project-community-edition (2.4.3-p1)
- Downloading magento/project-community-edition (2.4.3-p1)
- Installing magento/project-community-edition (2.4.3-p1): Extracting archive
Created project in /var/www/html/magento2
Loading composer repositories with package information
接下来,设置 Magento2 和其他目录的适当权限和所有权:
chown -R www-data:www-data /var/www/html/magento2/
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 .
chmod u+x bin/magento
接下来,使用以下命令禁用 Elasticsearch 模块:
php bin/magento module:disable {Magento_Elasticsearch,Magento_InventoryElasticsearch,Magento_Elasticsearch6,Magento_Elasticsearch7}
您将获得以下输出:
The following modules have been disabled:
- Magento_Elasticsearch
- Magento_Elasticsearch6
- Magento_InventoryElasticsearch
- Magento_Elasticsearch7
Cache cleared successfully.
Generated classes cleared successfully. Please run the 'setup:di:compile' command to generate classes.
Info: Some modules might require static view files to be cleared. To do this, run 'module:disable' with the --clear-static-content option to clear them.
接下来,使用以下命令安装 Magento2:
bin/magento setup:install --base-url=http://magento.example.com --db-host=localhost --db-name=magento2 --db-user=magento2 --db-password=password --admin-firstname=admin --admin-lastname=admin --language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1
安装 Magento2 后,您应该会看到以下输出:
Module 'Vertex_AddressValidation':
[Progress: 1363 / 1370]
Module 'Yotpo_Yotpo':
[Progress: 1364 / 1370]
Enabling caches:
Current status:
layout: 1
block_html: 1
full_page: 1
[Progress: 1365 / 1370]
Installing admin user...
[Progress: 1366 / 1370]
Caches clearing:
Cache cleared successfully
[Progress: 1367 / 1370]
Disabling Maintenance Mode:
[Progress: 1368 / 1370]
Post installation file permissions check...
For security, remove write permissions from these directories: '/var/www/html/magento2/app/etc'
[Progress: 1369 / 1370]
Write installation date...
[Progress: 1370 / 1370]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_fgadpx
Nothing to import.
注意:请记住上述输出中的 Magento2 Admin URI。您将需要使用它来访问 Magento 网络界面。
接下来,禁用 Magento2 双因素身份验证,清除缓存并使用以下命令安装 Cron:
sudo -u www-data bin/magento module:disable Magento_TwoFactorAuth
sudo -u www-data bin/magento cache:flush
sudo -u www-data bin/magento cron:install
完成后,您可以继续下一步。
创建 Apache 虚拟主机配置文件
接下来,您需要为 Magento2 创建一个 Apache 虚拟主机配置文件。您可以使用以下命令创建它:
nano /etc/apache2/sites-available/magento2.conf
添加以下行:
<VirtualHost *:80>
ServerAdmin
DocumentRoot /var/www/html/magento2/
ServerName magento.example.com
<Directory /var/www/html/magento2/>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/magento2_error.log
CustomLog ${APACHE_LOG_DIR}/magento2_access.log combined
</VirtualHost>
保存并关闭文件,然后使用以下命令激活 Magento 虚拟主机和 Apache 重写模块:
a2ensite magento2.conf
a2enmod rewrite
最后,重新启动 Apache 服务以应用更改:
systemctl restart apache2
您还可以使用以下命令检查 Apache 状态:
systemctl status apache2
您应该看到以下输出:
? apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2021-11-20 06:00:59 UTC; 4s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 18394 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 18398 (apache2)
Tasks: 6 (limit: 4679)
Memory: 15.1M
CPU: 99ms
CGroup: /system.slice/apache2.service
??18398 /usr/sbin/apache2 -k start
??18399 /usr/sbin/apache2 -k start
??18400 /usr/sbin/apache2 -k start
??18401 /usr/sbin/apache2 -k start
??18402 /usr/sbin/apache2 -k start
??18403 /usr/sbin/apache2 -k start
Nov 20 06:00:59 debian11 systemd[1]: Starting The Apache HTTP Server...
访问 Magento2 网页界面
现在,打开您的网络浏览器并使用 URL http://magento.example.com/admin_fgadpx 访问 Magento2 管理界面。您应该会看到 Magento2 登录页面:

提供您的管理员用户名和密码,然后单击“登录”按钮。您应该在以下页面上看到 Magento2 仪表板:

结论
恭喜!您已经在 Debian 11 上成功安装了 Magento2。您现在可以使用 Magento 轻松托管您的在线商店。如果您有任何问题,请随时问我。