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, kita mendefinisikan variabel lingkungan sementara yang akan kita butuhkan nanti. Untuk melakukan ini, kita menentukan direktori home pengguna (biasanya ~/, di beberapa shared hosting juga /www/htdocs/xxxxxxx/) dan versi PHP yang diinginkan (misalnya, /usr/bin/php72 dengan provider All-Inkl , /usr/local/bin/php7-72LATEST-CLI dengan DomainFactory ).:

16c389ff1cdd9380cc5f9244775eb6c8

Sekarang kita akan memastikan bahwa PHP berjalan dalam versi terbarunya di konsol. Untuk melakukan ini, kita akan membuat folder baru di direktori home, membuat tautan simbolik, dan menambahkan direktori tersebut ke awal variabel lingkungan 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

Kita menggunakan nvm untuk menginstal Node.js. Ini adalah skrip Bash yang dirancang untuk memudahkan peralihan antar versi Node. Di sini, kita memanfaatkan fiturnya yang menginstal Node.js tanpa memerlukan hak akses 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 tanpa masalah dengan beberapa penyedia shared hosting Jerman. Beberapa host memiliki masalah dengan symbolic link, tetapi ini juga dapat diatasi dengan menggunakan definisi alias . Misalnya, file .bashrc berikut berfungsi untuk DomainFactory.:

16c389ff1cdd9380cc5f9244775eb6c8

Terdapat juga masalah dalam mengakses `/proc/stat` di lingkungan virtual/shared, yang menyebabkan, misalnya, fungsi Node `os.cpus()` mengembalikan `undefined` alih-alih jumlah core yang benar. Hal ini menyebabkan pesan kesalahan seperti "Cannot read property 'length' of undefined" saat menginstal paket npm. Saya berhasil menyelesaikan masalah ini dengan menggunakan versi Node.js terbaru (misalnya, 11.15.0) yang mengatasi masalah tersebut.

Kembali