├── chkrootkit.tar.gz ├── APM ├── etc │ └── cron.daily │ │ ├── letsencrypt-renew │ │ ├── check_chkrootkit │ │ └── backup ├── phpMyAdmin.sh ├── index.html ├── APMinstaller.sh └── skel │ └── index.html ├── clamav.sh ├── restart.sh ├── install.sh ├── README.md ├── deluser.sh └── adduser.sh /chkrootkit.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joosung/AAI/HEAD/chkrootkit.tar.gz -------------------------------------------------------------------------------- /APM/etc/cron.daily/letsencrypt-renew: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | if certbot renew > /var/log/letsencrypt/renew.log 2>&1 ; then 3 | service httpd reload 4 | fi 5 | exit -------------------------------------------------------------------------------- /clamav.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | systemctl start clamd.service 4 | 5 | 6 | clamscan -r /home --move=/virus 7 | 8 | systemctl stop clamd.service 9 | 10 | 11 | sh /root/AAI/restart.sh -------------------------------------------------------------------------------- /APM/etc/cron.daily/check_chkrootkit: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | BASE=/root/AAI/chkrootkit/ 3 | cd $BASE 4 | chk='./chkrootkit' 5 | if [ -n "$chk" ]; then 6 | echo $chk | mail -s "My SYSTEM Chkrootkit Result" root@localhost 7 | echo Finished 8 | fi -------------------------------------------------------------------------------- /restart.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | systemctl restart php54-php-fpm 4 | systemctl restart php55-php-fpm 5 | systemctl restart php56-php-fpm 6 | systemctl restart php70-php-fpm 7 | systemctl restart php71-php-fpm 8 | systemctl restart php72-php-fpm 9 | systemctl restart php73-php-fpm 10 | systemctl restart php74-php-fpm 11 | systemctl restart php80-php-fpm 12 | systemctl restart php81-php-fpm 13 | 14 | systemctl restart httpd -------------------------------------------------------------------------------- /APM/phpMyAdmin.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ##################################################################################### 4 | # # 5 | # * CentOS APMinstaller v.1.5 # 6 | # * CentOS 7.X Minimal ISO # 7 | # * Apache 2.4.X , MariaDB 10.5.X, Multi-PHP setup shell script # 8 | # * Created Date : 2021/12/17 # 9 | # * Created by : Joo Sung ( webmaster@apachezone.com ) # 10 | # # 11 | ##################################################################################### 12 | 13 | 14 | ########################################## 15 | # # 16 | # phpMyAdmin install # 17 | # # 18 | ########################################## 19 | 20 | yum install -y phpmyadmin 21 | 22 | sed -i 's/Require ip 127.0.0.1/#Require ip 127.0.0.1/' /etc/httpd/conf.d/phpMyAdmin.conf 23 | sed -i 's/Require ip ::1/#Require ip ::1/' /etc/httpd/conf.d/phpMyAdmin.conf 24 | sed -i '/Require ip ::1/a\ Require all granted' /etc/httpd/conf.d/phpMyAdmin.conf 25 | sed -i 's/cookie/http/' /etc/phpMyAdmin/config.inc.php 26 | 27 | sh /root/AAI/restart.sh 28 | 29 | echo "" 30 | echo "" 31 | echo "축하 드립니다. phpMyAdmin 설치 작업이 끝났습니다." 32 | 33 | exit 0 34 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ##################################################################################### 4 | # # 5 | # * CentOS APMinstaller v.1.5 # 6 | # * CentOS 7.X Minimal ISO # 7 | # * Apache 2.4.X , MariaDB 10.4.X, Multi-PHP(base php7.2) setup shell script # 8 | # * Created Date : 2019/11/30 # 9 | # * Created by : Joo Sung ( webmaster@apachezone.com ) # 10 | # # 11 | ##################################################################################### 12 | 13 | echo " 14 | ======================================================= 15 | 16 | < AAI 설치 하기> 17 | 18 | ======================================================= 19 | " 20 | echo "설치 하시겠습니까? 'Y' or 'N'" 21 | read YN 22 | YN=`echo $YN | tr "a-z" "A-Z"` 23 | 24 | if [ "$YN" != "Y" ] 25 | then 26 | echo "설치 중단." 27 | exit 28 | fi 29 | 30 | echo"" 31 | echo "설치를 시작 합니다." 32 | 33 | cd /root/AAI/APM 34 | 35 | chmod 700 APMinstaller.sh 36 | 37 | chmod 700 /root/AAI/adduser.sh 38 | 39 | chmod 700 /root/AAI/deluser.sh 40 | 41 | chmod 700 /root/AAI/restart.sh 42 | 43 | sh APMinstaller.sh 44 | 45 | cd /root/AAI 46 | 47 | echo "" 48 | echo "" 49 | echo "AAI 설치 완료!" 50 | echo "" 51 | echo "" 52 | echo "" 53 | 54 | echo " 55 | ======================================================= 56 | 57 | < phpMyAdmin 설치 하기> 58 | 59 | ======================================================= 60 | " 61 | echo "phpMyAdmin 설치 하시겠습니까? 'Y' or 'N'" 62 | read YN 63 | YN=`echo $YN | tr "a-z" "A-Z"` 64 | 65 | if [ "$YN" != "Y" ] 66 | then 67 | echo "설치 중단." 68 | exit 69 | fi 70 | 71 | echo"" 72 | echo "phpMyAdmin 설치를 시작 합니다." 73 | cd /root/AAI/APM 74 | 75 | chmod 700 phpMyAdmin.sh 76 | 77 | sh phpMyAdmin.sh 78 | 79 | echo "" 80 | echo "" 81 | echo "phpMyAdmin 설치 완료!" 82 | echo "" 83 | echo "" 84 | echo "" 85 | 86 | #설치 파일 삭제 87 | rm -rf /root/AAI/APM 88 | echo "" 89 | rm -rf /root/AAI/install.sh 90 | echo "" 91 | exit; 92 | 93 | esac 94 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | AAI - APM AUTO INSTALL Last Version 2 |
 3 | 쉽고 빠른 설치, 운영, 업데이트까지 고려한 설계
 4 | 쉬운 업데이트 지원. (공식+인기 저장소를 사용하여 yum update 만으로 업데이트 완료)
 5 | 사용자 생성,삭제,백업 스크립트 사용으로 시스템 계정, 디비 계정 자동 생성 지원
 6 | Let's Encrypt - 무료 SSL 인증서 발급 및 갱신 지원
 7 | Multi PHP 지원 (base php7.2) - 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2
 8 | 모니터링 툴 - cockpit 지원
 9 | 
