Hướng dẫn php_openssl dll

Tôi đã cài đặt TYPO3 6.2.2 trên Windows 7 nhưng gặp thông báo lỗi như sau:

PHP OpenSSL extension not working Something went wrong while trying to create a new private key for testing. Please check the integration of the PHP OpenSSL extension and if it is installed correctly.

Tôi cố gắng tìm giải pháp trên internet về lỗi này nhưng tôi không thể giải quyết được lỗi này.

Bất cứ ai có thể giúp tôi để tìm giải pháp xin vui lòng? Cảm ơn.

  • php
  • windows
  • apache
  • typo3
  • php-openssl

18 hữu ích 3 bình luận 33k xem chia sẻ

answer

33

Giải pháp phù hợp với tôi trên XAMPP và Windows Vista:

  • Kích hoạt mô-đun PHP openssl

    Mở php.ini và bỏ ghi chú (xóa ';') trong:

    ;extension=php_openssl.dll

    Kiểm tra kỹ xem tiện ích mở rộng đã được bật hay chưa bằng cách chạy phpinfo ().

  • Thêm biến môi trường hệ thống "OPENSSL_CONF" với giá trị

    C:\xampp\apache\conf\openssl.cnf

    ... giả sử bạn đã cài đặt xampp vào C: \ xampp.

  • Đặt đường dẫn thành 'openssl.exe' , trong C: \ xampp \ apache \ bin

    • Hoặc đặt $TYPO3_CONF_VARS['SYS']['binSetup']trong ...\htdocs\typo3_src-6.2.x\typo3\sysext\core\Configuration\DefaultConfiguration.phpđể'openssl=c:/xampp/apache/bin/openssl.exe'

    • hoặc thêm c:\xampp\apache\binvào biến môi trường PATH (sẽ hoạt động với mọi tập lệnh PHP không chỉ TYPO3)

  • Khởi động lại xampp

Liên kết / nguồn:

  • //wiki.typo3.org/Exception/CMS/1318283565

  • //www.typo3.net/forum/thematik/zeige/thema/116156/

33 hữu ích 5 bình luận chia sẻ

answer

10

Để bật OpenSSL trên PHP trong Windows, phải thực hiện ba bước:

  1. bật tiện ích mở rộng - đảm bảo bỏ ghi chú dòng này trong php.ini:

    extension=php_openssl.dll

  2. Thêm thư mục PHP vào biến môi trường PATH của Windows:

    Bảng điều khiển -> Hệ thống -> Cài đặt hệ thống nâng cao -> Biến môi trường.
    Định vị biến Đường dẫn trong khối Biến hệ thống.
    Thêm c:\php;vào trước nó, hoặc bất kỳ đường dẫn PHP nào của bạn.

  3. Tạo một biến môi trường OPENSSL_CONF bổ sung cho Windows chứa đường dẫn đầy đủ của tệp cấu hình OpenSSL của PHP:

    Bảng điều khiển -> Hệ thống -> Cài đặt hệ thống nâng cao -> Biến môi trường.
    Trong khối System Variables, nhấp vào New ...
    Tên OPENSSL_CONF
    biến: Giá trị biến: C:\php\extras\ssl\openssl.cnf
    Sửa đổi giá trị đó để phù hợp với thư mục cài đặt PHP của bạn!

Khởi động lại Windows để các thay đổi về môi trường có thể có hiệu lực.

Thông tin chi tiết về hỗ trợ PHP OpenSSL trong Windows có thể được tìm thấy tại đây .

10 hữu ích 1 bình luận chia sẻ

answer

3

Trên typo3 6.2.7 trên win7 XAMPP 1.8.3

Giải pháp của lỗi openSSL là tạo thư mục C: \ openssl-1.0.1i-win32 \ ssl và đặt E: \ Portables \ xampp \ apache \ conf \ openssl.cnf vào đó. Tôi có một hướng dẫn về nó từ một trang web của Đức.

Làm thế nào tôi phát hiện ra nó (chỉ trong trường hợp các phiên bản thay đổi), trong trình bao trên bảng điều khiển XAMPP, lệnh openssl cung cấp

CẢNH BÁO: không thể mở tệp cấu hình: E: /Portables/xampp/apache/bin/openssl.cnf.

Nhưng thêm tệp vào đó không giúp được gì. Tôi đã thêm và xóa tệp.

Thêm vào ;E:\Portables\xampp\apache\binbiến môi trường PATH (Thuộc tính hệ thống -> Nâng cao). Chạy lệnh openssl trên cửa sổ CMD (không phải trình bao XMPP), thông báo:

