阅读之前先说明,由于magento系统安装特性,纯宝塔面板操作还是不能实现安装,需要搭配一些安装命令。对不懂技术的人,稍微研究一下还是能安装成功的。本人就是小白一个。
Magento官方安装文档
官方文档:https://experienceleague.adobe.com/docs/commerce-operations/installation-guide/system-requirements.html?lang=zh-Hans
安装之前先把本文章阅读完,避免安装中出现别的问题
第一,安装宝塔面板
安装方法就忽略了,具体看官方文档。
第二,Magento安装环境要求
第三,安装nginx 2.18 和Mysql8.0,安装PHP 8.1

1.修改配置:找到并修改下列的参数(去掉前面的;号)文件(php.ini)
memory_limit = 4G
opcache.memory_consumption=4G
realpath_cache_size=10M
realpath_cache_ttl=7200
max_input_vars = 6000

2.禁用函数:(php.ini)要删除的函数
putenv
proc_open
shell_exec
exec
proc_get_status

3.安装扩展:根据官方要求安装PHP扩展
这里安装fileinfo、intl、xsl

第四.安装Elasticsearch8
官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/8.4/targz.html
运行es需要java的环境,从软件商店安装“Java项目一键部署”
据说新版es内置java环境,但没有测试。
使用终端命令查看版本号是否满足要求:
java -version
使用文件管理器进入根目录,下载elasticsearch8上传或者远程下载需要的版本
https://www.elastic.co/cn/downloads/elasticsearch
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.4.3-linux-x86_64.tar.gz
把下载好的文件进行解压Elasticsearch-8.4.3
面板安全防火墙放行9200端口
//需要修改的文件
修改linux 内核参数
修改/etc/security/limits.conf 增加下面内容
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 131072
修改/etc/sysctl.conf 增加下面内容
vm.max_map_count=655360
然后执行命令,使配置生效
sysctl -p
修改Elasticsearch-8.4.3 内核参数
/config/elasticsearch.yml 修改或者取消注释
启动前:
cluster.name: my-application
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
启动后:
xpack.security.enabled: false
xpack.security.enrollment.enabled: false
因为es不能使用root运行,需要使用面板自动“终端”新建一个用户组
用户名es 密码:123
//创建用户组
groupadd esgroup
//创建用户
useradd -g esgroup esuser
//设置权限
chown -R esuser:esgroup /Elasticsearch-8.4.3
//设置密码
passwd esuser
//切换用户
su esuser
//进入目录
cd elasticsearch-8.4.3/
//启动前一定要修改前面的设置,不然出错,下面2个启动命令用法不同。
//启动es
./bin/elasticsearch
//后台启动es
./bin/elasticsearch -d -p pid
注意:
启动报错
1)没必要地图数据报错
解决:
因为他启动时会去更新地图的一些数据库,这里直接禁掉即可,用到时再说,配置文件conf/elasticsearch.yml,增加配置
ingest.geoip.downloader.enabled: false
2)访问http://127.0.0.1:9200没返回结果,可能是ssl验证,没必要可以值都设为false,路径conf/elasticsearch.yml
xpack.security.enabled: false
xpack.security.enrollment.enabled: false
3)若内存爆满,可以改配置文件conf/jvm.options
增加
-Xms1g
-Xmx1g
按自己需求更改即可
直接访问测试
http://ip:9200
浏览器返回例如
{
"name" : "vmi1104570.contaboserver.net",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "iRoi_AZ9TWq5OXrRRXQ-9g",
"version" : {
"number" : "8.4.3",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "42f05b9372a9a4a470db3b52817899b99a76ee73",
"build_date" : "2022-10-04T07:17:24.662462378Z",
"build_snapshot" : false,
"lucene_version" : "9.3.0",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "You Know, for Search"
}
第五,添加站点
例如www.baidu.com(实际操作要更换成自己的域名,下同)
打开设置,升级Composer版本

运行命令查看Composer版本。
composer -v
返回结果如下,表示Composer安装成功。
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 1.8.5 2019-04-09 17:46:47
第六,安装Magento
第一次安装会提示输入验证信息
Access Key获得方式:
1.打开https://marketplace.magento.com
2.注册账号这里就不说明了
3.打开My Profile
4.打开Access Keys
5.点击Create A New Access Key 创建key
6.输入名称
这里的Public Key 是Username, Private Key 是 Password
切换用户
su root
运行命令,文件夹要替换成自己的,并把目录清空。
composer create-project --repository=https://repo.magento.com/ magento/project-community-edition /www/wwwroot/www.baidu.com
用宝塔直接改www.baidu.com文件夹权限 www 777
期待没有报错 一直走完
导入magento 数据库,数据库用户名,密码,邮箱,后代用户名和密码,要根据自己的更改。确定es8已运行。
bin/magento setup:install \
--base-url=http://www.baidu.com \
--db-host=localhost \
--db-name=magento \
--db-user=root \
--db-password=ffed644e4f969bcf \
--admin-firstname=M \
--admin-lastname=eCBAY \
--admin-email=邮箱 \
--admin-user=后台用户名 \
--admin-password=后台用户名密码 \
--language=en_US \
--currency=USD \
--timezone=America/Chicago \
--use-rewrites=1 \
--search-engine=elasticsearch8 \
--elasticsearch-host=localhost \
--elasticsearch-port=9200
装完成记录后台地址
最后运行中出现的问题可以对照下面的命令
//更新(如有安装新模块可以运行)
php bin/magento setup:upgrade
//部署静态视图文件
php bin/magento setup:static-content:deploy -f
//清除缓存
php bin/magento cache:clean
//刷新缓存
php bin/magento cache:flush
//刷新全部索引
php bin/magento indexer:reindex
//magento后台登录强制开启二次验证需要关掉
//进入bin目录下
php magento maintenance:enable 开始维护模式
./magento module:disable Magento_AdminAdobeImsTwoFactorAuth
./magento module:disable Magento_TwoFactorAuth
./magento cache:flush
./magento maintenance:disable 关闭维护模式
#查看模块 php bin/magento module:status
#开启模块 php bin/magento module:enable
#关闭模块 php bin/magento module:disable
页面出现缓存文件报错 修改目录文件权限为777
更换模板:
上传app 和 pub文件
//升级:
php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy -f
php bin/magento indexer:reindex
第七,语言包安装
安装中文语言包
https://www.mageplaza.com/magento-2-chinese-language-pack.html
Install Chinese pack:
composer require mageplaza/magento-2-chinese-language-pack:dev-master
php bin/magento setup:static-content:deploy zh_Hans_CN -f
php bin/magento setup:static-content:deploy -f
php bin/magento indexer:reindex
php bin/magento cache:clean
php bin/magento cache:flush
php bin/magento cron:run
Update Chinese pack:
composer update mageplaza/magento-2-chinese-language-pack:dev-master
php bin/magento setup:static-content:deploy zh_Hans_CN -f
php bin/magento indexer:reindex
php bin/magento cache:clean
php bin/magento cache:flush
问题,
浏览器打开出现
Fatal error: Uncaught Zend_Cache_Exception
是因为安装文件夹权限,更新网站目录权限。
步骤八,一些注意事项
宝塔面板 注意用伪静态
宝塔www.baidu.com的nginx配置文件,有3处需要更换自己域名
server
{
listen 80;
server_name www.baidu.com;
set $MAGE_ROOT /www/wwwroot/www.baidu.com;
root $MAGE_ROOT/pub;
index index.php;
autoindex off;
charset UTF-8;
error_page 404 403 /errors/404.php;
#add_header "X-UA-Compatible" "IE=Edge";
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
#SSL-END
#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
#error_page 404 /404.html;
#error_page 502 /502.html;
#ERROR-PAGE-END
#PHP-INFO-START PHP引用配置,可以注释或修改
include enable-php-74.conf;
#PHP-INFO-END
#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
include /www/server/panel/vhost/rewrite/www.baidu.com.conf;
#REWRITE-END
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log /dev/null;
access_log /dev/null;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log /dev/null;
access_log /dev/null;
}
access_log /www/wwwlogs/shop.magentotest.com.log;
error_log /www/wwwlogs/shop.magentotest.com.error.log;
}
宝塔伪静态文件
# PHP entry point for setup application
location ~* ^/setup($|/) {
root $MAGE_ROOT;
location ~ ^/setup/index.php {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ ^/setup/(?!pub/). {
deny all;
}
location ~ ^/setup/pub/ {
add_header X-Frame-Options "SAMEORIGIN";
}
}
# PHP entry point for update application
location ~* ^/update($|/) {
root $MAGE_ROOT;
location ~ ^/update/index.php {
fastcgi_split_path_info ^(/update/index.php)(/.+)$;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
}
# Deny everything but index.php
location ~ ^/update/(?!pub/). {
deny all;
}
location ~ ^/update/pub/ {
add_header X-Frame-Options "SAMEORIGIN";
}
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location /pub/ {
location ~ ^/pub/media/(downloadable|customer|import|theme_customization/.*\.xml) {
deny all;
}
alias $MAGE_ROOT/pub/;
add_header X-Frame-Options "SAMEORIGIN";
}
location /static/ {
# Uncomment the following line in production mode
# expires max;
# Remove signature of the static files that is used to overcome the browser cache
location ~ ^/static/version {
rewrite ^/static/(version\d*/)?(.*)$ /static/$2 last;
}
location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
add_header Cache-Control "public";
add_header X-Frame-Options "SAMEORIGIN";
expires +1y;
if (!-f $request_filename) {
rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
}
}
location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
add_header Cache-Control "no-store";
add_header X-Frame-Options "SAMEORIGIN";
expires off;
if (!-f $request_filename) {
rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
}
}
if (!-f $request_filename) {
rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
}
add_header X-Frame-Options "SAMEORIGIN";
}
location /media/ {
try_files $uri $uri/ /get.php?$args;
location ~ ^/media/theme_customization/.*\.xml {
deny all;
}
location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
add_header Cache-Control "public";
add_header X-Frame-Options "SAMEORIGIN";
expires +1y;
try_files $uri $uri/ /get.php?$args;
}
location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
add_header Cache-Control "no-store";
add_header X-Frame-Options "SAMEORIGIN";
expires off;
try_files $uri $uri/ /get.php?$args;
}
add_header X-Frame-Options "SAMEORIGIN";
}
location /media/customer/ {
deny all;
}
location /media/downloadable/ {
deny all;
}
location /media/import/ {
deny all;
}
# PHP entry point for main application
location ~ (index|get|static|report|404|503)\.php$ {
try_files $uri =404;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_buffers 1024 4k;
fastcgi_param PHP_FLAG "session.auto_start=off \n suhosin.session.cryptua=off";
fastcgi_param PHP_VALUE "memory_limit=768M \n max_execution_time=600";
fastcgi_read_timeout 600s;
fastcgi_connect_timeout 600s;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
gzip on;
gzip_disable "msie6";
gzip_comp_level 6;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_proxied any;
gzip_types
text/plain
text/css
text/js
text/xml
text/javascript
application/javascript
application/x-javascript
application/json
application/xml
application/xml+rss
image/svg+xml;
gzip_vary on;
# Banned locations (only reached if the earlier PHP entry point regexes don't match)
location ~* (\.php$|\.htaccess$|\.git) {
deny all;
}
打开浏览器输入域名返回

安装成功了,到此结束,希望你安装成功,如果转载请表明来源
参考文档:
https://blog.csdn.net/Sakitam1852/article/details/129707957
https://bbs.mallol.cn/pagoda-panel-installation-magento-2-4-2-p1-detailed-tutorial/
https://huaweicloud.csdn.net/637f790bdacf622b8df853ec.html
评论前必须登录!
注册