성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] VT sequences to "CONOUT$" vs. STD_O...
[정성태] NetCoreDbg is a managed code debugg...
[정성태] Evaluating tail call elimination in...
[정성태] What’s new in System.Text.Json in ....
[정성태] What's new in .NET 9: Cryptography ...
[정성태] 아... 제시해 주신 "https://akrzemi1.wordp...
[정성태] 다시 질문을 정리할 필요가 있을 것 같습니다. 제가 본문에...
[이승준] 완전히 잘못 짚었습니다. 댓글 지우고 싶네요. 검색을 해보...
[정성태] 우선 답글 감사합니다. ^^ 그런데, 사실 저 예제는 (g...
[이승준] 수정이 안되어서... byteArray는 BYTE* 타입입니다...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>WSL에 nopCommerce 예제 구성</h1> <p> 유명한 공개 소프트웨어죠 ^^<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > nopCommerce - Installing on Linux ; <a target='tab' href='https://docs.nopcommerce.com/en/installation-and-upgrading/installing-nopcommerce/installing-on-linux.html'>https://docs.nopcommerce.com/en/installation-and-upgrading/installing-nopcommerce/installing-on-linux.html</a> </pre> <br /> 물론, 위의 문서에 설치 방법이 자세하게 나와 있지만 그냥 저 나름대로 Ubuntu 20.04 + WSL 2 환경에서 설치하는 정도로 간략하게 정리해 보겠습니다.<br /> <br /> 우선, 런타임부터 설치하고,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ sudo apt install -y apt-transport-https aspnetcore-runtime-7.0 // centos의 경우: yum install aspnetcore-runtime-7.0 </pre> <br /> 적당한 디렉터리에 파일을 다운로드해 압축을 풉니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > // var 하위는 sudo 권한을 요구 $ sudo mkdir /var/www $ sudo mkdir /var/www/nopCommerce $ cd /var/www/nopCommerce $ sudo wget https://github.com/nopSolutions/nopCommerce/releases/download/release-4.60.5/nopCommerce_4.60.5_NoSource_linux_x64.zip $ sudo unzip nopCommerce_4.60.5_NoSource_linux_x64.zip $ sudo rm nopCommerce_4.60.5_NoSource_linux_x64.zip </pre> <br /> 이어서 nopCommerce 하위에 2개의 디렉터리를 더 생성해 둡니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > /var/www/nopCommerce$ sudo mkdir bin /var/www/nopCommerce$ sudo mkdir logs /var/www/nopCommerce$ cd .. </pre> <br /> 아마도 대개의 경우 /var/www 디렉터리가 root 사용자에게만 권한이 있을 것이기 때문에,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ <span style='color: blue; font-weight: bold'>ls -l</span> total 40 drwxr-xr-x 2 root root 4096 Dec 8 16:43 html drwxr-xr-x 63 <span style='color: blue; font-weight: bold'>root root</span> 32768 Dec 11 13:12 nopCommerce </pre> <br /> Ubunt의 경우 기본 생성돼 있는 www-data 사용자와 그룹으로,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ cat /etc/passwd | grep www www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin $ cat /etc/group | grep www www-data:x:33: </pre> <br /> nopCommerce 디렉터리의 권한을 변경해 줍니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > /var/www$ sudo chgrp -R www-data nopCommerce/ /var/www$ sudo chown -R www-data nopCommerce/ $ ls -l total 40 drwxr-xr-x 2 root root 4096 Dec 8 16:43 html drwxr-xr-x 63 <span style='color: blue; font-weight: bold'>www-data www-data</span> 32768 Dec 11 13:12 nopCommerce </pre> <br /> 이렇게 권한 조정을 했다면 당연히 nopCommerce를 구동하려는 프로세스는 www-data 사용자 권한이 있어야 합니다. 이것을 service로 등록할 때 "User" 속성을 조정해 해결할 수 있는데요,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > $ <span style='color: blue; font-weight: bold'>cat /etc/systemd/system/nopCommerce.service</span> [Unit] Description=Example nopCommerce app running on Xubuntu [Service] WorkingDirectory=/var/www/nopCommerce ExecStart=/usr/bin/dotnet /var/www/nopCommerce/Nop.Web.dll Restart=always # Restart service after 10 seconds if the dotnet service crashes: RestartSec=10 KillSignal=SIGINT SyslogIdentifier=nopCommerce-example <span style='color: blue; font-weight: bold'>User=www-data</span> Environment=ASPNETCORE_ENVIRONMENT=Production Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false [Install] WantedBy=multi-user.target </pre> <br /> (위의 서비스 등록 방법은 systemd를 위한 것이기 때문에 WSL의 환경을 <a target='tab' href='https://www.sysnet.pe.kr/2/0/13278'>(기본값인) init에서 systemd로 변경</a>해야 합니다.)<br /> <br /> 적절하게 설정했다면 이제 서비스를 시작할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > [데몬 시작] sudo systemctl start nopCommerce [데몬 중지] sudo systemctl stop nopCommerce </pre> <br /> 제대로 동작하는지는 WSL shell 내에서 curl을 이용하면 확인이 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > curl -L http://localhost:5000 </pre> <br /> 또는 <a target='tab' href='https://www.sysnet.pe.kr/2/0/13480'>Chrome Browser를 설치</a>해 테스트하는 것도 가능합니다. 만약, WSL이 아닌 윈도우 환경에서 접근하려고 한다면 <a target='tab' href='https://www.sysnet.pe.kr/2/0/12347'>WSL의 특수한 네트워크 상황</a>으로 인해 "localhost:5000"으로는 할 수 없습니다.<br /> <br /> 그렇다고 WSL 측의 IP를 구해 접속하는 것도 안 됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > c:\temp> <span style='color: blue; font-weight: bold'>wsl hostname -I</span> 172.19.132.144 c:\temp> <span style='color: blue; font-weight: bold'>curl http://172.19.132.144:5000</span> ...[오류]... </pre> <br /> 왜냐하면, nopCommerce가 "localhost"로만 바인딩을 하고 있기 때문입니다. 따라서 이런 경우에는 실행 바인딩을 바꿔주든가, 아니면 (<a target='tab' href='https://docs.nopcommerce.com/en/installation-and-upgrading/installing-nopcommerce/installing-on-linux.html'>공식 설치 가이드</a>에서처럼) nginx를 앞단에 세워줘야 합니다.<br /> <br /> 제 경우에는, 그저 간단한 닷넷 예제가 필요했기 때문에 위와 같은 정도로만 설정하고 마칩니다. ^^<br /> </p><br /> <br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1028
(왼쪽의 숫자를 입력해야 합니다.)