Làm cách nào để đặt Chế độ nhà phát triển trong Magento 2


44

Tôi đang cố gắng cài đặt Magento 2 nhưng tôi gặp phải lỗi sau:

Đã xảy ra lỗi trong quá trình chạy ứng dụng. Không thể viết thông báo lỗi để đăng nhập. Vui lòng sử dụng chế độ nhà phát triển để xem tin nhắn.

Tôi đã thử thêm SetEnv MAGE_MODE developervào .htaccesstheo lời khuyên của Alan Storm http://magento-quickies.alanstorm.com/post/58757471044/magento-2-developer-mode nhưng không gặp may.


Bạn đang sử dụng apache hay nginx? Làm thế nào chính xác bạn đã thiết lập các biến môi trường?
dùng487772

@Tim Tôi đang sử dụng Apache. Tôi đặt nó bằng cách thêm nó vào đầu .htaccess
Paul Donnelly

Thêm cái gì? Vui lòng thêm tất cả thông tin này vào câu hỏi của bạn.
dùng487772

Bạn sẽ phải mod_envkích hoạt cho Apache và AllowOverride Ontrong cấu hình vhost của bạn .htaccessđể được phân tích cú pháp.
đánh dấu

Câu trả lời:


75

bạn có thể kích hoạt nó từ cli

bin/magento deploy:mode:set developer


30

Một cách khác, chúng ta có thể kích hoạt chế độ nhà phát triển

  • Đi app/etc/và mởenv.php
  • và thay đổi chế độ ứng dụng hiện tại bằng cách MAGE_MODE' => 'default' đểMAGE_MODE' => 'developer'

Sau đó, xin vui lòng xóa bộ nhớ cache


18

Như bạn và những người khác đã lưu ý:

SetEnv MAGE_MODE "developer"

trong tệp .htaccess của bạn sẽ cho phép chế độ nhà phát triển giả sử rằng AllowOverride All nằm trong <Directory>chỉ thị thích hợp .

Tuy nhiên, liên quan đến vấn đề ban đầu của bạn, có thể là do vấn đề quyền mà người dùng quy trình Apache không có quyền ghi vào đúng thư mục.

Để kiểm tra nhanh, bạn có thể thực hiện các thao tác sau trong thư mục Magento 2 của mình:

chmod -R a+wX var
chmod -R a+wX app/etc
chmod -R a+wX pub

Sau đó, nếu trình hướng dẫn cài đặt bật lên, bạn có thể cố gắng đảm bảo rằng bạn có quyền chính xác cho quy trình Apache của bạn trên các thư mục đó.


1
Mặc dù vẫn có thể ghi đè chế độ bằng các biến môi trường, phương thức ưa thích hiện đang sử dụng bin/magento. Xem devdocs.magento.com/guides/v2.0/config-guide/bootstrap/...devdocs.magento.com/guides/v2.0/config-guide/cli/...
Fabian Schmengler

8

Bạn đang sử dụng mod_fastcgi + php-fpm? Tôi gặp vấn đề này như trong môi trường đó. Biến môi trường đã được thêm tiền tố với "REDIRECT_".

Câu hỏi liên quan về trao đổi ngăn xếp ở đây: Apache SetEnv trả trước REDIRECT_. Đưa cái gì?

Tôi đã có thể giải quyết vấn đề này bằng cách chỉ đặt biến môi trường trong tệp cấu hình nhóm php-fpm:

env[MAGE_MODE] = developer

8

Để thay đổi chế độ magento 2.0, bạn phải chạy lệnh này php bin/magento deploy:mode:set developertrong CMD hoặc cửa sổ SSH của bạn vào thư mục gốc magento 2.0. Thêm thông tin bạn có thể tìm thấy ở đâyở đây .


5

Chuyển đến thư mục gốc magento của bạn từ dấu nhắc lệnh và thực hiện bên dưới comand:

php bin/magento deploy:mode:set developer


4

Nếu bạn đang sử dụng máy chủ web tích hợp trong PHP 5.4, bạn cần đặt ENV khi khởi động máy chủ:

MAGE_MODE=developer php -d variables_order=EGPCS -S 127.0.0.1:8080 router.php

Để biết thêm thông tin về cách sử dụng máy chủ web tích hợp của PHP 5.4, bao gồm cả thiết lập Magento 2, hãy xem đoạn ghi hình này:

