有很多人朋友说安装插件老出问题,不知道怎么安装才是最科学的方式。
我在此解读下。
插件有2种安装方式
这是我们最常用的安装方式,你网站买的或者下载插件都要解压安装。
解压后 都安装到app/code/
目录下。
比如mageplaza magento-2-social-login插件。
https://github.com/mageplaza/magento-2-social-login
可以手动下载源码包,然后解压到app/code
目录
我们先查看他的registration.php
文件
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Mageplaza_SocialLogin',
__DIR__
);
插件包名为Mageplaza
,插件名为SocialLogin
。
所以安装目录为app/code/Mageplaza/SocialLogin/
把插件的代码解压到app/code/Mageplaza/SocialLogin/
里就行。
另外有些收费的插件,很正规,目录也很正规,带完整的目录结构, 插件解压后带有app/
目录,那么这个就不需要看registration.php
文件了,直接在项目根目录解压就行。
插件安装进去后,就需要启用该插件了,默认是禁用的。
php bin/magento module:status
...
List of disabled modules:
Mageplaza_SocialLogin
会发现我们的插件是被禁用的。
如果没有看到你的插件的话,说明你插件没有安装正确,安装目录不对,系统没识别到。
php bin/magento module:enable --clear-static-content Mageplaza_SocialLogin
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento cache:clean
php bin/magento cache:flush
php bin/magento setup:static-content:deploy -f
这是我们经常会遇到的安装方式,一般用来安装开源的插件。
会自动安装到vendor/
目录下。
比如mageplaza core插件。
https://github.com/mageplaza/module-core
插件官方给的文档推荐这样安装
composer require mageplaza/module-core
他会自动下载源代码并安装到vendor/mageplaza/module-core
下面。
php bin/magento module:status
...
List of disabled modules:
Package_XXX
会发现我们的插件是被禁用的。
如果没有看到你的插件的话,说明你插件没有安装正确,安装目录不对,系统没识别到。
php bin/magento module:enable --clear-static-content Package_XXX
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento cache:clean
php bin/magento cache:flush
php bin/magento setup:static-content:deploy -f
如果还报[RuntimeException]
这样的错误,说明是代码缓存原因,需要执行更新系统的那些命令
php bin/magento maintenance:enable
rm -rf var/di/* && rm -rf var/generation/* && rm -rf var/cache/* && rm -rf var/page_cache/* && rm -rf var/view_preprocessed/* && rm -rf pub/static/* && rm -rf generated/* && mkdir var/di
php bin/magento setup:upgrade && php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy -f && php bin/magento indexer:reindex && php bin/magento maintenance:disable && php bin/magento cache:clean && php bin/magento cache:flush