10 | 11 | 12 | AAI GIT 설치 방법 13 | 14 | SSH와 SFTP 는 필히 root 권한으로 접속 합니다. 15 | 아래 명령어를 사용해서 설치를 진행 합니다. 설치 화면에서 'y' 만 누르면 설치가 진행 됩니다. 16 |
17 | yum -y install git \
18 | && cd /root/ \
19 | && git clone https://github.com/joosung/AAI.git \
20 | && cd AAI \
21 | && sh install.sh
22 | 
23 | 24 | 25 | AAI 다운로드 설치 방법 26 | 27 | 1. SSH와 SFTP 는 필히 root 권한으로 접속 합니다. 28 | 2. AAI-master 압축 파일을 다운로드 받으시고 압축을 해제 후 AAI 폴더로 변경 후 자신의 서버 /root 폴더에 업로드한다. 29 | 3. Shell(터미널)에서 /root/AAI 폴더내의 install.sh 파일의 퍼미션을 chmod 700 install.sh 로 해당 파일의 퍼미션을 700 으로 수정한다. 30 | 4. ./install.sh 입력후 엔터를 치고 설치를 진행 하시면 됩니다. 31 | 32 | 33 | AAI 주요 명령 34 | 35 | 1. adduser.sh 36 | 사용자 계정 추가, VirtualHost 추가, Mysql 계정 추가, Let's Encrypt SSL 추가 를 한번에 또는 개별적으로 진행 할 수 있습니다. 37 | 38 | 2. deluser.sh 39 | 사용자 계정 삭제, VirtualHost 삭제, Mysql 계정 삭제, Let's Encrypt SSL 삭제 를 한번에 또는 개별적으로 진행 할 수 있습니다. 40 | 41 | 3. /etc/cron.daily/backup 파일을 에디터로 열고 '패스워드' 를 찾아서 mysql root 패스워드로 교체 합니다. 42 | 43 | 4. 스푸핑 에 관련된 메일을 받고 싶을땐 /etc/sysconfig/arpwatch 파일을 열어서 아래와 같이 수정 하세요. 44 | OPTIonS="-u pcap -e '메일주소' -s '보내는이(Arpwatch)' -n 'ㅣ자신의IP/24'" 45 | 46 | 5. 설지 작업이 모두 끝나면 ./chkrootkit 그리고 clamscan -r /home --move=/virus 를 각각 실행해서 바이러스와 멀웨어 등이 없는지 확인 합니다. 47 | 테스트 용 바이러스 파일이 생성되므로 있다면 삭제 해 줍니다. 48 | 49 | 6. 사용중인 php 버전을 다른 버전으로 교체 할 경우에는 /etc/httpd/conf.d/계정명.conf 파일을 에디터로 열고 50 | SetHandler "proxy:fcgi://127.0.0.1:9000" 이부분을 찾아서 9000 부분의 뒷자리 두 숫자를 수정해 주시면 됩니다. 51 | 예 : PHP 5.6 사용시 9056, PHP 7.0 사용시 9070, PHP 8.0 사용시 9080 등으로 수정 후 AAI 폴더내의 ./restart.sh 를 진행해 주시면 됩니다. 52 | 53 | 7. cockpit 지원으로 인하여 port 9090 를 서버 방화벽에서 열어 주셔야 합니다. 54 | 55 | 8. clamav.sh Crontab 적용으로 매주 일요일 01시01분에 바이러스 체크를 진행하고 바이러스가 체크되면 자동으로 /virus 폴더로 이동 됩니다. 56 | 57 | 58 | 그외 소소한(?) 튜닝이나 설정은 구글 검색을 또는 아파치존 QnA 를 통하여 질문 하시면서 자신이 사용하기 좋은 환경을 만들어 가시면 됩니다. 59 | 60 | AAI 설치 및 계정 생성과 삭제 방법을 아파치존에서 동영상으로 안내 드리며, 궁금한점 또는 문의사항은 아파치존 QnA를 이용해 주시기 바랍니다. 61 | 62 | https://apachezone.com 63 | 64 | 65 |
66 | APM 및 설치 버전은 아래와 같습니다.
67 | 
68 | httpd 2.4.37
69 | php (base php7.2) 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2
70 | mariadb 10.5.13
71 | ionCube PHP Loader
72 | Zend OPcache
73 | Xdebug
74 | Let's Encrypt
75 | chkrootkit
76 | clamav
77 | arpwatch
78 | fail2ban
79 | mod_evasive
80 | mod_security
81 | mod_security_crs
82 | memcache
83 | memcached
84 | mod_expires 설정
85 | ImageMagick
86 | GeoIP
87 | cockpit - cockpit-storaged 추가
88 | 사용지 계정 백업 스크립트 
89 | 사용자 계정 생성 스크립트 
90 | 사용자 계정 삭제 스크립트 등...... 그외 필요한 라이브러리도 같이 설치가 됩니다. 
91 | 
92 | 93 | clamav 와 php 8.2 버전업에 따른 수정 버전 입니다. 94 | 95 | **해당 버전은 해당 APM 및 라이브러리 업데이트에 따라 달라 질 수 있습니다. 96 | -------------------------------------------------------------------------------- /APM/etc/cron.daily/backup: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ########################################################## 4 | # # 5 | # * Backup Script v.1.1 # 6 | # * APMinstaller v.1.0 전용 # 7 | # * Created Date : 2019/6/30 # 8 | # * Created by : Joo Sung ( webmaster@apachezone.com ) # 9 | # # 10 | ########################################################## 11 | 12 | # 로컬 풀 백업 설정 13 | BACKUP_DIR=/backup # 백업 보관 디렉토리 14 | BACKUP_EXPIRES_DAYS=3 # 백업 만료 기간. 기본값 3일이 지난 백업 자동 삭제. 15 | BACKUP_PREFIX='AAI' # 백업 파일명 앞에 덧붙일 이름(서버명, 사이트명 등...) 16 | DB_USER='root' # MySQL 사용자. 모든 디비를 백업하려면 root 계정 필요(기본값) 17 | DB_PASS='패스워드' # MySQL 비밀번호. 18 | DB_HOST='localhost' # MySQL 서버 주소. 별도 서버에 분리되지 않았다면 로컬 서버는 localhost 입력. 19 | DB_BIN='/usr/bin' # mysql, mysqldump 실행 파일의 경로. 기본 /usr/bin , 컴파일시 /usr/local/mysql/bin 등 20 | 21 | # 메세지/로그 - 에러 22 | function error 23 | { 24 | echo "error: $1" 25 | logger "backup error: $1" 26 | } 27 | 28 | # 메세지/로그 - 정보 29 | function info 30 | { 31 | # Cron 데몬에서 실행되므로, 정보는 화면에 출력하지 않음. 32 | logger "backup info: $1" 33 | } 34 | 35 | # mysql, mysqldump 경로 확인 36 | if [ ! -f $DB_BIN/mysql ]; then 37 | error "[ $DB_BIN/mysql ] 파일이 존재하지 않습니다." 38 | exit 1 39 | fi 40 | 41 | if [ ! -f $DB_BIN/mysqldump ]; then 42 | error "[ $DB_BIN/mysqldump ] 파일이 존재하지 않습니다." 43 | exit 1 44 | fi 45 | 46 | # 백업 디렉토리가 존재할 경우에만 백업 시작 47 | if [ ! -d $BACKUP_DIR ]; then 48 | error "[ $BACKUP_DIR ] 백업 보관 디렉토리가 존재하지 않습니다." 49 | exit 1 50 | fi 51 | 52 | 53 | # 백업 시작 54 | BD=`date +%Y%m%d"_"%H%M%S` 55 | info "$0 - started" 56 | 57 | 58 | # 백업 보관 기간이 지난 백업본 삭제 59 | # - 수정 주의: find 명령에 -delete 옵션이 추가되어, 실제 오래된 파일이 삭제됩니다. 60 | # - 불가피하게 수정해야 한다면 꼭 별도 테스트를 거치셔야 합니다. 61 | cd $BACKUP_DIR 62 | DELETED=`find $BACKUP_DIR -maxdepth 1 -mtime +$BACKUP_EXPIRES_DAYS -type f \ 63 | -name $BACKUP_PREFIX".*.Backup.*.sql.gz" -delete -print0` 64 | if [ "$DELETED" != "" ]; then 65 | info "Deleting expired backups - $DELETED" 66 | fi 67 | DELETED=`find $BACKUP_DIR -maxdepth 1 -mtime +$BACKUP_EXPIRES_DAYS -type f \ 68 | -name $BACKUP_PREFIX".*.Backup.*.tgz" -delete -print0` 69 | if [ "$DELETED" != "" ]; then 70 | info "Deleting expired backups - $DELETED" 71 | fi 72 | 73 | # MySQL 백업 74 | DB_LIST=$($DB_BIN/mysql -u $DB_USER --password=$DB_PASS -h $DB_HOST -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)") 75 | if [ "$?" != "0" ]; then 76 | error "mysql 접속이 실패하였습니다." 77 | error "[command] $DB_BIN/mysql -u $DB_USER --password=**** -h $DB_HOST -e \"SHOW DATABASES;\"" 78 | #exit 1 # 디비 접속 장애시에도, /home 등 나머지는 백업 진행되어야 함. 79 | fi 80 | for db in $DB_LIST 81 | do 82 | $DB_BIN/mysqldump --extended-insert=FALSE -hlocalhost -u $DB_USER --password=$DB_PASS -h $DB_HOST \ 83 | --default-character-set=utf8 --opt --skip-lock-tables --single-transaction -Q -B $db \ 84 | | gzip > $BACKUP_PREFIX.$db.Backup.$BD.sql.gz 85 | if [ "$?" != "0" ]; then 86 | error "[ $db ] mysqldump 작업이 실패하였습니다." 87 | fi 88 | done 89 | 90 | # /home 디렉토리 백업. 91 | HOME_LIST=$(find /home/ -mindepth 1 -maxdepth 1 -type d -printf '%f\n'| grep -Ev "(lost\+found)") 92 | for _home in $HOME_LIST 93 | do 94 | tar zcf $BACKUP_PREFIX.$_home.Backup.$BD.tgz /home/$_home \ 95 | 2>&1 | grep -v "tar: Removing leading" 96 | done 97 | 98 | # /etc/ 디렉토리 백업. 99 | tar zcf $BACKUP_PREFIX.CONFIG.ETC.Backup.$BD.tgz /etc/ \ 100 | 2>&1 | grep -v "tar: Removing leading" 101 | 102 | # /var/named/ 디렉토리 존재시에만 백업 103 | if [ -d /var/named/ ]; then 104 | tar zcf $BACKUP_PREFIX.CONFIG.NAMED.Backup.$BD.tgz /var/named/ \ 105 | 2>&1 | grep -v "tar: Removing leading" 106 | fi 107 | 108 | # 사용자 정의 백업 - 다른 디렉토리는 다음 샘플처럼 디렉토리명을 지정해서 백업을 추가하시면 됩니다. 109 | #tar zcf $BACKUP_PREFIX.CONFIG.usr-local.Backup.$BD.tgz /usr/local/ \ 110 | #2>&1 | grep -v "tar: Removing leading" 111 | 112 | #tar zcf $BACKUP_PREFIX.CONFIG.php-modules.Backup.$BD.tgz /usr/lib64/php/modules/ \ 113 | #2>&1 | grep -v "tar: Removing leading" 114 | 115 | # 116 | # 117 | 118 | # 백업 완료 - 크론 데몬에서 실행되므로, 완료시 별도 메세지 출력안함. 119 | info "$0 - completed successfully" 120 | -------------------------------------------------------------------------------- /deluser.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ########################################################## 4 | # * deluser V 1.5 # 5 | # * CentOS APMinstaller v.1.5 전용 # 6 | # * Created Date : 2019/11/30 # 7 | # * Created by : Joo Sung ( webmaster@apachezone.com ) # 8 | ########################################################## 9 | 10 | echo " 11 | 12 | [1] 사용자 계정, VHOST, DB, SSL 통합 삭제하기. 13 | 14 | [2] 사용자 계정 개별 삭제하기. 15 | 16 | [3] VirtualHost 개별 삭제하기. 17 | 18 | [4] Mysql 계정 개별 삭제하기. 19 | 20 | [5] Let's Encrypt SSL 개별 삭제하기. 21 | 22 | " 23 | 24 | echo -n "select Number:" 25 | read Num 26 | 27 | case "$Num" in 28 | 29 | #사용자 계정, 가상 호스트, DB 통합 삭제하기. 30 | 1) 31 | echo ======================================================= 32 | echo 33 | echo "< 계정 사용자 통합 삭제하기>" 34 | echo 35 | echo 계정 사용자 ID 와 도메인을 입력 36 | echo 37 | echo ======================================================= 38 | echo 39 | echo -n "사용자 ID 입력:" 40 | read id 41 | echo -n "도메인을 입력하세요 :" 42 | read url 43 | echo -n " 44 | 사용자 계정 : $id 45 | 사용자 도메인 : $url 46 | 47 | ------------------------------------------------------------- 48 | 맞으면 를 누르고 틀리면 No를 입력하세요: " 49 | read chk 50 | 51 | if [ "$chk" != "" ] 52 | 53 | then 54 | exit 55 | fi 56 | 57 | echo"" 58 | echo "호스팅 계정 및 DB, VHOST, SSL 등 을 삭제 합니다." 59 | 60 | #계정삭제 61 | userdel -r $id 62 | 63 | #VHOST삭제 64 | rm -rf /etc/httpd/conf.d/$id.conf 65 | rm -rf /etc/httpd/conf.d/$id-le-ssl.conf 66 | 67 | #DB삭제 68 | echo "drop database $id; 69 | DROP USER $id@localhost; 70 | flush privileges;" > ./tmp 71 | 72 | echo " 73 | Mysql 루트 패스워드를 입력하세요 74 | " 75 | 76 | mysql -u root -p mysql < ./tmp 77 | rm -f ./tmp 78 | 79 | #SSL삭제 80 | certbot delete --cert-name $url 81 | 82 | #아파치 restart 83 | service httpd restart 84 | 85 | echo 86 | echo 87 | echo "삭제가 완료 되었습니다." 88 | exit;; 89 | 90 | 91 | #사용자 삭제 하기 92 | 2) 93 | echo ======================================================= 94 | echo 95 | echo "< 계정 사용자 개별 삭제하기>" 96 | echo 97 | echo 계정 사용자 ID 를 입력 98 | echo 99 | echo ======================================================= 100 | echo 101 | echo -n "사용자 ID 입력:" 102 | read id 103 | 104 | echo -n " 105 | 사용자 계정: $id 106 | 107 | ------------------------------------------------------------- 108 | 맞으면 를 누르고 틀리면 No를 입력하세요: " 109 | read chk 110 | 111 | if [ "$chk" != "" ] 112 | 113 | then 114 | exit 115 | fi 116 | 117 | echo"" 118 | echo "호스팅 사용자를 삭제 합니다." 119 | 120 | #계정삭제 121 | userdel -r $id 122 | 123 | echo "사용자 아이디 입니다" 124 | echo "" 125 | echo "" 126 | echo "사용자 ID: $id" 127 | 128 | echo "사용자 삭제 완료!" 129 | exit;; 130 | 131 | # 가상호스트 추가하기 132 | 3) 133 | 134 | echo ======================================================= 135 | echo 136 | echo "< 가상 호스트 개별 삭제하기 >" 137 | echo 138 | echo 계정 도메인, 계정ID 를 입력 139 | echo 140 | echo ======================================================= 141 | echo 142 | echo -n "url 주소를 입력하세요 :" 143 | read url 144 | echo -n "계정 ID를 입력 하세요 :" 145 | read id 146 | echo -n " 147 | 148 | 사용자 도메인 : $url 149 | 게정 ID : $id 150 | 151 | ------------------------------------------------------------- 152 | 맞으면 를 누르고 틀리면 No를 입력하세요: " 153 | read chk 154 | 155 | if [ "$chk" != "" ] 156 | 157 | then 158 | exit 159 | fi 160 | 161 | rm -rf /etc/httpd/conf.d/$id.conf 162 | rm -rf /etc/httpd/conf.d/$id-le-ssl.conf 163 | 164 | echo "가상 호스트 삭제 완료!" 165 | 166 | #아파치 restart 167 | service httpd restart 168 | 169 | exit;; 170 | 171 | # Mysql 계정 추가하기 172 | 4) 173 | echo ======================================================= 174 | echo 175 | echo "< Mysql 계정 개별 삭제하기 >" 176 | echo 177 | echo 계정ID, MySql Password를 입력 178 | echo 179 | echo ======================================================= 180 | echo 181 | echo -n "Mysql 계정 :" 182 | read id 183 | echo -n " 184 | 185 | 사용자 ID : $id 186 | 187 | ------------------------------------------------------------- 188 | 맞으면 를 누르고 틀리면 No를 입력하세요: " 189 | read chk 190 | 191 | if [ "$chk" != "" ] 192 | 193 | then 194 | exit 195 | fi 196 | 197 | echo "drop database $id; 198 | DROP USER $id@localhost; 199 | flush privileges;" > ./tmp 200 | 201 | echo " 202 | Mysql 루트 패스워드를 입력하세요 203 | " 204 | 205 | mysql -u root -p mysql < ./tmp 206 | 207 | rm -f ./tmp 208 | 209 | 210 | echo "DB 삭제 완료!" 211 | exit;; 212 | 213 | #SSL 삭제가 하기 214 | 5) 215 | echo ======================================================= 216 | echo 217 | echo "< Let's Encrypt SSL 개별 삭제하기>" 218 | echo 219 | echo 계정ID, 계정Password 를 입력 220 | echo 221 | echo ======================================================= 222 | echo 223 | echo -n "계정 ID :" 224 | read id 225 | echo -n "url 주소를 입력하세요 :" 226 | read url 227 | 228 | echo -n " 229 | 사용자 ID : $id 230 | 사용자 도메인 : $url 231 | ------------------------------------------------------------- 232 | 맞으면 를 누르고 틀리면 No를 입력하세요: " 233 | read chk 234 | 235 | if [ "$chk" != "" ] 236 | 237 | then 238 | exit 239 | fi 240 | 241 | #SSL삭제 242 | certbot delete --cert-name $url 243 | 244 | 245 | echo 246 | echo 247 | echo "Let's Encrypt SSL 삭제 완료!" 248 | echo 249 | exit;;*) 250 | 251 | esac 252 | -------------------------------------------------------------------------------- /adduser.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ########################################################## 4 | # * adduser V 1.5 # 5 | # * CentOS APMinstaller v.1.5 전용 # 6 | # * Created Date : 2019/11/30 # 7 | # * Created by : Joo Sung ( webmaster@apachezone.com ) # 8 | ########################################################## 9 | 10 | echo " 11 | 12 | [1] 사용자 계정, VHOST, DB, SSL 통합 추가하기. 13 | 14 | [2] 사용자 계정 개별 추가하기. 15 | 16 | [3] VirtualHost 개별 추가하기. 17 | 18 | [4] Mysql 계정 개별 추가하기. 19 | 20 | [5] Let's Encrypt SSL 개별 추가하기. 21 | 22 | " 23 | 24 | echo -n "select Number:" 25 | read Num 26 | 27 | case "$Num" in 28 | 29 | 30 | #사용자 계정, VHOST, DB, SSL 통합 추가하기. 31 | 1) 32 | echo ======================================================= 33 | echo 34 | echo "< 계정 사용자 통합 추가하기>" 35 | echo 36 | echo 계정ID, 도메인, 계정Password 를 입력 37 | echo 38 | echo ======================================================= 39 | echo 40 | echo -n "계정 ID 입력:" 41 | read id 42 | 43 | echo -n "도메인 주소 입력:" 44 | read url 45 | 46 | echo -n "서버 php 입력하세요 (56, 70, 71, 72, 73, 74, 80 중 하나만 선택 입력) :" 47 | read php 48 | 49 | echo -n "계정 패스워드 입력:" 50 | read pass 51 | 52 | echo -n " 53 | 계 정 : $id 54 | 패스워드 : $pass 55 | 도메인 : $url 56 | php버전 : $php 57 | 58 | ------------------------------------------------------------- 59 | 맞으면 를 누르고 틀리면 No를 입력하세요: " 60 | read chk 61 | 62 | if [ "$chk" != "" ] 63 | 64 | then 65 | exit 66 | fi 67 | 68 | #계정 ID 추가 69 | adduser $id 70 | 71 | #패스 워드 추가 72 | echo "$pass" | passwd --stdin "$id" 73 | 74 | #VHOST 추가하기 75 | echo " 76 | DocumentRoot /home/$id/public_html 77 | ServerName $url 78 | ServerAlias www.$url 79 | 80 | SetHandler "proxy:fcgi://127.0.0.1:90$php" 81 | 82 | ErrorLog logs/$url-error_log 83 | CustomLog logs/$url-access_log common 84 | #SetEnvIFNoCase Referer $url link_allow 85 | # 86 | # Order allow,deny 87 | # allow from env=link_allow 88 | # deny from all 89 | # 90 | " >> /etc/httpd/conf.d/$id.conf 91 | 92 | #계정 폴더 퍼미션 변경 93 | chmod 701 /home/$id 94 | 95 | # Mysql 계정 추가하기 96 | echo "create database $id; 97 | GRANT ALL PRIVILEGES ON $id.* TO $id@localhost IDENTIFIED by '$pass';" > ./tmp 98 | 99 | echo "Mysql ROOT 패스워드를 입력하세요" 100 | 101 | mysql -u root -p mysql < ./tmp 102 | 103 | rm -f ./tmp 104 | 105 | #SSL 추가 하기 106 | certbot --apache -d $url -d www.$url 107 | 108 | #아파치 restart 109 | service httpd restart 110 | echo "" 111 | echo "" 112 | echo "" 113 | echo "계정 및 VHOST, DB, SSL 추가 작업이 완료 되었습니다." 114 | exit;; 115 | 116 | 117 | #사용자 추가 하기 118 | 2) 119 | echo ======================================================= 120 | echo 121 | echo "< 계정 사용자 개별 추가하기>" 122 | echo 123 | echo 계정ID, 계정Password 를 입력 124 | echo 125 | echo ======================================================= 126 | echo 127 | echo -n "사용자 계정 입력:" 128 | read id 129 | 130 | 131 | echo -n "사용자 패스워드 입력:" 132 | read pass 133 | 134 | echo -n " 135 | 사용자 계정 : $id 136 | 사용자패스워드: $pass 137 | 138 | ------------------------------------------------------------- 139 | 맞으면 를 누르고 틀리면 No를 입력하세요: " 140 | read chk 141 | 142 | if [ "$chk" != "" ] 143 | 144 | then 145 | exit 146 | fi 147 | 148 | echo"" 149 | echo "호스팅 사용자를 추가합니다." 150 | 151 | #계정 ID 추가 152 | adduser $id 153 | #패스 워드 추가 154 | 155 | echo "$pass" | passwd --stdin "$id" 156 | echo " 157 | 158 | 159 | " 160 | echo "사용자 아이디와 패스워드 입니다" 161 | echo "" 162 | echo "" 163 | echo "사용자 ID: $id" 164 | 165 | echo "패스워드 : $pass" 166 | 167 | echo "사용자 추가 완료!" 168 | 169 | exit;; 170 | 171 | # 가상호스트 추가하기 172 | 3) 173 | 174 | echo ======================================================= 175 | echo 176 | echo "< 가상 호스트 개별 추가하기 >" 177 | echo 178 | echo 계정 도메인, 계정ID, IP는 *:80 을 입력 179 | echo 180 | echo ======================================================= 181 | echo 182 | echo -n "url 주소를 입력하세요 :" 183 | read url 184 | 185 | echo -n "계정 ID를 입력 하세요 :" 186 | read id 187 | 188 | echo -n "서버 IP 입력하세요 (*:80 을 입력) :" 189 | read ip 190 | 191 | echo -n "서버 php 입력하세요 (56, 70, 71, 72, 73, 74, 80 중 하나만 선택 입력) :" 192 | read php 193 | echo -n " 194 | 195 | 사용자 도메인 : $url 196 | 게정 ID : $id 197 | 서버 IP : $ip 198 | php 버전 : $php 199 | 200 | ------------------------------------------------------------- 201 | 맞으면 를 누르고 틀리면 No를 입력하세요: " 202 | read chk 203 | 204 | if [ "$chk" != "" ] 205 | 206 | then 207 | exit 208 | fi 209 | 210 | echo " 211 | DocumentRoot /home/$id/public_html 212 | ServerName $url 213 | ServerAlias www.$url 214 | 215 | SetHandler "proxy:fcgi://127.0.0.1:90$php" 216 | 217 | ErrorLog logs/$url-error_log 218 | CustomLog logs/$url-access_log common 219 | #SetEnvIFNoCase Referer $url link_allow 220 | # 221 | # Order allow,deny 222 | # allow from env=link_allow 223 | # deny from all 224 | # 225 | " >> /etc/httpd/conf.d/$id.conf 226 | 227 | echo "가상 호스트 추가 완료!" 228 | 229 | #계정 폴더 퍼미션 변경 230 | chmod 701 /home/$id 231 | 232 | #아파치 restart 233 | service httpd restart 234 | 235 | exit;; 236 | 237 | # Mysql 계정 추가하기 238 | 4) 239 | echo ======================================================= 240 | echo 241 | echo "< Mysql 계정 개별 추가하기 >" 242 | echo 243 | echo 계정ID, MySql Password를 입력 244 | echo 245 | echo ======================================================= 246 | echo 247 | echo -n "Mysql 계정 :" 248 | read id 249 | 250 | echo -n "Mysql 패스워드 :" 251 | read pass 252 | echo -n " 253 | 254 | 사용자 ID : $id 255 | 패스워드 : $pass 256 | 257 | ------------------------------------------------------------- 258 | 맞으면 를 누르고 틀리면 No를 입력하세요: " 259 | read chk 260 | 261 | if [ "$chk" != "" ] 262 | 263 | then 264 | exit 265 | fi 266 | 267 | echo "create database $id; 268 | GRANT ALL PRIVILEGES ON $id.* TO $id@localhost IDENTIFIED by '$pass';" > ./tmp 269 | 270 | echo " 271 | Mysql 루트 패스워드를 입력하세요 272 | " 273 | 274 | mysql -u root -p mysql < ./tmp 275 | 276 | rm -f ./tmp 277 | 278 | 279 | echo "DB 추가 완료!" 280 | exit;; 281 | 282 | 283 | 284 | #SSL 추가 하기 285 | 5) 286 | echo ======================================================= 287 | echo 288 | echo "< Let's Encrypt SSL 개별 추가하기>" 289 | echo 290 | echo 계정ID, 계정Password 를 입력 291 | echo 292 | echo ======================================================= 293 | echo 294 | echo -n "계정 ID :" 295 | read id 296 | echo -n "url 주소를 입력하세요 :" 297 | read url 298 | 299 | echo -n " 300 | 사용자 ID : $id 301 | 사용자 도메인 : $url 302 | ------------------------------------------------------------- 303 | 맞으면 를 누르고 틀리면 No를 입력하세요: " 304 | read chk 305 | 306 | if [ "$chk" != "" ] 307 | 308 | then 309 | exit 310 | fi 311 | 312 | certbot --apache -d $url -d www.$url 313 | 314 | echo 315 | echo 316 | echo "Let's Encrypt SSL 추가 완료!" 317 | echo 318 | exit;;*) 319 | 320 | esac 321 | -------------------------------------------------------------------------------- /APM/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 아파치 서버 AAI 6 | 121 | 122 |
123 |
124 |
125 |

