2020-05-14安装magento遇到的坑及解决办法

magento据说是一个很强大很成熟的电商系统,只不过我安装的过程中遇到的坑兼职太多了,而且网上几乎很难搜到什么资料。

1.下载安装包后进入目录,提示:

Vendor autoload is not found. 

Please run ‘composer install’ under application root directory.

好吧,根据提示到网站根目录里面去composer install,结果提示:

Loading composer repositories with package informationInstalling dependencies (including require-dev) from lock filePackage operations: 175 installs, 0 updates, 0 removals

Installing magento/magento-composer-installer (0.1.13): Loading from cache

Plugin installation failed, rolling backRemoving magento/magento-composer-installer (0.1.13)

[RuntimeException]Could not delete /home/magento/site/vendor/magento/magento-composer-installer/src/MagentoHackathon:

install [–prefer-source] [–prefer-dist] [–dry-run] [–dev] [–no-dev] [–no-custom-installers] [–no-autoloader] [–no-scripts] [–no-progress] [–no-suggest] [-v|vv|vvv|–verbose] [-o|–optimize-autoloader] [-a|–classmap-authoritative] [–apcu-autoloader] [–ignore-platform-reqs] [–] []…

这个提示大致意思是说安装某个插件失败了,系统需要回滚,毕竟composer在墙内用速度实在太慢,经常断线,没点耐心的话安装失败也很正常,系统回滚时无法删除已建立的文件导致该错误

手动删除文件依然失败,猜测是不是有别的进程正在占用,lsof之后发现了git,于是

ps ax|grep git

kill掉所有git进程,再次运行composer install即可

但是由于需要安装的插件太多,composer install的过程中肯定还会失败,所以可能需要反复执行上面的操作

2.composer install执行完毕,进入/setup目录,页面无法正常载入,打开控制台,提示:

/setup/index.php/navigation

/setup/index.php/navigation/side-menu

/setup/index.php/navigation/header-bar

/setup/index.php/session/prolong

这几个文件404 not found

一开始看到index.php后面还接了路径,以为是路由解析的问题,搜了半天也没找到答案,后来看到这个帖子:https://github.com/magento/magento2/issues/2504,说是配置nginx.conf解决,但是我配置之后也没什么用,最后在日志里发现404是因为upstream配置错误,没有找到sock文件,学习了一下关于upstream的概念之后,果断把它改成127.0.0.1:9000,再次访问则恢复正常

也不知道为什么网上有人说要把upstream配置成php-fpm.sock,我搜了根本就没找到这个文件,或许是php的版本和安装方式的问题?

3.系统检车过程中提示mysql版本太低,这个直接更新版本不解释

4.系统检测完毕,开始安装时提示安装失败,打开控制台一看,提示POST的地址404 not found,可是这个地址直接访问又没问题。打开nginx错误日志发现问题源头:client_body_temp/000000001" failed (13: Permission denied),搜了搜,大概意思是nginx对于post的数据过大时,会将其临时存放在一个文件里,这里的意思就是说临时文件不可写导致安装失败。网上搜到的答案都是给nginx用root的权限来执行,可是这样的话风险也太大了,后来找了找,发现一个稍微安全也算是靠谱的方法:在nginx.conf中加上这句:

client_body_temp_path /spool/nginx/client_temp 3 2;

意思是手动指定临时文件存放位置,当然要记得新建这个目录并且更改所有者为nginx,保证nginx的写权限

5.安装过程大约一半时,提示

magento\eav\model\entity\attribute\exception: warning: sessionhandler::read(): open(/var/opt/remi/php73/lib/php/session/sess_nnj7n1nqqpgu5t27ss1prg98i4, o_rdwr) failed: permission denied

根据github的提示,更改/var/opt/remi/php73/lib/php/session的写权限

6.安装完毕进入首页后,发现页面载入不全,打开控制台发现几乎所有的静态文件(js,css,woff2)全部载入失败404,根据路径查看,中间有个version1589*******的文件夹,而本地根本没有搜到。

网上查了查,这是nginx配置中的rewrite项配置不正确造成的,根据magento提供的nginx.conf.sample,把里面的配置抄过来也不行,查看nginx日志发现:

FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream

嗯,这是一个非常著名的错误,检查了conf文件,发现magento自带的sample里面已经包含了php的解析,而我自己又多写了一个,所以把自己的全部注释掉,再次运行,发现访问的文件仍然出错,但是上面的错误消失了,新出现的错误是No such file or directory

打开sample文件仔细研究,以我小白的眼光看来,感觉里面对于目录的管理非常乱,例如root定义为$MAGE_ROOT/pub,那么我直接访问域名,竟然进入的是pub文件夹中的index.php?又例如/pub/和/static/明明是嵌套关系,但却写成了平级。耐着性子把root改为magento的根目录,又把像static,media这类的文件夹解析路径和rewrite统统加上/pub/,再次访问提示access forbidden by rule

本来觉得应该还是路径匹配的问题,网上搜了搜,找到此贴:

https://stackoverrun.com/cn/q/9382389

根据贴中提示进行操作:

php bin/magento setup:static-content:deploy

之后再pub/static目录中能找到各种静态文件,但前端仍然无法加载,直接根据路径访问静态文件提示404,但是把路径中的pub去掉则顺利访问,所以为什么首页会请求pub路径的文件而不是直接请求static目录呢?

再次搜索找到页面:

根据文章内容,对数据库执行命令:

insert core_config_data (config_id, scope, scope_id, path, value) values (null, 'default', 0, 'dev/static/sign', 0);

再次运行

php bin/magento setup:static-content:deploy

php bin/magento indexer:reindex

删除/var/cache目录下的所有文件

访问主页,一切正常

7.访问速度慢

不能说是慢,而应该说是极慢极慢,超级无敌宇宙级霹雳无比的慢,刚刚安装好的网站,加载个首页、后台登陆页,要近一分钟???谁会有这样的耐心?并且CPU占用极高,弄得我本本都发烫。

搜到帖子https://magento.stackexchange.com/questions/150073/why-is-magento-2-local-developer-mode-site-with-nginx-and-xdebug-enabled-is-supe#comment204846_150073

说是要关闭js 和 css 的 merge 功能,原文说的是要disable merging,可是这里选项的默认值就是no,干嘛还需要disable,还是说我的英文太差了没理解这个意思,反正我不管设置为No,还是Yes,都没有明显效果,并且当js的几项选为yes之后,页面开始报错,刷新居然加载不出来了!!!OH MY GOD

算了先不管了,明天继续弄

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342