본문 바로가기
언어/PHP

[PHP] FCM 메세지 전송 안되는 문제 해결

by 코딩히어로 2022. 7. 26.
728x90

1


이번에 프로젝트를 진행하면서 기존에 C언어 > PHP 구조를 통해 curl로 FCM 메시지를

보내는 방식을 다시 사용하여 새로운 서버에 적용했는데 프로그램이 같음에도 불구하고

null이라는 리턴 값만 보일 뿐 push message는 전송되지 않는 문제가 발생했습니다.

 

2021.12.13 - [언어/PHP] - 리눅스 FCM push message 전송

 

리눅스 FCM push message 전송

리눅스 Centos7에서 FCM메시지를 전송하기 위해서 PHP를 사용했지만 진행하는 프로젝트가 TCP/IP C언어 프로그램에서 전송해야 되는 시스템이라 다음과 같이 구성하였습니다. C언어에서는 curl 라이브

codinghero.tistory.com

이전 발행 글은 위에서 확인하실 수 있습니다

일반적인 경우에 curl과 php가 정상적으로 설치되어 있다면 위와 같이 구현할 경우 메시지가 전송됩니다.

그런데 만약 메세지 전송이 되지 않는다면 다음과 같은 내용을 의심해봐야 합니다

 

 

1. PHP 버전


먼저 PHP 버전을 확인하셔야 합니다

저의 경우에 이미 예전에 만들어진 서버에 새로 작성을 하다 보니

php 버전이 php-70w로 오래된 버젼이 설치되어 있었습니다

 

이 부분을

yum remove php* -y

명령을 통해서 전부 지워준 뒤에

yum install php -y

명령을 통해 설치해주었습니다

 

설치하셔야 할 목록은 다음과 같습니다

php-xml-5.4.16-48.el7.x86_64
php-common-5.4.16-48.el7.x86_64
php-xmlrpc-5.4.16-48.el7.x86_64
php-gd-5.4.16-48.el7.x86_64
php-pdo-5.4.16-48.el7.x86_64
php-soap-5.4.16-48.el7.x86_64
php-5.4.16-48.el7.x86_64
php-mysqlnd-5.4.16-48.el7.x86_64
php-mbstring-5.4.16-48.el7.x86_64
php-cli-5.4.16-48.el7.x86_64
php-mcrypt-5.4.16-9.el7.x86_64

php를 구동하시는 데 있어서 웬만하면 위 항목의 패키지는 모두 설치하시는 것이 좋습니다

 

 

2. PHP 설정


/etc/php.ini

 

short_open_tag = ON

PHP에서 <?,?> 태그를 많이 접하게 되는데 이 부분이 원래는

<? php라는 태그인데 생략해서 간소화한다는 의미입니다

태그 부분을 ON으로 변경해서 사용하시는 게 추후에도 편리합니다

 

그 이후에도 추가적으로 몇 가지 설정을 아래와 같이 해주었습니다

memory_limit = 128M
post_max_size = 60M
upload_max_filesize = 50M
date.timezone = "Asia/Seoul";

 

 

3. curl 설치


FCM 메시지를 전달하거나 C언어에서 PHP로 접근할 때 필수로 사용되는 curl을 설치합니다

 

yum install curl -y

 

해당 패키지는 FCM을 전송하는 데 있어 없어서는 안 되므로 필수적으로 설치해주세요

 

 

4. HTTP 설정


마지막으로 3번까지 하고서 C언어를 통해 PHP를 실행했더니

메시지 전송이 아니라 PHP 소스코드가 출력이 되었습니다

이 부분은 Http에서 php소스코드를 인식하지 못하는 문제이므로

Httpd.conf 파일 수정을 통해 해결이 가능합니다

 

/etc/httpd/conf/httpd.conf

 

AddType application/x-httpd-php. php. html

AddType application/x-httpd-php-source. phps

 

이후 httpd 서비스 재시작해주시면 됩니다

 


여기까지 모두 체크하여 빠진 부분을 적용하시면 FCM 메시지 전송이 가능합니다

728x90
반응형

댓글