HOME 개발팁 CentOS 7 ( Aapache 2.4.6 + Python3.6 + MariaDB + Php 5~7 )

프로그램 작업하다 좋은 팁, 정보, 테스트를 기록하는 곳입니다.


웹서버 | CentOS 7 ( Aapache 2.4.6 + Python3.6 + MariaDB + Php 5~7 )

페이지 정보

작성자 박석영 작성일22-03-28 07:07 조회389회 댓글0건

본문

일단 업그레이드 권장
#yum update -y
#yum install epel-release -y
#yum install dnf

sudo yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install epel-release
sudo yum -y install yum-utils
yum install dnf-utils


###############################################################
## CentOS 7 Package Update
#yum update할 때 kernel은 업데이트제외
vi /etc/yum.conf
[main]
exclude=kernel*
#저장(:wq)

yum -y update
 
###############################################################
# 파이썬(Python)
###############################################################
 
rpm -qa | grep mariadb
# 설치된 것이 없다면 아래 한꺼번에 지우기는 실행하지 않아도 된다.
 
## 설치된 것 한꺼번에 지우기
rpm -qa | grep mariadb >list
 
# vi list로 해서 삭제 안할 리스트는 선별 제거한다.
sudo yum -y remove $(awk '{print $1}' <list)
 
# python 2.7.X 버전이 설치된 것을 확인한다.
rpm -qa | grep python
 
# Python 모듈을 빌드하려면 개발 도구가 필요
yum -y install epel-release
yum -y groupinstall 'Development Tools'
yum -y install yum-utils
yum -y install zlib zlib-devel libffi-devel
yum -y install zip unzip wget mc git net-tools
yum -y install mariadb-devel
yum -y install gcc gcc-c++ python3 python3-devel openssl openssl-devel
 
python3 -V
pip3 -V
 
# pip 설치는 가상환경 만들어서 하는 걸 권장하므로 아래 한줄은 주석처리했다.
# pip3 install --upgrade pip
 
# 현재 Alias 확인
ls -l /bin/python*
 
ln -s /bin/pip3.6 /bin/pip
 
# 아래와 같이 수정하지 않으면 yum 설치가 되지 않는다.
vi /usr/bin/yum
# 첫줄에 python 을 python2.7 로 변경하고 저장(:wq)한다.
 
vi /usr/libexec/urlgrabber-ext-down
# 첫줄에 python 을 python2.7 로 변경하고 저장(:wq)한다.



##########################################################################
# 방화벽 설정
yum -y install firewalld
 
# 방화벽 데몬 시작
systemctl start firewalld
 
# 서버 부팅 시 firewalld 데몬 자동 시작 설정
systemctl enable firewalld
 
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-service=mysql
firewall-cmd --permanent --zone=public --add-port=3306/tcp

firewall-cmd --reload
firewall-cmd --list-all
 
#########################################################################
# Databse 접근을 위한 SELinux 설정 변경 체크
# SELinux 상태 확인
sestatus
 
#SELinux httpd flag 확인 : 네트워크를 통해 Database에 연결할 수 있는 옵션이 꺼져 있음
getsebool -a | grep httpd
 
# Database 접근을 위한 SELinx 설정 변경
setsebool -P httpd_can_network_connect_db 1
 
# SELinux 비활성화 하기
vi /etc/sysconfig/selinux

SELINUX=disabled
:wq 로 저장하고 나온다.



################################
##### MariaDB 10.4 버전 설치 #####
################################
 
vi /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
 
:wq 로 저장하고 나온다.
 
sudo yum makecache fast
yum -y install mariadb-server mariadb-client
 
# mariadb 부팅 시 자동 시작 설정
systemctl enable mariadb
 
# mariadb 시작
systemctl start mariadb
 
# mariadb 상태 확인
service mariadb status
 
# Maria DB 보안 설정하기
mysql_secure_installation
# root 비밀번호 설정 등 상세 과정은 생략한다. 거의 Y만 누르면 끝난다.
 
# UTF-8 로 통신하기 위한 서버/클라이언트 설정
vi /etc/my.cnf.d/server.cnf
[mysqld]
collation-server = utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
 
vi /etc/my.cnf.d/mysql-clients.cnf
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
 
