이번에 프로젝트를 진행하면서 기존에 C언어 > PHP 구조를 통해 curl로 FCM 메시지를
보내는 방식을 다시 사용하여 새로운 서버에 적용했는데 프로그램이 같음에도 불구하고
null이라는 리턴 값만 보일 뿐 push message는 전송되지 않는 문제가 발생했습니다.
2021.12.13 - [언어/PHP] - 리눅스 FCM push message 전송
이전 발행 글은 위에서 확인하실 수 있습니다
일반적인 경우에 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 메시지 전송이 가능합니다
'언어 > PHP' 카테고리의 다른 글
[php] 에러 출력하기 (0) | 2023.11.12 |
---|---|
[php] 리눅스에 폴더 생성하기 (1) | 2023.11.12 |
[PHP] date함수를 이용한 날짜, 시간 구하기 (3) | 2022.07.07 |
PHP Warning: Unknown: failed: Permission denied (13) in Unknown on line 0 에러 해결 (5) | 2022.04.04 |
strpos 함수 (13) | 2022.03.28 |
댓글