Убунту

Убунту 20.04, ВСЛ2, ВСЦоде и Друпал 8 - Решавање проблема

Убунту 20.04, ВСЛ2, ВСЦоде и Друпал 8 - Решавање проблема

Мицрософт је коначно пружио фантастично решење за развој Линук апликација на Виндовс-у.  Подсистем Виндовс за Линук, ВСЛ2, прилично је једноставан за инсталацију и покретање, поготово ако сте већ упознати са Линуком.  Чак и ако нисте, постоји много врло добрих чланака о покретању и покретању основне инсталације.

Развој Линук ПХП апликација користећи ВСЦоде на Виндовс 10 приближно је једнако стабилно и беспрекорно искуство које човек може добити. Ипак, неколико „закачења“ на које сам налетео нису описани ни у једном чланку који сам пронашао о подешавању ЛАМП-а на Убунту и ВСЛ2.

Имао сам ограничено искуство са Линуком и увелико сам зависио од чланака оних који су пре мене.  Иако су ме одвели углавном тамо, наишао сам на неколико проблема с покретањем Друпал-а 8 без грешака и отклањањем грешака у раду у ВСЦоде.  Решења су пронађена у одељцима за коментаре на питања објављена на Интернету. Ово је трајало много сати претраживања и надам се да ћу спасити људе представљајући решења која сам пронашао у овом једном чланку.

Моје окружење је Виндовс 10 20Х2, Убунту 20.04, ПХП 7.3, МариаДБ 10.4.17, Друпал 8.9.13, Ксдебуг 3.02, Виндовс терминал, ВСЦоде са даљинским управљачем - ВСЛ и ПХП Дебуг пакети Фелик Бецкер.  Покрећем ВСЛ из Поверсхелл-а у оквиру Виндовс терминала.

Пре него што започнемо, ево неколико препорука које вам могу уштедети време.

Инсталирање и коришћење апт-фаст уместо апт може заиста убрзати инсталирање и ажурирање.  Тамо где ја живим, интернет има малу пропусност и спор је, а апт-фаст је много бржи од апт-а.

Можете да направите „резервне копије и вратите“ своју Линук дистрибуцију помоћу ВСЛ извоза и увоза. Као и за било који други систем, препоручљиво је увек одржавати тренутну резервну копију.

Мариадб се добро инсталира, али не може да се поново покрене или добије статус

Инсталација Мариадб-а је прошла у реду.  Нема грешака или упозорења.  Када сам покушао да проверим статус, добио сам грешку у вези са системом.

$> системцтл статус мискл
Систем није покренут са системд као инит систем (ПИД 1). Не могу да оперишем.

Разлог за ову грешку је тај што Мицрософт не подржава системд у ВСЛ-у.  Срећом, Аркане Системс је креирао пакет систем-гение да омогући системд .  Предлажем да темељно прочитате њихову веб страницу пре него што испробате следећа упутства која су преузета са те странице. Постоје мало другачија упутства за дистрибуције осим Убунту-а.

Прво морате да инсталирате .Нето 5.0 рунтиме

$> судо апт-брзо ажурирање
$> судо судо апт-брза инсталација -и апт-транспорт-хттпс
$> судо апт-брзо ажурирање
$> судо апт-брза инсталација -и дотнет-сдк-5.0

Даље треба да конфигуришемо всл-трансдебиан Репозиторијум

$> судо апт-брза инсталација апт-транспорт-хттпс
$> вгет -О / етц / апт / трустед.гпг.д / всл-трансдебиан.гпг хттпс: // аркане-системс.гитхуб.ио / всл-трансдебиан / апт / всл-трансдебиан.гпг
$> цхмод а + р / етц / апт / трустед.гпг.д / всл-трансдебиан.гпг
$> мачка << EOF > / етц / апт / соурцес.листа.д / всл-трансдебиан.листа
$> деб хттпс: // аркане-системи.гитхуб.ио / всл-трансдебиан / апт / буллсеие главни
$> деб-срц хттпс: // аркане-системи.гитхуб.ио / всл-трансдебиан / апт / буллсеие главни
$> апт-брзо ажурирање

Сада можемо инсталирати систем-гение пакет.

судо апт-брза инсталација -и системд-гение

Изађите из своје Линук љуске, а затим искључите ВСЛ из Повер љуске

ПС Ц: \ Усерс \ УсрНаме> всл --схутдовн

Поново покрените ВСЛ са духом из Поверсхелл упита.

ПС Ц: \ Усерс \ УсрНаме> всл гение --с

Видећете „Чека се систем… .!!!!!!!!!!!!!!!”.  Потпуно учитавање траје 180 секунди.  Само сачекајте да заврши.  Када заврши, ваш нови прозор љуске требао би изгледати овако:

Чека се систем… !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Истекло је време чекања да системд уђе у радно стање.
Ово може указивати на системску грешку у конфигурацији.
Покушај наставка.

Потврдите да је гение инсталиран и да системд ради:

системцтл статус мариадб

