Node.js / npm / Կոմպոզիտոր առանց արմատից

Ավելի հին բլոգում ես նկարագրել եմ, թե ինչպես կարելի է հյուրընկալել Node.js- ին ՝ Heroku- ի միջոցով անվճար: Այժմ ես ձեզ ցույց կտամ մի եղանակ, թե ինչպես կարող եք տեղադրել Node.js , npm և Composer ցանկացած այլ համօգտագործվող սերվերի վրա, առանց արմատային իրավունքների ՝ մի քանի տող կոդերով : Դրանով դուք կարող եք տեղադրել փաթեթներ, տեղակայել Vue.js հավելվածներ կամ պարզապես գործարկել Express.js սերվեր: Մենք միշտ աշխատում ենք օգտագործողների գրացուցակում և օգտագործում ենք nvm - հանգույցների փաթեթների կառավարիչ:


Կարևոր է նախապես ապահովել, որ կոմպոզիտորն ու հանգույցը մատչելի չեն, և հետևյալ տողերը որևէ արդյունք չեն տալիս:

16c389ff1cdd9380cc5f9244775eb6c8

Նախ, մենք սահմանում ենք ժամանակավոր միջավայրի փոփոխականներ, որոնք մեզ ավելի ուշ անհրաժեշտ կլինեն։ Դրա համար մենք նշում ենք օգտատիրոջ տնային գրացուցակը (սովորաբար ~/, որոշ համօգտագործվող հոսթերի վրա նաև /www/htdocs/xxxxxxx/) և ցանկալի PHP տարբերակը (օրինակ՝ /usr/bin/php72 All-Inkl մատակարարով, /usr/local/bin/php7-72LATEST-CLI DomainFactory մատակարարով)։:

16c389ff1cdd9380cc5f9244775eb6c8

Հիմա մենք կհամոզվենք, որ PHP-ն աշխատում է իր վերջին տարբերակով կոնսոլում: Դրա համար մենք կստեղծենք նոր թղթապանակ գլխավոր գրացուցակում, կստեղծենք սիմվոլիկ հղում և կավելացնենք գրացուցակը PATH միջավայրի փոփոխականի սկզբում:

16c389ff1cdd9380cc5f9244775eb6c8

Այժմ մենք տեղադրում ենք գլոբալ կոմպոզիտորը `ներբեռնելով, ստուգելով և կատարելով տեղադրման սցենարը, այնուհետև տեղադրելով composer.phar- ը օգտվողի գրացուցակում և նորից ստեղծելով սիմվոլիկ:

16c389ff1cdd9380cc5f9244775eb6c8

Մենք օգտագործում ենք nvm-ը Node.js-ը տեղադրելու համար։ Սա Bash սկրիպտ է, որը նախատեսված է Node-ի տարբերակների միջև անցումը հեշտացնելու համար։ Այստեղ մենք օգտվում ենք դրա այն առանձնահատկությունից, որ այն տեղադրում է Node.js-ը առանց root արտոնություններ պահանջելու։:

16c389ff1cdd9380cc5f9244775eb6c8

.Bashrc- ում մի փոքր ուղղում անհրաժեշտ էր ինձ համար:

16c389ff1cdd9380cc5f9244775eb6c8

Այժմ մենք կարող ենք տեղադրել և ակտիվացնել Node.js- ի ներկայիս կայուն տարբերակը:

16c389ff1cdd9380cc5f9244775eb6c8

Nvm- ի օգնությամբ մենք կարող ենք նաև հեշտությամբ փոխել տարբերակները:

16c389ff1cdd9380cc5f9244775eb6c8

Ես կարողացա կատարել այս բոլոր քայլերը առանց որևէ խնդրի մի քանի գերմանական համատեղ հոսթինգ մատակարարների հետ։ Որոշ հոսթինգներ խնդիրներ ունեն սիմվոլիկ հղումների հետ, բայց դա կարող է լուծվել նաև կեղծանունների սահմանումների միջոցով։ Օրինակ, հետևյալ .bashrc ֆայլը աշխատում է DomainFactory-ի համար։:

16c389ff1cdd9380cc5f9244775eb6c8

Վիրտուալ/համօգտագործվող միջավայրերում կան նաև խնդիրներ `/proc/stat`-ին մուտք գործելու հետ կապված, այդ իսկ պատճառով, օրինակ, Node ֆունկցիան `os.cpus()` ճիշտ միջուկների քանակի փոխարեն վերադարձնում է `undefined`: Սա npm փաթեթներ տեղադրելիս հանգեցնում է սխալի հաղորդագրությունների, ինչպիսիք են՝ «Չի կարելի կարդալ 'length' հատկությունը undefined-ի համար» արտահայտությունը: Ես կարողացա լուծել խնդիրը՝ օգտագործելով Node.js-ի վերջին տարբերակը (օրինակ՝ 11.15.0), որը լուծում է խնդիրը:

Վերադառնալ