Ubuntu 서버에 Swift를 설치합니다. Swift.org에서 제공하는 Ubuntu용 Swift 바이너리를 다운로드하여 설치할 수 있습니다.
내 ubuntu 서버는 20.04고 아키텍처는 86_64 임
sudo apt-get update
sudo apt-get install \
binutils \
git \
gnupg2 \
libc6-dev \
libcurl4 \
libedit2 \
libgcc-9-dev \
libpython2.7 \
libsqlite3-0 \
libstdc++-9-dev \
libxml2 \
libz3-dev \
pkg-config \
tzdata \
uuid-dev \
zlib1g-dev
패치지 다운후 키 다운
$ wget -q -O - https://swift.org/keys/all-keys.asc | \
gpg --import -
gpg: /home/ubuntu/.gnupg/trustdb.gpg: trustdb created
gpg: key D441C977412B37AD: public key "Swift Automatic Signing Key #1 <swift-infrastructure@swift.org>" imported
gpg: key 9F597F4D21A56D5F: public key "Swift 2.2 Release Signing Key <swift-infrastructure@swift.org>" imported
gpg: key 63BC1CFE91D306C6: public key "Swift 3.x Release Signing Key <swift-infrastructure@swift.org>" imported
gpg: key EF5430F071E1B235: public key "Swift 4.x Release Signing Key <swift-infrastructure@swift.org>" imported
gpg: key 7638F1FB2B2B08C4: public key "Swift Automatic Signing Key #2 <swift-infrastructure@swift.org>" imported
gpg: key 925CC1CCED3D1561: public key "Swift 5.x Release Signing Key <swift-infrastructure@swift.org>" imported
gpg: key FAF6989E1BC16FEA: public key "Swift Automatic Signing Key #3 <swift-infrastructure@swift.org>" imported
gpg: key 925CC1CCED3D1561: "Swift 5.x Release Signing Key <swift-infrastructure@swift.org>" 1 new signature
gpg: key F167DF1ACF9CE069: public key "Swift Automatic Signing Key #4 <swift-infrastructure@forums.swift.org>" imported
gpg: key 925CC1CCED3D1561: "Swift 5.x Release Signing Key <swift-infrastructure@swift.org>" 1 new signature
gpg: key F167DF1ACF9CE069: "Swift Automatic Signing Key #4 <swift-infrastructure@forums.swift.org>" 1 new signature
gpg: Total number processed: 11
gpg: imported: 8
gpg: new signatures: 3
scp -r -i "/Users/kimjihun/Desktop/AWS/키페어 비밀번호/aws-ec2-keypair.pem" ./ "ubuntu@3.39.59.46:/home/ubuntu/project"
20.04이기 때문에 해당 표시 링크 복사함
$ wget 다운로드링크주소
$ wget https://download.swift.org/swift-5.9.2-release/ubuntu2004/swift-5.9.2-RELEASE/swift-5.9.2-RELEASE-ubuntu20.04.tar.gz
$ ls 로 경로 확인후 압축해제
설치된 파일 압축해제
$ tar xzf swift-5.9.2-RELEASE-ubuntu20.04.tar.gz
$ export PATH=$HOME/swift-5.9.2-RELEASE-ubuntu20.04/usr/bin:$PATH
source ~/.bashrc
swift --versionls
참고 문서
https://www.swift.org/install/linux/#installation-via-docker
Swift가 설치되면, Vapor 툴체인을 설치합니다. 이는 Vapor 프로젝트를 쉽게 생성하고 관리할 수 있게 해줍니다.
아래 명령어 실행후 잠시 대기
최신 버전 확인 :https://github.com/vapor/toolbox/releases
git clone https://github.com/vapor/toolbox.git
cd toolbox
git checkout <desired version> //최신버전으로
sudo apt install make
make install
vapor --help 명령어시 경로 지정 오류가 생긴다.
export PATH=$PATH:/usr/local/bin
vapor --version
패키지가 없다고 한다. 프로젝트 생성하러 가자
참고 문서
https://docs.vapor.codes/install/linux/
PostgreSQL를 사용하기때문에 관련 패키지또한 서버에 미리 설치해준다.
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib
프리티어 t2.micro선택시 메모리가 1기가라 이후에 서버빌드할때 터진다.
Swap 파일 생성: 먼저, swap 파일을 생성합니다. 아래 예시에서는 1GB 크기의 swap 파일을 생성합니다. 필요에 따라 크기를 조정할 수 있습니다.
sudo fallocate -l 1G /swapfile
파일 권한 설정: Swap 파일은 보안상의 이유로 제한된 권한을 가져야 합니다.
sudo chmod 600 /swapfile
Swap 영역 설정: 생성한 파일을 swap 영역으로 설정합니다.
sudo mkswap /swapfile
Swap 활성화: Swap을 활성화하여 사용합니다.
sudo swapon /swapfile
Swap 설정 유지
Swap 설정이 재부팅 후에도 유지되도록 하려면, /etc/fstab 파일에 swap 설정을 추가해야 합니다.
fstab 파일 편집:
sudo nano /etc/fstab
다음 줄 추가: 파일의 끝에 다음 줄을 추가합니다.
/swapfile swap swap defaults 0 0
파일 저장 및 종료: 변경 사항을 저장하고 편집기를 종료합니다.
Swap 설정 확인
Swap 설정이 제대로 적용되었는지 확인하려면, 다음 명령어를 사용합니다.
sudo swapon --show
시스템의 전체 메모리 상태를 확인하려면 free -h 명령어를 사용합니다.
Vapor 명령어를 사용하여 새 프로젝트를 생성하고, 필요한 모델, 컨트롤러, 라우트 등을 설정합니다.
/Jihoon/Projects/에 만들것임
mkdir Jihoon
mkdir Projects
vapor new MyVaporProject
vapor new VaporProject
swift build
swift package update
vapor package가 있는 상위폴더에서 실행한다.
swift run App serve --env production --hostname 0.0.0.0 --port 8080
패키지 목록 업데이트:
sudo apt-get update
GUI 설치:
터미널 열기: Ubuntu에서 터미널을 열어 줍니다.
패키지 목록 업데이트: 최신 패키지 정보를 얻기 위해 터미널에서 다음 명령어를 실행합니다.
sudo apt-get update
Xfce 설치: 다음 명령어를 사용하여 Xfce 데스크탑 환경을 설치합니다.
sudo apt install xfce4
GUI 환경을 만들기위해 VNC 서버를 설치해야함
설치
sudo apt-get install tightvncserver
설정
vncserver
mkdir /home/ubuntu/.vnc
nano ~/.vnc/xstartup
or
vim ~/.vnc/xstartup
Xfce 세션 시작 설정: 파일에 다음과 같은 내용을 포함시키거나 수정합니다.
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &
실행 권한 부여: xstartup 파일에 실행 권한을 부여합니다.
chmod +x ~/.vnc/xstartup
VNC 서버 재시작: 변경 사항을 적용하기 위해 VNC 서버를 재시작합니다.
vncserver -kill :1
https://www.realvnc.com/en/connect/download/viewer/
공용 ipv4주소:5900 + 포트번호
13.237.29.39:5901
scp -r -i "/Users/kimjihun/Desktop/AWS/KeyPair/aws-keypair.pem" ./ "ubuntu@13.237.29.39:/home/ubuntu/project"
로컬에서 개발한 프로젝트를 EC2 서버로 이동시키기 위해 git, rsync, scp 등의 도구를 사용
cd /path/to/your/vapor/project
내소스 코드 디렉토리
cd /Users/kimjihun/Desktop/techit/git팀원들과협업/Swift_Project/Vapor_helloDemo/Vapor_hello
옮길 디렉토리로 들어간뒤 아래 명령어를 실행한다.
scp -r -i /path/to/your/private-key.pem ./ your-ec2-user@your-ec2-server-ip:/home/ubuntu/project
Ex)내 디렉토리
scp -r -i "/Users/kimjihun/Desktop/AWS/KeyPair/aws-keypair.pem" ./ "ubuntu@13.237.29.39:/home/ubuntu/project"
확인하기위해 EC2서버 옮겨진 경로에서 프로젝트 빌드
swift run App serve --env production --hostname 0.0.0.0 --port 8080
REST API 엔드포인트를 개발합니다. 이때는 Swift 언어를 사용하여 로직을 구현합니다.
개발 중에는 로컬 환경에서 프로젝트를 실행하고 테스트합니다. CLI(Command Line Interface)와 Swift 컴파일러를 사용하여 오류를 디버깅할 수 있습니다.
개발이 완료되면, Ubuntu 서버에 API를 배포하고 실행합니다.