Node.js / npm / Composer không cần root

Trong một bài đăng trên blog cũ hơn, tôi đã mô tả cách lưu trữ Node.js miễn phí bằng Heroku . Bây giờ tôi sẽ chỉ cho bạn một cách bạn có thể cài đặt Node.js , npmComposer trên bất kỳ máy chủ chia sẻ nào khác mà không cần quyền root bằng một vài dòng mã. Với nó, bạn có thể cài đặt các gói, triển khai ứng dụng Vue.js hoặc chỉ khởi động máy chủ Express.js. Chúng tôi luôn làm việc trong thư mục người dùng và sử dụng nvm - Node Package Manager.


Điều quan trọng là phải đảm bảo trước rằng trình soạn nhạc và nút không có sẵn và các dòng sau không tạo ra bất kỳ đầu ra nào:

16c389ff1cdd9380cc5f9244775eb6c8

Đầu tiên, chúng ta định nghĩa các biến môi trường tạm thời mà chúng ta sẽ cần sau này. Để làm điều này, chúng ta chỉ định thư mục chính của người dùng (thường là ~/, trên một số máy chủ chia sẻ cũng có thể là /www/htdocs/xxxxxxx/) và phiên bản PHP mong muốn (ví dụ: /usr/bin/php72 với nhà cung cấp All-Inkl , /usr/local/bin/php7-72LATEST-CLI với DomainFactory ).:

16c389ff1cdd9380cc5f9244775eb6c8

Bây giờ chúng ta sẽ đảm bảo rằng PHP đang chạy ở phiên bản mới nhất trên bảng điều khiển. Để làm điều này, chúng ta sẽ tạo một thư mục mới trong thư mục chính, tạo một liên kết tượng trưng và thêm thư mục đó vào đầu biến môi trường PATH.

16c389ff1cdd9380cc5f9244775eb6c8

Bây giờ chúng tôi cài đặt trình soạn nhạc toàn cầu bằng cách tải xuống, kiểm tra và thực thi tập lệnh cài đặt, sau đó cũng đặt composer.phar trong thư mục người dùng và tạo lại liên kết biểu tượng:

16c389ff1cdd9380cc5f9244775eb6c8

Chúng ta sử dụng nvm để cài đặt Node.js. Đây là một kịch bản Bash được thiết kế để giúp việc chuyển đổi giữa các phiên bản Node trở nên dễ dàng. Ở đây, chúng ta đang tận dụng tính năng của nó là cài đặt Node.js mà không cần quyền root.:

16c389ff1cdd9380cc5f9244775eb6c8

Tôi cần một chỉnh sửa nhỏ trong .bashrc:

16c389ff1cdd9380cc5f9244775eb6c8

Bây giờ chúng ta có thể cài đặt và kích hoạt phiên bản ổn định hiện tại của Node.js:

16c389ff1cdd9380cc5f9244775eb6c8

Với sự trợ giúp của nvm, chúng ta cũng có thể dễ dàng chuyển đổi phiên bản.

16c389ff1cdd9380cc5f9244775eb6c8

Tôi đã thực hiện được tất cả các bước này mà không gặp vấn đề gì với một số nhà cung cấp dịch vụ hosting dùng chung của Đức. Một số nhà cung cấp dịch vụ hosting gặp sự cố với liên kết tượng trưng, nhưng điều này cũng có thể được giải quyết bằng cách sử dụng định nghĩa bí danh . Ví dụ, tệp .bashrc sau hoạt động với DomainFactory.:

16c389ff1cdd9380cc5f9244775eb6c8

Ngoài ra còn có các vấn đề khi truy cập `/proc/stat` trong môi trường ảo/chia sẻ, đó là lý do tại sao, ví dụ, hàm Node `os.cpus()` trả về `undefined` thay vì số lõi chính xác. Điều này dẫn đến các thông báo lỗi như "Cannot read property 'length' of undefined" khi cài đặt các gói npm. Tôi đã giải quyết được vấn đề bằng cách sử dụng phiên bản Node.js mới hơn (ví dụ: 11.15.0) đã khắc phục sự cố này.

Trở lại