Kiểm tra PHP nếu ssh2 được cài đặt
Xin chào, Show
Tôi đã sử dụng bước dưới đây dnf cài đặt libssh2-devel. x86_64 Tôi đang sử dụng php7. 4 Bài viết này mô tả sự cố mà tôi gặp phải khi phát triển ứng dụng SSH với PHP 8. 0 trên Windows 10 và giải pháp Môi trường
Mã ví dụ1 2 3 4 5 6 7 8 9 10 11 12 13 $kết nối = ssh2_connect($host, $port, array('hostkey'=>'ssh-rsa'));
if (ssh2_auth_pubkey_file( $kết nối, $tên người dùng, $filename_pub, $filename_prv, $filename_pwd)) { echo "Xác thực khóa công khai thành công\n"; } khác { chết('Xác thực khóa công khai không thành công'); } Dòng mã có vấn đề 1 $kết nối = ssh2_connect($host, $port, array('hostkey'=>'ssh-rsa')); Tạo ra lỗi này 1 2 3 4 Lỗi nghiêm trọng. Không phát hiện được Lỗi. Gọi đến hàm không xác định ssh2_connect . () in ssh-copy-id.php. 17 Ngăn xếp dấu vết. #0 {chính} ném vào ssh-copy-id.php trên dòng 17 Sau đó tôi đã kiểm tra php. ini để xác minh rằng phần mở rộng PHP extension=php_ssh2. dll đã được tải. Nó không phải là Tôi đã bỏ ghi chú (đã bật) dòng này và kiểm tra kỹ rằng php_ssh2. dll nằm trong thư mục ext Sau đó, tôi nhận được một lỗi khác 1 Cảnh báo. PHP Khởi động. Không thể to tải thư viện động . dll' 'php_ssh2.dll' (đã thử. C. \xampp\php\ . ext\php_ssh2.dll (Mô-đun được chỉ định . could not be found), C:\xampp\php\ . ext\php_php_ssh2.dll. dll (Mô-đun được chỉ định module could not be found)) in Unknown on line 0 Hmm, DLL ở đó, nhưng tôi không biết DLL đó đến từ đâu hoặc phiên bản của nó Tôi đã mở thư mục trong Windows Explorer, nhấp chuột phải vào tệp và chọn Thuộc tính. Tab chi tiết hiển thị như sau Phiên bản Sản phẩm DLL là 7. 4. 13 Một phương pháp khác sử dụng PowerShell 1 2 3 4 powershell '(Nhận vật phẩm ". /php_ssh2. dll"). Thông tin phiên bản. Phiên bản sản phẩm'
Đầu ra. 7. 4. 13 Cái nào cũng hiển thị phiên bản là 7. 4. 13. PHP 8 có lẽ cần một phiên bản mới hơn Ghi chú. sau này trong bài viết này, tôi khám phá ra lý do tại sao. PHP có phiên bản API mở rộng Giải phápVào trang tải xuống PECL cho SSH2, tôi đã tải xuống phiên bản gói mới nhất, 1. 3. 1 cho 64-bit An toàn luồng VS16. Tôi chọn VS16 vì XAMPP phiên bản 8. 0. 6 chỉ định VS16. VS16 có nghĩa là trình biên dịch được đóng gói với Visual Studio 2019. [] Sử dụng các phương pháp trước đó, tôi đã kiểm tra phiên bản. Gói SSH2 phiên bản 1. 3. 1 chứa phiên bản DLL 8. 0. 0. Cần làm việc. Đã tải xuống tệp zip, giải nén và sao chép thủ công tệp DLL và PDB vào thư mục ext Sau đó tôi đã thử lại chương trình của mình và thành công 1 2 php ssh-bản sao-id.php Khóa Công khai Xác thực Thành công Thông tin chi tiếtXAMPP Phiên bản 8. 0. 6Vì sự cố xảy ra trên hệ thống sử dụng XAMPP 8. 0. 6, tôi muốn kiểm tra lại xem XAMPP có vấn đề gì không. Điều này có nghĩa là tạo một hệ thống mới và cài đặt XAMPP Tôi đã tạo một máy ảo với Windows 10 Professional và cài đặt XAMPP 8. 0. 6. Sau đó tôi đã kiểm tra C. thư mục \xampp\php\ext. php_ssh2. không tìm thấy dll. Điều này có nghĩa là ai đó đã sao chép DLL theo cách thủ công từ bản cài đặt cũ hơn sang hệ thống có vấn đề của tôi XAMPP không phải là nguồn gốc của vấn đề. Lỗi của con người rất có thể là nguồn gốc của vấn đề Phát hiện tiện ích mở rộngĐoạn mã sau sẽ phát hiện nếu tiện ích mở rộng được cài đặt 1 2 3 4 nếu (. extension_loaded('ssh2')) { echo 'Lỗi. Chương trình này yêu cầu phần mở rộng PHP ssh2' . PHP_EOL; thoát(1); } Tuy nhiên, ví dụ này không ngăn thông báo cảnh báo PHP nếu tiện ích mở rộng được cài đặt nhưng không tải đúng cách 1 Cảnh báo. PHP Khởi động. Không thể to tải thư viện động . 'ssh2' (tried: C. \xampp\php\ . ext\ssh2 (The specified module could not be found), C:\xampp\php\ . ext\php_ssh2.dll (Mô-đun được chỉ định module could not be found)) in Unknown on line 0 Tệp PHP INIĐể xác định php. ini, hãy thực hiện lệnh này 1 php --ini Ghi chú. Nếu bạn đã cấu hình Apache với PHP, bạn sẽ có hai hoặc nhiều php. vị trí ini. Một cho CLI và một cho Apache. Trong trường hợp của tôi, tôi cài đặt PHP-FPM, vì vậy có một phần ba Đối với Apache, tạo một tệp PHP “không dễ tìm” với nội dung sau 1 2 <?php phpinfo(); Sau đó tải tệp đó qua URL trong trình duyệt web. Trang này sẽ chứa vị trí tệp mà Apache đang sử dụng cho php. ban đầu. Khi bạn đã hoàn tất, hãy xóa tệp. Đầu ra chứa thông tin nhạy cảm Tìm tập tin PHP INIPHP hỗ trợ nhiều phương thức để khai báo vị trí của php. tập tin ini nằm Cấu hình thời gian chạy PHP PHP hỗ trợ biến môi trường PHPRC. [link] Ví dụ cho Windows 1 2 3 4 5 6 7 đặt PHPRC=C. \PHP-GỠ LỖI-CONFIGURATION
php --ini Cấu hình Tệp (php. trong) Đường dẫn. Đã tải Cấu hình Tệp. C. \PHP-GỠ LỖI- . CONFIGURATION\php.ini Quét để tìm bổ sung . ini tệp in. (không có) Bổ sung . ini tệp được phân tích cú pháp. (không có) Windows XAMPP Trên Windows, XAMPP sử dụng cùng một vị trí cho CLI và Apache XAMPP sử dụng chỉ thị PHPIniDir nằm trong httpd-xampp. conf 1 2 3 <IfModule php_module> PHPINIDir "C. /xampp/php" </IfModule> Tôi sử dụng lệnh này để tìm kiếm 1 2 cd \ dir /s *php. ini* Linux/Ubuntu Để tìm kiếm hệ thống tập tin cho php. ini, cài đặt gói mlocate (Ubuntu) và thực hiện lệnh này 1 xác định vị trí php. ini Ghi chú. cài đặt gói mlocate tạo cơ sở dữ liệu gồm các tệp và công việc định kỳ để cập nhật cơ sở dữ liệu. Nếu bạn không muốn một quá trình nền khác chạy, hãy sử dụng ví dụ về lệnh find tiếp theo Trên Ubuntu 20 của tôi. 04 hệ thống với PHP 7. 4 đã cài đặt, một số php. tập tin ini được đặt 1 2 3 4 5 6 /vv/php/7.4/Apache2/php. ini /vv/php/7.4/cli/php. ini /vv/php/7.4/fpm/php. ini /usr/lib/php/7.4/php. ini-phát triển /usr/lib/php/7.4/php. ini-sản xuất /usr/lib/php/7.4/php. ini-sản xuất. cli Một lệnh khác tạo ra một đầu ra tương tự 1 sudo tìm / -iname "*php.ini*" Thư mục tiện ích mở rộng PHPKhi cài đặt Windows XAMPP của tôi, thư mục tiện ích mở rộng PHP là C. \xampp\php\ext. Vị trí này có thể định cấu hình trong php. tập tin ini 1 extension_dir="C. \xampp\php\ext" Chi tiết tiện ích mở rộng PHPMột mục mà tôi nhận thấy với PHP 8. 0 và 8. 1. Nếu bạn chỉ định một mô-đun X trong php. ini, CLI sẽ tìm kiếm X và sau đó là php_X. dll. Điều này có nghĩa là php_ssh2. gói dll có thể được chỉ định là extension=ssh2 Tôi thấy rằng php_ssh2. dll không hoạt động với PHP 8. 1 trên Windows. Khi phân tích vấn đề này, tôi nhận thấy một số mục được xuất bởi php -i
Tôi không biết về phiên bản API. Chi tiết lỗi từ PHP 8. 1 Cảnh báo. Khởi động PHP. ssh2. Không thể khởi tạo mô-đun Chuỗi TS,VS16 có nghĩa là Thread-Safe Visual Studio 2019. Điều đó giúp xác định cách biên dịch và xây dựng php_ssh2. dll Đang tải tiện ích mở rộng khi chạyCLI có thể tải tiện ích mở rộng PHP bằng tùy chọn dòng lệnh 1 2 3 php -d tiện ích mở rộng=C:/xampp/php/ . ext/php_ssh2 test.php
php -d tiện ích mở rộng=php_ssh2 test.php Điều này hữu ích khi phát triển ngoại lệ và xử lý lỗi cho tiện ích mở rộng câu hỏi chưa được giải quyếtWindows 10 Chuyên nghiệp
Ubuntu 20. 04
Thêm thông tin
Thẻ bài viếtthẻ. PHP, PHP8, SSH Tóm lượcĐể cài đặt các ràng buộc LIBSSH2 cho PHP 8 trên Windows 10, hãy hoàn thành các bước sau
Phát triển phần mềm không chỉ là viết mã. Chúng ta cần biết cách định cấu hình hệ thống và ghi lại các quy trình đó. Ngoài ra, điều quan trọng là chúng ta cần viết mã hoặc tập lệnh để định cấu hình và kiểm tra môi trường của mình. Không có gì tệ hơn là làm việc nhiều giờ, phát hành một sản phẩm tuyệt vời mà sau đó trở thành cơn ác mộng hỗ trợ khách hàng Tín dụng nhiếp ảnhTôi viết bài miễn phí về công nghệ. Gần đây, tôi đã biết về Pexels. com cung cấp hình ảnh miễn phí. Hình ảnh trong bài viết này được cung cấp bởi Pixabay tại Pexels John Hanley Tôi thiết kế phần mềm cho các hệ thống cấp doanh nghiệp và trung tâm dữ liệu. Nền tảng của tôi là hơn 30 năm về ảo hóa lưu trữ (SCSI, FC, iSCSI, mảng đĩa, hình ảnh). Hơn 20 năm trong lĩnh vực nhận dạng, bảo mật và pháp y Trong hơn 14 năm qua, tôi đã làm việc trong lĩnh vực đám mây (AWS, Azure, Google, Alibaba, IBM, Oracle) để thiết kế các giải pháp phần mềm lai và đa đám mây. Tôi là một MVP/GDE với một số Làm cách nào để bật ssh2 trong PHP?Nếu bất kỳ ai gặp sự cố khi cài đặt SSH2, đây là cách tôi đã thực hiện. . Tải xuống thư viện SSH2 PECL từ PHP. net [chọn phiên bản phù hợp] Sao chép libssh2. dll vào thư mục System32 [x86] hoặc SysWOW64 [x64] Sao chép php_ssh2. dll và php_ssh2. . Di dời ';' . . Khởi động lại Apache Phần mở rộng ssh2 PHP là gì?Tiện ích mở rộng SSH2 cung cấp các chức năng để truy cập máy từ xa bằng giao thức SSH và SFTP an toàn .
Chức năng của ssh2 là gì?Gen này mã hóa một loại protein tyrosine phosphatase đóng vai trò chính trong việc điều hòa các sợi actin . Protein được mã hóa khử phospho hóa và kích hoạt cofilin, thúc đẩy quá trình khử polyme hóa sợi Actin.
Làm cách nào để cài đặt ssh2 trên Ubuntu?Ubuntu 16. 04 LTS – Cách cài đặt tiện ích mở rộng ssh2 php7 . Bước 1 – Cập nhật kho lưu trữ Bước 2 – Cài đặt các gói bằng các lệnh sau Bước 3 – Bạn phải Tải xuống nguồn từ trang web chính thức của lib ssh2 và cài đặt Bước 4 – Giải nén tệp zip Bước 5 – Điều hướng đến thư mục php |