欢迎光临微互媒网络,我们是一家专注中小型企业外贸网站建设、magento网站设计、wordpress网站建设公司!

咨询热线:13580328252
微信号
新闻中心News
外贸网站建设|magento网站建设|wordpress网站设计公司-长沙微互媒网络

如何在Ubuntu 20.04上使用Apache安装Magento 2.4

作者:auqwyggfhv | 点击: | 来源:auqwyggfhv
0501
2021
使用Composer 2和命令行(CLI)在Ubuntu 20.04,Ubuntu 18.04,Ubuntu 22.10和Ubuntu 22.04上使用Apache在Apache上安装Magento 2.4.1的分步指南 安装和配置Apache 首先,使用CLI中的以下命令更新Ubuntu 20.04系统软...
使用Composer 2和命令行(CLI)在Ubuntu 20.04,Ubuntu 18.04,Ubuntu 22.10和Ubuntu 22.04上使用Apache在Apache上安装Magento 2.4.1的分步指南
安装和配置Apache
首先,使用CLI中的以下命令更新Ubuntu 20.04系统软件包并安装apache 2。
 
sudo apt update
sudo apt install apache2
安装完成后,您需要调整防火墙设置以允许HTTP和HTTPS通信。
 
要列出所有当前可用的UFW应用程序配置文件,可以运行:
 
sudo ufw app list
sudo ufw allow in "Apache Full"
sudo ufw delete allow 'Apache'
 
Apache Full:此配置文件同时打开端口80(正常,未加密的网络流量)和端口443(TLS / SSL加密的流量)。
您可以使用以下方法验证更改:
 
sudo ufw status
 
现在,在浏览器中打开您的域,您将看到默认的Ubuntu 20.04 Nginx网页。它看起来应该像这样:
 
对于本地主机:http:// localhost
 
 
如果您看到此页面,则您的Web服务器现在已正确安装并可以通过防火墙访问。
 
使用以下systemctl命令,验证apache2服务处于活动状态/正在运行,并且已启用以在系统启动时自动启动
 
sudo systemctl is-active apache2
sudo systemctl is-enabled apache2
sudo systemctl status apache2
 
安装MySQL
使用apt命令安装MySQL 8
 
sudo apt install mysql-server
 
出现提示时,通过键入确认安装 Y,然后 ENTER
 
安装完成后,建议您运行MySQL随附的安全脚本。该脚本将删除一些不安全的默认设置,并锁定对数据库系统的访问。
 
sudo mysql_secure_installation
回答 Y 是
 
 
选择密码验证级别
 
如果启用了密码验证,将显示您刚刚输入的根密码的密码强度,服务器将询问您是否要继续使用该密码。如果您对当前密码感到满意,请Y 在提示符下输入 “是”:
 
对于其余的问题,请 在每个提示下按 Y 并 ENTER按键。
 
完成后,通过键入以下内容来测试是否能够登录到MySQL控制台:
 
sudo mysql
这将以管理数据库用户root身份连接到MySQL服务器,这是通过在运行此命令时使用sudo推断出来的。您应该看到如下输出:
 
 
要退出MySQL控制台,请输入:
 
exit
您的MySQL服务器现已安装并保护。接下来,我们将安装PHP。
 
安装PHP
使用以下命令安装PHP 7.4和其他软件包。
 
sudo apt install php7.4 libapache2-mod-php php-mysql
 
验证已安装的PHP版本
 
php -v
 
编辑 /etc/apache2/mods-enabled/dir.conf 文件并修改指令中index.php 文件的列出 顺序 DirectoryIndex :
 
sudo nano /etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>
        DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
 
启用 mbstring PHP扩展
 
sudo apt install php7.4-mbstring
sudo phpenmod mbstring
重新加载Apache,以使更改生效:
 
sudo systemctl reload apache2
安装phpMyAdmin(可选)
登录到mysql
 
sudo mysql
或者,如果您为 MySQL根用户启用了密码身份验证 ,
 
mysql -u root -p
禁用验证密码组件。
 
UNINSTALL COMPONENT "file://component_validate_password";
exit
 
注意:这实际上不会将其卸载,而只是停止将组件加载到您的MySQL服务器上:
 
 安装 phpmyadmin 
 
sudo apt install phpmyadmin php-zip php-gd php-json php-curl
对于服务器选择,选择 apache2(hit space and select first and then hit enter otherwise it will just look highlighted with red color but it will not be selected.)
 
选择 Yes 当被问及是否使用 dbconfig-common 建立数据库
 
