본문 바로가기

과목/Linux 리눅스

우분투 웹서버 세팅 php,apache,mariaDB 설치 등등

IWINV.kr에서 APM이 기본 설치된 Ubuntu 16 OS를 설치한 상태이다. root 권한도 이미 있다.


터미널 창에서


apt-get update

apt-get upgrade 명령을 입력한다.


브라우저 창에서 ip 주소를 입력하면 Ubuntu 화면이 뜬다.


주로 쓰는 모듈을 활성화, 안쓰는 걸 비활성화하는 명령어라고 한다.

a2enmod rewirte

a2enmod headers

a2enmod ssl

a2dismod -f autoindex


보안 패치라는 것도 한다.

vi /etc/apache2/apache2.conf 에 들어가서 아래 문장을 입력한다.


# 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>


vi /var/www/html/phpinfo.php로 파일을 만들고 아래 문장을 넣는다.

<?php

phpinfo();

?>


주소 창에 IP주소/phpinfo.php 를 입력했는데 코드 그대로 출력된다. 뭔가 잘못된 것이다. 그래서


apt-get install php 로 php를 설치해줬다.

그리고 PHP-아파치 연동 모듈을 설치했다.

apt-get install libapache2-mod-php7.0


이후 IP주소/phpinfo.php를 입력하면 phpinfo가 뜬다~


암호화 모듈 설치

apt-get install php-mcrypt

다국어 처리 모듈

apt-get install php-mbstring


아파치 재시작 - 다행히 재시작이 된다... 뭐 잘못 건드리면 안된다..

service apache2 restart

버전 체크

php-v


마리아DB client, server 설치하기 - 이것도 뭔가 안됐었는데 OS 밀고 다시 하니까 된다.

apt-get -y install mariadb-server mariadb-client


mysql 입력하면


MariaDB [(none)]>    이렇게 DB에 접속이 된다~


DB계정에 비밀번호를 설정하려면 아래 문구를 똑같이 따라하면 된다.

mysql 로 MariaDB 접속

use mysql;

update user set plugin='' where User='root';

flush privileges;

exit;


DB 연동 모듈 설치

apt-get install php-mysql


기본 언어셋 설정

vi /etc/mysql/mariadb.conf.d/50-server.cnf


아래 두 줄 추가

character-set-server = utf8mb4

28 collation-server = utf8mb4_unicode_ci


변경사항 적용

service mysql restart


PHP 권한 설정

apt-cache search mpm-itk


apt-get install libapache2-mpm-itk


chmod 711 /home


chmod -R 700 /home/*


php 실행 확장자 변경


vi /etc/apache2/mods-available/php7.0.conf


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


아파치 재시작

service apache2 restart


vi /etc/php/7.0/apache2/php.ini


PHP timezone 설정


vi /etc/php/7.0/apache2/php.ini


여기서 shift + : 를 클릭해서 파일 내에서 명령어 창을 실행한다.

:/timezone 을 입력하면 쉽게 찾을 수 있다. (vi 내에서 문자, 문자열 검색, 찾기, 탐색, ctrl + F)


;date.timezone = 의 주석을 제거하고

date.timezone = Asia/Seoul로 변경한다.


나는 Asia/Pyongyang 으로 되어있었다.

service apache2 restart로 재시작해주면 Asia/Seoul로 바뀐다.



출처 : https://blog.lael.be/post/73