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 đặt các biến môi trường tạm thời mà chúng ta sẽ cần sau này. Để thực hiện việc này, chúng tôi xác định thư mục người dùng của người dùng (thường là ~ /, trên một số máy chủ được chia sẻ cũng là / www / htdocs / xxxxxxx /) và phiên bản PHP mong muốn (ví dụ với nhà cung cấp All-Incl / usr / bin / php72, với DomainFactory / usr / local / bin / php7-72 MỚI NHẤT-CLI):

16c389ff1cdd9380cc5f9244775eb6c8

Bây giờ chúng tôi đảm bảo rằng phiên bản PHP mới nhất đang chạy trên bảng điều khiển. Để làm điều này, chúng tôi tạo một thư mục mới trong thư mục chính, tạo một liên kết mềm và thêm thư mục vào đầu 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 tôi sử dụng nvm để cài đặt Node.js. Đây là một tập lệnh bash thực sự phục vụ để dễ dàng chuyển đổi giữa các phiên bản nút. Chúng tôi sử dụng thuộc tính ở đây mà Node.js được cài đặt mà không có 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 đã có thể thực hiện tất cả các bước này với một số nhà cung cấp dịch vụ lưu trữ chia sẻ của Đức mà không gặp bất kỳ sự cố nào. Một số máy chủ gặp sự cố với liên kết tượng trưng, ​​nhưng aliase cũng có thể giúp ích . Ví dụ: .bashrc sau đây giúp với DomainFactory:

16c389ff1cdd9380cc5f9244775eb6c8

Cũng có một số vấn đề khi truy cập / proc / stat trong môi trường ảo / chia sẻ, đó là lý do tại sao hàm nút os.cpus (), ví dụ, trả về không xác định thay vì số lõi chính xác. Khi cài đặt các gói npm, điều này dẫn đến các thông báo lỗi như "Không thể đọc thuộc tính 'length' của undefined". Tôi có thể giải quyết sự cố bằng cách sử dụng phiên bản Node.js gần đây (ví dụ: 11.15.0) đã giải quyết được sự cố.

Trở lại