然后将要求您选择并确认phpMyAdmin的MySQL应用程序密码。
 
选择TCP / IP连接方式
 
 
一旦安装了phpMyAdmin,请重新启用“验证密码”组件:
 
sudo mysql
或者,如果您为 MySQL根用户启用了密码身份验证 ,
 
mysql -u root -p
INSTALL COMPONENT "file://component_validate_password";
exit
 
重新加载Apache,以使更改生效:
 
sudo systemctl restart apache2
为MySQL根帐户配置密码访问
 
sudo mysql
或者,如果您为 MySQL根用户启用了密码身份验证 ,
 
mysql -u root -p
SELECT user,authentication_string,plugin,host FROM mysql.user;
 
确保your_secure_password 用您的密码替换。
 
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_secure_password';
SELECT user,authentication_string,plugin,host FROM mysql.user;
exit
 
为magento 2创建新的MySQL用户并配置密码访问
 
在这里,您可以为用户选择更安全的名称。但是对于本教程,我将创建magento用户。
 
sudo mysql
或者,如果您为 MySQL根用户启用了密码身份验证 ,
 
mysql -u root -p
SELECT user,authentication_string,plugin,host FROM mysql.user;
确保your_secure_password 用您的密码替换。
 
CREATE USER 'magento2'@'localhost' IDENTIFIED BY 'your_secure_password';
ALTER USER 'magento2'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_secure_password';
GRANT ALL PRIVILEGES ON *.* TO 'magento2'@'localhost' WITH GRANT OPTION;
 
SELECT user,authentication_string,plugin,host FROM mysql.user;
exit
现在,您可以验证phpmyadmin是否可访问。
 
https://your-domain/phpmyadmin
对于localhost:http:// localhost / phpmyadmin
 
 
现在在if you are not able to see phpmyadmin page and if you are getting 404 Page not found errorPHPMyAdmin链接上,可以使用以下命令对其进行修复。
 
 
如何修复PHPMyAdmin Ubuntu 20.04上的404页面未找到错误
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin
sudo systemctl restart apache2
使用保护您的phpMyAdmin .htpasswd
不建议将phpmyadmin页面保持公开状态。您可以为该页面创建用户名和密码,以增加安全性。
 
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
 在配置文件AllowOverride All 的<Directory /usr/share/phpmyadmin>部分中添加 指令 
 
 
添加 AllowOverride All 指令
重新启动Apache,以使更改生效:
 
sudo systemctl restart apache2
创建.htaccess文件并在该文件中添加以下代码
 
sudo nano /usr/share/phpmyadmin/.htaccess
/usr/share/phpmyadmin/.htaccess
 
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
 
创建用户名和密码以访问phpmyadmin页面。
 
sudo htpasswd -c /etc/phpmyadmin/.htpasswd secure_username
 
如果要输入其他用户,
 
sudo htpasswd /etc/phpmyadmin/.htpasswd another_secure_username
验证PHPMyAdmin页面,它必须询问用户名和密码。输入正确的用户名和密码后,它将重定向并允许您访问PHPMyAdmin页面。
 
https://your-domain/phpmyadmin
对于本地主机:http:// localhost / phpmyadmin
 
 
设置让我们使用自动续订Cron加密SSL证书(可选)
安装Certbot
 
sudo apt install certbot python3-certbot-apache
sudo apache2ctl configtest
sudo systemctl reload apache2
获取SSL证书
 
sudo certbot --apache
在下一步中选择您的域,然后完成其他过程。
 
验证Certbot自动续订
 
sudo systemctl status certbot.timer
 
要测试续订过程,可以使用以下方法进行试运行 certbot:
 
sudo certbot renew --dry-run
/etc/apache2/sites-available/your-domain-le-ssl.conf如果尚未使用“让我们加密”配置SSL,请打开或使用SSL的虚拟主机文件(443端口)。
 
设置 AllowEncodedSlashes 在服务器配置(全局)或在虚拟主机配置,以避免可能导致针对URL问题编码斜线进行解码。例如,当通过API在SKU中检索带有斜线的产品时,您将不希望将其转换。
 
<VirtualHost *:443>
  ...
  # Allow encoded slashes
  AllowEncodedSlashes NoDecode
  ...
</VirtualHost>
为Magento 2安装和配置Apache模块
启用Apache重写模块
 
sudo a2enmod rewrite
sudo apt install php7.4-bcmath php7.4-intl php7.4-soap
安装弹性搜索
安装OpenJDK 11
 
