우분투로 웹서버 만들기 ( Ubuntu 20.04 LTS webserver ) > 잡다한 IT

본문 바로가기

잡다한 IT

잡다한 IT HOME



우분투로 웹서버 만들기 ( Ubuntu 20.04 LTS webserver )

페이지 정보

작성자 낙엽타는향기 댓글 0건 조회 2,018회 작성일 24-01-31 15:46

본문

우분투를 설치 완료하고 터미널을 열어 순서대로 진행 합니다
 
1. 나노 편집기를 설치

sudo apt-get install nano
 
2. root 비전 설정
sudo passwd root
비밀번호 설정 2회
 
3. root로그인 테스트
su -
 정상 로그인 되면 패스워드 설정 정상
 
4.  nano vi 또는 gedit 로 conf파일을 수정합니다.
다음으로, gdm(Gnome Desktop Manager)관련된 config파일 수정해줍니다.


$ sudo nano /etc/gdm3/custom.conf
[security] 항목 밑에
AllowRoot=true 를 추가해줍니다.


401ad77f7f1eb69dc108c1a6d1930979_1706683726_1555.png
 

5. sudo nano /etc/pam.d/gdm-password
아래  #을 추가하여 주석 처리해줍니다.
auth   required    pam_succeed_if.so   user != root     quiet_success
                                         ↓
# auth   required    pam_succeed_if.so   user != root     quiet_success


 


401ad77f7f1eb69dc108c1a6d1930979_1706683740_8463.png



6.  로그인 테스트


sudo su 입력해서 루트권한을 얻습니다.


401ad77f7f1eb69dc108c1a6d1930979_1706683750_6943.png

 

7. 포트 오픈 (21 22 80 443 웹서버 필수포트 )

사용법 : ufw allow [port] [protocol]sudo ufw allow

사용법 : ufw deny [port] [protocol]a2enmod rewrite 거부법

예) ufw allow 9666/tcp tcp 허용시 

   ufw deny 9666/udp udp 거부시 ufw delete 지울때


8. 필요한 유틸리티 설치

$ apt install ssh


원격 설치 anydesk 경우

$ sudo apt update
$ wget -qO - https://keys.anydesk.com/repos/DEB-GPG-KEY | sudo apt-key add -
$ echo "deb http://deb.anydesk.com/ all main" | sudo tee /etc/apt/sources.list.d/anydesk-stable.list
$ sudo apt update
$. sudo apt install anydesk


vsFTP 설치


$sudo apt update
$sudo apt install vsftpd


상태확인법
$sudo systemctl status vsftpd

401ad77f7f1eb69dc108c1a6d1930979_1706683763_5638.png
 

FileZilla 한글 깨짐 현상 해결법은

접속툴에서 UTF-8(유니코드) 로 설정하고 접속시 해결


유져 추가 비밀번호 설정


$ sudo useradd -m [username]
$ sudo passwd [username]

 예) 유져가 pcjoin 라면

$ sudo useradd -m pcjoin

$ sudo passwd pcjoin  엔터

$암호:

$암호재입력 :

암호 설정 후  재시작

$sudo systemctl restart vsftpd


vsftpd.chroot_list 에 해당 아이디 입력 pcjoin 이라는 아이디를 추가하고 싶을 때

pcjoin


passwd 들어가서 해당 아이디에

pcjoin:x:1001:1001::/home/pcjoin:/bin/bash

수정 후 


재시작

$sudo systemctl restart vsftpd


vsftpd.config 설정은 아래 참고

https://pcjoin.com/ubuntu/58 


9. 아파치 mysql php 동시 설치

$ apt install lamp-server^

설치 후 config 파일을 수정해줍니다,


sudo nano /etc/apache2/apache2.conf

None ---> All로 수정하면 됩니다



<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

 

10. phpmyadmin 설치

$ sudo apt-get install phpmyadmin

$ systemctl restart apache2 재시작


etc/apache2/apache.conf 경로에 들어가서   

apache.conf 를 열어  맨 이래에 추가합니다.


Include /etc/phpmyadmin/apache.conf


MYSQL 서버시작 

$ service mysql start


아파치 재시작

$ systemctl restart apache2  또는 $ sudo /etc/init.d/apache2 restart 


11. phpmyadmin 로그인 테스트

http://localhost/phpmyadmin/ 로 들어가면 이제는 떠야한다.


401ad77f7f1eb69dc108c1a6d1930979_1706683777_3024.png
 

 

12. 임의의 계정 만들기 & root 권한 주기

로그인 시도하면 아래와 같은 에러가 뜹니다.

mysqli_real_connect(): (HY000/1698): Access denied for user 'root'@'localhost'