Требали бисте добити излаз статуса за мариадб.  Имајте на уму да системцтл статус мискл такође ради.

Аркане Системс препоручује да искључите своју ВСЛ гение сесију помоћу всл -схутдовн.  Ово ће ослободити сву меморију коју ВСЛ користи у оперативном систему Виндовс.

Друпал се инсталира, али ниједан ЦСС се не учитава

Након покретања основне инсталације за Друпал 8, странице нису имале форматирање.  Преглед странице извора показао је да се нису учитавале ЦСС датотеке. Требала су ми два дана да ово схватим, али кратка прича је да Друпал претпоставља да апацхе2 користи директоријум / тмп, али није.  Подразумевано је апацхе2 конфигурисан да користи приватни тмп директоријум.  Чудно је позивање, сис_гет_темп_дир () из пхп ретурн / тмп, али то није оно што апацхе2 користи.  Када Друпал креира своје оптимизоване цсс и јс датотеке, прво их покушава уписати у директоријум / тмп, а затим их премешта у одредишни директоријум, обично ситес / дефаулт / филес / цсс и / јс. Али апацхе2 не користи / тмп, па овај процес не успева и ниједна од цсс или јс датотека. Поништавањем означавања агрегатних ЦСС и Јавасцрипт датотека то ће заобићи, али тада се учитавају све појединачне цсс и јс датотеке, па ово није решење.

Можете потврдити да овај проблем / тмп није доступан следећом једноставном пхп датотеком. Ствара тмпфиле и приказује име датотеке.  У почетку ће име датотеке бити празно јер позив на тмпфиле () враћа НУЛЛ.  Ставио сам следећи код на тест.пхп и позвао га са моје странице, лоцалхост / мисите / тест.пхп

одјек "\ н ";
одјек "\ н ";
одјек "Мој други пример ПХП-а\ н ";
одјек "\ н ";
одјек "\ н ";
одјек "

Ако погледате извор странице \ р \ н, наћи ћете нови ред у овом низу.";
 
одјек "

тестирање

";
$ тмпДир = сис_гет_темп_дир ();
одјек "

ТМП дирецори = '$ тмпДир'

";
$ датотека = тмпфиле ();
$ патх = стреам_гет_мета_дата ($ датотека) ['ури'];
одјек "

Путања тмп датотеке = '$ путања'

";
 
одјек "\ н ";
одјек "\ н ";
?>
 
Ово је резултирало „Путем тмп датотеке =“

Решење за ово пронашао сам у коментарима на питање Стацковерфлов корисника Једна у милион апликација.  Ово решење мења конфигурацију апацхе2 из ПриватеТмп = труе у ПриватеТмп = фалсе. Имајте на уму да је промена апацхе2 да користи приватни тмп директоријум извршена из безбедносних разлога, а већина апликација може бити конфигурисана да користи другу тмп фасциклу.  Покушао сам то са Друпалом, али нисам успео да успе. Ово је мој први покушај покретања Друпала на Линуку и желео сам да ствари "само раде" на мом лаптопу, без мало бриге о сигурности.

Прво потражите датотеку која садржи ПриватеТмп користећи ово из директорија / либ:

%> судо финд / -моунт -типе ф -екец греп -е "ПриватеТмп" '' ';' -принт

Ово ми је дало дугачку листу утакмица.  Потражите онај који садржи датотеку апацхе2.услуга.  У мом случају је пронађен на / уср / либ / системд / систем / апацхе2.услуга.  копирајте ову датотеку у / етц. именик. Измените / етц / апацхе2.услуге и промените ПриватеТмп = труе у ПриватеТмп = фалсе, сачувајте и поново покрените услугу апацхе2.

системцтл поново покрените апацхе2

Поново покрените тест.пхп страницу поново и требало би да се прикаже тмп датотека са именом која потврђује приступ директоријуму / тмп.

Обришите све Друпал кеш меморије и поново учитајте странице.  Сада би требали правилно да се прикажу. Не знам зашто, али функција Друпал Цлеар Цацхе не ради увек код мене.  Ручно брисање свих датотека у ситес / дефаулт / филес / цсс јс, а затим коришћење ПхпМиАдмин за пражњење табела кеш меморије увек ради.

Постављање отклањања грешака у ВСЦоде

Конфигуришите Ксдебуг

Прво инсталирајте Ремоте - ВСЛ и ПХП Дебуг би Фелик Бецкер пакете на ВСЦоде.

Затим сам инсталирао Ксдебуг

судо апт-фаст пхп7.3-кдебуг

Ова инсталирана верзија 3.02 од Ксдебуг.

Покушао сам да је конфигуришем пратећи бројне примере на Интернету.  Ништа није успело.  Испоставило се да је већина примера за Ксдебуг 2.к, а та подешавања конфигурације више не раде са 3.Икс

Напокон сам успео да радим са следећим пхп-ом.ини подешавања.

Морао сам да додам следеће у оба / етц / пхп / 7.3 / апацхе2 / пхп.ини и / етц / пхп / 7.3 / цли / пхп.ини на мом систему.

