원하는 Server-Side 언어가 PHP, JSP, node.js 에 따라서 설치하는 사항이 조금씩 다르다.
CentOS7 에서 Apache Web서버와 PHP 7.3 을 설치하는 방법이다.
# 설치 확인
rpm -qa | grep httpd
rpm -qa | grep php
rpm -qa | grep MariaDB
rpm -qa | mysql
# PHP 설치여부 확인
rpm -qa | grep php
yum list installed | grep php
## 설치된 것 한꺼번에 지우기 (잘못 설치한 경우)
rpm -qa | grep httpd >list
rpm -qa | grep php >list
# vi list로 해서 삭제 안할 리스트는 선별 제거한다.
sudo yum -y remove $(awk '' <list)
PHP 설치
#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 – Install PHP and PHP-FPM
# Disable repo for PHP 5.4
yum-config-manager --disable remi-php54
yum-config-manager --enable remi-php73
yum -y install --enablerepo=remi-php73 httpd mod_ssl php php-zip php-fpm php-common php-opcache php-curl
yum -y install --enablerepo=remi-php73 php-devel php-gd php-imap php-ldap php-mysql php-mysqlnd php-pdo
yum -y install --enablerepo=remi-php73 php-odbc php-pear php-xml php-xmlrpc php-pecl-apc php-mbstring
yum -y install --enablerepo=remi-php73 php-mcrypt php-soap php-tidy curl curl-devel php-libwww-perl
yum -y install --enablerepo=remi-php73 ImageMagick libxml2 libmxl2-devel mod_fcgid php-cli httpd-devel
yum -y install --enablerepo=remi-php73 php-intl php-pspell wget php-openssl unzip mc git
# PHP 설치버전 확인
php -v
# 설치된 PHP Package 확인
rpm -qa | grep php
## 보안설정
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 4 httpd.conf 파일 수정
vi /etc/httpd/conf/httpd.conf
ServerName localhost
# 불필요한 Methods 차단 설정 : method 허용은 GET, POST 만 허용
# Directory 태그를 사용하면 Directory 별로 모두 제한을 걸어줘야 하므로
# URL pattern 을 이용하여 일괄적으로 제한하는 방법
<Location />
<LimitExcept GET POST>
Order deny,allow
Deny from all
</LimitExcept>
</Location>
<Directory "/var/www/html">
Options +FollowSymLinks -Indexes
AllowOverride All
Require all granted
<LimitExcept GET POST>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
# 서버 정보 노출 방지
ServerTokens Prod
ServerSignature Off
# Trace Method 처리
TraceEnable off
ErrorDocument 400 /error.html
ErrorDocument 401 /error.html
ErrorDocument 402 /error.html
ErrorDocument 403 /error.html
ErrorDocument 404 /error.html
ErrorDocument 405 /error.html
ErrorDocument 408 /error.html
ErrorDocument 500 /error.html
ErrorDocument 501 /error.html
ErrorDocument 502 /error.html
ErrorDocument 503 /error.html
저장하고 나온다.
# Apache HTTPOXY 취약점 방지
echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.conf
# Step 5 : Configure PHP-FPM
vi /etc/php.ini
cgi.fix_pathinfo=0
short_open_tag = On
post_max_size = 60M ;// 8M 으로 되어 있었음.
upload_max_filesize = 50M ;// 기본 2M 으로 되어 있었음
;PHP 버전정보 노출 방지
expose_php=Off
date.timezone ="Asia/Seoul"
;PHP에서 세션은 일단 생성 된 뒤에, 가비지 콜렉터 관리로직에 의해 소멸된다.
session.gc_probability = 1
session.gc_divisor = 1
;이값이 100이면 1/100 즉 1%의 확률로 가비지콜렉션이 실행된다.
;1이면 정확하게 유효기간이 넘은 데이타가 삭제될 것이다.
session.gc_maxlifetime = 3600
;세션과 쿠키를 동시에 사용
session.use_cookies = 1
;PHP 시작과 동시에 세션 사용(1), 사용하지 않음(0)
session.auto_start = 0
# 저장하고 나온다.
# 반드시 추가구현해야 문제없이 동작한다.
cd /var/www/html/
vi .htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{THE_REQUEST} !^(POST|GET)\ /.*\ HTTP/1\.1$
RewriteRule .* - [R=405,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ error.html?/$1 [QSA,PT,L]
</IfModule>
### 시간 동기화
yum -y install rdate
crontab -e
00 00 * * * /usr/bin/rdate -s time.bora.net && /sbin/clock -w
#크론탭 재시작
service crond restart
#crontab 설치 여부 확인
ps -ef | grep cron
# 서비스 활성화
systemctl enable httpd
# 서비스 시작
systemctl start httpd
systemctl stop httpd
systemctl restart httpd
systemctl status httpd
위 설치 스크립트에서 추가 설정을 하면 PHP-FPM 설정이 가능하다. 그 내용은 생략한다.
이것으로 윈도우10 에서 CentOS7 을 Virtual Box로 설치하여 Web서버를 운영하는 방법에 대한 설명을 마친다.
'리눅스' 카테고리의 다른 글
PHP-FPM VirtualHost 설정 (0) | 2020.11.03 |
---|---|
CentOS 원격서버로 파일 전송하기 (0) | 2020.10.27 |
Windows 10 에 CentOS7 기반 MariaDB 설치 - 5 (0) | 2020.10.03 |
Windows 10 에 CentOS7 네트워크 설정 - 4 (0) | 2020.10.03 |
Windows 10 에 CentOS7 설치 하기 - 3 (0) | 2020.10.03 |