401ad77f7f1eb69dc108c1a6d1930979_1706683787_3888.png

 

에러 해결법 입니다.


$ sudo su

$ mysql -u root -p

를 입력해하고 root 계정으로 로그인 한 후 아래의 명령어를 입력해서

MySQL 계정을 만들고 모든 권한능 부여해 root와 같은 계정을 생성합니다.


create user '아이디'@'%' identified by '비밀번호';

grant all privileges on *.* to '아이디'@'%';

 

root와 동등한 권한을 원한다면

UPDATE mysql.user SET Grant_priv='Y', Super_Priv='Y' WHERE user='아이디';

FLUSH PRIVILEGES;


401ad77f7f1eb69dc108c1a6d1930979_1706683799_4512.png


새로운 계정으로 로그인 완료


401ad77f7f1eb69dc108c1a6d1930979_1706683816_2657.png


 

13 . 웹서버의 기초 가상호스트 설정
아파치 설치 후 하는게 맞는 듯 하나 순서가 중요한 문제는 아니라서 가상호스트 입니다.

$ sudo nano /etc/apache2/apache2.conf

폴더에 apache2.conf를 수정 합니다.
<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

 

14 . 웹서버 리다이렉트 설정 포함 (http https 강제)

etc/apache2/sites-available ssl_config 내용

저장 후

등록 후

systemctl restart apache2


<일반 가상호스트 conf 용>

---------------------------

<VirtualHost *:80>
    ServerName pcjoin.com
    ServerAlias pcjoin.com *.pcjoin.com
    DocumentRoot  /var/www/html/pcjoin/g5
    # Rewrite 엔진을 켭니다.

    RewriteEngine On
    RewriteCond %{HTTPS} !on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>

<VirtualHost *:80>
    ServerName www.pcjoin.com
    ServerAlias www.pcjoin.com *.pcjoin.com
    DocumentRoot  /var/www/html/pcjoin/g5
    # Rewrite 엔진을 켭니다.

    RewriteEngine On
    RewriteCond %{HTTPS} !on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>
  

------------------------------------------------------------------------

<ssl conf 용>


     <IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerAdmin webmaster@localhost
        ServerName pcjoin.com
        DocumentRoot /var/www/html/pcjoin/g5

        SSLEngine on
SSLCertificateFile      /etc/letsencrypt/live/pcjoin.com/cert.pem
SSLCertificateKeyFile   /etc/letsencrypt/live/pcjoin.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/pcjoin.com/chain.pem


RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]  

    </VirtualHost>
    
        <VirtualHost _default_:443>
        ServerAdmin webmaster@localhost
        ServerName www.pcjoin.com
        DocumentRoot /var/www/html/pcjoin/g5

        SSLEngine on
SSLCertificateFile      /etc/letsencrypt/live/www.pcjoin.com/cert.pem
SSLCertificateKeyFile   /etc/letsencrypt/live/www.pcjoin.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/www.pcjoin.com/chain.pem


RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]  

    </VirtualHost>
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
 


-----------------------------------------------------------------------------------------------------------

<그외 옵션 예시>

    301 리다이렉트: RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
    302 리다이렉트: RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=302,L]
    307 리다이렉트: RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=307,L]
    308 리다이렉트: RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=308,L]



15 가상호스트 등록

config에 작성을 마쳤다 하더라도 등록하지 않으면 활성화되지 못한다.

altip 예시
$a2ensite altip.conf
$a2ensite altip_ssl.conf     <== ssl 을 사용할 경우만 사용합니다.
등록이 완료되면 sites-enabled 에   altip.conf 와  altip_ssl.conf  각각 등록이 된다.


저장 후 반드시 재시작

$systemctl restart apache2


16 무료 인증서 설치 (Let's Encrypt ssl )

SSL 는 https 와 같은 보안이 강화된 사이트의 인증서를 만들때 사용된다.

$apt  install certbot ---설치

$ sudo apt update
$ sudo apt install software-properties-common
$ sudo add-apt-repository universe
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt update
$ sudo apt install certbot python-certbot-apache

(sudo apt install -y python3-certbot-apache) 필자는  이것으로

이메일 입력

f6ac9b5088f592ac60b810652dcc0373_1708568856_0783.png
 


$a2ensite altip.conf    ---config등록

$systemctl restart apache2   -- 아파치 재시작 에러가 없어야 합니다.

sudo certbot --apache certonly  -- 인증서발급

$a2ensite altip_ssl.conf  -- 은 등록이 완료 된 후 작성한다.



댓글목록



등록된 댓글이 없습니다.

댓글쓰기

내용
자동등록방지 숫자를 순서대로 입력하세요.
Total 73 / 1 page
검색 열기 닫기
게시물 검색

잡다한 IT 목록