# MariaDB 재시작
service mariadb restart
 
# MariaDB 접속하여 적용된 사항 확인
mysql -u root -p
status
show variables like 'c%';
 
#########################################
####### 실제 적용 예제 ######
#########################################
// DB 생성
create database 디비명 default character set utf8;
 
use mysql;
create user 계정@localhost identified by '비밀번호';
grant all privileges on 디비명.* to 계정@localhost;
select Host,User,Password from user;

SET PASSWORD FOR '계정'@'localhost' = PASSWORD('비밀번호'); // 변경할 비밀번호
flush privileges;
quit
 
 
### 테이블 백업하기 ####
mysqldump -uroot -p --databases pythondb > pythondb.sql
 
### 테이블 구조만 백업하기 ####
mysqldump -uroot -p --no-data --databases pythondb > pythondb.sql
 
###################################
#####  root 패스워드 분실 복구  #####
###################################
# 서비스 정지
systemctl stop mariadb
 
# mariadb 안전모드 실행
sudo /usr/bin/mysqld_safe --skip-grant &
 
# 패스워드 변경
mysql -uroot mysql
update user set password=password('변경할비밀번호') where user='root';
flush privileges;
exit;




#############################################
# PHP  와 Apache 설치
#############################################
## 현재 설치된 PHP 버전 확인
yum list php
 
yum -y install expat-devel
 
# 설치 확인 방법1
yum list installed | grep httpd
yum list installed | grep php
 
# 설치 확인 방법2
rpm -qa | grep httpd
rpm -qa | grep php
 
## 설치된 것 한꺼번에 지우기
rpm -qa | grep php >list
# vi list로 해서 삭제 안할 리스트는 선별 제거한다.
sudo yum -y remove $(awk '{print $1}' <list)
 
rpm -qa | grep httpd >list
# vi list로 해서 삭제 안할 리스트는 선별 제거한다.
sudo yum -y remove $(awk '{print $1}' <list)
 
 
# yum 삭제 방법 (실제 삭제할 사항이 아니라 주석(#) 처리)
# yum remove -y vsftpd
 
 
# Remi 저장소를 설치하고 활성화한다.
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
 
# yum 저장소와 패키지를 관리
yum -y groupinstall "Development tools"
yum -y install epel-release yum-utils
 
# Disable repo for PHP 5.4
yum-config-manager --disable remi-php54


yum-config-manager --enable remi-php54


# yum-config-manager --enable remi-php56  [Install PHP 5.6]
# yum install php php-mcrypt php-cli php-gd php-curl php-mysql php-ldap php-zip php-fileinfo
 yum install php php-openssl

# Install PHP 7.0 on CentOS 7
yum install -y --enablerepo=remi-php70 httpd php php-cli php-common php-devel php-ldap
yum install -y --enablerepo=remi-php70 php-mbstring php-mcrypt php-mysqlnd mod_ssl php-pdo
yum install -y --enablerepo=remi-php70 php-pgsql php-sqlite php-process php-snmp php-soap
yum install -y --enablerepo=remi-php70 php-libxml php-xml php-pear php-gd php-fpm php-dom
yum install -y --enablerepo=remi-php70 php-ssh2 php-xmlreader php-curl php-date php-exif
yum install -y --enablerepo=remi-php70 php-filter php-simplexml php-hash php-iconv php-imagick
yum install -y --enablerepo=remi-php70 php-json php-openssl php-pcre php-posix php-sockets
yum install -y --enablerepo=remi-php70 php-spl php-tokenizer php-zlib php-gmp php-Icinga php-intl
yum install -y --enablerepo=remi-php70 php-pecl-zip zip php-zip php-pspell
yum install -y --enablerepo=remi-php70 wget unzip mc git nmap telnet net-tools


# PHP 버전 확인
php -v
 
# Apache 버전 확인
httpd -v
 
# 서비스 활성화(재부팅시 auto start)
systemctl enable httpd
 
# 서비스 시작
systemctl start httpd
 
# 서비스 구동 상태 확인
systemctl status httpd
 
# 서비스 중지
systemctl stop httpd
# 서비스 재시작
systemctl restart httpd
 
# openssl 버전 확인
openssl version
 

