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
Pertama, kita tentukan pembolehubah persekitaran sementara yang akan kita perlukan kemudian. Untuk melakukan ini, kita tentukan direktori utama pengguna (biasanya ~/, pada beberapa hos kongsi juga /www/htdocs/xxxxxxxxx/) dan versi PHP yang diingini (contohnya, /usr/bin/php72 dengan pembekal All-Inkl , /usr/local/bin/php7-72LATEST-CLI dengan DomainFactory ).:
16c389ff1cdd9380cc5f9244775eb6c8
Sekarang kita akan memastikan PHP berjalan dalam versi terkini pada konsol. Untuk melakukan ini, kita akan mencipta folder baharu dalam direktori utama, mencipta pautan simbolik dan menambah direktori tersebut pada permulaan pembolehubah persekitaran 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 ialah skrip Bash yang sebenarnya direka untuk memudahkan pertukaran antara versi Node. Di sini, kami memanfaatkan cirinya yang memasang Node.js tanpa memerlukan keistimewaan 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 tanpa sebarang masalah dengan beberapa penyedia hosting kongsi Jerman. Sesetengah hos mempunyai masalah dengan pautan simbolik, tetapi ini juga boleh diselesaikan menggunakan definisi alias . Contohnya, fail .bashrc berikut berfungsi untuk DomainFactory.:
16c389ff1cdd9380cc5f9244775eb6c8
Terdapat juga isu mengakses `/proc/stat` dalam persekitaran maya/kongsi, itulah sebabnya, sebagai contoh, fungsi Node `os.cpus()` mengembalikan `undefined` dan bukannya kiraan teras yang betul. Ini membawa kepada mesej ralat seperti "Tidak dapat membaca 'panjang' sifat undefined" semasa memasang pakej npm. Saya dapat menyelesaikan masalah ini dengan menggunakan versi Node.js terkini (cth., 11.15.0) yang menangani isu tersebut.