Linux

CentOS 5 , PHP 5.3 에서 CentOS 8 , PHP 7.2 로 이동시 문제점들

Jack Moon 2020. 11. 6. 17:17

개요: 10년전 만든 시스템을 업그레이드 하려고 하는데 우선 소스는 조금만 바꾸고 최신 버전으로 이동하려 한다. 여러가지 문제점들이 노출되어 참고로 적어둔다.

 

1. html, htm 의 PHP 코드가 그대로 노출된다.

 

해결

(1) php.conf 에서 (php|phar) 를 (php|phar|html|htm) 으로 수정한다.
(2) www.conf 에서  .php .php3 .php4 .php5 .php7 를 .php .php3 .php4 .php5 .php7 .html .htm 로 수정한다.
(3) httpd, php-fpm 데몬을 재실행한다. 
# vi /etc/httpd/conf.d/php.conf
<IfModule !mod_php5.c>
  <IfModule !mod_php7.c>
    # Enable http authorization headers
    SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
    <FilesMatch \.(php|phar|html|htm)$>
        SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
    </FilesMatch>
  </IfModule>
</IfModule>
<IfModule  mod_php7.c>
    #
    # Cause the PHP interpreter to handle files with a .php extension.
    #
    <FilesMatch \.(php|phar|html|htm)$>
        SetHandler application/x-httpd-php
    </FilesMatch>
# vi /etc/php-fpm.d/www.conf
security.limit_extensions = .php .php3 .php4 .php5 .php7 .html .htm
# systemctl restart httpd
# systemctl restart php-fpm

2. CentOS 8 시간 설정 동기화 (GCP 에서는 필요없음)

예전에는 아래와 같은 식으로 rdate를 통해 시간을 설정했다.

00 0,3,6,9,12,15,18,21 * * * rdate -s zero.bora.net && hwclock -w

하지만 CentOS 8 에서는 chronyd 를 사용한다.

[root@test ~]# date
2020. 11. 11. (수) 16:20:36 KST
[root@test ~]# ls -l /etc/localtime
lrwxrwxrwx. 1 root root 32  3월  5  2020 /etc/localtime -> ../usr/share/zoneinfo/Asia/Seoul
[root@test ~]# vi /etc/chrony.conf 
# pool 2.centos.pool.ntp.org iburst
server time.bora.net iburst
[root@test ~]# systemctl restart chronyd
[root@test ~]# systemctl enable chronyd
[root@test ~]# date
2020. 11. 11. (수) 16:12:05 KST

3. Timezone 설정

[root@ ~]# timedatectl set-timezone Asia/Seoul

4. MariaDB : ERROR CODE: 1366  Incorrect integer value: 

[root@ ~] vi /etc/my.cnf.d/mariadb-server.cnf
[mysqld]
sql-mode = "ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

5. sendmail 설치

[root@instance-2 ~]# yum install sendmail
[root@instance-2 ~]# systemctl enable sendmail
[root@instance-2 ~]# systemctl start sendmail
[root@instance-2 ~]# systemctl status sendmail