Node.js / npm / Komposer tanpa root

Dalam posting blog yang lebih lama, saya menjelaskan cara menghosting Node.js secara gratis menggunakan Heroku . Sekarang saya akan menunjukkan kepada Anda cara bagaimana Anda dapat menginstal Node.js , npm dan Composer pada host bersama lainnya tanpa hak root dengan beberapa baris kode. Dengannya Anda dapat menginstal paket, menerapkan aplikasi Vue.js atau hanya memulai server Express.js. Kami selalu bekerja di direktori pengguna dan menggunakan nvm - Manajer Paket Node.


Penting untuk memastikan sebelumnya bahwa komposer dan node tidak tersedia dan baris berikut tidak menghasilkan keluaran apa pun:

16c389ff1cdd9380cc5f9244775eb6c8

Pertama kami menetapkan variabel lingkungan sementara yang akan kami butuhkan nanti. Untuk melakukan ini, kami menentukan direktori pengguna pengguna (biasanya ~ /, pada beberapa host bersama juga / www / htdocs / xxxxxxx /) dan versi PHP yang diinginkan (misalnya dengan penyedia All-Inkl / usr / bin / php72, dengan DomainFactory / usr / local / bin / php7-72LATEST-CLI):

16c389ff1cdd9380cc5f9244775eb6c8

Sekarang kami memastikan bahwa versi PHP terbaru berjalan di konsol. Untuk melakukan ini, kami membuat folder baru di direktori home, membuat tautan lunak dan menambahkan direktori ke awal PATH.

16c389ff1cdd9380cc5f9244775eb6c8

Sekarang kita menginstal komposer global dengan mengunduh, memeriksa dan menjalankan skrip instalasi, lalu menempatkan composer.phar di direktori pengguna dan membuat symlink lagi:

16c389ff1cdd9380cc5f9244775eb6c8

Kami menggunakan nvm untuk menginstal Node.js. Ini adalah skrip bash yang sebenarnya digunakan untuk beralih antar versi node dengan mudah. Kami menggunakan properti di sini yang Node.js diinstal tanpa hak root:

16c389ff1cdd9380cc5f9244775eb6c8

Koreksi kecil di .bashrc diperlukan untuk saya:

16c389ff1cdd9380cc5f9244775eb6c8

Sekarang kita dapat menginstal dan mengaktifkan Node.js versi stabil saat ini:

16c389ff1cdd9380cc5f9244775eb6c8

Dengan bantuan nvm kita juga dapat dengan mudah berpindah versi.

16c389ff1cdd9380cc5f9244775eb6c8

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

16c389ff1cdd9380cc5f9244775eb6c8

Ada juga masalah dengan akses ke / proc / stat di lingkungan virtual / bersama, itulah sebabnya fungsi node os.cpus (), misalnya, mengembalikan tidak terdefinisi alih-alih jumlah inti yang benar . Saat menginstal paket npm, hal ini mengarah ke pesan kesalahan seperti "Tidak dapat membaca properti 'panjang' yang tidak ditentukan". Saya dapat menyelesaikan masalah dengan menggunakan versi terbaru Node.js (mis.11.15.0) yang mengatasi masalah tersebut.

Kembali