CẢNH BÁO: không thể mở tệp cấu hình: c: /openssl-1.0.1i-win32/ssl/openssl.cnf

Thêm tệp vào đó, việc bổ sung vào biến môi trường PATH có thể bị xóa ngay bây giờ.

Thêm OPENSSL_CONFcũng không làm việc cho tôi.

3 hữu ích 1 bình luận chia sẻ

answer

1

Đặt biến môi trường toàn cầu OPENSSL_CONF thành% ProgramFiles (x86)% \ PHP \ Current \ extras \ openssl.cnf

1 hữu ích 0 bình luận chia sẻ

answer

0

Giải pháp sau chỉ có thể hoạt động bằng cách khởi động Apache-Server theo cách thủ công bằng cách nhấp vào apache_start.batbên trong Xampp, các trường hợp sử dụng và gói máy chủ khác không được kiểm tra hoặc đề cập.

Đối phó với một số phiên bản của xampp và có lẽ là một số khuôn khổ bổ sung, tôi đã tìm kiếm một cách tiếp cận phù hợp nhất với các yêu cầu sau:

  • Một khung công tác không bao giờ phải biết về cấu hình hoặc đường dẫn đến tệp openssl có thể thực thi (trong windows openssl.exe:).
  • Không quan trọng máy chủ nào được khởi động, đường dẫn phù hợp đến openssl luôn được tìm thấy, phù hợp với phiên bản của máy chủ. Điều này tránh các vấn đề mà openssl có thể được biên dịch với phiên bản khác không phải PHP hoặc Apache-Server.
  • Không bao giờ phải thêm các biến không linh hoạt và tĩnh vào PATH-Variable. Thay vào đó, chúng sẽ chỉ được thêm vào khi máy chủ đang chạy.
  • Việc dừng một phiên bản máy chủ và bắt đầu một phiên bản máy chủ khác sẽ chuyển đổi mà không cần thực hiện thêm hành động nào đến đúng đường dẫn của openssl.exevà openssl.cnf.

Dựa trên các yêu cầu của nhà phát triển này, các bước tôi mô tả hơi khác so với các câu trả lời đang chạy trên trang này:

  1. Bật openssl trong php.ini-tệp của từng phiên bản máy chủ (tức là xampp-1, xampp-2, v.v.) bằng cách xóa dấu chấm phẩy ở đầu dòng sau: ;extension=php_openssl.dll

  2. Mở tệp apache_start.batcủa từng phiên bản máy chủ và thay thế dòng

    apache\bin\httpd.exe

    bởi đoạn mã sau:
    SET OPENSSL_CONF=C:\xampp-x\apache\conf\openssl.cnf IF EXIST C:\xampp-x\apache\bin SET PATH=%PATH%;C:\xampp-x\apache\bin apache\bin\httpd.exe

    Chú ý rằng bạn ở khắp mọi nơi thay thế C:\xampp-x\bằng đường dẫn thực đến máy chủ tương ứng.

  3. Khởi động lại xampp bằng apache_start.bat hoặc bằng xampp-control-panel.

Giải pháp này tự nhiên cũng chỉ hoạt động với một máy chủ và với lợi thế là có giới hạn PATH-Variables được xác định trên toàn hệ thống.

CẬP NHẬT Nếu bạn vẫn gặp sự cố liên quan đến TYPO3, bất kể phương pháp bạn chọn là gì, hãy kiểm tra cookie_domain trong installtool. Nó sẽ áp dụng cho miền hiện tại hoặc đang trống. Một cookie miền sai có thể xảy ra nếu bạn sao chép một dự án từ máy chủ khác, tức là để phát triển.

0 hữu ích 0 bình luận chia sẻ

answer

0

Thêm đường dẫn như bên dưới đã "config" => "D:/xampp/php/extras/openssl/openssl.cnf",giải quyết được vấn đề.

$key = openssl_pkey_new([ "config" => "D:/xampp/php/extras/openssl/openssl.cnf", 'digest_alg' => 'aes256', 'private_key_type' => OPENSSL_KEYTYPE_RSA, 'encrypt_key' => false, 'encrypt_key_cipher' => OPENSSL_CIPHER_AES_256_CBC, ]); openssl_pkey_export_to_file($key, $this->folder . '/private.pem');

0 hữu ích 0 bình luận chia sẻ

Đăng nhập để trả lời câu hỏi

Có thể bạn quan tâm

Chủ đề