티스토리 뷰

Ubuntu 16.04LTS에 맞추어 작성되었습니다. 


Ubuntu LAMP



여러 가지를 참고하여 Web Server 의 환경설정을 합니다.

아래의 방법대로 설치한 후에 언제든지

1
2
3
apt-get update
 
apt-get upgrade
cs

1번 라인 : 패키지 목록 갱신
3번 라인 : 현재 운영체제에 설치되어 잇는 프로그램 최신버전패치

APT 목록 갱신이라고 합니다.
APT란 Advanced Packaging Tool을 뜻합니다.

우리는 apt라는 우분투에 내장된 프로그램을 이용해서 프로그램을 쉽게 설치/ 제거 할 수 있습니다.

또한 명령을 사용하면, 항상 빠르고 안전한 최신버전의 서버 소프트웨어를 사용하실 수 있습니다.

1) root 권한으로 변경

 자신의 계정 보기

1
# whoami
cs


sudo 명령어 실행. root 권한으로 root 로 로그인하는 명령어를 실행한다.


1
# sudo su
cs


2) 리눅스 버전체크

1
#uname -a
cs


3) Ubuntu 버전체크


1
#cat /etc/issue
cs

조금 더 자세하게 운영체제 버전정보를 알아보고 싶다면

1
# lsb_release -a
cs



4)하드용량 체크


1
#df -h
cs


5)메모리 체크

1
#free -m
cs

6) CPU 코어수 확인

cpu정보 프로세스를 읽어서 processor 항목이 몇개인지 갯수를 셉니다.

1
#cat /proc/cpuinfo | grep processor | wc -l
cs


위 사진은 2core를 뜻합니다


한 번쯤은 밑의 명령어를 보는 것도 좋을 듯 합니다.


1
#cat /proc/cpuinfo
cs



7) 시스템 시간 설정


시간 설정을 하지 않는다면 영국 시간을 불러올 것 입니다.


물론 초기 설치할 때 Asia/Seoul을 설정햇다면 이 작업을 할 필요는 없습니다. 하지만 시간 설정을 안한다고 해서 문제는 되지 않습니다.



1
#dpkg-reconfigure tzdata
cs

GUI 환경이 나올 텐데, 순서대로 Asia - Seoul 을 선택하면 됩니다.

8) Apache2 설치

1
#apt-get install apache2

cs


16.04 LTS 에서는 apache 2.4.x 가 설치됩니다. (2016년 4월 21일 현재 최신버전은 Apache 2.4.18 이다.)

가끔씩 apt-get update 및 apt-get upgrade 를 실행하면 아무런 문제없이 최신버전으로 업데이트 될 것입니다.
설치가 완료되면 자동적용 및 시작됩니다.

버전 체크

1
apache2 -v
cs

#추가 보안패치. (.git, .svn, .env 등 dot로 시작하는 파일 및 폴더 보호, Web Access가 되어서는 안될 파일들의 접근 제어)


1
# nano /etc/apache2/apache2.conf
cs

</FilesMatch> 부분 밑에 넣습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# deny file, folder start with dot
<DirectoryMatch "^\.|\/\.">
    Require all denied
</DirectoryMatch>
  
# deny (log file, binary, certificate, shell script, sql dump file) access.
<FilesMatch "\.(?i:log|binary|pem|enc|crt|conf|cnf|sql|sh|key)$">
    Require all denied
</FilesMatch>
  
# deny access.
<FilesMatch "(?i:composer\.json|contributing\.md|license\.txt|readme\.rst|readme\.md|readme\.txt|copyright|artisan|gulpfile\.js|package\.json|phpunit\.xml)$">
    Require all denied
</FilesMatch>
 
# Allow Lets Encrypt Domain Validation Program
<DirectoryMatch "\.well-known/acme-challenge/">
    Require all granted
</DirectoryMatch>
cs


9) PHP 7.0 설치


Ubuntu 14.04 LTS 일때에는 PHP5.0을 설치를 해야됩니다.


1
#apt-get install php
cs


PHP-아파치 연동모듈 설치


1
#apt-get install libapache2-mod-php7.0
cs


기타 주로 사용되는 모듈을 설치한다.
- 암호화 모듈


1
#apt-get install php-mcrypt
cs

- 다국어 처리모듈

1
#apt-get install php-mbstring
cs



등등 자기가 원하는 모듈을 설치합니다.


추가로 더 설치하고 싶은 모듈이 있다면 


1
#apt-cache search php-
cs



여기서 찾아서 설치하면 됩니다.


아파치 재시작을 합니다. (항상 자기가 한 일에 대해서 적용하기 위해서는 재시작을 합니다)


1
#service apache2 restart
cs

1
#php -v
cs
 버전 체크

10) MariaDB 설치

mysql과 mariaDB는 완전 API 호환됩니다.

1
#apt-get install mariadb-server
cs

MariaDB 초기화

1
/usr/bin/mysql_secure_installation
cs

  • root 의 인증 플러그인 정보 제거하기

MySQL에 플러그인이라는 개념이 생겼습니다.. 그 중 하나가 서버사이드 인증입니다.

Linux root 사용자로 로그인한 상태에서


1
# mysql
cs
(현재는 unix_socket 인증방식이라서 Linux root 사용자는 MySQL(MariaDB) root 계정에 비밀번호 없이 로그인 할 수 있다)


1
2
3
4
use mysql;
update user set plugin='' where User='root';
flush privileges;
exit;
cs


DB 연동모듈 설치. 완전 호환되기 때문에 mysql 이라고 해도 mariadb 사용가능.


1
#apt-get install php-mysql
cs


MYSQL 콘솔 클라이언트 버전체크
1
#mysql -v
cs


  • 기본 언어셋 설정(중요!!)
이 단계를 건너뛰면 DB가 latin1 으로 생성되며 추후 DB작업에 문제가 생길 수 있다고 합니다.


1
#nano /etc/mysql/mariadb.conf.d/50-server.cnf
cs

/etc/mysql/mariadb.conf.d/50-server.cnf 에 추가

1
2
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
cs


이 부분에 추가 합니다.


상태가 변경됬으니 mysql을 재시작합니다.


1
#service mysql restart
cs


11) PHP 권한 설정


웹 서비스 구동시 발생할 수 있는 Nobody 퍼미션 관련 문제를 해결하기 위해 관련 프로그램을 설치합니다.
이 세팅을 하면 shell의 권한과 sftp의 권한과 web의 권한이 동일하게 취급되며 보안도 좋게된다.
순서대로 쓰면 됩니다.


1
# apt-cache search mpm-itk
cs
차례로 입력

1
2
3
#apt-get install libapache2-mpm-itk
#chmod 711 /home
#chmod -R 700 /home/*
cs


  • PHP 실행 확장자 변경
1
#nano /etc/apache2/mods-available/php7.0.conf
cs


.php .php3 .php4 .php5 .php7 .pht .phtml  확장자 파일이 기본적으로 php를 해석할 수 있게 되어있습니다.

웹페이지에서 파일업로드 구현시 이 확장자 파일을 제대로 막아주지 못하면 사이트가 위험하게 됩니다..

.php 를 제외한 나머지의 접근을 차단해봅시다.

1
2
3
<FilesMatch ".+\.ph(p3|p4|p5|p7|t|tml)$">
    Require all denied
</FilesMatch>
cs


또다시 변경사항으로 인하여 apache2 재시작

1
#service apache2 restart
cs



이상으로 APM의 환경 설정을 마치도록 하겠습니다. 



'Project > Web Server만들기' 카테고리의 다른 글

Web Server를 만들어 보자!!  (0) 2017.06.05
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함