sudo apt install openjdk-11-jdk
 
安装完成后,请使用以下命令验证Java版本。
 
java -version
 
安装Elasticsearch
 
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
之后,将弹性源列表添加到 sources.list.d director
 
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt update
 
sudo apt install elasticsearch
在Ubuntu 20.04中使用以下命令安装Elastic Search
在Ubuntu 20.04中使用以下命令安装Elastic Search
在Ubuntu 20.04上配置Elasticsearch
 
sudo a2enmod proxy && sudo a2enmod proxy_http && sudo service apache2 restart
为Elasticsearch代理创建新的虚拟主机文件
 
sudo nano /etc/apache2/ports.conf
加 Listen 8080
 
允许Apache监听8080端口
允许Apache监听8080端口
打开 /etc/apache2/sites-available/your-domain-elasticsearch.conf
 
sudo nano /etc/apache2/sites-available/your-domain-elasticsearch.conf
<VirtualHost *:8080>
    ProxyPass "/" "http://localhost:9200/"
    ProxyPassReverse "/" "http://localhost:9200/"
</VirtualHost>
sudo a2ensite your-domain-elasticsearch
sudo service apache2 restart
使用systemctl&启动Elasticsearch服务, 并启用Elasticsearch在每次服务器启动时启动。
 
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
使Elasticsearch在每次服务器启动时启动
使Elasticsearch在每次服务器启动时启动
验证Elasticsearch代理是否正常工作?
 
curl -i http://localhost:8080/_cluster/health
验证Elasticsearch代理是否正常工作
验证Elasticsearch代理是否正常工作
如果应该如上返回输出。
 
安装Redis(可选)
sudo apt install redis-server
打开Redis配置文件 
 
sudo nano /etc/redis/redis.conf
在文件内,找到supervised 指令,该 指令使您可以声明一个init系统并将其值从更改 no 为 systemd:
 
将受监管的指令值从no更改为systemd
将受监管的指令值从no更改为systemd
为什么呢?因为您正在运行使用systemd 初始化系统的Ubuntu  。
 
配置Redis密码
 
sudo nano /etc/redis/redis.conf
滚动到该 SECURITY 部分,然后找到注释的指令requirepass
 
删除 #,然后更改 foobared 为安全密码:(行号:507)
 
删除并将foobared更改为安全密码
删除并将foobared更改为安全密码
设置密码后,保存并关闭文件,然后重新启动Redis
 
sudo systemctl restart redis.service
使用以下命令检查Redis是否正常工作?
 
sudo systemctl status redis
检查Redis是否正常工作
检查Redis是否正常工作
安装Composer 2
下载并安装Composer 2
 
cd ~
curl -sS https://getcomposer.org/installer -o composer-setup.php
要进行composer 全局安装 ,请使用以下命令,该命令将下载和安装Composer作为名为的系统级命令 composer,位于下 /usr/local/bin:
 
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer --version=1.10.16
检查Composer 2是否已在Ubuntu中安装?
 
composer
在Ubuntu 20.04上安装Composer的步骤
在Ubuntu 20.04上安装Composer的步骤
大!最后,我们准备安装Magento 2.4
 
