728x90

내 마음대로 지우고 나서 재설치를 하려니까 제대로 설치가 안된다.

그래서 조금이나마 개념 이해하려고 적어둔다.

 

 

 

설치하기 전 상태 확인을 위해서

cd /etc/yum.repos.d

 

 

 

#Step 1 – Prerequsitis
yum -y install epel-release

 

 

#Step 2 Repository 설치
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

 

 

#Step 3 yum Utilities Package 설치
yum -y install yum-utils

 

#Step 4 – Disable repo for PHP 5.4
yum-config-manager --disable remi-php54
yum-config-manager --enable remi-php73

 

#Step 5 – Install PHP and PHP-FPM
yum -y install --enablerepo=remi-php73 httpd mod_ssl php php-zip php-fpm php-common php-opcache php-curl php-devel php-gd
yum -y install --enablerepo=remi-php73 php-imap php-ldap php-mysql php-mysqlnd php-pdo php-odbc php-pear php-xml php-xmlrpc php-pecl-apc   
yum -y install --enablerepo=remi-php73 php-mbstring php-mcrypt php-soap php-tidy curl curl-devel php-libwww-perl ImageMagick libxml2 libmxl2-devel    
yum -y install --enablerepo=remi-php73 mod_fcgid php-cli httpd-devel php-intl php-imagick php-pspell wget php-openssl    
yum -y install --enablerepo=remi-php73 unzip git mc

 

# PHP 설치버전 확인
php -v

 

# 설치된 PHP Package 확인
rpm -qa | grep php

 

#Step 6 PHP-FPM 설정
# PHP-FPM 설정을 위하여 2개의 디렉토리 생성
mkdir /etc/php-fpm.d/sites-enabled
mkdir /etc/php-fpm.d/sites-available

