소스설치했던 MySQL 이 자꾸 죽는 현상이 발생해서 테스트 서버에 CentOS 6.6 을 설치하고 나서 yum -y update 를 하고 reboot 을 해서 CentOS 6.10 으로 업그레이드를 했다.
이 과정에서 sshd Port 를 22번에서 1922 로 변경했었는데 다시 22번으로 초기화되어 있더라.
CentOS 6.X 에서 yum 으로 PHP 5.6.40 버전과 MariaDB 10.3 버전을 설치하는 법을 몰라서 삽질을 엄청한 후에야 겨우 성공했다.
최근 자료는 CentOS 7.X 에 PHP 7.X 기반으로 설치하는 방법에 대해 나온다.
기존 소스를 최대한 손대지 않고 할 수 있는 방법을 찾아보니 자료를 좀 찾기가 쉽지 않았다.
순서는 이렇게 하면 된다.
1. 먼저 MariaDB 10.3 을 yum 설치한다.
2. PHP 5.6 버전을 yum 설치하면서 httpd 를 같이 설치한다.
Apache 2.4 버전을 별도 설치하고 PHP 5.6을 설치하니까 에러가 발생해서 지우고 Apache 2.2 로 다시 설치했다.
가장 먼저 확인할 사항
##=== 설치 확인
yum list installed | grep httpd
yum list installed | grep php
yum list installed | grep mysql
# cd /etc/yum.repos.d/
붉은색 안에 파일은 다음과 같이 해서 추가된 파일이다.
CentOS 7에서는 기본 DB가 MySQL에서 MariaDB로 변경되어 설치가 쉬운 반면에, CentOS6에서는 레포지터리부터 추가해서 따로 설치를 해줘야한다.
1단계 : Add MariaDB Yum Repositories
cd /etc/yum.repos.d/
vi /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/rhel6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
복사하여 붙여넣기하고 저장하고 빠져나온다.
2단계 – Install MariaDB Server
yum -y install MariaDB-server MariaDB-client
=== MariaDB 구동
service mysql start
service mysql stop
service mysql restart
3단계 – Secure MariaDB Install
/usr/bin/mysql_secure_installation
root 패스워드 지정한다.
이 부분에 대한 자세한 사항은 https://tecadmin.net/install-mariadb-10-centos-redhat/ 의 Step3 부분을 참조하라.
4단계 – Working with MariaDB
mysql -u root -p
===부팅시 자동 시작 설정
chkconfig mysql on
##############################################
##### How to Install PHP 5.6 on CentOS 6 #####
##############################################
Install Remi repository
이 부분이 게시글마다 약간씩 다르며, 버전업이 되어 나오는 거 같다. 아래 코드 복사하여 붙여넣기 한다.
yum -y --enablerepo=remi,remi-php56 install php-pecl-apc php-cli php-pear php-pdo php-pgsql php-pecl-mongo php-sqlite php-pcre php-gmp
yum -y --enablerepo=remi,remi-php56 install php-pecl-memcache php-pecl-memcached php-gd php-xml php-snmp php-libxml php-curl php-openssl
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
date.timezone = "Asia/Seoul"
;<? 와 <?php 둘다 인식하게 함
short_open_tag = On
; PHP 가 받아들이는 POST data 최대 크기
;default 8M 로 되어 있음, upload_max_filesize 보다 크게 설정해야 함
post_max_size = 60M
memory_limit = 128M
upload_max_filesize = 50M
; error_reporting 세팅
;개발환경
;error_reporting = E_ALL
; 실제 환경, 경고메시지 출력 안됨
;error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; 해킹의 먹이감이 되므로 평소에는 Off 로 해둔다. 에러가 있을 경우 디버깅 가능하도록 에러 메세지를 출력해준다.
display_errors = Off
; 평소에는 해제(Off)한다. 개발환경에서는 디버깅 가능하도록 On하면 에러 메세지를 출력해준다.
display_startup_errors = Off
log_errors = On
; 에러 로그 파일 설정이 없으면 Apache 로그 파일에 기록된다.
; 퍼미션 설정해서 /home/user/log/php.log 과 같이 설정
;error_log = filename
; register_globals = On 으로 하면, PHP 스크립트의 변수 값을 임의로 변경할 수 있는 취약성이 있다.
; off 로 설정한 후, $_GET, $POST 를 사용해서 사용자가 전달한 값을 얻어야 한다.
register_globals = Off
;UTF-8 로 문자 인코딩 설정하기
;해당 부분을 찾아서 아래와 같이 수정
default_charset = "UTF-8"
[mbstring]
mbstring.language = Korean
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
127.0.0.1 localhost.localdomain localhost
chmod 640 /etc/httpd/conf/httpd.conf
chown root:root /etc/httpd/conf/httpd.conf
chmod 640 /etc/php.ini
chown root:root /etc/php.ini
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
# 실행중인 프로세스 강제 종료
ps ax | grep httpd | awk '{print $1}' | xargs kill
killall -9 httpd
netstat -ltnp | grep ':80'
service httpd start
와 같이 나오면 정상적으로 설치된 거다.
소스 설치와 달리 MySQL/MariaDB 와의 연결은 알아서 해주나보다. phpinfo()에서는 MySQL 부분이 버전이 낮게 보이는데 사용해보니 DB와의 연결은 잘 된다.
MariaDB 는 MySQL 명령어와 동일한 명령어를 사용하므로 사용방법은 MySQL 사용한다고 보면 된다.
PHP 파일의 소스코드도 수정없이 동작된다.
Apache 환경설정 방법
- http://link2me.tistory.com/426 참조하면 도움된다.
- http://link2me.tistory.com/999 날짜별로 로그기록 남기기
PHP.ini 설정 게시글
- http://link2me.tistory.com/967
- http://link2me.tistory.com/986 PHP 보안설정
출처: http://link2me.tistory.com/797 [소소한 일상 및 업무TIP 다루기]
'리눅스' 카테고리의 다른 글
CentOS Sendmail 설치 및 세팅 (0) | 2019.05.01 |
---|---|
MySQL 접속방식을 MySQLi 접속방식으로 일괄 변경하는 방법 (0) | 2019.01.12 |
ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.pid). (0) | 2018.09.17 |
CentOS6 Apache 2.4 Virtual Host 설정 (0) | 2018.07.14 |
리눅스 시간 동기화 (0) | 2018.04.30 |