Node.js / npm / Komposer tanpa root

Dalam catatan blog yang lebih lama, saya menerangkan cara menghoskan Node.js secara percuma menggunakan Heroku . Sekarang saya akan menunjukkan kepada anda cara bagaimana anda boleh memasang Node.js , npm dan Composer pada mana-mana hos kongsi lain tanpa hak root dengan beberapa baris kod. Dengannya anda boleh memasang pakej, menyebarkan aplikasi Vue.js atau hanya memulakan pelayan Express.js. Kami selalu bekerja di direktori pengguna dan menggunakan nvm - Node Package Manager.


Adalah penting untuk memastikan terlebih dahulu bahawa komposer dan nod tidak tersedia dan baris berikut tidak menghasilkan sebarang output:

16c389ff1cdd9380cc5f9244775eb6c8

Mula-mula kita menetapkan pemboleh ubah persekitaran sementara yang akan kita perlukan kemudian. Untuk melakukan ini, kami menentukan direktori pengguna pengguna (biasanya ~ /, pada beberapa hos bersama juga / www / htdocs / xxxxxxx /) dan versi PHP yang diinginkan (contohnya dengan penyedia All-Incl / usr / bin / php72, dengan DomainFactory / usr / local / bin / php7-72 TERKINI-CLI):

16c389ff1cdd9380cc5f9244775eb6c8

Sekarang kita memastikan bahawa versi terbaru PHP berjalan di konsol. Untuk melakukan ini, kami membuat folder baru di direktori beranda, membuat pautan lembut dan menambahkan direktori ke awal PATH.

16c389ff1cdd9380cc5f9244775eb6c8

Sekarang kita memasang komposer global dengan memuat turun, memeriksa dan melaksanakan skrip pemasangan, kemudian juga meletakkan komposer.phar di direktori pengguna dan membuat symlink lagi:

16c389ff1cdd9380cc5f9244775eb6c8

Kami menggunakan nvm untuk memasang Node.js. Ini adalah skrip bash yang sebenarnya berfungsi untuk menukar antara versi nod dengan mudah. Kami menggunakan harta di sini bahawa Node.js dipasang tanpa hak root:

16c389ff1cdd9380cc5f9244775eb6c8

Pembetulan kecil di .bashrc adalah perlu bagi saya:

16c389ff1cdd9380cc5f9244775eb6c8

Sekarang kita boleh memasang dan mengaktifkan versi stabil Node.js semasa:

16c389ff1cdd9380cc5f9244775eb6c8

Dengan bantuan nvm kita juga boleh menukar versi dengan mudah.

16c389ff1cdd9380cc5f9244775eb6c8

Saya dapat melakukan semua langkah ini dengan beberapa penyedia hosting bersama Jerman tanpa masalah. Beberapa hoster mempunyai masalah dengan symlink, tetapi aliase juga dapat membantu . Sebagai contoh, .bashrc berikut membantu dengan DomainFactory:

16c389ff1cdd9380cc5f9244775eb6c8

Terdapat juga masalah ketika mengakses / proc / stat di persekitaran maya / bersama, itulah sebabnya fungsi simpul os.cpus (), misalnya, kembali tidak ditentukan dan bukannya bilangan teras yang betul. Semasa memasang pakej npm ini membawa kepada mesej ralat seperti "Tidak dapat membaca harta 'panjang' yang tidak ditentukan". Saya dapat menyelesaikan masalah dengan menggunakan Node.js versi terkini (mis. 11.15.0) yang menangani masalah tersebut.

Belakang