CentOS 에서 PHP 7 의 컴 파일 설치 및 MySQL 지원 및 일반적인 문제 해결 방법

최근 에 PHP 7 을 시 도 했 는데 MySQL 을 컴 파일 하고 지원 하 는 데 문제 가 생 겼 습 니 다.많은 친구 들 도 똑 같이 만 났 을 거 라 고 믿 기 때문에 이 과정 에 대해 이야기 해 보 겠 습 니 다.간단하게 말 하면 PHP 7 을 컴 파일 하 는 데 3 단계 만 필요 합 니 다.
1、./buildconf --force
2、./configure
3、make && make install
1,3 단 계 는 관리 할 만 한 것 이 없습니다.configure 는 컴 파일 의 관건 입 니 다.PHP 가 일부 라 이브 러 리 에 대한 지원 과 관련 되 어 있 습 니 다.여기 서 저 희 는 MySQL 을 포함 하여 최소 의 지원 을 사용 합 니 다.
curl
gd
fpm
mysqlnd
curl 과 gd 를 가지 고 있 는 이 유 는 이 세 개의 라 이브 러 리 가 PHP 를 컴 파일 하기 전에 설치 해 야 한 다 는 것 을 알 기 위해 서 입 니 다.yum 을 기본 위치 에 설치 할 수도 있 고 지정 한 위치 에 컴 파일 할 수도 있 습 니 다.yum 을 설치 한 후에 컴 파일 할 때 라 이브 러 리 의 설치 위 치 를 지정 하지 않 아 도 됩 니 다.이 라 이브 러 리 를 설치 하 는 것 과 관련 하여 많은 것 을 검색 할 수 있 습 니 다.기본 적 인 configure 를 살 펴 보 겠 습 니 다.
./configure --prefix=/apps/php/php7.0 --enable-mbstring --with-curl --with-gd --with-config-file-path=/apps/php/php7.0/etc/ --
enable-fpm --enable-mysqlnd --with-pdo-mysql=mysqlnd
PHP-FPM
fpm 에 대해 서 는 말 할 필요 도 없 이 그것 으로 PHP 를 지원 하 는 것 이 좋 은 선택 이 라 고 믿 습 니 다.PHP 5.3.3 부터 phop-fpm 가 내장 되 어 있 기 때문에 PHP 7 에 도 당연히 있 습 니 다.-enable-fpm 만 있 으 면 됩 니 다.
php-fpm 매개 변수:
--start 시작
--stop 강제 종료
--quit 평활 종료
--restart 재 부팅
--reload php 를 다시 부 드 럽 게 불 러 오 는 php.ini
--logrotate 로그 파일 다시 사용
MySQL 지원
이 점 에 중점 을 두 고 말씀 드 리 겠 습 니 다.그 위 에 시간 이 좀 걸 렸 기 때문에 어느 버 전부터 PHP 는 my sql 라 이브 러 리 를 사용 하여 my sql 연결 을 지원 하지 않 고 my sqlnd 를 사용 하여 지원 합 니 다.libmy sql 보다 훨씬 빠르다 고 들 었 습 니 다.PHP 5.x 는 libmy sql 도 사용 할 수 있 습 니 다.PHP 7 은 지원 이 취 소 된 것 같 습 니 다.컴 파일 도 없습니다.-with-my sql 인자.--with-mysql 과--with-pdo-mysql 만 지원 합 니 다.configure 의 인 자 를 보면 알 수 있 습 니 다.

./configure -help | grep mysql 

이 를 통 해 알 수 있 듯 이 PHP 는 my sqlnd 를 사용 하여 MySQL 을 지원 하 기 를 원 하기 때문에 매개 변 수 는 이렇게 쓸 수 있 습 니 다.
--enable-mysqlnd
--with-mysqli=mysqlnd
--with-pdo-mysql=mysqlnd
my sqlnd 는 my sql 지원 이 필요 없 기 때문에 my sql 을 먼저 설치 하지 않 아 도 됩 니 다.my sql 은 phop 이 my sql 을 지원 할 수 있 음 을 나타 낸다.


몇 가지 문제
컴 파일 문제:cc:내부 오류:Killed(program cc1)
이 문 제 는 처음 만 났 습 니 다.알 고 보 니 제 아 리 클 라 우 드 서버 가 swap 를 껐 습 니 다.메모리 가 부족 해서 이 잘못 을 알 렸 습 니 다.해결 방법 은 간단 합 니 다.configure 에--disable-fileinfo 인 자 를 추가 하면 됩 니 다.
PHP 에서 my sql 서 비 스 를 찾 을 수 없습니다.
말씀 드 린 바 와 같이 확실히 찾 지 못 했 습 니 다.ppinfo 중 pdo 를 보 세 요.mysql.default_소켓 항목

mysql.sock 이 어디 에 있 는 지 mysql.sock 의 실제 위 치 를 다시 봅 니 다.명령 사용:ps-ef|grep mysql 보기:

분명히 한 위치 에 없습니다.제 정확 한 위 치 는:/var/lib/mysql/mysql.sock 입 니 다.
그래서 php.ini 를 수정 하고 pdo 를 찾 으 세 요.mysql.default_socket,실제 위치 로 바 꾸 고 phop-fpm 를 다시 시작 합 니 다.불행 하 게 도 phop.ini 에 이 설정 이 있 지만 수정 후 에는 안 됩 니 다.컴 파일 할 때 my sql.socket 의 위 치 를 지정 하 는 것 이 좋 습 니 다.

--with-mysql-sock=/var/lib/mysql/mysql.sock
아직 안 되면/tmp 디 렉 터 리 에 my sql.sock 의 소프트 링크 를 만 들 수 있 습 니 다:

ln -s /var/lib/mysql/mysql.sock mysql.sock 
php-fpm 를 다시 시작 하면 정상적으로 작 동 할 것 이 라 고 믿 습 니 다.PHP 가 지원 하 는 라 이브 러 리 가 더 필요 하 다 면 다시 컴 파일 할 수 있 습 니 다.configure 에서 필요 한 지원 을 더 하면--with-xxx 입 니 다.세 개의 라 이브 러 리 라면 이 라 이브 러 리 를 먼저 설치 해 야 한 다 는 것 을 기억 하 세 요.

좋은 웹페이지 즐겨찾기