우분투로 웹서버 만들기 ( Ubuntu 20.04 LTS webserver )
페이지 정보
작성자 낙엽타는향기 댓글 0건 조회 2,876회 작성일 24-01-31 15:46본문
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 를 추가해줍니다.
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
sudo su 입력해서 루트권한을 얻습니다.
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
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 설정은 아래 참고
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/ 로 들어가면 이제는 떠야한다.
12. 임의의 계정 만들기 & root 권한 주기
로그인 시도하면 아래와 같은 에러가 뜹니다.
mysqli_real_connect(): (HY000/1698): Access denied for user 'root'@'localhost'
에러 해결법 입니다.
$ 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;
새로운 계정으로 로그인 완료
폴더에 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) 필자는 이것으로
이메일 입력
$a2ensite altip.conf ---config등록
$systemctl restart apache2 -- 아파치 재시작 에러가 없어야 합니다.
sudo certbot --apache certonly -- 인증서발급
$a2ensite altip_ssl.conf -- 은 등록이 완료 된 후 작성한다.
관련링크
- https://ubuntu.com 2875회 연결
댓글목록
등록된 댓글이 없습니다.