#Step 7
PHP-FPM 설정 파일 아래와 같이 수정
vi /etc/php-fpm.conf
;include=/etc/php-fpm.d/*.conf
include=/etc/php-fpm.d/sites-enabled/*.conf

#Step 8
PHP-FPM 기본 웹 설정 파일 이동
mv /etc/php-fpm.d/www.conf /etc/php-fpm.d/sites-available

#Step 9
sites-enabled 폴더에 www.conf 링크 생성
ln -s /etc/php-fpm.d/sites-available/www.conf /etc/php-fpm.d/sites-enabled/www.conf

#Step 10
PHP-FPM 소켓 통신을 위한 폴더 생성
mkdir /var/run/php-fpm

#Step 11
www.conf 설정파일을 아래와 같이 수정
vi /etc/php-fpm.d/sites-available/www.conf
;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/default.sock
listen.owner = apache
listen.group = apache
listen.mode = 0660
php_value[opcache.file_cache] = /var/lib/php/opcache  ; 주석만 제거

#Step 12 – Apache VirtualHost 구성
vi /etc/httpd/conf.d/default.conf
# 아래 붙여넣기 한다.
<VirtualHost _default_:80>
       DocumentRoot "/var/www/html"

       ErrorLog logs/default-error_log
       LogLevel warn
       TransferLog logs/default-access_log
       CustomLog logs/default-request_log "%t %h %x %x \"%r\" %b"

       SuexecUserGroup apache apache

       <Proxy "unix:/var/run/php-fpm/default.sock|fcgi://php-fpm">
               ProxySet disablereuse=off
        </Proxy>

       <FilesMatch \.php$>
               SetHandler proxy:fcgi://php-fpm
       </FilesMatch>
</VirtualHost>

 

 

#Step 13 Apache SSL 설정 파일(ssl.conf) 수정
vi /etc/httpd/conf.d/ssl.conf
# shift + g 눌러서 파일의 맨 아래로 이동한다.
# 설정파일의 맨 끝 </VirtualHost> 앞에 아래 내용 추가
       SuexecUserGroup apache apache

       <Proxy "unix:/var/run/php-fpm/default.sock|fcgi://php-fpm">
               ProxySet disablereuse=off
        </Proxy>

       <FilesMatch \.php$>
               SetHandler proxy:fcgi://php-fpm
       </FilesMatch>

 

 

#Step 14 보안설정
sudo chmod 640 /etc/httpd/conf/httpd.conf
sudo chown root:root /etc/httpd/conf/httpd.conf
sudo chmod 640 /etc/php.ini
sudo chown root:root /etc/php.ini

sudo chown -R apache:apache /var/www/html
sudo chmod -R 755 /var/www/html

 

#Step 15 httpd.conf 파일 수정
vi /etc/httpd/conf/httpd.conf
ServerName localhost
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

<Directory "/var/www/html">
    Options +FollowSymLinks -Indexes
    AllowOverride All
    Require all granted
    <LimitExcept GET POST>
      Order deny,allow
      Deny from all
    </LimitExcept>
</Directory>

#Step 16
Apache HTTPOXY 취약점 방지
echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.conf

 

# Step 17 Configure PHP-FPM
vi /etc/php.ini
cgi.fix_pathinfo=0
short_open_tag = On
post_max_size = 60M  ; // 8M 으로 되어 있었음.
memory_limit = 128M
upload_max_filesize = 50M ; // 기본 2M 으로 되어 있었음
allow_url_fopen = On
;PHP Excel Libray 설치가 안되는 현상이 있어서 On으로 변경함.
date.timezone ="Asia/Seoul"

 

;PHP 버전정보 노출 방지
expose_php=Off


;PHP에서 세션은 일단 생성 된 뒤에, 가비지 콜렉터 관리로직에 의해 소멸된다.
session.gc_probability = 1
session.gc_divisor = 1
;이값이 100이면 1/100 즉 1%의 확률로 가비지콜렉션이 실행된다.
;1이면 정확하게 유효기간이 넘은 데이타가 삭제될 것이다.
session.gc_maxlifetime = 3600

 

 

만약 session 폴더를 다르게 지정했다면....

session.save_path = /tmp/phpsession

mkdir /tmp/phpsession
chown apache.apache /tmp/phpsession
chmod 750 /tmp/phpsession

 

#Step 18 Verify PHP-FPM version
/usr/sbin/php-fpm -version

 

 

#Step 19 시스템 부팅시 자동실행 설정
systemctl enable php-fpm
systemctl enable httpd

#Step 20
설치된 PHP-FPM 실행/종료
systemctl start php-fpm
systemctl start httpd

systemctl stop php-fpm
systemctl stop httpd

systemctl restart php-fpm
systemctl restart httpd

systemctl status php-fpm
systemctl status httpd

 

 

############################
##### CentOS7 방화벽 설정 #####
############################
# 방화벽 설치
yum -y install firewalld

# 기본 설정은 /usr/lib/firewalld/ 에 위치
# 방화벽 데몬 시작
systemctl start firewalld

# 서버 부팅 시 firewalld 데몬 자동 시작 설정
systemctl enable firewalld


# 방화벽 상태(실행여부) 확인
systemctl status firewalld
firewall-cmd --state

# 방화벽 확인
firewall-cmd --list-all

# 서비스 추가
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-service=mysql

# 서비스 제거
firewall-cmd --permanent --remove-service=http
firewall-cmd --permanent --remove-service=http

# 포트 등록
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --permanent --add-port=2222/tcp

# 포트 삭제
firewall-cmd --permanent --remove-port=9000/tcp
firewall-cmd --permanent --remove-port=8080/tcp

# 방화벽 적용 및 확인
firewall-cmd --reload
firewall-cmd --list-all

 

#### PHP Excel Library 설치를 위한 Composer 설치 #####

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
composer -V
export COMPOSER_ALLOW_SUPERUSER=1
composer -V
echo "export COMPOSER_ALLOW_SUPERUSER=1" >> ~/.bashrc
cat ~/.bashrc | grep export

cd /var/www/html/
composer require phpoffice/phpspreadsheet

 

wget https://sourceforge.net/projects/tcpdf/files/tcpdf_6_3_2.zip

 

###### TCPDF 설치 ############
cd /usr/share/php
wget https://sourceforge.net/projects/tcpdf/files/tcpdf_6_3_2.zip
unzip tcpdf_6_3_2.zip

# 나눔폰트 설치 방법
cd /usr/share/fonts/
wget http://cdn.naver.com/naver/NanumFont/fontfiles/NanumFont_TTF_ALL.zip

unzip NanumFont_TTF_ALL.zip -d NanumFont
cd /usr/share/php/tcpdf/tools/
ls /usr/share/fonts/NanumFont/*
ls /usr/share/fonts/NanumFont/* | xargs -I TTF php tcpdf_addfont.php -i TTF
ll /usr/share/php/tcpdf/fonts/ | grep nanum

블로그 이미지

Link2Me

,