Welcome.

126 |

Congratulations.

127 |

128 | 현재 페이지가 보인다면 APM 설치 작업이 정상적으로 완료된 경우 입니다.

서버 셋업 문의 : https://apachezone.com 129 |

130 |
131 |
132 |
133 | 134 | -------------------------------------------------------------------------------- /APM/APMinstaller.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ##################################################################################### 4 | # # 5 | # * CentOS APMinstaller v.1.5.8 # 6 | # * CentOS 7.X Minimal ISO # 7 | # * Apache 2.4.X , MariaDB 10.5.X, Multi-PHP(base php7.2) setup shell script # 8 | # * Created Date : 2021/02/07 # 9 | # * Created by : Joo Sung ( webmaster@apachezone.com ) # 10 | # # 11 | ##################################################################################### 12 | 13 | ########################################## 14 | # # 15 | # repositories install # 16 | # # 17 | ########################################## 18 | 19 | yum -y install wget openssh-clients bind-utils git nc vim-enhanced man ntsysv \ 20 | iotop sysstat strace lsof mc lrzsz zip unzip bzip2 glibc* net-tools bind ntp gcc dnf \ 21 | libxml2-devel libXpm-devel gmp-devel libicu-devel t1lib-devel aspell-devel openssl-devel \ 22 | bzip2-devel libcurl-devel libjpeg-devel libvpx-devel libpng-devel freetype-devel readline-devel \ 23 | libxslt-devel pcre-devel curl-devel mysql-devel ncurses-devel autoconf autogen automake zlib-devel libuuid-devel \ 24 | gettext-devel net-snmp-devel libevent-devel libtool-ltdl-devel postgresql-devel bison make pkgconfig firewalld yum-utils 25 | 26 | cd /etc/yum.repos.d && wget https://repo.codeit.guru/codeit.mainline.el`rpm -q --qf "%{VERSION}" $(rpm -q --whatprovides redhat-release)`.repo 27 | 28 | yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 29 | yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm 30 | 31 | yum install -y epel-release 32 | 33 | echo "[mariadb]" > /etc/yum.repos.d/MariaDB.repo 34 | echo "name = MariaDB" >> /etc/yum.repos.d/MariaDB.repo 35 | echo "baseurl = http://yum.mariadb.org/10.5/rhel7-amd64" >> /etc/yum.repos.d/MariaDB.repo 36 | echo "gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB" >> /etc/yum.repos.d/MariaDB.repo 37 | echo "gpgcheck=1" >> /etc/yum.repos.d/MariaDB.repo 38 | 39 | yum -y update 40 | 41 | systemctl start firewalld 42 | systemctl enable firewalld 43 | 44 | systemctl start named.service 45 | systemctl enable named.service 46 | 47 | systemctl start ntpd.service 48 | systemctl enable ntpd.service 49 | ntpdate -d 0.centos.pool.ntp.org 50 | 51 | cd /root/AAI/APM 52 | 53 | ########################################## 54 | # # 55 | # SELINUX disabled # 56 | # # 57 | ########################################## 58 | 59 | sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config 60 | /usr/sbin/setenforce 0 61 | 62 | ########################################## 63 | # # 64 | # 아파치 및 HTTP2 설치 # 65 | # # 66 | ########################################## 67 | 68 | # Nghttp2 설치 69 | yum --enablerepo=epel -y install libnghttp2 70 | 71 | # /etc/mime.types 설치 72 | yum -y install mailcap 73 | 74 | # httpd 설치 75 | yum -y install c-ares 76 | 77 | yum -y install httpd 78 | 79 | yum -y install openldap-devel expat-devel 80 | 81 | yum -y install libdb-devel perl 82 | 83 | yum -y install httpd-devel mod_ssl python-certbot-apache 84 | 85 | systemctl start httpd 86 | systemctl enable httpd 87 | 88 | ########################################## 89 | # # 90 | # firewalld # 91 | # # 92 | ########################################## 93 | 94 | firewall-cmd --permanent --zone=public --add-service=http 95 | firewall-cmd --permanent --zone=public --add-service=https 96 | firewall-cmd --permanent --zone=public --add-port=3306/tcp 97 | firewall-cmd --permanent --zone=public --add-port=19999/tcp 98 | firewall-cmd --permanent --zone=public --add-port=9090/tcp 99 | firewall-cmd --reload 100 | 101 | ########################################## 102 | # # 103 | # httpd.conf Setup # 104 | # # 105 | ########################################## 106 | 107 | 108 | sed -i '/nameserver/i\nameserver 127.0.0.1' /etc/resolv.conf 109 | cp -av /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.original 110 | 111 | sed -i 's/DirectoryIndex index.html/ DirectoryIndex index.html index.htm index.php index.php3 index.cgi index.jsp/' /etc/httpd/conf/httpd.conf 112 | sed -i 's/Options Indexes FollowSymLinks/Options FollowSymLinks/' /etc/httpd/conf/httpd.conf 113 | sed -i 's/#ServerName www.example.com:80/ServerName localhost:80/' /etc/httpd/conf/httpd.conf 114 | sed -i 's/AllowOverride none/AllowOverride All/' /etc/httpd/conf/httpd.conf 115 | sed -i 's/#AddHandler cgi-script .cgi/AddHandler cgi-script .cgi/' /etc/httpd/conf/httpd.conf 116 | sed -i '/AddType application\/x-gzip .gz .tgz/a\ AddType application\/x-httpd-php .htm .html .php .ph php3 .php4 .phtml .inc' /etc/httpd/conf/httpd.conf 117 | sed -i '/AddType application\/x-httpd-php .htm .html .php .ph php3 .php4 .phtml .inc/a\ AddType application/x-httpd-php-source .phps' /etc/httpd/conf/httpd.conf 118 | sed -i 's/UserDir disabled/#UserDir disabled/' /etc/httpd/conf.d/userdir.conf 119 | sed -i 's/#UserDir public_html/UserDir public_html/' /etc/httpd/conf.d/userdir.conf 120 | sed -i 's/Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec/Options MultiViews SymLinksIfOwnerMatch IncludesNoExec/' /etc/httpd/conf.d/userdir.conf 121 | sed -i 's/LoadModule mpm_prefork_module/#LoadModule mpm_prefork_modul/' /etc/httpd/conf.modules.d/00-mpm.conf 122 | sed -i 's/#LoadModule mpm_event_module/LoadModule mpm_event_module/' /etc/httpd/conf.modules.d/00-mpm.conf 123 | 124 | cp /root/AAI/APM/index.html /var/www/html/ 125 | cp -f /root/AAI/APM/index.html /usr/share/httpd/noindex/ 126 | 127 | echo " 128 | DocumentRoot /var/www/html 129 | " >> /etc/httpd/conf.d/default.conf 130 | 131 | systemctl restart httpd 132 | systemctl restart named.service 133 | 134 | ########################################## 135 | # # 136 | # Multi PHP 및 라이브러리 install # 137 | # # 138 | ########################################## 139 | 140 | yum-config-manager --enable remi-php72 141 | yum -y install php 142 | 143 | yum -y install php54 php54-php-cli php54-php-fpm \ 144 | php54-php-common php54-php-pdo php54-php-mysqlnd php54-php-mbstring php54-php-mcrypt \ 145 | php54-php-opcache php54-php-xml php54-php-pecl-imagick php54-php-gd php54-php-fileinfo \ 146 | php54-php-pecl-ssh2 php54-php-soap php54-php-devel php54-php-imap \ 147 | php54-php-json php54-php-ldap php54-php-xml php54-php-iconv php54-php-xmlrpc php54-php-snmp \ 148 | php54-php-pecl-apcu php54-php-pecl-geoip php54-php-pecl-memcached php54-php-pecl-redis \ 149 | php54-php-pecl-xdebug php54-php-pecl-mailparse php54-php-pgsql php54-php-process php54-php-ioncube-loader 150 | 151 | yum -y install php55 php55-php-cli php55-php-fpm \ 152 | php55-php-common php55-php-pdo php55-php-mysqlnd php55-php-mbstring php55-php-mcrypt \ 153 | php55-php-opcache php55-php-xml php55-php-pecl-imagick php55-php-gd php55-php-fileinfo \ 154 | php55-php-pecl-ssh2 php55-php-soap php55-php-devel php55-php-imap \ 155 | php55-php-json php55-php-ldap php55-php-xml php55-php-iconv php55-php-xmlrpc php55-php-snmp \ 156 | php55-php-pecl-apcu php55-php-pecl-geoip php55-php-pecl-memcached php55-php-pecl-redis \ 157 | php55-php-pecl-xdebug php55-php-pecl-mailparse php55-php-pgsql php55-php-process php55-php-ioncube-loader 158 | 159 | yum -y install php56 php56-php-cli php56-php-fpm \ 160 | php56-php-common php56-php-pdo php56-php-mysqlnd php56-php-mbstring php56-php-mcrypt \ 161 | php56-php-opcache php56-php-xml php56-php-pecl-imagick php56-php-gd php56-php-fileinfo \ 162 | php56-php-pecl-ssh2 php56-php-soap php56-php-devel php56-php-imap php56-php-json php56-php-mysql \ 163 | php56-php-ldap php56-php-xml php56-php-iconv php56-php-xmlrpc php56-php-snmp php56-php-pgsql \ 164 | php56-php-pecl-apcu php56-php-pecl-geoip php56-php-pecl-memcached php56-php-pecl-redis \ 165 | php56-php-pecl-xdebug php56-php-pecl-mailparse php56-php-process php56-php-ioncube-loader 166 | 167 | yum -y install php70 php70-php-cli php70-php-fpm \ 168 | php70-php-common php70-php-pdo php70-php-mysqlnd php70-php-mbstring php70-php-mcrypt \ 169 | php70-php-opcache php70-php-xml php70-php-pecl-imagick php70-php-gd php70-php-fileinfo \ 170 | php70-php-pecl-mysql php70-php-pecl-ssh2 php70-php-soap php70-php-devel php70-php-imap \ 171 | php70-php-json php70-php-ldap php70-php-xml php70-php-iconv php70-php-xmlrpc php70-php-snmp \ 172 | php70-php-pecl-apcu php70-php-pecl-geoip php70-php-pecl-memcached php70-php-pecl-redis \ 173 | php70-php-pecl-xdebug php70-php-pecl-mailparse php70-php-pgsql php70-php-process php70-php-ioncube-loader 174 | 175 | yum -y install php71 php71-php-cli php71-php-fpm \ 176 | php71-php-common php71-php-pdo php71-php-mysqlnd php71-php-mbstring php71-php-mcrypt \ 177 | php71-php-opcache php71-php-xml php71-php-pecl-imagick php71-php-gd php71-php-fileinfo \ 178 | php71-php-pecl-mysql php71-php-pecl-ssh2 php71-php-soap php71-php-devel php71-php-imap \ 179 | php71-php-json php71-php-ldap php71-php-xml php71-php-iconv php71-php-xmlrpc php71-php-snmp \ 180 | php71-php-pecl-apcu php71-php-pecl-geoip php71-php-pecl-memcached php71-php-pecl-redis \ 181 | php71-php-pecl-xdebug php71-php-pecl-mailparse php71-php-pgsql php71-php-process php71-php-ioncube-loader 182 | 183 | yum -y install php72 php72-php-cli php72-php-fpm \ 184 | php72-php-common php72-php-pdo php72-php-mysqlnd php72-php-mbstring php72-php-mcrypt \ 185 | php72-php-opcache php72-php-xml php72-php-pecl-imagick php72-php-gd php72-php-fileinfo \ 186 | php72-php-pecl-mysql php72-php-pecl-ssh2 php72-php-soap php72-php-devel php72-php-imap \ 187 | php72-php-json php72-php-ldap php72-php-xml php72-php-iconv php72-php-xmlrpc php72-php-snmp \ 188 | php72-php-pecl-apcu php72-php-pecl-geoip php72-php-pecl-memcached php72-php-pecl-redis \ 189 | php72-php-pecl-xdebug php72-php-pecl-mailparse php72-php-pgsql php72-php-process php72-php-ioncube-loader 190 | 191 | yum -y install php73 php73-php-cli php73-php-fpm \ 192 | php73-php-common php73-php-pdo php73-php-mysqlnd php73-php-mbstring php73-php-mcrypt \ 193 | php73-php-opcache php73-php-xml php73-php-pecl-imagick php73-php-gd php73-php-fileinfo \ 194 | php73-php-pecl-mysql php73-php-pecl-ssh2 php73-php-soap php73-php-devel php73-php-imap \ 195 | php73-php-json php73-php-ldap php73-php-xml php73-php-iconv php73-php-xmlrpc php73-php-snmp \ 196 | php73-php-pecl-apcu php73-php-pecl-geoip php73-php-pecl-memcached php73-php-pecl-redis \ 197 | php73-php-pecl-xdebug php73-php-pecl-mailparse php73-php-pgsql php73-php-process php73-php-ioncube-loader 198 | 199 | yum -y install php74 php74-php-cli php74-php-fpm \ 200 | php74-php-common php74-php-pdo php74-php-mysqlnd php74-php-mbstring php74-php-mcrypt \ 201 | php74-php-opcache php74-php-xml php74-php-pecl-imagick php74-php-gd php74-php-fileinfo \ 202 | php74-php-pecl-mysql php74-php-pecl-ssh2 php74-php-soap php74-php-devel php74-php-imap \ 203 | php74-php-json php74-php-ldap php74-php-xml php74-php-iconv php74-php-xmlrpc php74-php-snmp \ 204 | php74-php-pecl-apcu php74-php-pecl-geoip php74-php-pecl-memcached php74-php-pecl-redis \ 205 | php74-php-pecl-xdebug php74-php-pecl-mailparse php74-php-pgsql php74-php-process php74-php-ioncube-loader 206 | 207 | ##php8에서는 아직 지원 안됨 - php80-php-pecl-mysql php80-php-ioncube-loader 208 | yum -y install php80 php80-php-cli php80-php-fpm \ 209 | php74-php-common php80-php-pdo php80-php-mysqlnd php80-php-mbstring php80-php-mcrypt \ 210 | php80-php-opcache php80-php-xml php80-php-pecl-imagick php80-php-gd php80-php-fileinfo \ 211 | php80-php-pecl-ssh2 php80-php-soap php80-php-devel php80-php-imap \ 212 | php80-php-json php80-php-ldap php80-php-xml php80-php-iconv php80-php-xmlrpc php80-php-snmp \ 213 | php80-php-pecl-apcu php80-php-pecl-geoip php80-php-pecl-memcached php80-php-pecl-redis \ 214 | php80-php-pecl-xdebug php80-php-pecl-mailparse php80-php-pgsql php80-php-process 215 | 216 | ##php8에서는 아직 지원 안됨 - php81-php-pecl-mysql php81-php-ioncube-loader 217 | yum -y install php81 php81-php-cli php81-php-fpm \ 218 | php74-php-common php81-php-pdo php81-php-mysqlnd php81-php-mbstring php81-php-mcrypt \ 219 | php81-php-opcache php81-php-xml php81-php-pecl-imagick php81-php-gd php81-php-fileinfo \ 220 | php81-php-pecl-ssh2 php81-php-soap php81-php-devel php81-php-imap \ 221 | php81-php-json php81-php-ldap php81-php-xml php81-php-iconv php81-php-xmlrpc php81-php-snmp \ 222 | php81-php-pecl-apcu php81-php-pecl-geoip php81-php-pecl-memcached php81-php-pecl-redis \ 223 | php81-php-pecl-xdebug php81-php-pecl-mailparse php81-php-pgsql php81-php-process 224 | 225 | ##php8에서는 아직 지원 안됨 - php82-php-pecl-mysql php82-php-ioncube-loader 226 | yum -y install php82 php82-php-cli php82-php-fpm \ 227 | php74-php-common php82-php-pdo php82-php-mysqlnd php82-php-mbstring php82-php-mcrypt \ 228 | php82-php-opcache php82-php-xml php82-php-pecl-imagick php82-php-gd php82-php-fileinfo \ 229 | php82-php-pecl-ssh2 php82-php-soap php82-php-devel php82-php-imap \ 230 | php82-php-json php82-php-ldap php82-php-xml php82-php-iconv php82-php-xmlrpc php82-php-snmp \ 231 | php82-php-pecl-apcu php82-php-pecl-geoip php82-php-pecl-memcached php82-php-pecl-redis \ 232 | php82-php-pecl-xdebug php82-php-pecl-mailparse php82-php-pgsql php82-php-process 233 | 234 | echo 'listen = 127.0.0.1:9054 235 | pm = ondemand' >> /opt/remi/php54/root/etc/php-fpm.d/www.conf 236 | 237 | echo 'listen = 127.0.0.1:9055 238 | pm = ondemand' >> /opt/remi/php55/root/etc/php-fpm.d/www.conf 239 | 240 | echo 'listen = 127.0.0.1:9056 241 | pm = ondemand' >> /opt/remi/php56/root/etc/php-fpm.d/www.conf 242 | 243 | echo 'listen = 127.0.0.1:9070 244 | pm = ondemand' >> /etc/opt/remi/php70/php-fpm.d/www.conf 245 | 246 | echo 'listen = 127.0.0.1:9071 247 | pm = ondemand' >> /etc/opt/remi/php71/php-fpm.d/www.conf 248 | 249 | echo 'listen = 127.0.0.1:9072 250 | pm = ondemand' >> /etc/opt/remi/php72/php-fpm.d/www.conf 251 | 252 | echo 'listen = 127.0.0.1:9073 253 | pm = ondemand' >> /etc/opt/remi/php73/php-fpm.d/www.conf 254 | 255 | echo 'listen = 127.0.0.1:9074 256 | pm = ondemand' >> /etc/opt/remi/php74/php-fpm.d/www.conf 257 | 258 | echo 'listen = 127.0.0.1:9080 259 | pm = ondemand' >> /etc/opt/remi/php80/php-fpm.d/www.conf 260 | 261 | echo 'listen = 127.0.0.1:9081 262 | pm = ondemand' >> /etc/opt/remi/php81/php-fpm.d/www.conf 263 | 264 | echo 'listen = 127.0.0.1:9082 265 | pm = ondemand' >> /etc/opt/remi/php82/php-fpm.d/www.conf 266 | 267 | #systemctl start php-fpm 268 | #systemctl enable php-fpm 269 | 270 | systemctl start php54-php-fpm 271 | systemctl enable php54-php-fpm 272 | 273 | systemctl start php55-php-fpm 274 | systemctl enable php55-php-fpm 275 | 276 | systemctl start php56-php-fpm 277 | systemctl enable php56-php-fpm 278 | 279 | systemctl start php70-php-fpm 280 | systemctl enable php70-php-fpm 281 | 282 | systemctl start php71-php-fpm 283 | systemctl enable php71-php-fpm 284 | 285 | systemctl start php72-php-fpm 286 | systemctl enable php72-php-fpm 287 | 288 | systemctl start php73-php-fpm 289 | systemctl enable php73-php-fpm 290 | 291 | systemctl start php74-php-fpm 292 | systemctl enable php74-php-fpm 293 | 294 | systemctl start php80-php-fpm 295 | systemctl enable php80-php-fpm 296 | 297 | systemctl start php81-php-fpm 298 | systemctl enable php81-php-fpm 299 | 300 | systemctl start php82-php-fpm 301 | systemctl enable php82-php-fpm 302 | 303 | sed -i 's/php_value/#php_value/' /etc/httpd/conf.d/php.conf 304 | 305 | echo ' 306 | Require all denied 307 | 308 | AddType text/html .php 309 | DirectoryIndex index.php 310 | SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 311 | 312 | SetHandler "proxy:fcgi://127.0.0.1:9072" 313 | ' >> /etc/httpd/conf.d/php.conf 314 | 315 | yum -y install GeoIP GeoIP-data GeoIP-devel mod_geoip 316 | 317 | echo "#geoip setup 318 | 319 | GeoIPEnable On 320 | GeoIPDBFile /usr/share/GeoIP/GeoIP.dat MemoryCache 321 | " > /etc/httpd/conf.d/geoip.conf 322 | 323 | cp -av /etc/php.ini /etc/php.ini.original 324 | sed -i 's/short_open_tag = Off/short_open_tag = On/' /etc/php.ini 325 | sed -i 's/expose_php = On/expose_php = Off/' /etc/php.ini 326 | sed -i 's/display_errors = Off/display_errors = On/' /etc/php.ini 327 | sed -i 's/;error_log = php_errors.log/error_log = php_errors.log/' /etc/php.ini 328 | sed -i 's/error_reporting = E_ALL \& ~E_DEPRECATED/error_reporting = E_ALL \& ~E_NOTICE \& ~E_DEPRECATED \& ~E_USER_DEPRECATED/' /etc/php.ini 329 | sed -i 's/variables_order = "GPCS"/variables_order = "EGPCS"/' /etc/php.ini 330 | sed -i 's/post_max_size = 8M/post_max_size = 100M/' /etc/php.ini 331 | sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 100M/' /etc/php.ini 332 | sed -i 's/;date.timezone =/date.timezone = "Asia\/Seoul"/' /etc/php.ini 333 | sed -i 's/session.gc_maxlifetime = 1440/session.gc_maxlifetime = 86400/' /etc/php.ini 334 | sed -i 's/disable_functions =/disable_functions = system,exec,passthru,proc_open,popen,curl_multi_exec,parse_ini_file,show_source/' /etc/php.ini 335 | 336 | cp -av /opt/remi/php54/root/etc/php.ini /opt/remi/php54/root/etc/php.ini.original 337 | sed -i 's/short_open_tag = Off/short_open_tag = On/' /opt/remi/php54/root/etc/php.ini 338 | sed -i 's/expose_php = On/expose_php = Off/' /opt/remi/php54/root/etc/php.ini 339 | sed -i 's/display_errors = Off/display_errors = On/' /opt/remi/php54/root/etc/php.ini 340 | sed -i 's/;error_log = php_errors.log/error_log = php_errors.log/' /opt/remi/php54/root/etc/php.ini 341 | sed -i 's/error_reporting = E_ALL \& ~E_DEPRECATED/error_reporting = E_ALL \& ~E_NOTICE \& ~E_DEPRECATED \& ~E_USER_DEPRECATED/' /opt/remi/php54/root/etc/php.ini 342 | sed -i 's/variables_order = "GPCS"/variables_order = "EGPCS"/' /opt/remi/php54/root/etc/php.ini 343 | sed -i 's/post_max_size = 8M/post_max_size = 100M/' /opt/remi/php54/root/etc/php.ini 344 | sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 100M/' /opt/remi/php54/root/etc/php.ini 345 | sed -i 's/;date.timezone =/date.timezone = "Asia\/Seoul"/' /opt/remi/php54/root/etc/php.ini 346 | sed -i 's/session.gc_maxlifetime = 1440/session.gc_maxlifetime = 86400/' /opt/remi/php54/root/etc/php.ini 347 | sed -i 's/disable_functions =/disable_functions = system,exec,passthru,proc_open,popen,curl_multi_exec,parse_ini_file,show_source/' /opt/remi/php54/root/etc/php.ini 348 | 349 | cp -av /opt/remi/php55/root/etc/php.ini /opt/remi/php55/root/etc/php.ini.original 350 | sed -i 's/short_open_tag = Off/short_open_tag = On/' /opt/remi/php55/root/etc/php.ini 351 | sed -i 's/expose_php = On/expose_php = Off/' /opt/remi/php55/root/etc/php.ini 352 | sed -i 's/display_errors = Off/display_errors = On/' /opt/remi/php55/root/etc/php.ini 353 | sed -i 's/;error_log = php_errors.log/error_log = php_errors.log/' /opt/remi/php55/root/etc/php.ini 354 | sed -i 's/error_reporting = E_ALL \& ~E_DEPRECATED/error_reporting = E_ALL \& ~E_NOTICE \& ~E_DEPRECATED \& ~E_USER_DEPRECATED/' /opt/remi/php55/root/etc/php.ini 355 | sed -i 's/variables_order = "GPCS"/variables_order = "EGPCS"/' /opt/remi/php55/root/etc/php.ini 356 | sed -i 's/post_max_size = 8M/post_max_size = 100M/' /opt/remi/php55/root/etc/php.ini 357 | sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 100M/' /opt/remi/php55/root/etc/php.ini 358 | sed -i 's/;date.timezone =/date.timezone = "Asia\/Seoul"/' /opt/remi/php55/root/etc/php.ini 359 | sed -i 's/session.gc_maxlifetime = 1440/session.gc_maxlifetime = 86400/' /opt/remi/php55/root/etc/php.ini 360 | sed -i 's/disable_functions =/disable_functions = system,exec,passthru,proc_open,popen,curl_multi_exec,parse_ini_file,show_source/' /opt/remi/php55/root/etc/php.ini 361 | 362 | cp -av /opt/remi/php56/root/etc/php.ini /opt/remi/php56/root/etc/php.ini.original 363 | sed -i 's/short_open_tag = Off/short_open_tag = On/' /opt/remi/php56/root/etc/php.ini 364 | sed -i 's/expose_php = On/expose_php = Off/' /opt/remi/php56/root/etc/php.ini 365 | sed -i 's/display_errors = Off/display_errors = On/' /opt/remi/php56/root/etc/php.ini 366 | sed -i 's/;error_log = php_errors.log/error_log = php_errors.log/' /opt/remi/php56/root/etc/php.ini 367 | sed -i 's/error_reporting = E_ALL \& ~E_DEPRECATED/error_reporting = E_ALL \& ~E_NOTICE \& ~E_DEPRECATED \& ~E_USER_DEPRECATED/' /opt/remi/php56/root/etc/php.ini 368 | sed -i 's/variables_order = "GPCS"/variables_order = "EGPCS"/' /opt/remi/php56/root/etc/php.ini 369 | sed -i 's/post_max_size = 8M/post_max_size = 100M/' /opt/remi/php56/root/etc/php.ini 370 | sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 100M/' /opt/remi/php56/root/etc/php.ini 371 | sed -i 's/;date.timezone =/date.timezone = "Asia\/Seoul"/' /opt/remi/php56/root/etc/php.ini 372 | sed -i 's/session.gc_maxlifetime = 1440/session.gc_maxlifetime = 86400/' /opt/remi/php56/root/etc/php.ini 373 | sed -i 's/disable_functions =/disable_functions = system,exec,passthru,proc_open,popen,curl_multi_exec,parse_ini_file,show_source/' /opt/remi/php56/root/etc/php.ini 374 | 375 | cp -av /etc/opt/remi/php70/php.ini /etc/opt/remi/php70/php.ini.original 376 | sed -i 's/short_open_tag = Off/short_open_tag = On/' /etc/opt/remi/php70/php.ini 377 | sed -i 's/expose_php = On/expose_php = Off/' /etc/opt/remi/php70/php.ini 378 | sed -i 's/display_errors = Off/display_errors = On/' /etc/opt/remi/php70/php.ini 379 | sed -i 's/;error_log = php_errors.log/error_log = php_errors.log/' /etc/opt/remi/php70/php.ini 380 | sed -i 's/error_reporting = E_ALL \& ~E_DEPRECATED/error_reporting = E_ALL \& ~E_NOTICE \& ~E_DEPRECATED \& ~E_USER_DEPRECATED/' /etc/opt/remi/php70/php.ini 381 | sed -i 's/variables_order = "GPCS"/variables_order = "EGPCS"/' /etc/opt/remi/php70/php.ini 382 | sed -i 's/post_max_size = 8M/post_max_size = 100M/' /etc/opt/remi/php70/php.ini 383 | sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 100M/' /etc/opt/remi/php70/php.ini 384 | sed -i 's/;date.timezone =/date.timezone = "Asia\/Seoul"/' /etc/opt/remi/php70/php.ini 385 | sed -i 's/session.gc_maxlifetime = 1440/session.gc_maxlifetime = 86400/' /etc/opt/remi/php70/php.ini 386 | sed -i 's/disable_functions =/disable_functions = system,exec,passthru,proc_open,popen,curl_multi_exec,parse_ini_file,show_source/' /etc/opt/remi/php70/php.ini 387 | 388 | cp -av /etc/opt/remi/php71/php.ini /etc/opt/remi/php71/php.ini.original 389 | sed -i 's/short_open_tag = Off/short_open_tag = On/' /etc/opt/remi/php71/php.ini 390 | sed -i 's/expose_php = On/expose_php = Off/' /etc/opt/remi/php71/php.ini 391 | sed -i 's/display_errors = Off/display_errors = On/' /etc/opt/remi/php71/php.ini 392 | sed -i 's/;error_log = php_errors.log/error_log = php_errors.log/' /etc/opt/remi/php71/php.ini 393 | sed -i 's/error_reporting = E_ALL \& ~E_DEPRECATED/error_reporting = E_ALL \& ~E_NOTICE \& ~E_DEPRECATED \& ~E_USER_DEPRECATED/' /etc/opt/remi/php71/php.ini 394 | sed -i 's/variables_order = "GPCS"/variables_order = "EGPCS"/' /etc/opt/remi/php71/php.ini 395 | sed -i 's/post_max_size = 8M/post_max_size = 100M/' /etc/opt/remi/php71/php.ini 396 | sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 100M/' /etc/opt/remi/php71/php.ini 397 | sed -i 's/;date.timezone =/date.timezone = "Asia\/Seoul"/' /etc/opt/remi/php71/php.ini 398 | sed -i 's/session.gc_maxlifetime = 1440/session.gc_maxlifetime = 86400/' /etc/opt/remi/php71/php.ini 399 | sed -i 's/disable_functions =/disable_functions = system,exec,passthru,proc_open,popen,curl_multi_exec,parse_ini_file,show_source/' /etc/opt/remi/php71/php.ini 400 | 401 | cp -av /etc/opt/remi/php72/php.ini /etc/opt/remi/php72/php.ini.original 402 | sed -i 's/short_open_tag = Off/short_open_tag = On/' /etc/opt/remi/php72/php.ini 403 | sed -i 's/expose_php = On/expose_php = Off/' /etc/opt/remi/php72/php.ini 404 | sed -i 's/display_errors = Off/display_errors = On/' /etc/opt/remi/php72/php.ini 405 | sed -i 's/;error_log = php_errors.log/error_log = php_errors.log/' /etc/opt/remi/php72/php.ini 406 | sed -i 's/error_reporting = E_ALL \& ~E_DEPRECATED/error_reporting = E_ALL \& ~E_NOTICE \& ~E_DEPRECATED \& ~E_USER_DEPRECATED/' /etc/opt/remi/php72/php.ini 407 | sed -i 's/variables_order = "GPCS"/variables_order = "EGPCS"/' /etc/opt/remi/php72/php.ini 408 | sed -i 's/post_max_size = 8M/post_max_size = 100M/' /etc/opt/remi/php72/php.ini 409 | sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 100M/' /etc/opt/remi/php72/php.ini 410 | sed -i 's/;date.timezone =/date.timezone = "Asia\/Seoul"/' /etc/opt/remi/php72/php.ini 411 | sed -i 's/session.gc_maxlifetime = 1440/session.gc_maxlifetime = 86400/' /etc/opt/remi/php72/php.ini 412 | sed -i 's/disable_functions =/disable_functions = system,exec,passthru,proc_open,popen,curl_multi_exec,parse_ini_file,show_source/' /etc/opt/remi/php72/php.ini 413 | 414 | cp -av /etc/opt/remi/php73/php.ini /etc/opt/remi/php73/php.ini.original 415 | sed -i 's/short_open_tag = Off/short_open_tag = On/' /etc/opt/remi/php73/php.ini 416 | sed -i 's/expose_php = On/expose_php = Off/' /etc/opt/remi/php73/php.ini 417 | sed -i 's/display_errors = Off/display_errors = On/' /etc/opt/remi/php73/php.ini 418 | sed -i 's/;error_log = php_errors.log/error_log = php_errors.log/' /etc/opt/remi/php73/php.ini 419 | sed -i 's/error_reporting = E_ALL \& ~E_DEPRECATED/error_reporting = E_ALL \& ~E_NOTICE \& ~E_DEPRECATED \& ~E_USER_DEPRECATED/' /etc/opt/remi/php73/php.ini 420 | sed -i 's/variables_order = "GPCS"/variables_order = "EGPCS"/' /etc/opt/remi/php73/php.ini 421 | sed -i 's/post_max_size = 8M/post_max_size = 100M/' /etc/opt/remi/php73/php.ini 422 | sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 100M/' /etc/opt/remi/php73/php.ini 423 | sed -i 's/;date.timezone =/date.timezone = "Asia\/Seoul"/' /etc/opt/remi/php73/php.ini 424 | sed -i 's/session.gc_maxlifetime = 1440/session.gc_maxlifetime = 86400/' /etc/opt/remi/php73/php.ini 425 | sed -i 's/disable_functions =/disable_functions = system,exec,passthru,proc_open,popen,curl_multi_exec,parse_ini_file,show_source/' /etc/opt/remi/php73/php.ini 426 | 427 | cp -av /etc/opt/remi/php74/php.ini /etc/opt/remi/php74/php.ini.original 428 | sed -i 's/short_open_tag = Off/short_open_tag = On/' /etc/opt/remi/php74/php.ini 429 | sed -i 's/expose_php = On/expose_php = Off/' /etc/opt/remi/php74/php.ini 430 | sed -i 's/display_errors = Off/display_errors = On/' /etc/opt/remi/php74/php.ini 431 | sed -i 's/;error_log = php_errors.log/error_log = php_errors.log/' /etc/opt/remi/php74/php.ini 432 | sed -i 's/error_reporting = E_ALL \& ~E_DEPRECATED/error_reporting = E_ALL \& ~E_NOTICE \& ~E_DEPRECATED \& ~E_USER_DEPRECATED/' /etc/opt/remi/php74/php.ini 433 | sed -i 's/variables_order = "GPCS"/variables_order = "EGPCS"/' /etc/opt/remi/php74/php.ini 434 | sed -i 's/post_max_size = 8M/post_max_size = 100M/' /etc/opt/remi/php74/php.ini 435 | sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 100M/' /etc/opt/remi/php74/php.ini 436 | sed -i 's/;date.timezone =/date.timezone = "Asia\/Seoul"/' /etc/opt/remi/php74/php.ini 437 | sed -i 's/session.gc_maxlifetime = 1440/session.gc_maxlifetime = 86400/' /etc/opt/remi/php74/php.ini 438 | sed -i 's/disable_functions =/disable_functions = system,exec,passthru,proc_open,popen,curl_multi_exec,parse_ini_file,show_source/' /etc/opt/remi/php74/php.ini 439 | 440 | cp -av /etc/opt/remi/php80/php.ini /etc/opt/remi/php80/php.ini.original 441 | sed -i 's/short_open_tag = Off/short_open_tag = On/' /etc/opt/remi/php80/php.ini 442 | sed -i 's/expose_php = On/expose_php = Off/' /etc/opt/remi/php80/php.ini 443 | sed -i 's/display_errors = Off/display_errors = On/' /etc/opt/remi/php80/php.ini 444 | sed -i 's/;error_log = php_errors.log/error_log = php_errors.log/' /etc/opt/remi/php80/php.ini 445 | sed -i 's/error_reporting = E_ALL \& ~E_DEPRECATED/error_reporting = E_ALL \& ~E_NOTICE \& ~E_DEPRECATED \& ~E_USER_DEPRECATED/' /etc/opt/remi/php80/php.ini 446 | sed -i 's/variables_order = "GPCS"/variables_order = "EGPCS"/' /etc/opt/remi/php80/php.ini 447 | sed -i 's/post_max_size = 8M/post_max_size = 100M/' /etc/opt/remi/php80/php.ini 448 | sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 100M/' /etc/opt/remi/php80/php.ini 449 | sed -i 's/;date.timezone =/date.timezone = "Asia\/Seoul"/' /etc/opt/remi/php80/php.ini 450 | sed -i 's/session.gc_maxlifetime = 1440/session.gc_maxlifetime = 86400/' /etc/opt/remi/php80/php.ini 451 | sed -i 's/disable_functions =/disable_functions = system,exec,passthru,proc_open,popen,curl_multi_exec,parse_ini_file,show_source/' /etc/opt/remi/php80/php.ini 452 | 453 | cp -av /etc/opt/remi/php81/php.ini /etc/opt/remi/php81/php.ini.original 454 | sed -i 's/short_open_tag = Off/short_open_tag = On/' /etc/opt/remi/php81/php.ini 455 | sed -i 's/expose_php = On/expose_php = Off/' /etc/opt/remi/php81/php.ini 456 | sed -i 's/display_errors = Off/display_errors = On/' /etc/opt/remi/php81/php.ini 457 | sed -i 's/;error_log = php_errors.log/error_log = php_errors.log/' /etc/opt/remi/php81/php.ini 458 | sed -i 's/error_reporting = E_ALL \& ~E_DEPRECATED/error_reporting = E_ALL \& ~E_NOTICE \& ~E_DEPRECATED \& ~E_USER_DEPRECATED/' /etc/opt/remi/php81/php.ini 459 | sed -i 's/variables_order = "GPCS"/variables_order = "EGPCS"/' /etc/opt/remi/php81/php.ini 460 | sed -i 's/post_max_size = 8M/post_max_size = 100M/' /etc/opt/remi/php81/php.ini 461 | sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 100M/' /etc/opt/remi/php81/php.ini 462 | sed -i 's/;date.timezone =/date.timezone = "Asia\/Seoul"/' /etc/opt/remi/php81/php.ini 463 | sed -i 's/session.gc_maxlifetime = 1440/session.gc_maxlifetime = 86400/' /etc/opt/remi/php81/php.ini 464 | sed -i 's/disable_functions =/disable_functions = system,exec,passthru,proc_open,popen,curl_multi_exec,parse_ini_file,show_source/' /etc/opt/remi/php81/php.ini 465 | 466 | cp -av /etc/opt/remi/php82/php.ini /etc/opt/remi/php82/php.ini.original 467 | sed -i 's/short_open_tag = Off/short_open_tag = On/' /etc/opt/remi/php82/php.ini 468 | sed -i 's/expose_php = On/expose_php = Off/' /etc/opt/remi/php82/php.ini 469 | sed -i 's/display_errors = Off/display_errors = On/' /etc/opt/remi/php82/php.ini 470 | sed -i 's/;error_log = php_errors.log/error_log = php_errors.log/' /etc/opt/remi/php82/php.ini 471 | sed -i 's/error_reporting = E_ALL \& ~E_DEPRECATED/error_reporting = E_ALL \& ~E_NOTICE \& ~E_DEPRECATED \& ~E_USER_DEPRECATED/' /etc/opt/remi/php82/php.ini 472 | sed -i 's/variables_order = "GPCS"/variables_order = "EGPCS"/' /etc/opt/remi/php82/php.ini 473 | sed -i 's/post_max_size = 8M/post_max_size = 100M/' /etc/opt/remi/php82/php.ini 474 | sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 100M/' /etc/opt/remi/php82/php.ini 475 | sed -i 's/;date.timezone =/date.timezone = "Asia\/Seoul"/' /etc/opt/remi/php82/php.ini 476 | sed -i 's/session.gc_maxlifetime = 1440/session.gc_maxlifetime = 86400/' /etc/opt/remi/php82/php.ini 477 | sed -i 's/disable_functions =/disable_functions = system,exec,passthru,proc_open,popen,curl_multi_exec,parse_ini_file,show_source/' /etc/opt/remi/php82/php.ini 478 | 479 | 480 | 481 | echo "[xdebug] 482 | xdebug.remote_autostart = 1 483 | xdebug.remote_connect_back = 1 484 | xdebug.remote_enable = 1 485 | xdebug.remote_port = 9009 486 | xdebug.remote_handler = dbgp" >> /etc/php.ini 487 | 488 | echo "[xdebug] 489 | xdebug.remote_autostart = 1 490 | xdebug.remote_connect_back = 1 491 | xdebug.remote_enable = 1 492 | xdebug.remote_port = 9009 493 | xdebug.remote_handler = dbgp" >> /opt/remi/php54/root/etc/php.ini 494 | 495 | echo "[xdebug] 496 | xdebug.remote_autostart = 1 497 | xdebug.remote_connect_back = 1 498 | xdebug.remote_enable = 1 499 | xdebug.remote_port = 9009 500 | xdebug.remote_handler = dbgp" >> /opt/remi/php55/root/etc/php.ini 501 | 502 | echo "[xdebug] 503 | xdebug.remote_autostart = 1 504 | xdebug.remote_connect_back = 1 505 | xdebug.remote_enable = 1 506 | xdebug.remote_port = 9009 507 | xdebug.remote_handler = dbgp" >> /opt/remi/php56/root/etc/php.ini 508 | 509 | echo "[xdebug] 510 | xdebug.remote_autostart = 1 511 | xdebug.remote_connect_back = 1 512 | xdebug.remote_enable = 1 513 | xdebug.remote_port = 9009 514 | xdebug.remote_handler = dbgp" >> /etc/opt/remi/php70/php.ini 515 | 516 | echo "[xdebug] 517 | xdebug.remote_autostart = 1 518 | xdebug.remote_connect_back = 1 519 | xdebug.remote_enable = 1 520 | xdebug.remote_port = 9009 521 | xdebug.remote_handler = dbgp" >> /etc/opt/remi/php71/php.ini 522 | 523 | echo "[xdebug] 524 | xdebug.remote_autostart = 1 525 | xdebug.remote_connect_back = 1 526 | xdebug.remote_enable = 1 527 | xdebug.remote_port = 9009 528 | xdebug.remote_handler = dbgp" >> /etc/opt/remi/php72/php.ini 529 | 530 | echo "[xdebug] 531 | xdebug.remote_autostart = 1 532 | xdebug.remote_connect_back = 1 533 | xdebug.remote_enable = 1 534 | xdebug.remote_port = 9009 535 | xdebug.remote_handler = dbgp" >> /etc/opt/remi/php73/php.ini 536 | 537 | echo "[xdebug] 538 | xdebug.remote_autostart = 1 539 | xdebug.remote_connect_back = 1 540 | xdebug.remote_enable = 1 541 | xdebug.remote_port = 9009 542 | xdebug.remote_handler = dbgp" >> /etc/opt/remi/php74/php.ini 543 | 544 | echo "[xdebug] 545 | xdebug.remote_autostart = 1 546 | xdebug.remote_connect_back = 1 547 | xdebug.remote_enable = 1 548 | xdebug.remote_port = 9009 549 | xdebug.remote_handler = dbgp" >> /etc/opt/remi/php80/php.ini 550 | 551 | echo "[xdebug] 552 | xdebug.remote_autostart = 1 553 | xdebug.remote_connect_back = 1 554 | xdebug.remote_enable = 1 555 | xdebug.remote_port = 9009 556 | xdebug.remote_handler = dbgp" >> /etc/opt/remi/php81/php.ini 557 | 558 | echo "[xdebug] 559 | xdebug.remote_autostart = 1 560 | xdebug.remote_connect_back = 1 561 | xdebug.remote_enable = 1 562 | xdebug.remote_port = 9009 563 | xdebug.remote_handler = dbgp" >> /etc/opt/remi/php82/php.ini 564 | 565 | mkdir /etc/skel/public_html 566 | 567 | chmod 707 /etc/skel/public_html 568 | 569 | chmod 700 /root/AAI/adduser.sh 570 | 571 | chmod 700 /root/AAI/deluser.sh 572 | 573 | chmod 700 /root/AAI/restart.sh 574 | 575 | chmod 700 /root/AAI/clamav.sh 576 | 577 | cp /root/AAI/APM/skel/index.html /etc/skel/public_html/ 578 | 579 | systemctl restart httpd 580 | 581 | curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin/ && ln -s /usr/local/bin/composer.phar /usr/local/bin/composer 582 | 583 | sed -i 's/allow_url_fopen = On/allow_url_fopen = Off/' /etc/php.ini 584 | sed -i 's/allow_url_fopen = On/allow_url_fopen = Off/' /opt/remi/php54/root/etc/php.ini 585 | sed -i 's/allow_url_fopen = On/allow_url_fopen = Off/' /opt/remi/php55/root/etc/php.ini 586 | sed -i 's/allow_url_fopen = On/allow_url_fopen = Off/' /opt/remi/php56/root/etc/php.ini 587 | sed -i 's/allow_url_fopen = On/allow_url_fopen = Off/' /etc/opt/remi/php70/php.ini 588 | sed -i 's/allow_url_fopen = On/allow_url_fopen = Off/' /etc/opt/remi/php71/php.ini 589 | sed -i 's/allow_url_fopen = On/allow_url_fopen = Off/' /etc/opt/remi/php72/php.ini 590 | sed -i 's/allow_url_fopen = On/allow_url_fopen = Off/' /etc/opt/remi/php73/php.ini 591 | sed -i 's/allow_url_fopen = On/allow_url_fopen = Off/' /etc/opt/remi/php74/php.ini 592 | sed -i 's/allow_url_fopen = On/allow_url_fopen = Off/' /etc/opt/remi/php80/php.ini 593 | sed -i 's/allow_url_fopen = On/allow_url_fopen = Off/' /etc/opt/remi/php81/php.ini 594 | sed -i 's/allow_url_fopen = On/allow_url_fopen = Off/' /etc/opt/remi/php82/php.ini 595 | 596 | systemctl restart httpd 597 | 598 | echo '' >> /var/www/html/phpinfo.php 601 | 602 | ########################################## 603 | # # 604 | # MARIADB 10.5.X install # 605 | # # 606 | ########################################## 607 | 608 | # MariaDB 10.5.x 설치 609 | yum -y install MariaDB-server MariaDB-client 610 | 611 | # MariaDB my.cnf 복사 612 | #cp -av /usr/share/mysql/my-huge.cnf /etc/my.cnf.d/ 613 | 614 | systemctl enable mariadb 615 | 616 | systemctl start mariadb 617 | 618 | # S.M.A.R.T. 디스크 모니터링을 설치 619 | yum -y install smartmontools 620 | 621 | systemctl enable smartd 622 | 623 | systemctl start smartd 624 | 625 | ########################################## 626 | # # 627 | # mysql 설정 # 628 | # # 629 | ########################################## 630 | 631 | echo "[mysql] 632 | default-character-set = utf8mb4 633 | 634 | [mysqld] 635 | character-set-client-handshake=FALSE 636 | init_connect="SET collation_connection = utf8mb4_unicode_ci" 637 | init_connect="SET NAMES utf8mb4" 638 | character-set-server = utf8mb4 639 | collation-server = utf8mb4_unicode_ci 640 | 641 | [client] 642 | default-character-set = utf8mb4" > /etc/my.cnf.d/mysql-aai.cnf 643 | 644 | /usr/bin/mysql_secure_installation 645 | 646 | ########################################## 647 | # # 648 | # 운영 및 보안 관련 추가 설정 # 649 | # # 650 | ########################################## 651 | 652 | cd /root/AAI/ 653 | 654 | #chkrootkit 설치 655 | #wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz 656 | 657 | tar xvfz chkrootkit.tar.gz 658 | 659 | mv chkrootkit-* chkrootkit 660 | 661 | cd chkrootkit 662 | 663 | make sense 664 | 665 | rm -rf /root/AAI/chkrootkit.tar.gz 666 | 667 | #mod_evasive mod_security fail2ban.noarch arpwatch 설치 668 | yum -y install mod_evasive mod_security mod_security_crs fail2ban.noarch arpwatch 669 | 670 | sed -i 's/SecDefaultAction \"phase:1,deny,log\"/SecDefaultAction \"phase:1,deny,log,auditlog\"/' /etc/httpd/modsecurity.d/modsecurity_crs_10_config.conf 671 | sed -i 's/SecDefaultAction \"phase:2,deny,log\"/SecDefaultAction \"phase:2,deny,log,auditlog\"/' /etc/httpd/modsecurity.d/modsecurity_crs_10_config.conf 672 | sed -i 's/SecRuleEngine On/SecRuleEngine DetectionOnly/' /etc/httpd/conf.d/mod_security.conf 673 | 674 | sed -i 's/DOSPageCount 2/DOSPageCount 100/' /etc/httpd/conf.d/mod_evasive.conf 675 | sed -i 's/DOSSiteCount 50/DOSSiteCount 100/' /etc/httpd/conf.d/mod_evasive.conf 676 | 677 | #fail2ban 설치 678 | service fail2ban start 679 | chkconfig --level 2345 fail2ban on 680 | sed -i 's/# enabled = true/enabled = true/' /etc/fail2ban/jail.conf 681 | service fail2ban restart 682 | 683 | service arpwatch start 684 | service arpwatch restart 685 | 686 | #clamav 설치 687 | yum -y install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd 688 | 689 | cp /usr/share/doc/clamd-0.103.8/clamd.conf /etc/clamd.conf 690 | 691 | sed -i '/^Example/d' /etc/clamd.conf 692 | sed -i 's/User /User clamscan/' /etc/clamd.conf 693 | sed -i 's/#LocalSocket /LocalSocket /' /etc/clamd.conf 694 | sed -i 's/clamd./clamd.scan/' /etc/clamd.conf 695 | 696 | chmod 755 /var/run/clamd.scan 697 | 698 | sed 's/710/755/' /usr/lib/tmpfiles.d/clamd.scan.conf > /etc/tmpfiles.d/clamd.scan.conf 699 | cp /etc/freshclam.conf /etc/freshclam.conf.bak 700 | sed -i '/^Example/d' /etc/freshclam.conf 701 | 702 | echo "# Run the freshclam as daemon 703 | [Unit] 704 | Description = freshclam scanner 705 | After = network.target 706 | [Service] 707 | Type = forking 708 | ExecStart = /usr/bin/freshclam -d -c 4 709 | Restart = on-failure 710 | PrivateTmp = true 711 | [Install] 712 | WantedBy=multi-user.target" >> /usr/lib/systemd/system/clam-freshclam.service 713 | 714 | systemctl enable clam-freshclam.service 715 | systemctl start clam-freshclam.service 716 | mv /usr/lib/systemd/system/clamd\@.service /usr/lib/systemd/system/clamd.service 717 | rm -rf /usr/lib/systemd/system/clamd.service 718 | 719 | echo "[Unit] 720 | Description = clamd scanner daemon 721 | After = syslog.target nss-lookup.target network.target 722 | 723 | [Service] 724 | Type = simple 725 | ExecStart = /usr/sbin/clamd -c /etc/clamd.conf --foreground=yes 726 | Restart = on-failure 727 | PrivateTmp = true 728 | 729 | [Install] 730 | WantedBy=multi-user.target" >> /usr/lib/systemd/system/clamd.service 731 | 732 | sed -i '/^Example$/d' /etc/clamd.d/scan.conf 733 | sed -i -e 's/#LocalSocket \/var\/run\/clamd.scan\/clamd.sock/LocalSocket \/var\/run\/clamd.scan\/clamd.sock/g' /etc/clamd.d/scan.conf 734 | 735 | systemctl enable clamd.service 736 | 737 | systemctl start clamd.service 738 | 739 | systemctl stop clamd.service 740 | 741 | 742 | mkdir /virus 743 | mkdir /backup 744 | mkdir /root/AAI/php 745 | 746 | #memcache 설치 747 | yum -y install memcached python-memcached php-pecl-memcache memcached-devel 748 | #yum -y install php54-php-pecl-memcache php55-php-pecl-memcache php56-php-pecl-memcache php70-php-pecl-memcache php71-php-pecl-memcache php72-php-pecl-memcache php73-php-pecl-memcache php74-php-pecl-memcache php80-php-pecl-memcache 749 | 750 | sed -i 's/OPTIONS=""/OPTIONS="-l 127.0.0.1"/' /etc/sysconfig/memcached 751 | 752 | systemctl start memcached 753 | systemctl enable memcached 754 | systemctl restart memcached 755 | systemctl restart httpd 756 | 757 | echo "#mod_expires configuration" > /tmp/httpd.conf_tempfile 758 | echo "" >> /tmp/httpd.conf_tempfile 759 | echo " ExpiresActive On" >> /tmp/httpd.conf_tempfile 760 | echo " ExpiresDefault \"access plus 1 days\"" >> /tmp/httpd.conf_tempfile 761 | echo " ExpiresByType text/css \"access plus 1 days\"" >> /tmp/httpd.conf_tempfile 762 | echo " ExpiresByType text/javascript \"access plus 1 days\"" >> /tmp/httpd.conf_tempfile 763 | echo " ExpiresByType text/x-javascript \"access plus 1 days\"" >> /tmp/httpd.conf_tempfile 764 | echo " ExpiresByType application/x-javascript \"access plus 1 days\"" >> /tmp/httpd.conf_tempfile 765 | echo " ExpiresByType application/javascript \"access plus 1 days\"" >> /tmp/httpd.conf_tempfile 766 | echo " ExpiresByType image/jpeg \"access plus 1 days\"" >> /tmp/httpd.conf_tempfile 767 | echo " ExpiresByType image/gif \"access plus 1 days\"" >> /tmp/httpd.conf_tempfile 768 | echo " ExpiresByType image/png \"access plus 1 days\"" >> /tmp/httpd.conf_tempfile 769 | echo " ExpiresByType image/bmp \"access plus 1 days\"" >> /tmp/httpd.conf_tempfile 770 | echo " ExpiresByType image/cgm \"access plus 1 days\"" >> /tmp/httpd.conf_tempfile 771 | echo " ExpiresByType image/tiff \"access plus 1 days\"" >> /tmp/httpd.conf_tempfile 772 | echo " ExpiresByType audio/basic \"access plus 1 days\"" >> /tmp/httpd.conf_tempfile 773 | echo " ExpiresByType audio/midi \"access plus 1 days\"" >> /tmp/httpd.conf_tempfile 774 | echo " ExpiresByType audio/mpeg \"access plus 1 days\"" >> /tmp/httpd.conf_tempfile 775 | echo " ExpiresByType audio/x-aiff \"access plus 1 days\"" >> /tmp/httpd.conf_tempfile 776 | echo " ExpiresByType audio/x-mpegurl \"access plus 1 days\"" >> /tmp/httpd.conf_tempfile 777 | echo " ExpiresByType audio/x-pn-realaudio \"access plus 1 days\"" >> /tmp/httpd.conf_tempfile 778 | echo " ExpiresByType audio/x-wav \"access plus 1 days\"" >> /tmp/httpd.conf_tempfile 779 | echo " ExpiresByType application/x-shockwave-flash \"access plus 1 days\"" >> /tmp/httpd.conf_tempfile 780 | echo "" >> /tmp/httpd.conf_tempfile 781 | cat /tmp/httpd.conf_tempfile >> /etc/httpd/conf.d/mod_expires.conf 782 | rm -f /tmp/httpd.conf_tempfile 783 | 784 | ########################################## 785 | # # 786 | # Local SSL 설정 # 787 | # # 788 | ########################################## 789 | 790 | mv /root/AAI/APM/etc/cron.daily/backup /etc/cron.daily/ 791 | mv /root/AAI/APM/etc/cron.daily/check_chkrootkit /etc/cron.daily/ 792 | mv /root/AAI/APM/etc/cron.daily/letsencrypt-renew /etc/cron.daily/ 793 | 794 | chmod 700 /etc/cron.daily/backup 795 | chmod 700 /etc/cron.daily/check_chkrootkit 796 | chmod 700 /etc/cron.daily/letsencrypt-renew 797 | 798 | echo "00 20 * * * /root/cron.daily/check_chkrootkit" >> /etc/crontab 799 | echo "01 02,14 * * * /etc/cron.daily/letsencrypt-renew" >> /etc/crontab 800 | echo "01 01 * * 7 /root/AAI/clamav.sh" >> /etc/crontab 801 | 802 | #openssl 로 디피-헬만 파라미터(dhparam) 키 만들기 둘중 하나 선택 803 | #openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096 804 | openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 805 | 806 | #http2 설정 807 | echo " 808 | 809 | ProtocolsHonorOrder On 810 | Protocols h2 h2c http/1.1 811 | " >> /etc/httpd/conf.modules.d/10-h2.conf 812 | 813 | #중요 폴더 및 파일 링크 814 | ln -s /etc/letsencrypt /root/AAI/letsencrypt 815 | ln -s /etc/httpd/conf.d /root/AAI/conf.d 816 | ln -s /etc/my.cnf.d /root/AAI/my.cnf.d 817 | ln -s /etc/php.ini /root/AAI/php/php.ini 818 | ln -s /opt/remi/php54/root/etc/php.ini /root/AAI/php/php54.ini 819 | ln -s /opt/remi/php55/root/etc/php.ini /root/AAI/php/php55.ini 820 | ln -s /opt/remi/php56/root/etc/php.ini /root/AAI/php/php56.ini 821 | ln -s /etc/opt/remi/php70/php.ini /root/AAI/php/php70.ini 822 | ln -s /etc/opt/remi/php71/php.ini /root/AAI/php/php71.ini 823 | ln -s /etc/opt/remi/php72/php.ini /root/AAI/php/php72.ini 824 | ln -s /etc/opt/remi/php73/php.ini /root/AAI/php/php73.ini 825 | ln -s /etc/opt/remi/php74/php.ini /root/AAI/php/php74.ini 826 | ln -s /etc/opt/remi/php80/php.ini /root/AAI/php/php80.ini 827 | ln -s /etc/opt/remi/php81/php.ini /root/AAI/php/php81.ini 828 | ln -s /etc/opt/remi/php82/php.ini /root/AAI/php/php82.ini 829 | 830 | service httpd restart 831 | 832 | cd /root/AAI 833 | 834 | ########################################## 835 | # # 836 | # Cockpit install # 837 | # # 838 | ########################################## 839 | 840 | yum install -y cockpit cockpit-storaged 841 | 842 | systemctl start cockpit 843 | 844 | systemctl enable --now cockpit.socket 845 | 846 | sh restart.sh 847 | 848 | echo "" 849 | echo "" 850 | echo "축하 드립니다. APMinstaller 모든 작업이 끝났습니다." 851 | 852 | 853 | exit 0 854 | -------------------------------------------------------------------------------- /APM/skel/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 호스팅 계정 생성 완료 6 | 270 | 283 | 293 | 294 |
295 |
296 |
297 |
298 |
299 |
300 |
301 |
302 |
303 |

Congratulations!

304 |

호스팅 계정 생성 완료!



305 | DNS server, DNS service    306 | Free Hosting, Free Hosting service    307 | Free Hosting, Free Hosting service    308 | DNS server, DNS service 309 |
310 |
311 |
312 | 313 | --------------------------------------------------------------------------------