개발 꿀팁/PHP

php openssl 확장 추가

Jammie 2022. 6. 30. 16:21
반응형

php openssl 확장 추가
composer를 사용하여 한 번에 설치laravel 프레임워크의 경우 openssl 지원을 켜지 않았음을 알려드립니다.
그다음에 php.ini에서 o를 켰어요.penssl 그래도 안되는데 phpinfo()를 실행해서 알아냈어요
openssl 확장은 아예 안 해놨어요전, php-i를 사용하여 php 컴파일 시 옵션을 확인해보니 확실히 없습니다.
추가 -- with- openssl,php를 다시 컴파일하는 것도 귀찮아서 나중에 인터넷에서 자료를 찾아보니
php를 다시 컴파일하지 않고도 추가할 수 있다확장 모듈.

다음은 이번 php에 ope를 추가한 것입니다.nssl 모듈의 메모, 이 방법이 확실히 편리하다고 생각해서 필요하다.
적어주세요

시스템 환경:
php 7.1.9

php 설치 경로:
/usr/local/php

1단계: 설치된 php 버전과 동일한 소스 패키지 찾기 (php --version을 사용하여 php 버전 보기)
만약 이전에 소스코드 패키지가 있다면, 직접 압축을 풀지 않고, 인터넷에서 같은 버전을 다운로드한 후 압축을 풀지 않는다.
명령 사용: tar-zxvf xxx.tar.gz

2단계: 압축 해제된 디렉터리에 들어가면 ext의 디렉터리가 나타납니다. 그 디렉터리에 openssl 디렉터리가 있습니다. 다음과 같습니다.그림에 나타내다

3단계: openssl 디렉토리에 들어가 다음 명령을 실행합니다

 1 [root@localhost openssl]# /usr/local/php/bin/phpize   //자신의 설치 환경에 따라, 자신이 이미 설치한 것을 찾는다php中的phpize
 2 Cannot find config.m4.                               //config.m4 파일을 찾을 수 없습니다. 다음 뮤직비디오 작업을 수행합니다
 3 Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module
 4 
 5 [root@localhost openssl]# ls
 6 config0.m4  config.w32  CREDITS  openssl.c  openssl.mak  php_openssl.h  README  tests  xp_ssl.c
 7 [root@localhost openssl]# mv config0.m4 config.m4       //디렉터리의config0.m4이름을 직접 고치다config.m4
 8 [root@localhost openssl]# /usr/local/php/bin/phpize     //다시 실행
10 PHP Api Version:         20160303
11 Zend Module Api No:      20160303
12 Zend Extension Api No:   320160303

4단계: 위의 단계를 완료하면 다음 그림과 같이 openssl 디렉토리에 configure 파일이 생성됩니다

다음 명령을 실행하면 됩니다.

 1 [root@localhost openssl]# ./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config
 2 checking for grep that handles long lines and -e... /bin/grep
 3 checking for egrep... /bin/grep -E
 4 checking for a sed that does not truncate output... /bin/sed
 5 checking for cc... cc
 6 checking for C compiler default output file name... a.out
 7 ...
 8 ...     //여기서는 일부 실행 과정을 생략한다
 9 
10 
11 //configure그런 다음 make가 컴파일하고 일부 코드는 다음과 같다:
12 [root@localhost openssl]# make
13 /bin/sh /usr/src/lamp/php-7.1.9/ext/openssl/libtool --mode=compile cc  -I. -I/usr/src/lamp/php-7.1.9/ext/openssl -DPHP_ATOM_INC -I/usr/src/lamp/php-7.1.9/ext/openssl/include -I/usr/src/lamp/php-7.1.9/ext/openssl/main -I/usr/src/lamp/php-7.1.9/ext/openssl -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib  -DHAVE_CONFIG_H  -g -O2   -c /usr/src/lamp/php-7.1.9/ext/openssl/openssl.c -o openssl.lo
14 mkdir .libs
15  cc -I. -I/usr/src/lamp/php-7.1.9/ext/openssl -DP
16 ...
17 ...    //여기서는 일부 실행 과정을 생략한다
18 
19 //make컴파일이 끝나면 make install 설치 과정을 수행합니다
20 [root@localhost openssl]# make install
21 Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20160303/    //生成的openssl.so文件的目录位置,视自己php环境而定

5단계: php.ini 파일 편집

vim /usr/local/php/etc/php.ini
//开启extension_dir옵션, 확장 파일 저장 디렉터리 지정
//프로필의 기본값은 다음과 같습니다.
;extension_dir='./'
//아래와 같이 켜서 설정합니다
extension_dir='/usr/local/php/etc/extension'   //스스로 지정하다

아래 그림과 같이

6단계: 아래 그림과 같이 4단계에서 openssl.so 파일을 5단계에서 extension_dir로 지정한 디렉토리에 복사합니다.

7단계: php.ini 파일을 편집하고 openssl 확장을 켜고 php.ini 파일의 끝에 다음과 같은 코드를 추가합니다.

1 extension=openssl.so
저장 후 종료, APACH 다시 시작, 아래 그림과 같이 테스트 성공

반응형