宝塔面板安装Magento 2.4.2-p1 详细教程
来自一位群友的分享,他因为忙没时间发表,就由我代劳。他发了一些资料给我整理。感谢这位群友的无私分享。
基本情况
- 系统:CentOS-8.3.2011-x86_64-dvd1 6核 6G
- 软件:宝塔面板(BT) + OneinStack
BT 用于上传文件 运行SSH
OneinStack 用于LNMP
已知变量
1,magento密钥(下面的是假设的,你改成你自己的)
Public Key: c6a9870140f0f7bd66ceffcbbc07xxxx
Private Key: 6a5f67fb6b2bf41928534fe6be8cxxxx
2,网站域名
shop.magentotest.com
步骤1-环境安装LNMP
BT安装
cd /root yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
安装完成后,会显示相关的url和端口等信息。
更改端口 用户 密码
比如
http://192.168.88.123:55567/123abc
username: xxxx
password: xxxx

OneinStack 安装
下载 解压
cd /root yum -y install wget screen wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz tar xzf oneinstack-full.tar.gz
准备 安装
cd oneinstack cd /root/oneinstack ./install.sh
安装选项
ssh22开始
Enter 回车
n
y
1
n
5
y
1
ffed644e4f969bcf
1
y
9
y
1
4 6 11
y
y
y
n
漫长的等待
步骤2-添加虚拟主机
cd oneinstack cd /root/oneinstack ./vhost.sh 1 3 shop.magentotest.com Enter 回车 n n y magento2 y
修改php.ini
vi 修改 /usr/local/php/etc/php.ini
和 /usr/local/php/etc/php.d/ext-*.ini
找到并修改下列的参数
- memory_limit = 384M
- memory_limit = 4G
- opcache.memory_consumption=384
- opcache.memory_consumption=4G
- realpath_cache_size=10M
- realpath_cache_ttl=7200
- max_input_vars = 6000
php.ini要去掉的函数
- putenv
- proc_open
- shell_exec
- exec
- proc_get_status
查看PHP已经安装扩展
php -m
修改/usr/local/php/etc/02-opcache.ini
;opcache.save_comments=0 取消注释 opcache.save_comments=1
相关命令
Nginx/Tengine/OpenResty:
service nginx {start|stop|status|restart|reload|configtest}
MySQL/MariaDB/Percona:
service mysqld {start|stop|restart|reload|status}
PHP:
service php-fpm {start|stop|restart|reload|status}
service php-fpm restart
service php-fpm stop
service php-fpm start
步骤3-安装Elasticsearch
安装Java软件开发套件(JDK)
cd /root java -version
在CentOS上安装JDK
yum -y install java-1.8.0-openjdk
Magento2.4 安装elasticsearch7 BlizzardWu
1.下载安装
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.1-x86_64.rpm sudo rpm --install elasticsearch-7.9.1-x86_64.rpm
视安装位置而定
cd /etc/elasiticsearch cd /etc/elasticsearch sudo chkconfig --add elasticsearch sudo -i service elasticsearch start sudo -i service elasticsearch stop sudo /bin/systemctl daemon-reload sudo /bin/systemctl enable elasticsearch.service sudo systemctl start elasticsearch.service sudo systemctl stop elasticsearch.service sudo systemctl start elasticsearch.service
2.打开9200 端口
3.测试下面地址:
curl -X GET "localhost:9200/?pretty"
4.输出结果
{
"name" : "iZ8vbe999w4lcg8sc7qm78Z",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "B3VcAesAR224khl43VRKpQ",
"version" : {
"number" : "7.9.1",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "083627f112ba94dffc1232e8b42b73492789ef91",
"build_date" : "2020-09-01T21:22:21.964974Z",
"build_snapshot" : false,
"lucene_version" : "8.6.2",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
5,通用检验是否安装成功:
curl 127.0.0.1:9200
成功返回如下:
{
"name" : "iZj6c5w0d1f4ltvrd3ukfrZ",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "9NRUr8r-QRSOZ_6b2Eli2w",
"version" : {
"number" : "7.9.1",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "083627f112ba94dffc1232e8b42b73492789ef91",
"build_date" : "2020-09-01T21:22:21.964974Z",
"build_snapshot" : false,
"lucene_version" : "8.6.2",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
失败返回如下:
curl: (7) Failed connect to 127.0.0.1:9200; 拒绝连接
解决:
sudo sysctl -w vm.max_map_count=262144
成功的话可以忽视 继续安装
步骤4-安装配置Composer
omposer是一个PHP包管理和包依赖管理的工具。请按以下步骤安装配置Composer。
运行以下命令安装Composer。
curl -sS https://getcomposer.org/installer | php
运行以下命令配置Composer全局使用。
mv /root/composer.phar /usr/bin/composer
运行命令composer -v查看Composer版本。
返回结果如下,表示Composer安装成功。
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 1.8.5 2019-04-09 17:46:47
步骤5-安装Magento2.4
切换用户
su root
密码
或关闭重开ssh 有需要的话
cd /data/wwwroot/shop.magentotest.com ll
OneinStack目录
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition /data/wwwroot/shop.magentotest.com
BT目录
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition /www/wwwroot/shop.magentotest.com
等待下载完
cd /www/wwwroot/shop.magentotest.com
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
有了宝塔这里就不用了 直接改权限
期待没有报错 一直走完
bin/magento setup:install \ --base-url=http://shop.magentotest.com \ --db-host=localhost \ --db-name=magento \ --db-user=root \ --db-password=ffed644e4f969bcf \ --admin-firstname=M \ --admin-lastname=eCBAY \ --admin-email=mecbay@msn.com \ --admin-user=admecbay \ --admin-password=mecbay555 \ --language=en_US \ --currency=USD \ --timezone=America/Chicago \ --use-rewrites=1 \ --search-engine=elasticsearch7 \ --elasticsearch-host=localhost \ --elasticsearch-port=9200
一切只为这一刻 还不错
设置后台管理路径
php bin/magento setup:config:set --backend-frontname="admec"
装完了看首页 再改权限
OneinStack目录
chmod -R 777 /data/wwwroot/shop.magentotest.com/* chown -R www.www /data/wwwroot/shop.magentotest.com
BT目录
chmod -R 777 /www/wwwroot/shop.magentotest.com/* chown -R www.www /www/wwwroot/shop.magentotest.com
常用命令
更新(如有安装新模块可以运行)
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
————————————————
后台登录报 TwoFactorAuth,解决办法:
bin/magento module:disable Magento_TwoFactorAuth
步骤6-POERTO模板安装
上传模板 快速安装包等 解压覆盖
1 Theme Files 上传解压缩
2 Activate SW Extensions, open command line in folder root of magento and run commands via ssh using putty or others, php bin/magento setup:upgrade.
Module 'Mageplaza_Core' from '/data/wwwroot/shop.magentotest.com/app/code/Mageplaza/Core' has been already defined in '/data/wwwroot/www.123abc.com/vendor/mageplaza/module-core'
Solution
Step 1: You should DELETE Core module from
app/code/Mageplaza/Core
vendor/mageplaza/core-m2 (if any)
Run the following command:
composer remove mageplaza/module-core
rm -rf app/code/Mageplaza/Core
rm -rf vendor/mageplaza/module-core
composer dump-autoload
Step 2: Now install Mageplaza_Core again run upgrade command line to resolve the issue.
composer require mageplaza/module-core
php bin/magento setup:upgrade
Step 3: Check result
Check the result, if there is still an issue, feel free to leave a comment here or contact us
步骤6-语言包安装
美国、英国、中文、德语、法语、西班牙、意大利、日本
CN cn 0 CN Website Store cn_website_store CN Store View cn_store_view CN Category 2
DE de 1 DE Website Store de_website_store DE Store View de_store_view DE Category 3
ES es 2 ES Website Store es_website_store ES Store View es_store_view ES Category 4
FR fr 3 FR Website Store fr_website_store FR Store View fr_store_view FR Category 5
IT it 4 IT Website Store it_website_store IT Store View it_store_view IT Category 6
UK uk 5 UK Website Store uk_website_store UK Store View uk_store_view UK Category 7
US us 6 US Website Store us_website_store US Store View us_store_view US Category 8
XX xx 7 XX Website Store xx_website_store XX Store View xx_store_view XX Category 9
中文: https://github.com/mageplaza/magento-2-chinese-language-pack zh_Hans_CN CN
composer require mageplaza/magento-2-chinese-language-pack:dev-master
德语: https://github.com/mageplaza/magento-2-german-language-pack de_DE DE
composer require mageplaza/magento-2-german-language-pack:dev-master
西班牙: https://github.com/mageplaza/magento-2-spanish-language-pack es_ES ES
composer require mageplaza/magento-2-spanish-language-pack:dev-master
法语: https://github.com/mageplaza/magento-2-french-language-pack fr_FR FR
composer require mageplaza/magento-2-french-language-pack:dev-master
意大利: https://github.com/mageplaza/magento-2-italian-language-pack it_IT IT
composer require mageplaza/magento-2-italian-language-pack:dev-master
英语 https://github.com/mageplaza/magento-2-english-united-kingdom-language-pack en_GB UK
composer require mageplaza/magento-2-english-united-kingdom-language-pack:dev-master
英文: 自带英文 en-US US
安装中文语言包
Install Chinese pack:
composer require mageplaza/magento-2-chinese-language-pack:dev-master
php bin/magento setup:static-content:deploy zh_Hans_CN XXX
《php bin/magento setup:static-content:deploy -f en_US zh_Hans_CN》
《php bin/magento setup:static-content:deploy en_US en_GB de_DE fr_FR es_ES it_IT zh_Hans_CN -f》
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
步骤7,一些注意事项
宝塔面板 注意用伪静态 把Oneinstack中的拿过来 全拿过来
server
{
listen 80;
server_name shop.jadebay.vip;
set $MAGE_ROOT /www/wwwroot/shop.magentotest.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";
放入网站配置文件中 注意改路径
以下全是伪静态放入伪静态保持为模板
# PHP entry point for setup application
location ~* ^/setup($|/) {
宝塔nginx配置文件
server
{
listen 80;
server_name shop.magentotest.com;
set $MAGE_ROOT /www/wwwroot/shop.magentotest.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/shop.magentotest.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;
}