获取您的身份验证密钥
登录到Magento市场(https://marketplace.magento.com)
转到我的个人资料>访问密钥页面(https://marketplace.magento.com/customer/accessKeys/)
获取身份验证密钥以在Ubuntu 20.04上安装Magento 2
获取身份验证密钥以在Ubuntu 20.04上安装Magento 2.4.1
单击创建新的访问密钥按钮
输入密钥名称并生成
获取Magento 2.4.x metapackage
转到根文件夹并执行以下命令以更改权限。
cd /var/www/html
sudo chown -R $USER:$USER /var/www/html
使用magento2目录上的Magento开源或Magento Commerce元包创建一个新的Composer项目。如果需要,可以根据以下命令中的要求更改目录名称。
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento2
在Ubuntu 20.04上安装Magento 2.4.x 1
在Ubuntu 20.04上安装Magento 2.4.1
设置虚拟主机
创建虚拟主机配置文件
 
sudo nano /etc/apache2/sites-available/your_domain.conf
如下更新/etc/apache2/sites-available/your_domain.conf文件,并确保your-domain使用您的实际域名进行更改
 
<VirtualHost *:80>
    ServerName your-domain
    ServerAlias www.your-domain 
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/magento2
 
    <Directory /var/www/html/magento2/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
 
 
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
激活您的虚拟主机配置文件,并禁用000默认主机conf文件,以避免冲突。
 
sudo a2ensite your_domain
sudo a2dissite 000-default
重新加载Apache,以使更改生效:
 
sudo systemctl reload apache2
更新Magento 2.4.x的目录和文件权限
设置读写权限,以便命令行可以将文件写入Magento 2文件系统。
 
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 {} +
sudo chown -R :www-data . 
sudo chmod u+x bin/magento
安装Magento 2.4.1
在撰写本文时,magento的当前版本为2.4.1。因此,我们将在Ubuntu 20.04 LTS上安装Magento 2.4.1。
 
本教程假定:
 
域名是http:// localhost
域根目录是/ var / www / html / magento2
数据库主机位于同一台计算机上(localhost)
数据库名称是magento 2
数据库用户是magento 2
数据库密码为admin
因此,请确保根据您的要求更新这些值。
 
转到域根目录:
 
cd /var/www/html/magento2
执行以下命令:
 
bin/magento setup:install \
--base-url=http://localhost \
--db-host=localhost \
--db-name=magento2 \
--db-user=magento2 \
--db-password=admin \
--admin-firstname=Admin \
--admin-lastname=Admin \
--admin-email=admin@admin.com \
--admin-user=admin \
--admin-password=admin123 \
--language=en_US \
--currency=USD \
--timezone=America/Chicago \
--use-rewrites=1
一旦执行上述命令,它应该成功安装Magento 2.4.1
 
在Ubuntu 20.04上安装Magento 2.4.1
在Ubuntu 20.04上安装Magento 2.4.1
设置Google身份验证器以进行两因素验证
以下是初始安装Magento 2.4.1时设置2FA或修复两因素身份验证问题的步骤
 
选择Google Authenticator作为2FA提供者:
bin/magento config:set twofactorauth/general/force_providers google
将窗口的生存期增加到60秒,以防止令牌过期。
bin/magento config:set twofactorauth/google/otp_window 60
为共享机密值生成Base32编码的字符串
例如,secretkey1 使用在线[Base32 Encode] [13]工具(https://cryptii.com/pipes/base32)对字符串 进行编码将返回value  ONSWG4TFORVWK6JR。
 
请确保按照以下命令中的密钥更改ONSWG4TFORVWK6JR字符串
 
将编码的共享机密添加到Google Authenticator。
bin/magento security:tfa:google:set-secret admin ONSWG4TFORVWK6JR
在Magento 2中设置Google身份验证器以进行两因素身份验证1
在Magento 2中设置Google身份验证器以进行两因素身份验证1
在您的手机上打开Goog​​le Authenticator应用程序并添加新的密钥ONSWG4TFORVWK6JR
添加密钥后,您将在应用程序中看到Authenticator代码。复制该身份验证器代码,并使用它登录magento 2管理面板。
magento 2.4中的两因素身份验证
magento 2.4中的两因素身份验证
屏幕截图8
Magento 2管理面板
Magento 2前端
Magento 2前端
在Magento 2.4中禁用Magento_TwoFactorAuth模块
Magento 2.4.1中的两因素身份验证问题
Magento 2.4.1中的两因素身份验证问题
如果要在本地系统上安装magento2或希望快速访问,可以执行以下命令以禁用magento 2.4.1中的Magento_TwoFactorAuth模块
 
sudo bin/magento module:disable Magento_TwoFactorAuth
在Magento 2.4中禁用两因素身份验证
在Magento 2.4中禁用两因素身份验证
如果要启用Magento_TwoFactorAuth模块,可以使用以下命令
 
sudo bin/magento module:enable Magento_TwoFactorAuth
我希望您能够在本指南中安装Magento 2.4。如果您在使用本指南进行安装时遇到任何问题,请在下面的评论中让我知道。
我要咨询做网站
成功案例
建站流程
  • 网站需
    求分析
  • 网站策
    划方案
  • 页面风
    格设计
  • 程序设
    计研发
  • 资料录
    入优化
  • 确认交
    付使用
  • 后续跟
    踪服务
  • 13580328252
    400-888-9988
Hi,Are you ready?
准备好开始了吗?
那就与我们取得联系吧

咨询送礼现在提交,将获得微互媒网络策划专家免费为您制作
价值5880元《全网营销方案+优化视频教程》一份!
下单送礼感恩七周年,新老用户下单即送创业型空间+域名等大礼
24小时免费咨询热线13580328252
合作意向表
您需要的服务
您最关注的地方
预算
  • 看不清?点击更换

直接咨询