Можете пронаћи локацију вашег кдебуга.па преласком у датотеку директорија / либ, а затим извођењем

пронађи -име кдебуг.па [кдебуг]
зенд_ектенсион = ./ либ / пхп / 20180731 / кдебуг.тако
кдебуг.старт_витх_рекуест = окидач
кдебуг.мод = отклањање грешака
кдебуг.Дисцовер_цлиент_хост = 1
кдебуг.лог = / тмп / кдебуг_ремоте.Пријава
кдебуг.цлиент_порт = 9003

Конфигуришите ВСЦоде

Даљинско отклањање грешака у ВСЦоде користи покретање.јсон датотека која се чува у корену директорија вашег пројекта у .всцоде / покретање.јсон.

Можете креирати лансирање.јсон кроз ВСЦоде УИ, али ми је лакше да је креирам ручно.  Померите се до корена веб странице и направите а .всцоде директоријум. Направите лансирање.јсон датотеку и учитајте је у ВСЦоде.

$> мкдир .всцоде
$> цд .всцоде
$> покретање додира.јсон
$> покретање кода.јсон

Ставите следећи јсон у датотеку и сачувајте га.


// Користите ИнтеллиСенсе да бисте сазнали више о могућим атрибутима.
// Задржите показивач миша за приказ описа постојећих атрибута.
// За више информација посетите: хттпс: // го.мицрософт.цом / фвлинк /?линкид = 830387
"версион": "0.2.0 ",
„конфигурације“: [

"наме": "Слушајте КСДебуг",
"типе": "пхп",
"рекуест": "покретање",
„лука“: 9003,
"стопОнЕнтри": тачно,
"лог": тачно,
"патхМаппингс":

"/ вар / ввв / хтмл": "$ воркспацеРоот"

,

"наме": "Покрени тренутно отворену скрипту",
"типе": "пхп",
"рекуест": "покретање",
"програм": "$ датотека",
"цвд": "$ име_датотеке",
„лука“: 9003

]

Напомена под патхМаппингс, где имам „/ вар / ввв / хтмл“, требало би да ставите целу путању до корена ваше веб странице.

Затворите ВСЦоде. У вашем ВСЛ Линук одзиву вратите се на корен ваше веб странице и учитајте пројекат у ВСЦоде.  Под претпоставком да сте још увек у .всцоде директоријум,

$> цд…
$> код .

Ово би требало да учита пројекат у ВСЦоде, а са леве стране би требало да видите цело дрво директоријума вашег пројекта.  Отворите почетну страницу, попут индекса.пхп и додајте тачку прекида.  Притисните Ф5 да бисте започели отклањање грешака.  Идите у веб прегледач и учитајте страницу. Вратите се на ВСЦоде и требали бисте видети да је заустављен на вашој тачки прекида.

Код се не покреће са зсх шкољком

Подразумевано је ВСЛ подешен за рад са Басх шкољком и види пут до извршне датотеке ВСЦоде у ПАТХ.  Пребацио сам се на зсх и ВСЦоде више неће радити.  Исправка је била да се стави псеудоним .зсхрц

$> цд ~
$> код .зсхрц

Додајте следећи псеудоним, који указује на пуну путању до извршне мапе кода, како је Убунту видео у ВСЛ-у.  Замените ИоурУсерНаме својим стварним корисничким именом за Виндовс.

алиас цоде = "/ мнт / ц / Усерс / ИоурУсерНаме / АппДата / Лоцал / Програмс / Мицрософт \ ВС \ Цоде / бин / цоде"

Сада морате поново учитати зсх конфигурацију са

$> извор .зсхрц

Код би сада требао да се учита из зсх љуске.

То је то!!  Ови кораци су коначно довели до исправног исправљања грешака у Друпалу и ВСЦодеу.  Требала су ми два дана да све ово схватим. Ја сам нооб! Надам се да вам ово одговара и штеди вам време.

Само подсетник на моје окружење.  Виндовс 10 20Х2, Убунту 20.04, ПХП 7.3, МариаДБ 10.4.17, Друпал 8.9.13, Ксдебуг 3.02, Виндовс терминал, ВСЦоде са даљинским управљачем - ВСЛ и ПХП Дебуг пакети Фелик Бецкер.

Хаппи Цодинг!

5 најбољих аркадних игара за Линук
У данашње време рачунари су озбиљне машине које се користе за игре на срећу. Ако не успете да добијете нови високи резултат, знаћете на шта мислим. У ...
Битка за Веснотх 1.13.6 Развој објављен
Битка за Веснотх 1.13.6 објављено прошлог месеца, шесто је развојно издање у издању 1.13.к сериес и доноси низ побољшања, посебно корисничког интерфеј...
Како инсталирати Леагуе Оф Легендс на Убунту 14.04
Ако сте љубитељ Леагуе оф Легендс, ово је прилика да тестирате Леагуе оф Легендс. Имајте на уму да је ЛОЛ подржан на ПлаиОнЛинук ако сте корисник лину...