使用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
在您的手机上打开Google 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。如果您在使用本指南进行安装时遇到任何问题,请在下面的评论中让我知道。