我无法删除Magento 2.2.6中生成的文件夹/代码

时间:2018-10-04 10:42:03

标签: php magento magento2 magento2.2

我将Docker用于我的项目。在安装带有示例数据的2.2.6软件包之后,当我执行php bin/magento cache:clean

时,会出现如下问题
  

无法删除文件“ /var/www/html/src/generated/code/Magento/Backend/App/Request/PathInfoProcessor/Proxy.php”警告!unlink(/ var / www / html / src / genic /code/Magento/Backend/App/Request/PathInfoProcessor/Proxy.php):   没有这样的文件或目录

generated/code文件夹无法删除,我必须重新启动计算机,然后它才能删除该文件夹

我使用php 7.1.22,percona 5.6.39和docker版本18.06.1-ce-win73(19507)

6 个答案:

答案 0 :(得分:2)

这是由于对项目文件夹和文件的权限不足而引起的。如果将Apache用作Web服务器,则www-data也必须是项目的所有者。 请执行以下命令:-

  • sudo chown -R www-data:www-data [ magento目录的路径]
  • 导航到magento项目find的根。
  • 键入f -exec chmod 644 {} \;
  • 查找。类型d -exec chmod 755 {} \;
  • 查找./var -type d -exec chmod 777 {} \;
  • 找到./pub/media -type d -exec chmod 777 {} \;
  • 找到./pub/static -d d -exec chmod 777 {} \;
  • chmod 777 ./app/etc
  • chmod 644 ./app/etc / *。xml
  • chmod u + x bin / magento

答案 1 :(得分:1)

您是否尝试过更改var,pub和生成的文件夹的权限。我建议您授予他们权限,然后尝试执行cache clean命令。

$ sudo chmod -R 777 var/ pub/ generated/

谢谢 希望对您有帮助!

答案 2 :(得分:1)

从Docker容器的命令行安装magento 2解决了在Windows中为我写权限的问题

您可能需要调整参数:

bin/magento setup:install --base-url=http://local.shop.magento2.com \
--db-host=db_magento2 --db-name=magento --db-user=magento --db-password=magento \
--admin-firstname=magento --admin-lastname=magento --admin-email=user@example.com \
--admin-user=admin --admin-password=admin123 --language=en_US \
--currency=USD --timezone=Europe/Madrid --use-rewrites=1

答案 3 :(得分:0)

以防万一有人偶然发现: 将以下内容添加到您的docker文件中

RUN echo "root:root" | chpasswd

这将允许您切换到root并运行chown

su root
password:root
chown -R user:group /folder

答案 4 :(得分:0)

对于提供帮助的人来说,一个重要的躁狂症是认为所有系统都是相同的。

只要有条件,www-data就是用户,许多条件是无法满足的,因为他们更喜欢使用nginx + php-fpm而不是通才模型。

该模型中包含的其他时间不是运行Appache,nginx的用户,或者最终运行php的用户是www-data。

最正确的答案不是:

  • 将整个magento文件夹的所有者更改为www-data
  • 均未授予权限777,这是网络中所有畸变中最常见的。

Lo mascorrectosería

  1. 谁执行您在magento目录中编写的过程?
  2. PHP以用户身份还是全局身份进行写入?
  3. 我已经查阅了php(php,php-fpm等)的配置,以验证哪个用户执行了该操作?

一旦有了这些数据,便可以执行

<%
jspContext.setAttribute("CONSTANT_NAME", InterfaceName.CONSTANT_NAME);
%>

停止关注那些总是写chmod -R 777的人

或者有一天,他们会以正常的方式在没有站点的情况下醒来,但是充满了难以治愈的感染。

答案 5 :(得分:-1)

here所示,只需尝试php bin / magento setup:static-content:deploy,然后再次运行php bin / magento setup:di:compile即可。