Phần mở rộng PHP OpenSSL có một gói?


22

Tôi biết rằng tiện ích mở rộng OpenSSL có trong nguồn PHP, nhưng tôi không thể kích hoạt nó khi tôi thực hiện apt-get install php5. Thậm chí không có a apt-get install php5-openssl. Làm thế nào tôi phải tiến hành?


2
Tôi biết bài này là cũ, chỉ là một số thông tin chung. Theo mặc định, các gói của PHP được phân phối với --with-openssl=[defaultpath]. Nó có nghĩa là bạn chỉ cần cài đặt openssl (hoặc bất kỳ biến thể khác) ví dụ sudo apt-get install openssl (cũng kiểm tra phiên bản của openssl để cài đặt do heartbleed , ví dụ sudo apt-cache policy openssl. Để kiểm tra thời tiết PHP được kích hoạt với openssl chỉ cần gõ php -m | grep opensslphp -i | grep OpenSSL.
dbf

Câu trả lời:


29

Tôi nghĩ rằng hỗ trợ SSL không phụ thuộc vào tiện ích mở rộng, nó đã được tích hợp vào PHP của Ubuntu. Hãy thử tạo một tệp PHP trong máy chủ web của bạn với nội dung này:

<?php phpinfo() ?>

sau đó truy cập nó trong một trình duyệt ( http://<server>/<file>.php). Bạn nên thấy:

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Tôi chỉ cài đặt các gói PHP này: libapache2-mod-php5, php5-cli, php5-common, php5-gd, php5-mcrypt, php5-mysql.


Một bản dựng cá nhân đã bị lãng quên trong hệ thống của tôi ... Cảm ơn!
Tasso Evangelista

15
Hoặc gọi chức năng trong một thiết bị đầu cuốiphp -i | grep -i openssl
Overclover

Oneliner nhanh để liệt kê tất cả các mô-đun hiện được bật trong tệp nhị phân PHP của bạn:php -i | grep enabled
JulioHM

11

Hãy thử :

php -i | grep -i openssl

Nếu bạn đã cài đặt tiện ích mở rộng OpenSSL, bạn sẽ thấy một cái gì đó như thế này:

openssl
OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 1.0.1f 6 Jan 2014
OpenSSL Header Version => OpenSSL 1.0.1f 6 Jan 2014
openssl.cafile => no value => no value
openssl.capath => no value => no value
OpenSSL support => enabled

Có vẻ như phần mở rộng OpenSSL được cài đặt theo mặc định.

Cập nhật :

Nếu bạn không có tiện ích mở rộng này, bạn có thể chỉnh sửa tệp php.ini .

Từ php.ini :

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;

; If you wish to have an extension loaded automatically, use the following
; syntax:
;
;   extension=modulename.extension
;
; For example, on Windows:
;
;   extension=msql.dll
;
; ... or under UNIX:
;
;   extension=msql.so
;
; ... or with a path:
;
;   extension=/path/to/extension/msql.so
;
; If you only provide the name of the extension, PHP will look for it in its
; default extension directory.
;

nếu không câu trả lời là gì?
Braian Mellor

@BraianMellor Trong php.ini cố gắng thay đổi ;extension=php_openssl.dllđể extension=php_openssl.dllhoặc có thể tìm kiếm câu trả lời ở simplemachines.org/community/index.php?topic=310264.0 Chúc may mắn!
simhumileco

Bạn có biết gì về Linux không? Bạn có chắc không?
Braian Mellor

1
Giải pháp của tôi là cài đặt openssl bằng apt-get. Tốt!
Braian Mellor

1
@BraianMellor viết câu trả lời :)
simhumileco

1

Tôi đã cài đặt OpenSSL 1.1.0fbằng

# apt-get install openssl

# php -i | grep -i openssl
openssl
OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 1.1.0f  25 May 2017
OpenSSL Header Version => OpenSSL 1.1.0f  25 May 2017
Openssl default config => /usr/lib/ssl/openssl.cnf
openssl.cafile => no value => no value
openssl.capath => no value => no value
Native OpenSSL support => enabled

Hy vọng nó sẽ giúp được ai đó!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.