###################################################
# Apache 환경 설정
###################################################
# Web root 디렉토리 : /var/www/html 기본 설정인데 아래는 home 디렉토리 하단으로 수정했다.
# 보안 설정 부분이 같이 포함되어 있으니 아래와 같이 설정하면 도움된다.
# 더 자세한 사항은 구글링해서 찾아보시라.
## httpd.conf 파일 수정

vi /etc/httpd/conf/httpd.conf

<IfModule mime_module>

    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php .html .htm .inc
    AddType application/x-httpd-php-source .phps


vi /etc/httpd/conf.d/vhost.conf
<Directory "/home/*/public_html">
  Options Indexes FollowSymLinks MultiViews
  AddType application/x-httpd-php .php
  AllowOverride All
  Require all granted
</Directory>

<VirtualHost *:80>
    ServerAlias test.kr
    ServerName www.test.kr
    DocumentRoot "/home/test/public_html"
</VirtualHost>
/var/www/html

계정 : 711
폴더 : 755
파일 : 664


vi /etc/php.ini
short_open_tag = On
cgi.fix_pathinfo=0
 
;PHP 버전 정보 노출 방지(Hide PHP Version Number)
expose_php = Off
 
post_max_size = 20M  ;// 8M 으로 되어 있었음.
upload_max_filesize = 18M ;// 기본 2M 으로 되어 있었음
 
date.timezone ="Asia/Seoul"
 
 
;PHP에서 세션은 일단 생성 된 뒤에, 가비지 콜렉터 관리로직에 의해 소멸된다.
session.gc_probability = 1
session.gc_divisor = 1
;이값이 100이면 1/100 즉 1%의 확률로 가비지콜렉션이 실행된다.
;1이면 정확하게 유효기간이 넘은 데이타가 삭제된다.
; 세션 시간은 1시간으로 설정한다.
session.gc_maxlifetime = 3600
 
# 저장(:wq)하고 나온다.






###############################
# RSA 암호화 통신을 위한 설정
###############################
#리눅스 SSH 에서 RSA 공개키, 개인키 생성방법
mkdir -p /home/rsa/key/
cd /home/rsa/key/
 
# Private Key 생성
openssl genrsa -out rsa_pri.pem 1024
 
# Public Key 생성
openssl rsa -pubout -in rsa_pri.pem -out rsa_pub.pem
 
# RSA javascript 암호화 PHP 복호화 예제는 구글링으로 찾아보시라.
# RSA kotlin 암호화 PHP 복호화 예제는 구글링으로 찾아서 해결하시라.

# 열린포트 확인
yum -y install net-tools
netstat -nltp

### 시간 동기화
yum -y install rdate
 
crontab -e
00 00  * * * /usr/bin/rdate -s time.bora.net && /sbin/clock -w


useradd [계정]
passwd  []
systemctl start httpd

[주소복사] https://www.goodsweb.kr/?u=D4138T9x
SNS 알리기
핀터레스트
텔레그램로
블로그로
카카오스토리
카톡 공유

관련 블로그
로딩중


4명  IP : 3.145.♡.221
001 18.♡.120.109 생활정보
(/bbs/board.php?bo_table=info&page=2)
002 121.♡.37.60 굿스웹 - 홈페이지 유지보수 관리
(/)
003 207.♡.13.116 윈도우 10 기반 펜 컴퓨터 ‘와콤 모바일스튜디오프로 13’ 신제품 출시 - 공지사항
(/bbs/board.php?bo_table=note&wr_id=25)
004 34.♡.82.75 금액 단위를 만단위부터 표시하는방법 - 개발팁
(/bbs/board.php?bo_table=tip&wr_id=5)

접속자
  • 오늘 : 244
  • 어제 : 402
  • 최대 : 874
  • 전체 : 404,568

검색로봇(Robots) 최근 방문시간
  • DAUM : 7시간 전
  • GOOGLE : 20시간 전
  • NAVER : 1일 전
  • BING : 1일 전

ETH : 0x8abf3B748ab78828AE07685e4fd53d1a606f18D3



페이스북 네이버 블로그 굿스웹 쇼핑몰 네이버 카페 굿스웹 트위터 굿스웹 티스토리 Google Play