Сторінка 27 - Блог
- 2 хв читання
Якщо ви вирішили поповнити словниковий запас англійських слів, та ще й працюєте з Magento 2 цей список можливо стане вам у пригоді. Віримо що чимало слів вам уже знайомі, але якісь точно будуть новими. Ми не надаємо їх перекладу, переклад ви можете легко знайти із відкритих джерел :-)
thenotpleaseyouforthisorderproductyourandemailnewwithenterattributeproductsaddressshippingarepaymentaddcustomervalueinvalidpaypalnumberaccounttemplatetaxnamestoredefaultdeletevalidhastypecannoterrorfilesaveselectinformationfrompasswordbeenallusesetcartcreditpricecodehavepageitemoptionsurlgrouplistoptionwrongmustonlytotalitemswillrequireddoesmethodsurelinkdatesearchfieldratecreatemoreeditfoundcardstatustransactionimagebillingviewexpressthatwentsomethingcategorydataspecifiedwhileavailableupdatecheckoutthaninvoicenowsettingsamountmessagewasstockexistshipmentcanmailtrywantruleselectedprioritythereemptyagainallowedenableskucorrectwishrightsavedshoppingcharacterswebsiteuserspecifydisplayqtycustomdeletedwhenquantitycreatedremoveflatkeycatalogreviewcouldalreadymemocustomersdetailschangesendtimeshowexistsreportadmincachediscountentityusedcurrencyblockconfigurationrequesttitlefindonegiftapplyoutnewsletterchecksamemaximumenvelopeconfirmationresetformatlastvatmagentounablemerchantheresavingsectionrequestedrefundbasegeneralcommentsystemallowtokenboxcontactsomefirstholdagreementgreatermatchsorryoccurredrowattributescontentbackupsentbackconditionsupstermssendersigncouponmodefailedactionimportequalfilescontainssortpathorderssubscriptionprovidedgetloglabelcurrentintegrationdayotherlettersenabledlifetimeupdatedbecauseapplicableseevaluespaymentsbuttextserviceinternationaladvancedapiaddresseswidgeteachbasedsalesmediashouldmakecmssubtotallongerstartdesigncountriesclicktrackingratesimageschoosemanagesizebeforeclasscountrycontinuenumbersinstanceweightpricesshipanothercopydisabledthemeaccesslatersitehandlingrecentlyreviewsincorrectperpurchaseviewedresponsemodelconsumeranyminimumusinguniquecancelafterwebscopelengthassociatedfeeadditionalbetweendirectoryvalidationneedverificationintowererolespecificlesspackagefreegridcategoriesstorefrontmultiplexmlobjectpickupstatecanceledexceptionrefreshgatewayinclnextaboutsynonymprocessrangeexpirationtypesguestratingletterdescriptionloginwebsitesserverrewritemessagesspacesstorageenteredcasedefinedconfigparentsitemapappliedprintregisteredlikesymbolsexamplealertfollowingplacecroninputmethodsexportsummarytheseindexdaysextensionourtooonlineexistingstaticfieldsleavemaydownloadableretrievegenerateexclresultsyesaddedzipformsupportedwithoutreversalactionsvideosecurecontaindatabasequeuefallbackchosenairfinancingcomparedconditionadvertisehostnamesettlementvariablestreetsecondshtmluploadgrandconfigurablepagesconfigurationsworldwideconfirmfiltercalculationstatisticsurlsrulesorderedhomeviewspermissionsinfopositionrelicreceivedabovehoursrelatedquotecolorrssgroupssuchremovedcompleteprohistorysubmitpendingunknownbusinessreportingcreditmemoincludephonemetaleastcommentscombinationmatchedcloseerrorsdifferentlongpaidcolumnrefundedskipconversionnotificationloadcapturedisablereportsassignheaderofflinesteplearnmovespecialvisiblethresholddestinationsessionduringdidclearmanypaylookssecuritysamplebuyfraudcountanchorchangescaptchabelowfixedpdflogoemailscouponsauthorizationduepayflowassignedlayoutaveragetracktestdigitslargegivenauthorizepartfieldnamealertscompareprocessingfoldergeneratedthankwelcomeperiodshownchangedrebuildwhatundefinedpreviewexpiredsmallnonemanagementmostdocumentjavascripttiermadesupportrowsuploadedreadoperationbasicfptforgotdeliveryrecordssuffixsuccessfullysolutioncharacterauthorizedqueryparametereveryusesdeletingreceivelimitdnspositivevoidexceedsactiveoriginaldynamicdebitdownloadcarrierrootopenglobalavailabilityencryptionmaintenancesourceentirewritableplacedminuteswebsiteidstorespartnerscustomergroupapprovedimplementchildprotectionavsmaxshipmentslabelspreviousclasseswithdrawalsynonymsenginecookiebeingtokenscurrentlyincludingtermidentifieroncedisplayednavigationtranslationredirectputinvoicesinvoicedheightdebugswatchpostalyearbraintreeautomaticbrowsesavervariationsfreightshippedloadingcredentialspostconfigurelowduplicatethroughinterfaceautoinitializeregionpropertiesconfirmedshareacceptedintegrationspurchasesyetftpvalidatepercentagecostsensitivebuyerreferenceusersvirtualhttptldtabnamesexcludingdropdownstringblankproductionexpressiongenerationeavbeginableproperwelllegalpaddedcsvpackagessubscribedcvvrecommendeddownloadsnumericinactivealwaysendreasonlocaltimesscheduledoptimizationtransferpercentrequireunderscoreshareddefinegroupedfeaturerefundsloggedagreementssettingunavailableblocksfullelementbundleprefixadaptertimeoutincrementscartsexcelstandardnotifygroundunitinstalledmodulelocksetupreturnseparatedfeedpngcreatingsynchronizebalancecomparisonfedexhostedpurchasedcommandtotalselasticsearchtransactionsextendwindowlistingacceptwhichtemporarilylocationoauthlockedpayermonthwarningadministratorvoidedautomaticallycitybooksuccesscalculatesubwriteihor
- 1 хв читання
Якщо з якоїсь причини вам потрібно скопіювати з однієї бази даних ( DB1 ) до іншої ( DB2 ) (фактично імпортувати дані блогу з однієї інсталяції Magento до іншої), виконайте такі дії:
1. Переконайтеся, що екземпляр Magento 2, який використовує DB2, має таку ж версію розширення блогу, як і той, що використовує DB1. Якщо ні, оновіть модуль Magento 2 Blog на одній з них.
2. Створіть резервну копію таблиць magefan_blog_* у DB2.
3. Видаліть усі таблиці magefan_blog_* з DB2.
4. Зробіть експорт (дамп) усіх таблиць magefan_blog_* з DB1
5. Імпортуйте дамп DB1 до DB2.
Використовуючи цю інструкцію, ви легко перенесете ВСІ дані блогу з DB1 до DB2 . Для маніпуляцій з базою даних ви можете використовувати phpMyAdmin , Adminer.
- 2 хв читання
Якщо ви вирішили видалити , виконайте наведені нижче дії. Ви можете зв’язатися з нашою командою для безкоштовної консультації, якщо у вас виникнуть проблеми з розширенням Magefan.
Видалення файлів розширення
Інструкції з видалення файлів залежать від способу встановлення розширення Blog.
1. Якщо ви можете знайти файли розширення в папці
app/code/Magefan/Blogapp/code/Magefan/BlogPlusapp/code/Magefan/BlogAuthorapp/code/Magefan/BlogAuthorapp/code/Magefan/BlogImport
, видаліть ці папки.
2. Якщо розширення було встановлено через composer , а його файли знаходяться в папці
vendor/magefan/module-blog
, тоді виконайте команду composer CLI, щоб видалити його
composer remove magefan/module-blog*
. Після видалення файлів розширення виконайте ці команди Magento CLI:
php bin/magento setup:upgradephp bin/magento setup:di:compilephp bin/magento setup:static-content:deployphp bin/magento cache:flush
Примітка: якщо ви не хочете, щоб ваш веб-сайт був недоступний під час розгортання, спробуйте ці .
Видаленняihor
- 2 хв читання
Якщо вам потрібно оновити від Magefan, виконайте наведені нижче дії.
Примітка: інструкції з оновлення залежать від методу встановлення розширення Blog.
Увага! Перед оновленням наполегливо рекомендуємо створити резервну копію файлів та бази даних Magento 2.
Оновлення за допомогою composer
Якщо модуль блогу було встановлено через composer (перевірте, чи існує папка vendor/ Magefan/module-blog ), вам потрібно виконати ці прості команди CLI в каталозі Magento 2:
composer remove magefan/module-NAMEcomposer require magefan/module-NAME ^x.x.x# replace NAME with:# blog - for Basic plan# blog-plus - for Plus plan# blog-extra - for Extra plan# replace x.x.x with the version you want to usephp bin/magento setup:upgradephp bin/magento setup:di:compilephp bin/magento setup:static-content:deploy
Якщо ви хочете оновити його до Plus або Extra, перегляньте цей посібник про те, як .
Оновлення за допомогою архіву та FTP
Якщо модуль блогу було встановлено через FTP (перевірте, чи існує папка app/code/ Magefan/Blogihor
- 1 хв читання
Керування може здатися не таким складним на перший погляд. Однак, перед публікацією дописи в блозі проходять кілька етапів: створення, редагування, коректура та публікація.
Іноді над однією статтею працює кілька людей. Відповідно, вони мають різні ролі та обов'язки.
Отже, в цій статті ви дізнаєтеся більше про список контролю доступу до блогу та про те, як обмежити доступ користувачів до різних розділів блогу.
Щоб налаштувати права доступу для сторінок адміністрування блогу:
1. Перейдіть до розділу Панель адміністратора > Система > Ролі користувачів.
2. Виберіть , для якого ви хочете змінити права доступу до блогу.
3. У розділі Ресурси ролі ви побачите дерево ресурсів. Знайдіть розділи Блог .
Після завершення не забудьте натиснути кнопку Зберегти роль .
За допомогою ACL ви можете обмежити права на перегляд, редагування, видалення дописів у блозі, категорій, тегів, авторів та коментарів. Крім того, ви можете встановити додаткові права для імпорту блогу та адміністрування основних конфігураційihor
- 2 хв читання
Якщо ви керуєте магазином , у вас є найкраще місце для просування ваших товарів. Ви можете у контенті блогу або додавати пов’язані товари внизу публікації.
Ви заохочуєте людей переглядати ваш каталог і купувати ваші товари.
Однак, коли у вас багато публікацій у блозі, пошук товарів і їх ручне додавання для кожної публікації може зайняти багато часу. Саме тому існує правило пов’язаних товарів, яке допоможе вам, і тут ви дізнаєтеся, як його налаштувати.
Примітка: Ви можете налаштувати правила пов’язаних товарів, лише якщо використовуєте .
Щоб налаштувати правило для пов’язаних товарів у блозі в Magento 2:
1. Перейдіть до розділу Контент > Блог > Дописи та виберіть дописи в блозі, для яких потрібно налаштувати правило для пов’язаних товарів.
2. Прокрутіть униз до розділу Правила для пов’язаних товарів та встановіть умови на основі атрибутів товару, таких як категорія, артикул, ціна тощо.
Примітка: Якщо якийсь атрибут відсутній у списку атрибутів, вам потрібно .
3. Після того, як ви закінчитеihor
- 1 хв читання
Оскільки Magento пропонує вам складні інструменти для ціноутворення та знижок, набагато простіше орієнтуватися на певних клієнтів або продукти. Однак іноді необхідний атрибут відсутній в умовах правила, незалежно від того, чи створюєте ви правило ціни кошика, чи .
Не поспішайте відмовлятися від ідеї створення власного правила каталогу або етикеток продуктів. Ви можете виправити це, і ми покажемо вам, як.
Чому атрибут відсутній в умовах правила?
Ви можете призначити певні характеристики продукту. Хоча ми зосереджуємося на типі атрибута (текст, випадаючий список тощо) та на тому, як він відображається на фронтенді, ми не враховуємо інші корисні опції.
Отже причина, чому атрибут відсутній в умовах правила в Magento, полягає в одному вимкненому параметрі атрибута.
Як додати атрибут до правил продажів?
Щойно ви знаєте, який атрибут додати до умов правила, перейдіть до Магазини > Атрибути > Продукт та виберіть його зі списку. Потім перейдіть на вкладку Властивості вітрини та увімкніть опцію Використовуватиihor
- 1 хв читання
Ви можете встановити за допомогою Magefan, використовуючи методи встановлення за допомогою composer або архіву.
Примітка: якщо ви хочете встановити або , будь ласка, перейдіть до свого облікового запису Magefan > Завантаження > Встановлення через Composer, щоб отримати інструкції з встановлення за допомогою composer .
Встановлення через Composer (рекомендовано)
Важливо: цей метод працює лише для версій Blog Basic, нижчих за 2.13.0. Якщо ви хочете встановити Basic версію Blog, починаючи з версії 2.13.0, вам потрібно та отримати ключ продукту.
Відкрийте командний рядок.
Використовуючи команду "cd", перейдіть до кореневого каталогу Magento 2.
Виконайте команди CLI:
composer require magefan/module-blog ^x.x.x# replace x.x.x with the version you want to install
# Authentication required (repo.magento.com)# Get your Magento Marketplace authentication keys or use these: # Username: 7c018006799466c681ad507e27904677# Password: 289077c86e811661a8f7751828485d3aphp bin/magento setup:upgradephp bin/magentoihor
- 2 хв читання
Використовуйте для генерації безкоштовного робочого сертифікату Давайте зашифруємо. Сервіс, який дозволяє генерувати сертифікати SSL за допомогою автоматичного API.
Усі приклади і команди відображаються на базі Ubuntu 16.04. Домен, для якого потрібно згенерувати сертифікат, має бути закріпленим (зазначеним) за поточним сервером Linux.
Виконайте наступні кроки, щоб згенерувати та підключити сертифікат:
1. Встановіть Certbot:
sudo add-apt-repository ppa:certbot/certbotsudo apt-get updatesudo apt-get install certbot
2. Certbot повинен відповісти на криптографічний запит, який надсилає «Let's Encrypt API», щоб повідомити, що ви контролюєте домен. Відкрийте потр 80 (HTTP) або 443 (HTTPS) у вашому брендмауері. Виконайте команду:
sudo ufw allow 80
Якщо команда ufw недоступна, встановіть її:
sudo apt-get install ufw
3. Запустіть Certbot:
sudo certbot certonly --standalone --preferred-challenges http -d example.com
де example.com - назва вашого домену.
У результаті виконання командиihor
- 1 хв читання
Хочемо поділитися з вами корисними на наш погляд шпаргалками.
Magento 2 Шпаргалка
Джерело: https://nublue.r.worldssl.net/blog/wp-content/uploads/2015/12/Wallpaper-1280px1.jpg
Пріорітет CSS селекторів
Джерело: http://www.standardista.com/wp-content/uploads/2012/01/specificity3.pdf
Git Шпаргалки
Джерело: https://zeroturnaround.com/wp-content/uploads/2016/02/Git-Cheat-Sheet-pdf-v2.png
Git Flow
Джерело: https://namethattech.files.wordpress.com/2014/11/git-flow-updated.png?w=604&h=782
- 2 хв читання
Ви коли-небудь замислювалися, наскільки легко перевірити якість власного коду, коду ваших колег або стороннього модуля, який ви хочете використовувати в проекті Magento?
Команда розробників Magento створила Magento Extension Quality Program Coding Standard (Magento EQP), який дозволяє перевірити відповідність коду стандарту, а також виявити такі недоліки:
- виконання SQL-запитів у циклі; - використання небезпечних функцій; - використання суперглобальних змінних; - надмірна складність коду; - невиправдане завантаження колекцій.
Встановлення
Ви можете встановити... Magento EQP через Composer, виконавши цю команду CLI:
git clone https://github.com/magento/magento-coding-standard.gitcd magento-coding-standardcomposer install
Якщо у вас немає composer, ви можете... завантажити його тут.
Перевірка
Щоб перевірити код (який знаходиться, наприклад, у папці /шлях/до/вашого/розширення ), перейдіть до папки Magento EQP :
cd /path/to/magento-coding-standard
та виконайте таку команду:
vendor/bin/phpcsihor
- 2 хв читання
Уявіть, що ви готуєте пасту та сідаєте пограти в якусь гру. Ви слухаєте одним вухом, чи не википить «страва». У цьому випадку ви спостерігач. Коли паста починає википати — спрацьовує подія «pasta_began_to_boil_away», яка змушує вас (спостерігача) поспішити на кухню (виконати дію, алгоритм).
У Magento 2, як і в реальному житті, є спостерігачі та події, які реалізовані на основі шаблону « Публікація-підписка ». Ми вже описали , що дозволяє розширювати та змінювати функціональність магазину. Давайте подивимося, як це можна зробити за допомогою подій та спостерігачів у Magento 2.
Події
Події запускаються модулями Magento 2, коли дія відбулася або має відбутися. Magento має багато власних подій, а також дозволяє викликати власну подію.
Використовуйте метод dispatch класу \Magento\Framework\Event\ Manager для виклику події.
Наприклад:
namespace MyCompany\MyModule;class MyClass{
/** * @var EventManager */ private $eventManager;
public function __construct(ihor
- 1 хв читання
Для того, щоб мати можливість швидко видалити відруальні хости (домени) на базі розмірів Linux+Apache+MySql+PHP, встановіть Сценарій керування віртуальним хостом.
Відкрийте CLI (командний рядок, термінал). Виконайте команди:
cd /usr/local/bin/sudo wget https://raw.githubusercontent.com/RoverWire/virtualhost/master/virtualhost.shsudo chmod +x virtualhost.shsudo ln -s virtualhost.sh virtualhost
Тепер вам доступна команда virtualhost:
virtualhost [create | delete] [domain] [optional host_dir]
Щоб додати новий віртуальний хост, виконайте:
virtualhost create mydomain.com
Щоб видалити віртуальний хост, виконайте:
virtualhost delete mydomain.com
- 2 хв читання
Часто потрібно змінювати логіку коду JavaScript, розташовану у файлі .js. Найпростіший спосіб – перезаписати js-файл за допомогою теми. Ви можете дізнатися, як перезаписати файли перегляду, у статті про . Це швидкий, але не елегантний спосіб.
Щоб змінити один або кілька методів js-файлу, використовуйте міксини, доступні в RequireJS.
Щоб розширити цей файл:
app/code/VendorName/ModuleName/view/%area%/web/js/folder1/folder2/somefile.js
за допомогою наступного коду:
define( [ 'jquery', 'underscore', 'ko', 'uiComponent', 'uiRegistry', ], function ( $, _, ko, Component, registry, ) { 'use strict';
return Component.extend({ // ... method1: function() { /* some code */ }, method2: function() { /* some code */ } // ... });
});
%area% – область, де розширюється файл, наприклад: frontend, adminhtml, base.
Щоб перезаписати методihor
- 1 хв читання
Усі PHP-програмісти знайомі з суперглобальними змінними, такими як $_GET, $_REQUEST, $_POST , але їх пряме використання заборонено згідно зі стандартами коду Magento2. Тому не використовуйте їх у своїх проектах Magento 2, особливо якщо ви хочете пройти технічний огляд коду на Magento Marketplace.
Отже, які методи слід використовувати?
Щоб отримати дані із запиту, використовуйте такі методи: getParam ($key, $default = null); getParams(); getPostParam ($key, $default = null); getPost(); класу \Magento\Framework\App\RequestInterface , наприклад:
protected $request;public function __construct( \Magento\Framework\App\RequestInterface $request, ....//інші параметри вашого класу) { $this->request = $request; ...//інший код конструктора}public function example() { // $data = $_REQUEST; $data = $this->request->getParams(); // $id = isset($_REQUEST['id']) ? $_REQUEST['id'] : null; $id = $this->request->getParam('id'); // $name = isset($_REQUEST['name'])ihor
- 1 хв читання
Хочемо поділитися з вами записом двох виступів із зустрічей Magento 2 DevTalks. У першому Андрій Коносов розповідає про ТОП-10 вразливих веб-додатків за версією OWASP та як із ними боротися.
У другому Станіслав Лопухов переказує доповідь від Джеймса Тіткамба та ще раз «пробігається» по найбільш розширених помилках, які призводять до проблеми з безпекою веб-додатків.
- 1 хв читання
У Magento 2 однією з нових властивостей є віртуальний тип Magento 2. Для чого вони потрібні?
Уявіть, що у вас вже є клас A :
namespace VendorName\ModuleName\Model
class A{ protected $arg1; protected $arg2; protected $arg3; public function __construct( Argument1 $arg1, Argument2 $arg2, Argument3 $arg3 ) { $this->arg1 = $arg1; $this->arg2 = $arg2; $this->arg3 = $arg3; }
}
, і вам потрібно створити клас B, , який буде успадкований від A. Однак, він повинен приймати інший аргумент, як $arg2. Для цього вам потрібно створити новий PHP-файл для класу B:
namespace Me\MyModule\Model
class B extends A{ public function __construct( Argument1 $arg1, SomeOtherArg $someOtherArg, Argument2 $arg3 ) { parent::__construct($arg1, $someOtherArg, $arg3) }
}
. Але вам не потрібно робити це в Magento 2. У таких випадках створюються віртуальні типи. Тому створіть файл etc/di.xml уihor
- 1 хв читання
Використайте наступний код, щоб вставити блок шаблону у WYSIWYG (Важливо! додайте його всередині подвійних фігурних дужок):
block class="Magento\Framework\View\Element\Template" template="Magefan_Blog::content/block-template-example.phtml"
Ідентифікатор шаблону Назва_модуля_VendorName::some-template.phtml слід змінити.
Увага! Ви не можете використовувати блок в атрибутах товару та категорії WYSIWYG. Щоб внести зміни, встановіть magefan/module-catalog модуль.
- 1 хв читання
Magento 2 дозволяє чітко розмежувати права користувачів в адмін-панелі, тому кожен може отримати доступ лише до тих інтерфейсів, які необхідні для його роботи, ролі в компанії.
Для додавання чи зміни ролі:
1. Перейдіть в адмін-панель Magento 2 > Система > Дозволи > Ролі користувачів.
2. Оберіть роль, яку хочете змінити або натисніть кнопку "Додати нову роль", для додавання нової ролі.
3. Задайте Ім'я ролі та ваш наявний пароль (Ваш пароль).
4. У вкладці "Ресурси ролі" виберіть значення "Користувацький" для поля Доступ до ресурсіввкажіть, до яких ресурсів (Ресурси) ви хочете надати доступ користувачам з цією роллю.
5. У вкладці "Користувачі ролі" виберіть адмін-користувачів, яким буде делегована ця роль.
Збережіть усі зміни, натиснувши на кнопку "Зберегти роль".
* Задати роль адмін-користувачу можна не лише із вкладки “Користувачі ролі”, але й зі сторінки редагування адмін-користувача у Система > Дозволи > Всі користувачі.
- 3 хв читання
Категорії блогу Magento 2 – це чудовий спосіб покращити навігацію в блозі та впорядкувати ваші публікації за різними критеріями. Створюючи категорії в , ви покращуєте взаємодію з клієнтами та дозволяєте читачам швидше та ефективніше знаходити те, що їх цікавить.
Отже, в цьому посібнику ви дізнаєтеся, як створювати категорії блогу та керувати ними.
Примітка: Перш ніж ми почнемо, зверніть увагу, що деякі з описаних тут опцій доступні лише у .
Створення категорій блогу в Magento
Ми рекомендуємо створювати категорії перед створенням публікацій. Однак, ви також можете додати нову категорію, коли . Спочатку перейдіть до Зміст > Блог > Категорії і натисніть кнопку Додати нову категорію кнопка.
1. Заповніть загальну інформацію
Увімкнути вашу категорію та введіть НазваПотім призначте категорію Батьківська категорія, якщо такі є. Встановіть Позиція категорії на бічній панелі та виберіть, чи потрібно Включити категорія у верхній панелі навігації Меню.
Крім того, ви можете встановити, чи слід Включитиihor
- 2 хв читання
Перш ніж встановлювати Magento 2, переконайтеся, що вебсервер (наприклад, ) та налаштовані та відповідають вимогам Вимоги Magento 2 .
Встановіть скрипт virtualhost для сервера LAMP та створіть новий віртуальний хост dev.mymagento.com, виконайте команду:
virtualhost create dev.mymagento.com
Відкрийте це посилання у вашому браузері та переконайтеся, що ви бачите вміст, а не помилку.
Завантажте архів з останньою версією Мagento 2 . Під час завантаження ви можете вибрати опцію " Включити зразки даних ", щоб після встановлення Magento 2 тестові продукти та категорії були доступні в магазині.
Після завантаження архіву помістіть папки та файли з нього в каталог вашого домену /var/www/devmymagentocom.
Відредагуйте файл конфігурації домену віртуального хоста, виконайте команду:
gedit /etc/apache2/sites-available/dev.mymagento.com.conf
та змініть рядок
DocumentRoot /var/www/devmymagentocom
на
DocumentRoot /var/www/devmymagentocom/pub
. Папка pub має бути кореневою для вебсервера.
Після збереженняihor