http://quick.as/kkbahnlx


4

Vui lòng thử bằng cách thêm dòng sau vào tệp index.php ở tệp bắt đầu.

$_SERVER['MAGE_MODE'] = 'developer';

Hy vọng bạn sẽ thấy thông báo lỗi.


4
Tôi rất không khuyến khích chỉnh sửa các tệp cốt lõi nhưindex.php
7ochem

1
Tôi tin rằng điều này sẽ không còn tồn tại nữa, vì vậy một khi bạn thay đổi nó trên địa phương sẽ không thực sự làm quá nhiều điều xấu.
Maciej Paprocki

4

Xin chào tôi đã đọc câu hỏi của bạn và xin vui lòng xem giải pháp.

Bạn có thể đặt chế độ nhà phát triển bằng lệnh CLI và cũng theo cách thủ công

Để đặt thủ công:

mở thư mục gốc magento 2 của bạn, Mở tệp "/app/etc/env.php"và tìm kiếm "'MAGE_MODE' =>". bạn có thể thay đổi chế độ magento ở đây bằng tay.

Lệnh CLI cho chế độ sản xuất:

magento deploy:mode:set production

Lệnh CLI cho chế độ nhà phát triển:

magento deploy:mode:set developer

để biết thêm thông tin vui lòng truy cập URL dưới đây. http://php-scripts-form.blogspot.nl/2017/09/magento-2-how-to-set-production-mode.html


Làm thế nào tôi có thể thấy chế độ trước khi thay đổi nó?
Razvan Zamfir

@RazvanZamfir bạn có thể sử dụng deploy:mode:showđể xem chế độ hiện tại.
Eric Seastrand

3

Nếu bạn đang sử dụng NginX làm máy chủ web ... .htaccess sẽ không ảnh hưởng. Thay đổi Chỉ thị Máy chủ NginX sẽ cho phép chế độ nhà phát triển.

ví dụ: /etc/nginx/sites-available/m2_test.conf(Giả sử nginx được cấu hình đúng)

server {
   listen 80;
   server_name m2.test.com;
   set $MAGE_ROOT path/to/magento2;
   set $MAGE_MODE developer;
   include other/configurations/file.conf;
}

Bộ này $ MAGE_MODE sẽ bật chế độ nhà phát triển.

other / configureations / file.conf nên liên kết đến đường dẫn tệp cấu hình phải là bản sao của[MAGENTO_DOC_ROOT]/nginx.conf.sample

Như những người khác đã đề cập, php bin/magento deploy:mode:set developercũng sẽ kích hoạt nó


Tôi có phải thiết lập chế độ nhà phát triển trong cả nginx conf và từ bảng điều khiển magento không? Điều gì xảy ra nếu một người là nhà phát triển và một người sản xuất?
LucScu

3

Khi bạn thay đổi từ chế độ sản xuất sang chế độ nhà phát triển, bạn nên xóa các lớp được tạo và các thực thể Trình quản lý đối tượng như proxy để tránh các lỗi không mong muốn. Sau khi làm như vậy, bạn có thể thay đổi chế độ. Sử dụng các bước sau:

  1. Nếu bạn đang thay đổi từ chế độ sản xuất sang chế độ nhà phát triển, hãy xóa nội dung của thư mục var / Generation và var / di:

    rm -rf <your Magento install dir>/var/di/* <your Magento install dir>/var/generation/* 
  2. Đặt chế độ:

    magento deploy:mode:set developer

Thông báo sau sẽ được hiển thị

   Switched to developer mode.

0

đảm bảo cho phép

sudo chmod 777 . -R

sau đó

php bin/magento deploy:mode:set developer

nếu không thì cho phép


0

Theo DEVDOCS ở đây là giải pháp cho bạn.

Nếu bạn đang thay đổi từ Chế độ sản xuất sang Chế độ nhà phát triển, bạn phải xóa tất cả các lớp và Đối tượng được tạo.

Chạy dòng mã này trong CLI để xóa nội dung của Mã được tạo và Thư mục siêu dữ liệu được tạo.

$rm rf <magento_root>/ generated/metadata/* <magento_root>/generated/code/*

Để đặt Chế độ-

$bin / magento deploy : mode : set developer

Sau khi chạy lệnh này, nó sẽ hiển thị một thông báo về Bật chế độ nhà phát triển

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.