<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Good Heavening</title>
    <link>https://heavening.tistory.com/</link>
    <description>Good Heavening</description>
    <language>ko</language>
    <pubDate>Sat, 30 May 2026 20:55:36 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Heavening</managingEditor>
    <image>
      <title>Good Heavening</title>
      <url>https://tistory1.daumcdn.net/tistory/192254/attach/94afab2387114fac931e95eace9193a5</url>
      <link>https://heavening.tistory.com</link>
    </image>
    <item>
      <title>자동차 정기검사 기간 조회</title>
      <link>https://heavening.tistory.com/116</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.cyberts.kr/is/pvi/pvi/readIsPviPrsecValidityInqireView.do&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.cyberts.kr/is/pvi/pvi/readIsPviPrsecValidityInqireView.do&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1102&quot; data-origin-height=&quot;296&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cprqBz/dJMcahKtrdl/QnocoF1PfAGVSn0hcySpFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cprqBz/dJMcahKtrdl/QnocoF1PfAGVSn0hcySpFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cprqBz/dJMcahKtrdl/QnocoF1PfAGVSn0hcySpFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcprqBz%2FdJMcahKtrdl%2FQnocoF1PfAGVSn0hcySpFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1102&quot; height=&quot;296&quot; data-origin-width=&quot;1102&quot; data-origin-height=&quot;296&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자동차 번호랑 주민등록증 생년월일 쓰면 아래쪽에 기간 나와요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 간단할걸 알려주는 곳 찾기가 힘들어서 시간이 한참 걸렸네요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그인 안해도 조회 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;검사안하면 과태료가 세다고 하니 꼭 검사하세요.&lt;/p&gt;</description>
      <category>Story</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/116</guid>
      <comments>https://heavening.tistory.com/116#entry116comment</comments>
      <pubDate>Tue, 17 Mar 2026 09:27:52 +0900</pubDate>
    </item>
    <item>
      <title>Ubuntu apache error : Invalid command 'AssignUserID', perhaps misspelled or defined by a module not included in the server configuration</title>
      <link>https://heavening.tistory.com/115</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오랜만에 서버에 들어가서 사이트 추가하려는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;/etc/apache2/sites-available 에 설정파일 추가하고&lt;/p&gt;
&lt;pre id=&quot;code_1698890184464&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# systemctl reload apache2&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;명령어 입력하니까&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Job for apache2.service failed because the control process exited with error code.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오류가 뜹니다..&lt;/p&gt;
&lt;pre id=&quot;code_1698890224315&quot; class=&quot;shell&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;# systemctl status apache2&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;명령어로 확인해보니 아래와 같은 이유가 나타납니다;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Invalid&amp;nbsp;command&amp;nbsp;'AssignUserID',&amp;nbsp;perhaps&amp;nbsp;misspelled&amp;nbsp;or&amp;nbsp;defined&amp;nbsp;by&amp;nbsp;a&amp;nbsp;module&amp;nbsp;not&amp;nbsp;included&amp;nbsp;in&amp;nbsp;the&amp;nbsp;server&amp;nbsp;configuration&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;찾아보니 mpm-itk 뭐시기라 하더라구요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 잉? 모드 활성화 안했나 해서&lt;/p&gt;
&lt;pre id=&quot;code_1698890306300&quot; class=&quot;shell&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;# a2enmod mpm-itk&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실행하니까&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ERROR: Module mpm_itk does not exist! 라네요; (대충 '모듈이 없어!' 라는 뜻)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1698890408484&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# apt install libapache2-mpm-itk
...
신나게 설치하는 내용
...
# a2enmod mpm-itk
...
신나게 활성화하는 내용
...
# systemctl restart apache2
#&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해결됐네요;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>for Web/Linux</category>
      <category>AssignUserID</category>
      <category>error</category>
      <category>mpm-itk</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/115</guid>
      <comments>https://heavening.tistory.com/115#entry115comment</comments>
      <pubDate>Thu, 2 Nov 2023 11:04:12 +0900</pubDate>
    </item>
    <item>
      <title>우분투 서버 시간을 인터넷 실시간으로 동기화 하기</title>
      <link>https://heavening.tistory.com/114</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이하의 작업은 root권한 취득 후 했습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1693816239344&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ sudo su&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 rdate가 설치되어 있지 않다면 rdate를 설치해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치되어 있는지 확실하지 않아도 그냥 설치 명령어를 입력하면 간단합니다 ㅋ&lt;/p&gt;
&lt;pre id=&quot;code_1693816104249&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# apt install rdate&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;crontab에 등록하여 지속적으로 인터넷 시간을 가져와서 서버 시간에 동기화 해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;crontab의 역할은 반복적으로 동일한 작업을 자동으로 실행하는 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;crontab에 대한 자세한 설명은 생략하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;crontab에 등록하려면 먼저 rdate 실행파일이 어디에 있는지 파악해야합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;* 서버마다 설치되는 위치가 다를 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;* apt로 설치했을 경우 dpkg -L rdate 명령어로 설치 위치를 확인할 수 있는데 결과 값이 쓸데없이 많이 나오는 경우가 많아서 find를 썼습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1693816754598&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# find / -name rdate
/usr/share/doc/rdate
/usr/sbin/rdate&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제 서버 같은 경우는 두 개의 결과가 나왔는데 보통 bin이나 sbin 안에 실행파일이 있더라구요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;// 솔직히 /usr/share/doc/rdate 이 친구는 뭔지 모르겠습니다;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서버 시간을 확인하고 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;/usr/sbin/rdate를&lt;span&gt; 사용하여&amp;nbsp;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;인터넷 시간 확인 및 동기화를 진행해 보겠습니다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1693817482597&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# date
Mon Sep  4 05:47:41 PM KST 2023
# /usr/sbin/rdate -p time.bora.net
Mon Sep  4 17:47:43 KST 2023
# /usr/sbin/rdate -s time.bora.net&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;date 명령어는 서버 시간을 확인시켜 줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;/usr/sbin/rdate -p time.bora.net 명령어로 인터넷 시간을 확인하고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;/usr/sbin/rdate -s time.bora.net 명령어로 인터넷 시간을 서버 시간에 적용(동기화)합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 과정에서 별다른 오류가 발생되지 않았다면 crontab에 동기화 명령어를 등록해줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1693817840766&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# crontab -e 30 5 * * * /usr/sbin/rdate -s time.bora.net&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;crontab -e 명령어는 crontab에 등록할 경우 사용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;등록이 잘 됐는지 확인하려면 crontab -l을 입력해줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1693817954511&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# crontab -l
30 5 * * * /usr/sbin/rdate -s time.bora.net&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;방금 입력한 스케줄이 목록에 나타나면 등록된 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞에 30 5 * * *은 실행할 주기를 정해주는 것인데, 자세한 설명은 생략하고 간단히 설명드리자면 각각 분 시 일 월 요일 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 30분 5시 아무일 아무월 아무요일 마다 /usr/sbin/rdate -s time.bora.net를 실행시켜 줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간단히 매일 05:30에 해당 명령어를 실행해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝 ㅋ&lt;/p&gt;</description>
      <category>for Web/Linux</category>
      <category>crontab</category>
      <category>rdate</category>
      <category>시간동기화</category>
      <category>인터넷시간동기화</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/114</guid>
      <comments>https://heavening.tistory.com/114#entry114comment</comments>
      <pubDate>Mon, 4 Sep 2023 18:03:11 +0900</pubDate>
    </item>
    <item>
      <title>MySQL, MariaDB, Aurora 날짜로 요일 찾기 DAYOFWEEK 함수</title>
      <link>https://heavening.tistory.com/113</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;#DAYOFWEEK()용도&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MySQL,&amp;nbsp;MariaDB,&amp;nbsp;Aurora&amp;nbsp;에서&amp;nbsp;DAYOFWEEK()&amp;nbsp;는&amp;nbsp;특정&amp;nbsp;날짜의&amp;nbsp;요일을&amp;nbsp;반환해주는&amp;nbsp;함수이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;#DAYOFWEEK()사용법&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DAYOFWEEK(요일&amp;nbsp;값을&amp;nbsp;반환받고&amp;nbsp;싶은&amp;nbsp;날짜)이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1.&amp;nbsp;날짜를&amp;nbsp;직접&amp;nbsp;입력하여&amp;nbsp;사용&lt;/h4&gt;
&lt;pre id=&quot;code_1688434326753&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT DAYOFWEEK('2020-08-12'); # return : 4
SELECT DAYOFWEEK('2020-08-12 09:50:17'); # 4
SELECT DAYOFWEEK('2020/08/12'); # 4
SELECT DAYOFWEEK('2020.08.12'); # 4
SELECT DAYOFWEEK('2020.08.12'); # 4
SELECT DAYOFWEEK('2020.08.12'); # 4
SELECT DAYOFWEEK('20200812'); # 4
SELECT DAYOFWEEK('2020.0812'); # 4
SELECT DAYOFWEEK('2020-0812'); # NULL
SELECT DAYOFWEEK('20.08.12'); # 4
SELECT DAYOFWEEK('202008-12'); # NULL
SELECT DAYOFWEEK('2020 08 12'); # NULL&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;날짜를 직접 입력하여 사용할 때는 년월일을 순서대로 쓰지 않으면 NULL 값이 반환되며,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력한 날짜를 인식하지 못하는 경우에도 NULL 값이 반환된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;몇 가지 더 실험해본 결과 YYYY-MM-DD 형식으로 입력하면 구분자를 하이픈(-) 대신 다른 특수문자로 입력하더라도 정상적인 값을 출력한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예)&amp;nbsp;SELECT&amp;nbsp;DAYOFWEEK('2020@08@12');&amp;nbsp;=&amp;gt;&amp;nbsp;4&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2.&amp;nbsp;날짜를&amp;nbsp;반환하는&amp;nbsp;함수로&amp;nbsp;대체하여&amp;nbsp;사용&lt;/h4&gt;
&lt;pre id=&quot;code_1688434417778&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT DAYOFWEEK(CURDATE());
SELECT DAYOFWEEK(NOW());
SELECT DAYOFWEEK(DATE_ADD(NOW(), INTERVAL 2 DAY));
SELECT DAYOFWEEK(DATE_SUB(NOW(), INTERVAL 3 DAY));&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;*&amp;nbsp;주의&amp;nbsp;:&amp;nbsp;DATE_ADD()&amp;nbsp;나&amp;nbsp;DATE_SUB()&amp;nbsp;사용시&amp;nbsp;위의&amp;nbsp;쿼리처럼&amp;nbsp;DAYS&amp;nbsp;가&amp;nbsp;아닌&amp;nbsp;DAY&amp;nbsp;로&amp;nbsp;입력.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;#DAYOFWEEK()반환값&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반환되는&amp;nbsp;날짜의&amp;nbsp;값은&amp;nbsp;일요일부터&amp;nbsp;토요일까지&amp;nbsp;1~7로&amp;nbsp;반환된다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 26.7442%; height: 217px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;일&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;월&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;화&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;수&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;목&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;금&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;토&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;7&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>for Web/MySQL</category>
      <category>Aurora</category>
      <category>DayOfWeek</category>
      <category>MariaDB</category>
      <category>MySQL</category>
      <category>날짜</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/113</guid>
      <comments>https://heavening.tistory.com/113#entry113comment</comments>
      <pubDate>Tue, 4 Jul 2023 10:37:02 +0900</pubDate>
    </item>
    <item>
      <title>Ubuntu 22.04 LTS default repository 기본 저장소</title>
      <link>https://heavening.tistory.com/112</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;우분투에서 기존 저장소 정보를 지우고 &lt;a href=&quot;https://mirror.kakao.com/ubuntu/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://mirror.kakao.com/ubuntu/&lt;/a&gt; 만 추가 했다가 php8.2 관련 모듈 설치가 안되는 경우가 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;deb&amp;nbsp;&lt;a href=&quot;https://mirror.kakao.com/ubuntu/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://mirror.kakao.com/ubuntu/&lt;/a&gt;&amp;nbsp;jammy&amp;nbsp;main &lt;br /&gt;deb-src&amp;nbsp;&lt;a href=&quot;https://mirror.kakao.com/ubuntu/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://mirror.kakao.com/ubuntu/&lt;/a&gt;&amp;nbsp;jammy&amp;nbsp;main &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저도 이거 때문에 별 생각없이 apt update 랑 apt upgrade 를 실행했는데 난데없이 잘 돌아가던 사이트가 안돌아가서 php8.2를 지우고 다시 설치했는데 모듈이 안깔리는거예요.. -,,-&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본 저장소를 찾아봤는데 찾기 힘들더라구요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결국 찾아서 모듈까지 잘 설치했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 기본 저장소 정보입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주석은 지워버렸어요..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;▽ default repository&lt;/p&gt;
&lt;pre id=&quot;code_1687160943779&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# cat /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu jammy main restricted
deb http://archive.ubuntu.com/ubuntu jammy-updates main restricted
deb http://archive.ubuntu.com/ubuntu jammy universe
deb http://archive.ubuntu.com/ubuntu jammy-updates universe
deb http://archive.ubuntu.com/ubuntu jammy multiverse
deb http://archive.ubuntu.com/ubuntu jammy-updates multiverse
deb http://archive.ubuntu.com/ubuntu jammy-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu jammy-security main restricted
deb http://security.ubuntu.com/ubuntu jammy-security universe
deb http://security.ubuntu.com/ubuntu jammy-security multiverse&lt;/code&gt;&lt;/pre&gt;</description>
      <category>for Web/Linux</category>
      <category>default repository</category>
      <category>jammy</category>
      <category>Repository</category>
      <category>Ubuntu 22.04</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/112</guid>
      <comments>https://heavening.tistory.com/112#entry112comment</comments>
      <pubDate>Mon, 19 Jun 2023 16:50:55 +0900</pubDate>
    </item>
    <item>
      <title>rgb to hex in javascript - RGB코드를 HEX코드로 바꾸기 (rgb(r, g, b)를 #RRGGBB로 변환)</title>
      <link>https://heavening.tistory.com/111</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;웹에서 사용하는 숫자를 나타내는 방법은 두 가지 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하나는 10진수를 사용한 방법이고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예) &lt;b&gt;&lt;span style=&quot;color: #ff7b1c;&quot;&gt;rgb(255, 123, 28)&lt;/span&gt;&lt;/b&gt; 또는 &lt;span style=&quot;color: #ff7b1c;&quot;&gt;&lt;b&gt;rgba(255, 123, 28, 1)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또 한 가지는 맨 앞에 샵(#)을 붙이고 16진수를 이어서 나열하는 방법이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예) &lt;b&gt;&lt;span style=&quot;color: #ff7b1c;&quot;&gt;#FF7B1C&lt;/span&gt;&lt;/b&gt; 또는 &lt;span style=&quot;color: #ff7b1c;&quot;&gt;&lt;b&gt;#FF7B1CFF&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코딩중 &lt;span style=&quot;letter-spacing: 0px;&quot;&gt;RGB코드를 16진수 코드로 바꿔야 하는 상황이 생기는데,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;아래는 그 때 사용하기 위해 만든 함수이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1684227772918&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function rgb2Hex(_rgbColor) {
    let rgbNums = _rgbColor.match(/rgb[a]{0,1}\((\d+)\,[\s]{0,}(\d+)\,[\s]{0,}(\d+)/);
    if(rgbNums != null) {
        let _hexColor = &quot;#&quot;;
        for(i = 1; i &amp;lt;= 3; i++) _hexColor += parseInt(rgbNums[i]).toString(16);
        return _hexColor.toUpperCase();
    }
    else return _rgbColor;
}

console.log(rgb2Hex(&quot;rgb(255, 123, 28)&quot;)); // #FF7B1C
console.log(rgb2Hex(&quot;rgba(255, 123, 28, 0.5)&quot;)); // #FF7B1C
console.log(rgb2Hex(&quot;  rgb(255, 123, 28)  &quot;)); // #FF7B1C
console.log(rgb2Hex(&quot;rgb(255,    123,    28)&quot;)); // #FF7B1C
console.log(rgb2Hex(&quot;#FF7B1C&quot;)); // #FF7B1C
console.log(rgb2Hex(&quot;Hello&quot;)); // Hello
console.log(rgb2Hex(&quot;{ background: rgb(255, 123, 28); color: rgb(0, 0, 0) }&quot;)); // #FF7B1C&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열 내에 여러 개의 rgb코드를 입력해도 하나만 나오게 했다.&lt;/p&gt;</description>
      <category>for Web/Javascript</category>
      <category>hex</category>
      <category>javascript</category>
      <category>RGB</category>
      <category>rgb &amp;gt; hex</category>
      <category>rgb to hex</category>
      <category>색코드변환</category>
      <category>자바스크립트</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/111</guid>
      <comments>https://heavening.tistory.com/111#entry111comment</comments>
      <pubDate>Wed, 17 May 2023 10:53:17 +0900</pubDate>
    </item>
    <item>
      <title>OpenWrt Failsafe Mode /dev/mtdblock3 is not mounted /dev/mtdblock3 will be erased on next mount 오류 해결</title>
      <link>https://heavening.tistory.com/110</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;* 이 해결법은 저도 구글링을 통해 알게된 것으로, 이 방법을 사용하여 해결했기 때문에 포스팅 합니다. 자세한 것은 저도 몰라요..ㅋㅋ&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OpenWrt 사용중 FailSafe Mode가 활성화 되는 경우가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1683854726280&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# firstboot
This will erase all settings and remove any installed packages. Are you sure? [N/y]
y
/dev/mtdblock3 is not mounted
/dev/mtdblock3 will be erased on next mount&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;이런 경우 &quot;mtd -r erase rootfs_data&quot; 실행&lt;/p&gt;
&lt;pre id=&quot;code_1683854760916&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# mtd -r erase rootfs_data&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 명령어를 실행하면 기기에 따라 시간이 오래 걸릴 수 있으며, 'Reboot ...'이란 메세지가 나타나면 1분정도 기다렸다가 기기를 물리적으로 재부팅 해보고 다시 사용하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;FailSafe Mode가 나타나지 않으면 성공&lt;/p&gt;</description>
      <category>for Web/Linux</category>
      <category>FailSafe Mode</category>
      <category>OpenWrt</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/110</guid>
      <comments>https://heavening.tistory.com/110#entry110comment</comments>
      <pubDate>Fri, 12 May 2023 10:31:08 +0900</pubDate>
    </item>
    <item>
      <title>[우분투 22.04] [구글 API] Fatal error: Uncaught Firebase\JWT\BeforeValidException: Cannot handle token prior to 2023-05-09T00:00:00+0000 in .../vendor/firebase/php-jwt/src/JWT.php:156 Stack trace: #0 오류 해결 방법</title>
      <link>https://heavening.tistory.com/109</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;얼마 전부터 구글 로그인하는 곳에서 아래와 같은 오류가 나기 시작했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Fatal error: Uncaught Firebase\JWT\BeforeValidException: Cannot handle token prior to 2023-05-09T02:23:35+0000 in .../vendor/firebase/php-jwt/src/JWT.php:156 Stack trace: #0 .../vendor/google/apiclient/src/AccessToken/Verify.php(116): Firebase\JWT\JWT::decode() #1 .../vendor/google/apiclient/src/Client.php(813): Google\AccessToken\Verify-&amp;gt;verifyIdToken() #2 .../처리파일.php(49): Google\Client-&amp;gt;verifyIdToken() #3 {main} thrown in .../vendor/firebase/php-jwt/src/JWT.php on line 156&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;( * 위의 오류에서 경로는 수정했습니다. )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 계속 새로 고침하다 보면 이상하게 로그인이 되는 것이다!;;;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 어차피 정식 서비스 하는 곳은 아니라서 걍 몇 달 동안 써었는데 가면 갈 수록 점점 새로고침 2번 하면 되던 로그인이 10000번(&lt;s&gt;그짓말;&lt;/s&gt;) 해야 로그인되는 것이다;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;'혹시 서버 시간이 밀렸나?' 해서 확인해보니까 실제 인터넷 시간과 비교하니&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서버 시간이 몇 초(40초 이상 느렸었음; 얼마나 밀린겨;)가 느린 것을 발견했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보니까 rdate를 설치 안한 것 대발견;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바로 설치를 위해 일단 apt-get 업데이트..&lt;/p&gt;
&lt;pre id=&quot;code_1683604566424&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# apt update
...
# apt upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* apt 명령어 안먹히면 걍 순순히 apt-get을 다 써주세요..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바로 rdate 설치 ㄱ&lt;/p&gt;
&lt;pre id=&quot;code_1683604648232&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# apt install rdate&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 후 잘 불러오는지 확인&lt;/p&gt;
&lt;pre id=&quot;code_1683604724153&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# rdate -p time.bora.net
Tue May  9 12:58:33 KST 2023&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잘 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 서버에 인터넷 시간 적용&lt;/p&gt;
&lt;pre id=&quot;code_1683604792574&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# rdate -s time.bora.net&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서버 부팅시에도 적용 되도록 아래 실행해 주면 시간 동기화 끝&lt;/p&gt;
&lt;pre id=&quot;code_1683604848304&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# timedatectl set-ntp on&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인터넷 시간으로 적용 후 구글 로그인 다시 해보니까 잘됨.&lt;/p&gt;</description>
      <category>for Web/Linux</category>
      <category>JWT.php</category>
      <category>OAuth</category>
      <category>구글 API</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/109</guid>
      <comments>https://heavening.tistory.com/109#entry109comment</comments>
      <pubDate>Tue, 9 May 2023 13:03:42 +0900</pubDate>
    </item>
    <item>
      <title>Ubuntu 22.04 LTS Apache2, PHP, MariaDB 설치 및 기타 웹서버 설정</title>
      <link>https://heavening.tistory.com/108</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;0. 관리자 권한&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1677484713690&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ sudo su
#&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 서버 업데이트&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1677484645369&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;apt update
...
apt upgrade -y&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 시간 설정&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1677484666471&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;dpkg-reconfigure tzdata&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. Apache2 설치&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1677484805557&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;apt install apache2
...
apache2 -v&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. certbot 설치&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1677484972389&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;apt install certbot&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. PHP 설치&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5-1. 패키지 저장소 추가&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1677485093391&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;add-apt-repository ppa:ondrej/php&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5-2. PHP8.2 설치 (작성일 기준 최신버전)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1677485029982&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;apt install php8.2&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5-3. 추가 라이브러리 설치&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1677486957082&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;apt install php8.2-{curl,dev,gd,imagick,imap,mbstring,mysql,oauth,zip}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. MariaDB 설치&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;6-1. MariaDB 설치&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1677487023885&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;apt install mariadb-server&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;6-2. 초기 설정&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1677487327646&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] y
Enabled successfully!
Reloading privilege tables..
 ... Success!


You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] n
 ... skipping.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>for Web/Linux</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/108</guid>
      <comments>https://heavening.tistory.com/108#entry108comment</comments>
      <pubDate>Mon, 27 Feb 2023 17:44:50 +0900</pubDate>
    </item>
    <item>
      <title>PHP match 함수 사용법 및 응용법</title>
      <link>https://heavening.tistory.com/107</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;간단한 구문을 처리할 때 경우에 따라 if else 보다는 간편한 ?:(3항 연산자)를 사용할 때가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;얼마 전 PHP 8.0이 등장하면서 switch case 보다 가벼운 어떻게 보면 switch case의 3항 연산자 match가 추가되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;match에 대해 알아보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;※ 참고로 match는 PHP 8.0 이상 버전에서 사용 가능하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;// 3항 연산자에 대한 정보는 따로 정리한 포스팅을 참고해주세요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://heavening.tistory.com/106&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://heavening.tistory.com/106&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1676525330912&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;PHP 물음표와 콜론 3항 연산자 (조건부 연산자) ?:&quot; data-og-description=&quot;(이미 8.2까지 나왔지만...) 얼마 전 PHP 8.0이 릴리즈와 함께 추가된 match에 대해 포스팅을 하려하는데 3항 연산자(또는 조건부 연산자, 이하 '3항 연산자')를 잠깐 언급하려고 하다가 3항 연산자에 &quot; data-og-host=&quot;heavening.tistory.com&quot; data-og-source-url=&quot;https://heavening.tistory.com/106&quot; data-og-url=&quot;https://heavening.tistory.com/106&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cWMd0Z/hyRD2yoJgw/tLwFYqqkM5cIjtkM1nap3k/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/8p71t/hyRDSP55NX/BUsLL2SIsRrKlq80zeIP6k/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://heavening.tistory.com/106&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://heavening.tistory.com/106&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cWMd0Z/hyRD2yoJgw/tLwFYqqkM5cIjtkM1nap3k/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/8p71t/hyRDSP55NX/BUsLL2SIsRrKlq80zeIP6k/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;PHP 물음표와 콜론 3항 연산자 (조건부 연산자) ?:&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;(이미 8.2까지 나왔지만...) 얼마 전 PHP 8.0이 릴리즈와 함께 추가된 match에 대해 포스팅을 하려하는데 3항 연산자(또는 조건부 연산자, 이하 '3항 연산자')를 잠깐 언급하려고 하다가 3항 연산자에&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;heavening.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예제를 통해 사용법부터 알아봅시다.&lt;/p&gt;
&lt;pre id=&quot;code_1676525947197&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
    $value = &quot;1&quot;;
    switch($value) {
        case &quot;1&quot; : $result = &quot;this is 1&quot;; break;
        case &quot;2&quot; : $result = &quot;this is 2&quot;; break;
        default : $result = &quot;what's this?&quot;; break;
    }
    echo $result; // this is 1
?&amp;gt;

&amp;lt;?php
    $value = &quot;1&quot;;
    $result = match($value) {
        &quot;1&quot; =&amp;gt; &quot;this is 1&quot;,
        &quot;2&quot; =&amp;gt; &quot;this is 2&quot;,
        default =&amp;gt; &quot;what's this?&quot;,
    };
    echo $result; // this is 1
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1676534093330&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
    $value = &quot;orange&quot;;
    switch($value) {
        case &quot;apple&quot; :
        case &quot;orange&quot; :
        case &quot;strawberry&quot; :
            $result = &quot;fruit&quot;;
            break;
        default :
            $result = &quot;unknown&quot;;
            break;
    }
    echo $result; // fruit
?&amp;gt;

&amp;lt;?php
    $value = &quot;orange&quot;;
    $result = match($value) {
        &quot;apple&quot;, &quot;orange&quot;, &quot;strawberry&quot; =&amp;gt; &quot;fruit&quot;,
        default =&amp;gt; &quot;unknown&quot;,
    };
    echo $result; // fruit
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 switch 대신 match를 사용하면 코드가 간소화되고 무엇보다 가독성이 좋아진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 조건별로 복잡한 로직을 입력하려면 switch를 사용해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 조건에 따라 단순히 일정 수식이나 값을 리턴하는 것이라면 match가 좋을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;switch와 match에는 큰 차이가 하나 있는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;조건을 충족 시킬 때 switch case와 달리 '=='가 아닌 '==='로 조건을 성립시켜야 결과가 발동된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 예제를 보자.&lt;/p&gt;
&lt;pre id=&quot;code_1676533538520&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
    $value = true;
    switch($value) {
        case &quot;1&quot; : $result = &quot;string&quot;; break;
        case 1 : $result = &quot;int&quot;; break;
        case true : $result = &quot;bool&quot;; break;
        default : $result = &quot;unknown&quot;; break;
    }
    
    echo $result; // string
?&amp;gt;

&amp;lt;?php
    $value = true;
    $result = match($value) {
        &quot;1&quot; =&amp;gt; &quot;string&quot;,
        1 =&amp;gt; &quot;int&quot;,
        true =&amp;gt; &quot;bool&quot;,
        default =&amp;gt; &quot;unknown&quot;,
    };
    
    echo $result; // bool
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>for Web/PHP</category>
      <category>Match</category>
      <category>php</category>
      <category>php8</category>
      <category>switch</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/107</guid>
      <comments>https://heavening.tistory.com/107#entry107comment</comments>
      <pubDate>Wed, 15 Feb 2023 15:21:11 +0900</pubDate>
    </item>
    <item>
      <title>PHP 물음표와 콜론 3항 연산자 (조건부 연산자) ?:</title>
      <link>https://heavening.tistory.com/106</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;(이미 8.2까지 나왔지만...)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;얼마 전 PHP 8.0이 릴리즈와 함께 추가된 match에 대해 포스팅을 하려하는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3항 연산자(또는 조건부 연산자, 이하 '3항 연산자')를 잠깐 언급하려고 하다가 3항 연산자에 대한 설명이 필요한 분들이 있을&amp;nbsp; 수 있겠다 싶어 먼저 3항 연산자부터 설명한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간단하게 사용할 수 있어 필자는 지금도 많이 사용하는 3항 연산자에 대해 알아보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3항 연산자는 if와 같은 조건문 중 하나로 간단하게 if else 효과를 낼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문법은 아래와 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;조건문&lt;/span&gt;&lt;/b&gt;&lt;/i&gt; &lt;span style=&quot;background-color: #c1bef9;&quot;&gt;&lt;b&gt;?&lt;/b&gt;&lt;/span&gt; &lt;i&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;조건문이 맞을 때 결과&lt;/b&gt;&lt;/span&gt;&lt;/i&gt; &lt;span style=&quot;background-color: #c1bef9;&quot;&gt;&lt;b&gt;:&lt;/b&gt;&lt;/span&gt; &lt;i&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;조건문이 맞지 않을 때 결과&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한글로 풀어 써서 약간 헷갈릴 수 있는데 이해를 돕기위해 if else와 비교해보자.&lt;/p&gt;
&lt;pre id=&quot;code_1676507844554&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
    $food = &quot;apple&quot;;

    if($food == &quot;apple&quot;) {
        $result = &quot;It's a fruit.&quot;;
    }
    else {
        $result = &quot;Is it a fruit?&quot;;
    }

    echo $result;

    // It's a fruit.
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1676507975173&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
    $food = &quot;apple&quot;;

    $result = ($food == &quot;apple&quot;) ? &quot;It's a fruit.&quot; : &quot;Is it a fruit?&quot;;

    echo $result;
    
    // It's a fruit.
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;if else와 차이가 있다면 if else의 경우 조건에 따라 여러 코드를 삽일할 수 있지만 3항 연산자는 결과 값만 입력할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 복잡한 코드를 처리해야할 경우에는 if else를 사용하여야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3항 연산자는 &lt;i&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;조건문이 맞을 때 결과&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;를 생략할 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1676512751566&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
    $int1 = 10;
    $int2 = 1;
    var_dump(($int2 &amp;lt;= 0 || $int2 &amp;lt;= 0) ?: floor($int1 / $int2));
    
    // float(10)


    $int1 = 10;
    $int2 = 0;
    var_dump(($int2 &amp;lt;= 0 || $int2 &amp;lt;= 0) ?: floor($int1 / $int2));
    
    // bool(true)
    // 조건이 참일 경우 true를 리턴한다.
    // var_dump가 아닌 echo로 처리하면 true이므로 1이 출력된다.
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3항 연산자의 사용법 설명은 이상이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용하면 소스를 간소화할 수 있기 때문에 필자는 자주 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 $_GET이나 $_POST 등을 받아올 때 3항 연산자를 자주 사용하여 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;게시판 소스를 만들 때 pagination부분에서 사용하기 좋다.&lt;/p&gt;
&lt;pre id=&quot;code_1676513216521&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
    $page = (isset($_GET['page']) &amp;amp;&amp;amp; (int)$_GET['page'] &amp;gt; 0) ? (int)$_GET['page'] : 1;
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>for Web/PHP</category>
      <category>3항연산자</category>
      <category>?:</category>
      <category>php</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/106</guid>
      <comments>https://heavening.tistory.com/106#entry106comment</comments>
      <pubDate>Wed, 15 Feb 2023 15:20:48 +0900</pubDate>
    </item>
    <item>
      <title>서버와 웹에서 PHP 버전 확인하는 법</title>
      <link>https://heavening.tistory.com/105</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;자신이 사용하는 서버의 PHP 버전을 확인하는 방법이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서버에 접근이 가능하여 직접 접속하거나 원격으로 SSH 등으로 접근이 가능하다면 리눅스 기준으로 아래와 같이 입력하면 간단히 확인할 수 있다. ( 관리자 권한이 없어도 확인이 가능하다. )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1676436871086&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;php -v&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 명령어를 입력하면 아래와 &lt;u&gt;비슷한&lt;/u&gt; 결과값이 출력될 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PHP&amp;nbsp;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;8.2.3&lt;/b&gt;&lt;/span&gt;&amp;nbsp;(cli)&amp;nbsp;(built:&amp;nbsp;Feb&amp;nbsp;14&amp;nbsp;2023&amp;nbsp;16:58:12)&amp;nbsp;(NTS) &lt;br /&gt;Copyright (c) The PHP Group&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서 빨간색 부분이 현재 서버에 설치된 PHP의 버전이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 모두가 자신이 사용하는 서버에 직접 접속할 수 있는 것은 아니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;접속하는 법을 모르거나~ 접근 권한이 없다거나~ 아니면 비번이 기억나지 않는다거나~ 접속이 귀찮다거나~....;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이유는 뭐 여러가지 있을 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 이러한 경우 PHP파일을 수정/업로드 할 수 있는 상황이라면 phpinfo()를 사용하여 바로 확인이 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1676437725061&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
    phpinfo();
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 코드를 넣고 페이지를 웹브라우저에서 열면 맨 위에 PHP 버전이 나와있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;934&quot; data-origin-height=&quot;74&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5pN4C/btrZjJ0JPb1/tnOJJDNIu8fQtRf7B8YlX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5pN4C/btrZjJ0JPb1/tnOJJDNIu8fQtRf7B8YlX1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5pN4C/btrZjJ0JPb1/tnOJJDNIu8fQtRf7B8YlX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5pN4C%2FbtrZjJ0JPb1%2FtnOJJDNIu8fQtRf7B8YlX1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;934&quot; height=&quot;74&quot; data-origin-width=&quot;934&quot; data-origin-height=&quot;74&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 phpinfo는 여러가지 정보를 확인할 수 있고 그로인해 디버깅 할 때도 유용하다. 하지만 그만큼 과하게 많은 것을 드러내고 있으므로 제3자가 보기 전에 확인이 끝났으면 phpinfo()를 사용한 페이지를 지워주자..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>for Web/PHP</category>
      <category>php</category>
      <category>버전확인</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/105</guid>
      <comments>https://heavening.tistory.com/105#entry105comment</comments>
      <pubDate>Wed, 15 Feb 2023 14:14:04 +0900</pubDate>
    </item>
    <item>
      <title>PHP 특정 문자열 검사하는 함수 str_contains()</title>
      <link>https://heavening.tistory.com/104</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;문자열 값에서 특정 문자가 존재하는지 확인하려면 preg_match 등으로 검사하여 확인하는 방법이 있지만 간단하게도 검사할 수 있는 함수가 추가 되었다. (추가된지 좀 되긴했어요..;)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;※ PHP 8.0 이상 버전에서 사용 가능&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PHP버전 확인하기 : &lt;a href=&quot;https://heavening.tistory.com/105&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://heavening.tistory.com/105&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1676438305106&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;서버와 웹에서 PHP 버전 확인하는 법&quot; data-og-description=&quot;자신이 사용하는 서버의 PHP 버전을 확인하는 방법이다. 서버에 접근이 가능하여 직접 접속하거나 원격으로 SSH 등으로 접근이 가능하다면 리눅스 기준으로 아래와 같이 입력하면 간단히 확인할 &quot; data-og-host=&quot;heavening.tistory.com&quot; data-og-source-url=&quot;https://heavening.tistory.com/105&quot; data-og-url=&quot;https://heavening.tistory.com/105&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/hYgPe/hyRCSpmaEf/Mf15tnN6UorgYGMkV2tGn0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/Izqd3/hyRCS3VVCZ/c3JrtTgU4KembVgsCyh4u0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://heavening.tistory.com/105&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://heavening.tistory.com/105&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/hYgPe/hyRCSpmaEf/Mf15tnN6UorgYGMkV2tGn0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/Izqd3/hyRCS3VVCZ/c3JrtTgU4KembVgsCyh4u0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;서버와 웹에서 PHP 버전 확인하는 법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;자신이 사용하는 서버의 PHP 버전을 확인하는 방법이다. 서버에 접근이 가능하여 직접 접속하거나 원격으로 SSH 등으로 접근이 가능하다면 리눅스 기준으로 아래와 같이 입력하면 간단히 확인할&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;heavening.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1676435206894&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;str_contains(&quot;문자열&quot;, &quot;찾을 문자열&quot;); // return true or false&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용법은 위와 같이 간단하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한글이나 특수문자, 빈 문자까지 가능하니 필요한 경우 간단하게 사용할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 정규식은 사용할 수 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 예제&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1676435930540&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;str_contains(&quot;abc&quot;, &quot;a&quot;); // true
str_contains(&quot;abc&quot;, &quot;b&quot;); // true
str_contains(&quot;abc&quot;, &quot;c&quot;); // true
str_contains(&quot;abc&quot;, &quot;ab&quot;); // true
str_contains(&quot;abc&quot;, &quot;bc&quot;); // true
str_contains(&quot;abc&quot;, &quot;abc&quot;); // true
str_contains(&quot;abc&quot;, &quot;&quot;); // true

str_contains(&quot;abc&quot;, &quot;A&quot;); // false
str_contains(&quot;abc&quot;, &quot;ac&quot;); // false
str_contains(&quot;abc&quot;, &quot;a b&quot;); // false
str_contains(&quot;abc&quot;, &quot;f&quot;); // false

// --------------------------------------------------

str_contains(&quot;&quot;, &quot;&quot;); // true

// --------------------------------------------------

str_contains(&quot;\&quot;&quot;, '&quot;'); // true

str_contains(&quot;\&quot;&quot;, '\\'); // false
str_contains(&quot;\&quot;&quot;, &quot;\\&quot;); // false

// --------------------------------------------------

str_contains(&quot;한글도 가능&quot;, &quot;한글&quot;); // true

str_contains(&quot;한글도 가능&quot;, &quot;한글도가능&quot;); // false&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>for Web/PHP</category>
      <category>php</category>
      <category>str_contains</category>
      <category>문자</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/104</guid>
      <comments>https://heavening.tistory.com/104#entry104comment</comments>
      <pubDate>Wed, 15 Feb 2023 13:30:33 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] Invalid default value for 'column_name' 해결법</title>
      <link>https://heavening.tistory.com/103</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 개요&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MySQL에서 테이블(table)을 추가하거나 테이블(table) 내의 컬럼(column)을 수정할 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323; background-color: #f6e199;&quot;&gt;&lt;b&gt;Invalid default value for 'column_name'&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이라는 오류문구를 리턴하며 처리 되지 않는 경우가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 오류가 나타났을 때 해결법은 간단하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Invalid default value for 'column_name'을 해석해 보면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;'&lt;i&gt;column_name'의 기본 값이 잘못되었습니다.&lt;/i&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 원인&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본 값 설정이 해당 컬럼(column)에 필요없거나 해당 컬럼의 데이터형식에 맞지 않는 경우이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 오류 예시&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- AUTO_INCREMENT를 사용할 때 기본 값을 설정하는 경우&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 20px; width: 100%;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;CREATE TABLE table_name (&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;span&gt;column_name&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;INT&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;DEFAULT 1&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;NOT NULL AUTO_INCREMENT,&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp; &amp;nbsp; PRIMARY KEY (id)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;▲ AUTO_INCREMENT를 사용하면 기본 값이 자동으로 설정되므로 기본 값을 설정하지 않아도 됨. 위 쿼리에서는 &quot;&lt;span style=&quot;color: #ee2323;&quot;&gt;DEFAULT 1&lt;/span&gt;&quot;을 쓰지 말아야 함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 데이터 형식에 맞지 않는 기본 값을 설정하는 경우&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 20px; width: 100%;&quot;&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;CREATE TABLE table_name (&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp; &amp;nbsp; column_name INT&lt;span&gt;&amp;nbsp;&lt;/span&gt;DEFAULT &lt;span style=&quot;color: #ee2323;&quot;&gt;'heavening.tistory.com'&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;NOT NULL&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;▲&lt;span&gt; 이 쿼리의 경우 컬럼의 데이터타입에 맞지 않는 기본 값을 설정했으므로 오류가 난다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>for Web/MySQL</category>
      <category>DEFAULT</category>
      <category>Invalid</category>
      <category>MySQL</category>
      <category>오류</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/103</guid>
      <comments>https://heavening.tistory.com/103#entry103comment</comments>
      <pubDate>Thu, 5 Jan 2023 14:45:54 +0900</pubDate>
    </item>
    <item>
      <title>Uncaught RangeError: Maximum call stack size exceeded 해결</title>
      <link>https://heavening.tistory.com/102</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;프로트엔트 작업중 javascript를 사용하다가 특이한 점을 발견하게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위지위그 에디터를 만드려고 작업중에 글자색과 배경색을 설정하는 버튼을 만들던 중 발견한 오류다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위지위그 에디터를 만들 때 색을 선택하는 부분이 필요한데 다른 사람이 만들어둔 것 보다는 input type=&quot;color&quot;(이하 #fontColor)를 이용하여 만들어 보려던 시도를 하고 있었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;368&quot; data-origin-height=&quot;50&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Wwzus/btrTa6mZs54/UkhQlJkYI4YkPhSuZ2FK2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Wwzus/btrTa6mZs54/UkhQlJkYI4YkPhSuZ2FK2K/img.png&quot; data-alt=&quot;엑셀처럼 버튼 아래에 색을 밑줄로 넣고 싶은데..&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Wwzus/btrTa6mZs54/UkhQlJkYI4YkPhSuZ2FK2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWwzus%2FbtrTa6mZs54%2FUkhQlJkYI4YkPhSuZ2FK2K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;368&quot; height=&quot;50&quot; data-origin-width=&quot;368&quot; data-origin-height=&quot;50&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;엑셀처럼 버튼 아래에 색을 밑줄로 넣고 싶은데..&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;505&quot; data-origin-height=&quot;243&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMKRrB/btrTaNBybK7/uoKjt7A50TSd4FuwqTv0Gk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMKRrB/btrTaNBybK7/uoKjt7A50TSd4FuwqTv0Gk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMKRrB/btrTaNBybK7/uoKjt7A50TSd4FuwqTv0Gk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMKRrB%2FbtrTaNBybK7%2FuoKjt7A50TSd4FuwqTv0Gk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;505&quot; height=&quot;243&quot; data-origin-width=&quot;505&quot; data-origin-height=&quot;243&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1670559309751&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div id=&quot;btnFontColor&quot;&amp;gt;
	C
&amp;lt;/div&amp;gt;
&amp;lt;input type=&quot;color&quot; id=&quot;fontColor&quot; value=&quot;#FF0000&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 #btnFontColor와 #fontColor가 따로 되어 있던 것을 약간 숨겨서 &quot;C&quot; 아래에 슥 넣어보았다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;320&quot; data-origin-height=&quot;48&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dzqpiR/btrTcFWr1S7/9NKQuhJiLIA4IMEhjmFOXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dzqpiR/btrTcFWr1S7/9NKQuhJiLIA4IMEhjmFOXk/img.png&quot; data-alt=&quot;모양은 대충 성공 했는데 100번 클릭해도 colorpicker는 안나오고 오류만 남&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dzqpiR/btrTcFWr1S7/9NKQuhJiLIA4IMEhjmFOXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdzqpiR%2FbtrTcFWr1S7%2F9NKQuhJiLIA4IMEhjmFOXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;320&quot; height=&quot;48&quot; data-origin-width=&quot;320&quot; data-origin-height=&quot;48&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;모양은 대충 성공 했는데 100번 클릭해도 colorpicker는 안나오고 오류만 남&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1670558865595&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div id=&quot;btnFontColor&quot;&amp;gt;
	&amp;lt;div&amp;gt;C&amp;lt;/div&amp;gt;
	&amp;lt;div style=&quot;사이즈를 설정하고 overflow:hidden; 함&quot;&amp;gt;&amp;lt;input type=&quot;color&quot; id=&quot;fontColor&quot; value=&quot;#FF0000&quot;&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 #fontColor의 일부를 가렸더니 문제가 생겼다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 JS에서 오류가 나기 시작한 것이다..;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1670558631455&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// jquery를 사용하는 조건입니다.

$('#btnFontColor').on({
	click: function() {
		$('#fontColor').click();
	}
});&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;162&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cnPfL6/btrTazQI3U0/kG69bcOFZ4OIKSEAypCf20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cnPfL6/btrTazQI3U0/kG69bcOFZ4OIKSEAypCf20/img.png&quot; data-alt=&quot;망..&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cnPfL6/btrTazQI3U0/kG69bcOFZ4OIKSEAypCf20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcnPfL6%2FbtrTazQI3U0%2FkG69bcOFZ4OIKSEAypCf20%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;640&quot; height=&quot;162&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;162&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;망..&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;찾아보니 $('#fontColor')[0].click(); 을 사용하면 오류가 나타나지 않는다고 한다;&lt;/p&gt;
&lt;pre id=&quot;code_1670560114299&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// jquery를 사용하는 조건입니다.

$('#btnFontColor').on({
	click: function() {
		$('#fontColor')[0].click();
	}
});&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;387&quot; data-origin-height=&quot;245&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bipCOi/btrTa6gmuro/rnNrNRNIYDMpUxPWKeiqwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bipCOi/btrTa6gmuro/rnNrNRNIYDMpUxPWKeiqwk/img.png&quot; data-alt=&quot;휴;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bipCOi/btrTa6gmuro/rnNrNRNIYDMpUxPWKeiqwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbipCOi%2FbtrTa6gmuro%2FrnNrNRNIYDMpUxPWKeiqwk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;387&quot; height=&quot;245&quot; data-origin-width=&quot;387&quot; data-origin-height=&quot;245&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;휴;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바꾸니까 잘됨..ㅠㅠ)b&lt;/p&gt;</description>
      <category>for Web/Javascript</category>
      <category>javascript</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/102</guid>
      <comments>https://heavening.tistory.com/102#entry102comment</comments>
      <pubDate>Fri, 9 Dec 2022 13:29:58 +0900</pubDate>
    </item>
    <item>
      <title>우분투 MySQL 서버 외부접속 허용 feat. AWS</title>
      <link>https://heavening.tistory.com/101</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;우분투에서 MySQL을 설치하고 외부(웹서버 또는 워크밴치 등의 MySQL 매니징 프로그램) 접속 허용하는 법에 대해 알아보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본 포스팅은 AWS 기준이지만 여타 다른 종류의 서버도 쉽게 적용하실 수 있을거예요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;※ 이 포스팅에서는 어느 곳에서든지 접속을 허용하는 세팅을 주로 작성하겠지만 보안상 방화벽에서도, MySQL에서도 특정 아이피만 허용하여 사용하시는 것을 추천드립니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 방화벽 인바운드 포트 허용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. MySQL 계정 및 DB 설정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 2-1. MySQL 접속 및 계정 확인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 2-2. 계정 추가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 2-3. DB 권한 확인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 2-4. DB 생성 및 권한 설정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. MySQL 설정파일 수정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. MySQL 서비스 재시작&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. &lt;span&gt;방화벽&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;인바운드 포트 허용&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 외부에서 MySQL에 접속할 때 사용하는 Port를 열어줘야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AWS의 경우 보안그룹으로 들어가 해당 MySQL 서버에 인바운드 규칙을 추가해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;612&quot; data-origin-height=&quot;254&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RtzX8/btrKQQ6HSdi/WE5xYp4UOrqCnRzpsaA350/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RtzX8/btrKQQ6HSdi/WE5xYp4UOrqCnRzpsaA350/img.png&quot; data-alt=&quot;인바운드 규칙에 3306포트 관련 부분을 등록합니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RtzX8/btrKQQ6HSdi/WE5xYp4UOrqCnRzpsaA350/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRtzX8%2FbtrKQQ6HSdi%2FWE5xYp4UOrqCnRzpsaA350%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;612&quot; height=&quot;254&quot; data-origin-width=&quot;612&quot; data-origin-height=&quot;254&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;인바운드 규칙에 3306포트 관련 부분을 등록합니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MySQL 포트를 따로 설정하지 않은 경우&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;TCP&lt;/b&gt;&lt;/span&gt; &lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;3306&lt;/b&gt;&lt;/span&gt; &lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;::/0&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;TCP&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;3306&lt;/span&gt; &lt;span style=&quot;color: #409d00;&quot;&gt;0.0.0.0/0&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;부분을 참고하여 추가합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MySQL 포트를 변경하신 분은 &lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;3306&lt;/b&gt;&lt;/span&gt; 부분을 변경하신 포트로 설정해주시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. MySQL 설정&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;※ [[[[[명령어 입력]]]]] 부분에서 괄호 다섯 번('[[[[[', ']]]]]') 부분은 빼고 입력해야합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;입력해야하는 부분이 잘 보이게 하려고 붙인겁니다. ㅎ;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 host가 %로 설정된 계정이 있고 그 계정이 사용 가능한 DB가 있다면 이 과정을 생략하셔도 됩니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2-1. mysql 접속 및 계정 확인&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 mysql을 실행하고 현재 계정을 확인해 봅시다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 사용할 계정이 이미 host가 %로 등록되어 있다면 2-2.를 건너뛰고 2-3.으로 가시기 바랍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1661762903568&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# [[[[[mysql -u root -p]]]]]
Enter password: [[[[[비밀번호 입력]]]]]
Welcome to the MySQL monitor.

......

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql&amp;gt; [[[[[use mysql;]]]]]
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql&amp;gt; [[[[[select host, user from user;]]]]]
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| localhost | debian-sys-maint |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
4 rows in set (0.00 sec)

mysql&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #defaeb;&quot;&gt;1) &lt;b&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;mysql&lt;/span&gt;&lt;/b&gt; -u root -p&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 명령어를 실행하고 비밀번호를 입력하여 &lt;b&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;mysql&lt;/span&gt;&lt;/b&gt;에 접속합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #defaeb;&quot;&gt;2) use &lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;mysql&lt;/span&gt;&lt;/b&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;mysql&lt;/span&gt;&lt;/b&gt; database를 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #defaeb;&quot;&gt;3) select &lt;b&gt;&lt;span style=&quot;color: #6164c6;&quot;&gt;host&lt;/span&gt;&lt;/b&gt;, &lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;user&lt;/span&gt;&lt;/b&gt; from user;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 현재 계정의 정보를 일부 확인합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;span style=&quot;color: #6164c6;&quot;&gt;&lt;b&gt;host&lt;/b&gt;&lt;/span&gt;는 접속을 시도하는 곳이고, &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;user&lt;/b&gt;&lt;/span&gt;는 계정의 아이디라고 보시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;span style=&quot;color: #6164c6;&quot;&gt;&lt;b&gt;host&lt;/b&gt;&lt;/span&gt;가 localhost이면 서버 내부에서 접근이 가능하고 특정 아이피 주소면 그 아이피에서만 접근이 가능합니다. 어디에서나 접근이 가능하게 하고 싶다면 %를 등록해야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 한 계정으로 여러 아이피를 접근허용하려면 계정추가를 같은 아이디로 여러 번 하시면 됩니다. (추가하는 법은 아래에서)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2-2. 계정 추가&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번엔 외부에서 접속할 계정을 추가해 봅시다.&lt;/p&gt;
&lt;pre id=&quot;code_1661821043657&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mysql&amp;gt; [[[[[create user '추가_계정_아이디'@'%' identified by '추가_계정_비밀번호';]]]]]
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql&amp;gt; [[[[[show variables like 'val%';]]]]]
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.00 sec)

mysql&amp;gt; [[[[[set global validate_password_policy=LOW;]]]]]
Query OK, 0 rows affected (0.00 sec)

mysql&amp;gt; [[[[[show variables like 'val%';]]]]]
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_check_user_name    | OFF   |
| validate_password_dictionary_file    |       |
| validate_password_length             | 8     |
| validate_password_mixed_case_count   | 1     |
| validate_password_number_count       | 1     |
| validate_password_policy             | LOW   |
| validate_password_special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.00 sec)

mysql&amp;gt; [[[[[create user '추가_계정_아이디'@'%' identified by '추가_계정_비밀번호';]]]]]
Query OK, 0 rows affected (0.00 sec)

mysql&amp;gt; [[[[[select host, user from user;]]]]]
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| %         | newid            |
| localhost | debian-sys-maint |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
5 rows in set (0.00 sec)

mysql&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #defaeb;&quot;&gt;1) create&amp;nbsp;user&amp;nbsp;&lt;span style=&quot;background-color: #d5ebfd;&quot;&gt;'&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;추가_계정_아이디&lt;/b&gt;&lt;/span&gt;'@'&lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;b&gt;%&lt;/b&gt;&lt;/span&gt;'&lt;/span&gt;&amp;nbsp;identified&amp;nbsp;by&amp;nbsp;'&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;추가_계정_비밀번호&lt;/b&gt;&lt;/span&gt;';&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;추가_계정_아이디&lt;/b&gt;&lt;/span&gt; : 아이디 (여기서는 &lt;span style=&quot;background-color: #000000; color: #f6e199;&quot;&gt;&lt;i&gt;&amp;nbsp;newid &lt;/i&gt;&lt;/span&gt;를 사용)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt; 추가_계정_비밀번호&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;: 비밀번호&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 만약에 명령어를 실행했는데 위와 같이 &lt;span style=&quot;background-color: #666666; color: #ffffff;&quot;&gt;ERROR 1819 (HY000): Your password does not satisfy the current policy requirements&lt;/span&gt; 문구가 나타났다면 생성하려고 입력한 비밀번호가 설정된 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;validate_password_policy&lt;/b&gt;&lt;/span&gt; 기준에 미치지 못하기 때문에 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문구가 나타나지 않았다면 6) 으로 가시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 계정을 볼 때는 &lt;span style=&quot;background-color: #d5ebfd;&quot;&gt;'&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;추가_계정_아이디&lt;/b&gt;&lt;/span&gt;'@'&lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;b&gt;범위&lt;/b&gt;&lt;/span&gt;'&lt;/span&gt; 이렇게 계정 아이디와 범위를 한 세트로 봐야합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계정의 아이디가 같아도 범위가 다르다면 여러 개 등록할 수 있습니다. 아래는 예시입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1662097560397&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 계정등록 예
+-----------------+------------------+
| host            | user             |
+-----------------+------------------+
| 111.222.333.444 | newid            |
| 111.222.333.445 | newid            |
| 666.777.888.999 | newid            |
| localhost       | newid            |
| localhost       | debian-sys-maint |
| localhost       | doonerf          |
| localhost       | mysql.session    |
| localhost       | mysql.sys        |
| localhost       | root             |
+-----------------+------------------+&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #defaeb;&quot;&gt;2) show variables like '&lt;b&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;val&lt;/span&gt;&lt;/b&gt;%';&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 계정을 추가하려는데 ERROR 1819 문구를 보셨다면 현재 비밀번호 등록에 대한 정책을 볼 필요가 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- show variables;라는 명령어를 실행하시면 여러 항목이 나타나는데 그 중에 &lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;val&lt;/b&gt;&lt;/span&gt;로 시작하는 항목만 보기 위한 명령어입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #defaeb;&quot;&gt;3) set&amp;nbsp;global&amp;nbsp;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;validate_password_policy&lt;/span&gt;&lt;/b&gt;=&lt;b&gt;&lt;span style=&quot;color: #8cb3be;&quot;&gt;LOW&lt;/span&gt;&lt;/b&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 전역에 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;validate_password_policy&lt;/b&gt; &lt;/span&gt;항목을 &lt;b&gt;&lt;span style=&quot;color: #8cb3be;&quot;&gt;LOW&lt;/span&gt;&lt;/b&gt;로 설정합니다. 이 명령어를 실행하기 전 MEDIUM의 경우 대소문자, 숫자, 특수문자를 모두 포함하여 validate_password_length 이상의 글자 수로 비밀번호를 설정해야 하지만 &lt;span style=&quot;color: #8cb3be;&quot;&gt;&lt;b&gt;LOW&lt;/b&gt;&lt;/span&gt;의 경우 validate_password_length 기준만 충족하면 비밀번호를 등록할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 본인이 보안을 위해 설정을 바꾸지 않으려면 다시 set global &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;validate_password_policy&lt;/b&gt;&lt;/span&gt;=기존값;을 실행하시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #defaeb;&quot;&gt;4) show variables like '&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;val&lt;/b&gt;&lt;/span&gt;%';&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 2)와 같습니다. 수정된 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;validate_password_policy&lt;/b&gt;&lt;/span&gt;를 확인하기 위해 한 번 더 실행해줬습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #defaeb;&quot;&gt;5) create&amp;nbsp;user&amp;nbsp;&lt;span style=&quot;background-color: #d5ebfd;&quot;&gt;'&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;추가_계정_아이디&lt;/b&gt;&lt;/span&gt;'@'&lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;b&gt;%&lt;/b&gt;&lt;/span&gt;'&lt;/span&gt;&amp;nbsp;identified&amp;nbsp;by&amp;nbsp;'&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;추가_계정_비밀번호&lt;/b&gt;&lt;/span&gt;';&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 1)과 같습니다. 만약에 또 &lt;span style=&quot;color: #ffffff; background-color: #666666;&quot;&gt;ERROR 1819&lt;/span&gt; 문구를 보셨다면 &lt;span&gt;validate_password_length&lt;span&gt; 이상의 글자 수로 비밀번호를 설정했는지 확인해 봅시다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #defaeb;&quot;&gt;6) select&amp;nbsp;host,&amp;nbsp;user&amp;nbsp;from&amp;nbsp;user;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;- 등록된 계정을 확인합니다. 추가된 계정이 목록에 나타났다면 성공입니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2-3. DB 권한 확인&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용할 계정이 특정 DB에 접근이 가능한 상태인지 확인해봅시다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이미 사용하고자 하는 DB에 대한 권한이 있다면 이 과정을 건너뛰고 3.으로 가시기 바랍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1661832167425&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mysql&amp;gt; [[[[[show grants for 'newid'@'%';]]]]]
+-----------------------------------+
| Grants for newid@%                |
+-----------------------------------+
| GRANT USAGE ON *.* TO 'newid'@'%' |
+-----------------------------------+
1 row in set (0.00 sec)

mysql&amp;gt; [[[[[show databases;]]]]]
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #defaeb;&quot;&gt;1) show&amp;nbsp;grants&amp;nbsp;for&amp;nbsp;&lt;span style=&quot;background-color: #d5ebfd;&quot;&gt;'&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;계정아이디&lt;/b&gt;&lt;/span&gt;'@'&lt;b&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;%&lt;/span&gt;&lt;/b&gt;'&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 계정아이디 부분에는 외부접속시 사용하실 MySQL 아이디를 쓰시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 이 명령어는 해당 계정의 권한을 확인할 때 사용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 이 명령어를 실행했는데 외부접속시 사용할 DB에 대한 권한설정 내용이 나타났다면 이 과정을 건너뛰셔도 됩니다. 3.번으로 가세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 위의 예제처럼 &lt;u&gt;GRANT USAGE ON *.* TO &lt;span style=&quot;background-color: #d5ebfd;&quot;&gt;'&lt;b&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;계정아이디&lt;/span&gt;&lt;/b&gt;'@'&lt;b&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;%&lt;/span&gt;&lt;/b&gt;'&lt;/span&gt;&lt;/u&gt; 한 줄만 나온다면 사용할 DB가 있는지 확인해봅니다. 확인 후 사용할 DB가 따로 존재한다면 2-4.에서 권한만 설정하고 DB 생성 부분은 건너뛰셔도 됩니다. 2)번으로..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #defaeb;&quot;&gt;2) show databases;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 현재 생성되어 있는 DB목록을 확인합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2-4. DB 생성 및 권한 설정&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;외부접속시 사용할 계정이 외부접속 후 사용할 DB에 대한 권한을 이미 가지고 있다면 이 과정을 생략하셔도 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇지 않은 분들은 이 과정에서 DB를 생성해보고 권한도 부여해 보겠습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1662091009319&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mysql&amp;gt; [[[[[create database newdb;]]]]]
Query OK, 1 row affected (0.01 sec)

mysql&amp;gt; [[[[[show databases;]]]]]
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| newdb              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql&amp;gt; [[[[[grant all privileges on newdb.* to 'newid'@'%';]]]]]
Query OK, 0 rows affected (0.01 sec)

mysql&amp;gt; [[[[[flush privileges;]]]]]
Query OK, 0 rows affected (0.00 sec)

mysql&amp;gt; [[[[[show grants for 'newid'@'%';]]]]]
+--------------------------------------------------+
| Grants for newid@%                               |
+--------------------------------------------------+
| GRANT USAGE ON *.* TO 'newid'@'%'                |
| GRANT ALL PRIVILEGES ON `newdb`.* TO 'newid'@'%' |
+--------------------------------------------------+
2 rows in set (0.00 sec)

mysql&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #defaeb;&quot;&gt;1)&amp;nbsp; create database &lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;DB이름&lt;/b&gt;&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 외부접속시 사용할 DB를 추가합니다. (여기서는&amp;nbsp;&lt;span style=&quot;background-color: #000000; color: #f6e199;&quot;&gt;&lt;i&gt; newdb&lt;/i&gt; &lt;/span&gt;) 이미 같은 이름의 DB가 있다면 &lt;span style=&quot;background-color: #666666; color: #ffffff;&quot;&gt;ERROR 1007 (HY000): Can't create database '&lt;span style=&quot;color: #99cefa;&quot;&gt;&lt;b&gt;DB이름&lt;/b&gt;&lt;/span&gt;'; database exists&lt;/span&gt; 오류가 나타납니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #defaeb;&quot;&gt;2) show&amp;nbsp;databases;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 잘 추가 됐다면 결과값 목록에 해당 DB가 있다는걸 확인하실 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #defaeb;&quot;&gt;3) grant all privileges on &lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;DB이름&lt;/b&gt;&lt;/span&gt;.* to&lt;/span&gt; &lt;span style=&quot;background-color: #d5ebfd;&quot;&gt;'&lt;b&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;계정아이디&lt;/span&gt;&lt;/b&gt;'@'&lt;b&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;%&lt;/span&gt;&lt;/b&gt;'&lt;/span&gt;&lt;span style=&quot;background-color: #defaeb;&quot;&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- DB에 대한 권한을 계정에 추가합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #defaeb;&quot;&gt;4) flush&amp;nbsp;privileges;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 부여된 권한을 바로 적용하기 위해 써주는 명령어입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- apache로 치면 service apache2 reload 같은 명령어라고 생각하시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #defaeb;&quot;&gt;5) show grants for &lt;/span&gt;&lt;span style=&quot;background-color: #d5ebfd;&quot;&gt;'&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;계정아이디&lt;/b&gt;&lt;/span&gt;'@'&lt;b&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;%&lt;/span&gt;&lt;/b&gt;'&lt;/span&gt;&lt;span style=&quot;background-color: #defaeb;&quot;&gt;;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 권한을 다시 확인해보면 DB에 대한 권한 내용이 추가 된 것을 확인할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #defaeb;&quot;&gt;6) 모든 작업이 끝났으면 exit; 명령어로 mysql에서 나오시면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. MySQL 설정파일 수정&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;외부접속을 허용하기 위해서 mysql 설정 파일의 내용을 수정해줘야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 아래의 명령어로 파일을 열어줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;굳이 vi(vim)가 아니어도 선호하는 에디터로 열고 수정하시면 됩니다.&lt;/p&gt;
&lt;pre id=&quot;code_1662099381710&quot; class=&quot;vim&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# vi /etc/mysql/mysql.conf.d/mysqld.cnf&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일을 열고 조금만 내려가보시다 보면 &lt;span style=&quot;background-color: #ffc9af;&quot;&gt;bind-address = 127.0.0.1&lt;/span&gt;을 찾으실 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 이미 이 값을 수정했다면 127.0.0.1이 아닌 다른 값이 입력되어 있을 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 부분을 아래와 같이 &lt;span style=&quot;background-color: #ffc9af;&quot;&gt;0.0.0.0&lt;/span&gt;으로 수정해 줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1662099422763&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 0.0.0.0
#
# * Fine Tuning
#
key_buffer_size         = 16M&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수정하셨다면 저장 후 에디터를 나오시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vi 저장 후 에디터 종료 [ Esc키 &amp;gt; :wq 입력 &amp;gt; Enter키 ]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. MySQL 서비스 재시작&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mysql을 재시작하여 방금 수정한 설정을 적용할 수 있도록 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 아래의 명령어가 아닌 systemctl restart mysql 등을 실행하셔도 됩니다.&lt;/p&gt;
&lt;pre id=&quot;code_1662100032995&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# service mysql restart&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 과정이 끝났습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수고하셨습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원하던 서버나 프로그램에서 접속이 되는지 확인해보세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즐프!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>for Web/MySQL</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/101</guid>
      <comments>https://heavening.tistory.com/101#entry101comment</comments>
      <pubDate>Mon, 29 Aug 2022 18:02:47 +0900</pubDate>
    </item>
    <item>
      <title>GIMP 복사하고 새 이미지 만들기 (feat. GIMP 다운로드)</title>
      <link>https://heavening.tistory.com/100</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;※ GIMP : 일명 '김프'라고 불리는 이 이미지 편집 툴은 무료입니다. 누구나 아래의 URL로 들어가 다운로드 받고 마음껏 사용하셔도 됩니다. 단, 포토샵만을 경험해본 분들은 많이 불편할 수도 있습니다. 단축키도 다릅니다. 하지만 사용법만 알면 무료로 고급 편집을 할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.gimp.org/downloads/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.gimp.org/downloads/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1658381144845&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;GIMP - Downloads&quot; data-og-description=&quot;The official download page for all things GIMP! Please only use the official binaries provided here unless you really, really know what you&amp;rsquo;re doing (it&amp;rsquo;s the only way to be&amp;nbsp;safe). We try to provide binaries in-time with regular releases, but may occa&quot; data-og-host=&quot;www.gimp.org&quot; data-og-source-url=&quot;https://www.gimp.org/downloads/&quot; data-og-url=&quot;https://www.gimp.org/downloads/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.gimp.org/downloads/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.gimp.org/downloads/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GIMP - Downloads&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;The official download page for all things GIMP! Please only use the official binaries provided here unless you really, really know what you&amp;rsquo;re doing (it&amp;rsquo;s the only way to be&amp;nbsp;safe). We try to provide binaries in-time with regular releases, but may occa&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.gimp.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 URL로 들어가서 난감하신 분들은 주황색 버튼을 눌러 다운받아주세요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;714&quot; data-origin-height=&quot;760&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4vRur/btrHOS1i85h/DKFGT8pVUW3K8QNGH6PhB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4vRur/btrHOS1i85h/DKFGT8pVUW3K8QNGH6PhB1/img.png&quot; data-alt=&quot;&amp;quot;Download GIMP X.XX.XX directly&amp;quot;버튼을 눌러주세요&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4vRur/btrHOS1i85h/DKFGT8pVUW3K8QNGH6PhB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4vRur%2FbtrHOS1i85h%2FDKFGT8pVUW3K8QNGH6PhB1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;714&quot; height=&quot;760&quot; data-origin-width=&quot;714&quot; data-origin-height=&quot;760&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&quot;Download GIMP X.XX.XX directly&quot;버튼을 눌러주세요&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제가 포토샵을 썼을 땐 클립보드에 복사하고 Ctrl + N 누르면 자동으로 새 이미지의 캔버스 사이즈가 클립보드의 이미지 사이즈로 입력되어 있었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;김프에서는 아니더라구요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;클립보드에 복사한 이미지 크기로 새 창 만들기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;상위 메뉴 : &lt;span style=&quot;letter-spacing: 0px;&quot;&gt;파일(F) &amp;gt; 만들기(T) &amp;gt; 클립보드에서(C)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;619&quot; data-origin-height=&quot;173&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6jMK5/btrHPeJU82J/b8bWJzPziDNAROrFhNLl2k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6jMK5/btrHPeJU82J/b8bWJzPziDNAROrFhNLl2k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6jMK5/btrHPeJU82J/b8bWJzPziDNAROrFhNLl2k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6jMK5%2FbtrHPeJU82J%2Fb8bWJzPziDNAROrFhNLl2k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;619&quot; height=&quot;173&quot; data-origin-width=&quot;619&quot; data-origin-height=&quot;173&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;단축키 : Shift + Ctrl + V&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메뉴가 어디 박혀있는지 찾고나면 간단합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 전이 문제죠..ㅋㅋ&lt;/p&gt;</description>
      <category>for Web/Design</category>
      <category>gimp</category>
      <category>김프</category>
      <category>다운로드</category>
      <category>단축키</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/100</guid>
      <comments>https://heavening.tistory.com/100#entry100comment</comments>
      <pubDate>Thu, 21 Jul 2022 14:40:33 +0900</pubDate>
    </item>
    <item>
      <title>우분투 (ubuntu) 20.04/22.04 LTS에 SSL을 적용해보자 + 자동갱신 - 아파치(apache2), letsencrypt</title>
      <link>https://heavening.tistory.com/98</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;간단 SSL 적용 방법을 알아봅시다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. certbot 설치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. python3-certbot-apache 설치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. libapache2-mpm-itk 설치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 아파치 도메인 연결 설정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 사이트 파일 등록&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 아파치 리로드&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. SSL 자동갱신&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;SSL 적용 전 준비&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;certbot 설치&lt;/h3&gt;
&lt;pre id=&quot;code_1653894863581&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# sudo apt install certbot&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;python3-certbot-apache 설치&lt;/h3&gt;
&lt;pre id=&quot;code_1653894909579&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# sudo apt install python3-certbot-apache&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;libapache2-mpm-itk 설치&lt;/h3&gt;
&lt;pre id=&quot;code_1677720123333&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# sudo apt install libapache2-mpm-itk&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;아파치 도메인 연결 설정&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 설정 디렉토리로 이동&lt;/p&gt;
&lt;pre id=&quot;code_1647928899093&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# cd /etc/apache2/sites-available&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음은 설정 파일 생성&lt;/p&gt;
&lt;pre id=&quot;code_1647929118799&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# vi 내도메인.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약에 내 도메인이 www.domain.com이라면 아래와 같이 입력한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #333333;&quot;&gt;&amp;nbsp;&lt;b&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;vi&lt;/span&gt; &lt;span style=&quot;color: #ffffff;&quot;&gt;www.domain.com.conf&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 내용은 아래와 같이 입력&lt;/p&gt;
&lt;pre id=&quot;code_1647929356121&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;VirtualHost *:80&amp;gt;
    ServerName domain.com
    ServerAlias www.domain.com
    
    DocumentRoot /home/username/www

    &amp;lt;Directory /home/username/www&amp;gt;
        Options FollowSymLinks MultiViews
        AllowOverride All
        require all granted

        php_value upload_max_filesize 100M
        php_value post_max_size 120M

        php_value session.cookie_httponly 1
        php_value session.use_strict_mode 1

        # php_value memory_limit 128M
        # php_value max_execution_time 30
        # php_value max_input_time 60
    &amp;lt;/Directory&amp;gt;

    AssignUserID username username

    ErrorLog ${APACHE_LOG_DIR}/domain.com-error.log
    CustomLog ${APACHE_LOG_DIR}/domain.com-access.log combined

&amp;lt;/VirtualHost&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 URL에 들어가면 몇 가지 사항을 입력하면 자동으로 conf 파일을 만들어준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://webmaster.cafe/tools/apache-conf-generator/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://webmaster.cafe/tools/apache-conf-generator/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1649053723749&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Apache2 환경설정 생성기 | 웹마스터카페&quot; data-og-description=&quot;webmaster cafe&quot; data-og-host=&quot;webmaster.cafe&quot; data-og-source-url=&quot;https://webmaster.cafe/tools/apache-conf-generator/&quot; data-og-url=&quot;https://webmaster.cafe/tools/apache-conf-generator/index.php&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://webmaster.cafe/tools/apache-conf-generator/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://webmaster.cafe/tools/apache-conf-generator/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Apache2 환경설정 생성기 | 웹마스터카페&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;webmaster cafe&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;webmaster.cafe&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;682&quot; data-origin-height=&quot;328&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HazAu/btryk3ExEj4/NHyHHVU66o5fk3hBRVB0P0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HazAu/btryk3ExEj4/NHyHHVU66o5fk3hBRVB0P0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HazAu/btryk3ExEj4/NHyHHVU66o5fk3hBRVB0P0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHazAu%2Fbtryk3ExEj4%2FNHyHHVU66o5fk3hBRVB0P0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;682&quot; height=&quot;328&quot; data-origin-width=&quot;682&quot; data-origin-height=&quot;328&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;사이트 파일 등록&lt;/h3&gt;
&lt;pre id=&quot;code_1649054053179&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# a2ensite www.domain.com.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;아파치 리로드&lt;/h3&gt;
&lt;pre id=&quot;code_1649054181481&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# systemctl reload apache2&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;SSL 적용&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1647929463241&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email admin@domain.com -d www.domain.com&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 준비가 끝나고 위의 명령어를 자신에게 맞게 입력하면 &quot;내도메인-le-ssl.conf&quot;와 같은 파일이 생성된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 &quot;&lt;span style=&quot;background-color: #333333; color: #ffffff;&quot;&gt; http://내도메인 &lt;/span&gt;&quot;으로 접속하면 &quot;&lt;span style=&quot;background-color: #333333; color: #ffffff;&quot;&gt;&amp;nbsp;http&lt;span style=&quot;color: #ffc1c8;&quot;&gt;&lt;b&gt;s&lt;/b&gt;&lt;/span&gt;://내도메인 &lt;/span&gt;&quot;으로 리다이렉션된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;SSL 자동갱신&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자동갱신을 위해서는 crontab에 아래의 문구를 추가한다.&lt;/p&gt;
&lt;pre id=&quot;code_1661494213242&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# crontab -e&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;( 내용 : 매월 1일마다 오전 5시에 갱신을 실행 )&lt;/p&gt;
&lt;pre id=&quot;code_1647930763970&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt; 0 5    1 * *   root    certbot renew --quiet&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가 후 모습은 아래와 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1647930754137&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
17 *    * * *   root    cd / &amp;amp;&amp;amp; run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / &amp;amp;&amp;amp; run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / &amp;amp;&amp;amp; run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / &amp;amp;&amp;amp; run-parts --report /etc/cron.monthly )
 0 5    1 * *   root    certbot renew --quiet
#&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>for Web/Linux</category>
      <category>Certbot</category>
      <category>letsencrypt</category>
      <category>ssl</category>
      <category>아파치</category>
      <category>우분투 20.04</category>
      <category>인증서 자동갱신</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/98</guid>
      <comments>https://heavening.tistory.com/98#entry98comment</comments>
      <pubDate>Tue, 22 Mar 2022 15:16:55 +0900</pubDate>
    </item>
    <item>
      <title>Virtual Box에 ubuntu 설치 + 고정IP 설정 (20.04 LTS)</title>
      <link>https://heavening.tistory.com/94</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.virtualbox.org/wiki/Downloads&quot;&gt;https://www.virtualbox.org/wiki/Downloads&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1640670112523&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Downloads &amp;ndash; Oracle VM VirtualBox&quot; data-og-description=&quot;Download VirtualBox Here you will find links to VirtualBox binaries and its source code. VirtualBox binaries By downloading, you agree to the terms and conditions of the respective license. If you're looking for the latest VirtualBox 6.0 packages, see Virt&quot; data-og-host=&quot;www.virtualbox.org&quot; data-og-source-url=&quot;https://www.virtualbox.org/wiki/Downloads&quot; data-og-url=&quot;https://www.virtualbox.org/wiki/Downloads&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.virtualbox.org/wiki/Downloads&quot; data-source-url=&quot;https://www.virtualbox.org/wiki/Downloads&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Downloads &amp;ndash; Oracle VM VirtualBox&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Download VirtualBox Here you will find links to VirtualBox binaries and its source code. VirtualBox binaries By downloading, you agree to the terms and conditions of the respective license. If you're looking for the latest VirtualBox 6.0 packages, see Virt&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.virtualbox.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인적으로 윈도우 서버에서 PHP를 구동시키는 것을 별로 좋아하지 않습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IIS에서 PHP가 100% 정상 작동이면 좋겠지만 그렇지 않은 시절 사용했다가 개똥같은 경우가 자주 발생하여 큰 고생은 아니지만 귀찮았던 기억이 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금은 100%에 도달 했을지 모르겠네요.. 윈도섭 안쓴지 3~4년 정도 된거 같아요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;암튼 그래서 저는 리눅스(우분투)에서 웹서버를 구축하는 편입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우분투를 설치할 다른 컴퓨터가 있다면 거기에 우분투를 설치해도 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 여분의 컴퓨터가 없다면 가상머신을 이용하여 가상 서버를 구축할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(여분의 컴퓨터가 있어도 가상서버를 만드는게 더 편할 수 있습니다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자신이 쓰는 OS에서 가상 서버를 만드려면 가상 서버가 돌아갈 수 있게 해주는 프로그램이 필요한데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다행히도 무료 프로그램이 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이미 이름과 다운로드 받을 수 있는 URL은 위에서 보셨겠죠..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;466&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHxe2z/btroYkuQs9F/BJEpA736SvS61W4qz9III0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHxe2z/btroYkuQs9F/BJEpA736SvS61W4qz9III0/img.png&quot; data-alt=&quot;가운데 아래 파란색 Windows hosts 클릭&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHxe2z/btroYkuQs9F/BJEpA736SvS61W4qz9III0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHxe2z%2FbtroYkuQs9F%2FBJEpA736SvS61W4qz9III0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;584&quot; height=&quot;466&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;466&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;가운데 아래 파란색 Windows hosts 클릭&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 최신 버전인&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;VirtualBox 6.1.30 platform packages&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;항목이 보이네요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;포스팅을 보는 시점에 따라서 버전이 다를 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;당황하지 않~고 그냥 맨 위에 항목에서 자신이 현재 사용중인 OS를 클릭하여 받습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;대부분 윈도우나 OSX를(맥을) 사용하고 계실테니 윈도우 사용자는 &lt;span style=&quot;color: #006dd7;&quot;&gt;Windows hosts&lt;/span&gt;를,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;OSX 사용자는 &lt;span style=&quot;color: #006dd7;&quot;&gt;OS X hosts&lt;/span&gt;를 클릭하여 다운로드 받습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #409d00; color: #ffffff;&quot;&gt;/* 우분투 설치파일 다운로드 시작&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Virtual Box를 다운로드하면서 설치 전에 이따가 사용할 우분투 설치파일을 미리 받아둡시다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 링크로 들어가 스크롤을 아래로 내리면 버전별로 디렉토리가 나타납니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://releases.ubuntu.com/&quot;&gt;https://releases.ubuntu.com/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1640674511861&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Ubuntu Releases&quot; data-og-description=&quot;There are 2 types of Ubuntu releases: Interim and LTS. Each Ubuntu LTS is maintained for 10 years total: 5 years of standard support + 5 years of ESM. Interim releases are maintained for 9 months. For the Ubuntu release cycle please see: The Ubuntu lifecyc&quot; data-og-host=&quot;releases.ubuntu.com&quot; data-og-source-url=&quot;https://releases.ubuntu.com/&quot; data-og-url=&quot;https://releases.ubuntu.com/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://releases.ubuntu.com/&quot; data-source-url=&quot;https://releases.ubuntu.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Ubuntu Releases&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;There are 2 types of Ubuntu releases: Interim and LTS. Each Ubuntu LTS is maintained for 10 years total: 5 years of standard support + 5 years of ESM. Interim releases are maintained for 9 months. For the Ubuntu release cycle please see: The Ubuntu lifecyc&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;releases.ubuntu.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 다룰 우분투의 버전은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;20.04 LTS&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;입니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;20.04/&lt;/span&gt;를 클릭.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;990&quot; data-origin-height=&quot;555&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqvq8k/btro37Ivgpd/5gfGkmVm6We7QBebq3SLk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqvq8k/btro37Ivgpd/5gfGkmVm6We7QBebq3SLk1/img.png&quot; data-alt=&quot;LTS버전 중 현재 최신 버전은 20.04 이다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqvq8k/btro37Ivgpd/5gfGkmVm6We7QBebq3SLk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcqvq8k%2Fbtro37Ivgpd%2F5gfGkmVm6We7QBebq3SLk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;990&quot; height=&quot;555&quot; data-origin-width=&quot;990&quot; data-origin-height=&quot;555&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;LTS버전 중 현재 최신 버전은 20.04 이다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Desktop image와 Server install image가 있는데 개인적으로 GUI를 지원하는 리눅스를 사용해 보질 못해서 그냥 Server install image로 다운받았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;64-bit PC (AMD64) server install image&lt;/span&gt;을 눌러 설치 파일을 다운받습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;990&quot; data-origin-height=&quot;193&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mdXVP/btro07WiuE3/FyDFHnEHQmdMiLXBcUKflk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mdXVP/btro07WiuE3/FyDFHnEHQmdMiLXBcUKflk/img.png&quot; data-alt=&quot;ubuntu-20.04.3-live-server-amd64.iso&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mdXVP/btro07WiuE3/FyDFHnEHQmdMiLXBcUKflk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmdXVP%2Fbtro07WiuE3%2FFyDFHnEHQmdMiLXBcUKflk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;990&quot; height=&quot;193&quot; data-origin-width=&quot;990&quot; data-origin-height=&quot;193&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;ubuntu-20.04.3-live-server-amd64.iso&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #409d00; color: #ffffff;&quot;&gt;우분투 설치파일 다운로드 맺음 */&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞에서 Virtual Box 다운로드가 끝나면 실행해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Zo3H0/btroZF0iHXx/WQ4ppqPgj0knkztyq6ihF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Zo3H0/btroZF0iHXx/WQ4ppqPgj0knkztyq6ihF1/img.png&quot; data-alt=&quot;Next 막 누르면 설치 완료&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Zo3H0/btroZF0iHXx/WQ4ppqPgj0knkztyq6ihF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZo3H0%2FbtroZF0iHXx%2FWQ4ppqPgj0knkztyq6ihF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;495&quot; height=&quot;387&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Next 막 누르면 설치 완료&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;가상머신 생성&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치된 Virtual Box를 실행시킵니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;260&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/U9aq0/btroZFFYKAN/73ktXBk0FWu3mte7koOHg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/U9aq0/btroZFFYKAN/73ktXBk0FWu3mte7koOHg1/img.png&quot; data-alt=&quot;새 가상머신을 만듭시다!&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/U9aq0/btroZFFYKAN/73ktXBk0FWu3mte7koOHg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FU9aq0%2FbtroZFFYKAN%2F73ktXBk0FWu3mte7koOHg1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;544&quot; height=&quot;260&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;260&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;새 가상머신을 만듭시다!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실행해 보면 오른쪽에 펭귄이 보이는데 펭귄 바로 위 메뉴에&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;새로 만들기(N)&lt;/span&gt;가 보입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;눌러 봅시다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;414&quot; data-origin-height=&quot;398&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2sTMQ/btrpaJtiaZ0/M4HooAhdLi20fgFhWtYBr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2sTMQ/btrpaJtiaZ0/M4HooAhdLi20fgFhWtYBr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2sTMQ/btrpaJtiaZ0/M4HooAhdLi20fgFhWtYBr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2sTMQ%2FbtrpaJtiaZ0%2FM4HooAhdLi20fgFhWtYBr1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;414&quot; height=&quot;398&quot; data-origin-width=&quot;414&quot; data-origin-height=&quot;398&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이름과 설치경로인 머신 폴더는 원하시는 것으로 바꾸셔도 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 Linux와 Ubuntu (64-bit)는 정확히 선택해주세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;414&quot; data-origin-height=&quot;396&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dtS9le/btrpcM4jQ5f/8nldmZAQyYfyYulzAujSs0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dtS9le/btrpcM4jQ5f/8nldmZAQyYfyYulzAujSs0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dtS9le/btrpcM4jQ5f/8nldmZAQyYfyYulzAujSs0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdtS9le%2FbtrpcM4jQ5f%2F8nldmZAQyYfyYulzAujSs0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;414&quot; height=&quot;396&quot; data-origin-width=&quot;414&quot; data-origin-height=&quot;396&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메모리는 여유가 된다면 추천 메모리 크기보다 높게 설정하셔도 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;412&quot; data-origin-height=&quot;398&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zzm7O/btro8wAYcgE/K6ayyl6XQJGvy9ZulzNzT0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zzm7O/btro8wAYcgE/K6ayyl6XQJGvy9ZulzNzT0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zzm7O/btro8wAYcgE/K6ayyl6XQJGvy9ZulzNzT0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fzzm7O%2Fbtro8wAYcgE%2FK6ayyl6XQJGvy9ZulzNzT0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;412&quot; height=&quot;398&quot; data-origin-width=&quot;412&quot; data-origin-height=&quot;398&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;398&quot; data-origin-height=&quot;430&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dEDsqd/btrpcMQMx2P/EyvessWM0d0tAVimDQ3dhk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dEDsqd/btrpcMQMx2P/EyvessWM0d0tAVimDQ3dhk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dEDsqd/btrpcMQMx2P/EyvessWM0d0tAVimDQ3dhk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdEDsqd%2FbtrpcMQMx2P%2FEyvessWM0d0tAVimDQ3dhk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;398&quot; height=&quot;430&quot; data-origin-width=&quot;398&quot; data-origin-height=&quot;430&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나중에 VMWare도 같이 사용하실 분들은 VMDK를 선택해주시면 돼요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제가 알기로 VMWare는 유료입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;398&quot; data-origin-height=&quot;428&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kIwHe/btroXMSXwDm/aVtwEK43ht4csEB1ccboik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kIwHe/btroXMSXwDm/aVtwEK43ht4csEB1ccboik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kIwHe/btroXMSXwDm/aVtwEK43ht4csEB1ccboik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkIwHe%2FbtroXMSXwDm%2FaVtwEK43ht4csEB1ccboik%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;398&quot; height=&quot;428&quot; data-origin-width=&quot;398&quot; data-origin-height=&quot;428&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 더 빠르다니 고정 크기로 선택했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;398&quot; data-origin-height=&quot;426&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5gwI1/btro39ffRip/5ZpnmmWd5i5pLkBF8emGRK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5gwI1/btro39ffRip/5ZpnmmWd5i5pLkBF8emGRK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5gwI1/btro39ffRip/5ZpnmmWd5i5pLkBF8emGRK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5gwI1%2Fbtro39ffRip%2F5ZpnmmWd5i5pLkBF8emGRK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;398&quot; height=&quot;426&quot; data-origin-width=&quot;398&quot; data-origin-height=&quot;426&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단순히 연습용이라면 용량은 대충 10 GB로 하셔도 될 것 같아요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전 혹시 몰라서 30 GB로 했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;만들기&lt;/span&gt; 버튼을 누르면 시간이 몇 분 걸리면서 가상머신이 생성됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가상머신 시작에 앞서 설정부터 해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;451&quot; data-origin-height=&quot;181&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KXVnn/btro6J1B3qV/YHSDv95RDgEUIURx2KdUek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KXVnn/btro6J1B3qV/YHSDv95RDgEUIURx2KdUek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KXVnn/btro6J1B3qV/YHSDv95RDgEUIURx2KdUek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKXVnn%2Fbtro6J1B3qV%2FYHSDv95RDgEUIURx2KdUek%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;451&quot; height=&quot;181&quot; data-origin-width=&quot;451&quot; data-origin-height=&quot;181&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설정창이 뜨면 왼쪽 탭에서 저장소를 선택해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ 이 단계를 진행하기 위해선 우분투 설치파일이 필요합니다. (위에서 다운로드 받은게 끝나면 진행해주세요.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컨트롤러: IDE &amp;gt; '비어 있음' 클릭 &amp;gt; 우측 CD모양 버튼 클릭.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;735&quot; data-origin-height=&quot;221&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ySlpO/btroXNxyJLP/mrpTwEvoSa9IbmCD68ZMwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ySlpO/btroXNxyJLP/mrpTwEvoSa9IbmCD68ZMwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ySlpO/btroXNxyJLP/mrpTwEvoSa9IbmCD68ZMwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FySlpO%2FbtroXNxyJLP%2FmrpTwEvoSa9IbmCD68ZMwk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;735&quot; height=&quot;221&quot; data-origin-width=&quot;735&quot; data-origin-height=&quot;221&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;273&quot; data-origin-height=&quot;112&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ld60o/btro38tQFnt/h0n42kPjkJwwvDimmYcjH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ld60o/btro38tQFnt/h0n42kPjkJwwvDimmYcjH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ld60o/btro38tQFnt/h0n42kPjkJwwvDimmYcjH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fld60o%2Fbtro38tQFnt%2Fh0n42kPjkJwwvDimmYcjH1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;273&quot; height=&quot;112&quot; data-origin-width=&quot;273&quot; data-origin-height=&quot;112&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;디스크 파일 선택...&lt;/span&gt;을 클릭하고 아까 다운로드 받은 우분투 설치 파일을 선택해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작성일 기준으로 저는 &lt;span style=&quot;color: #ef6f53;&quot;&gt;ubuntu-20.04.3-live-server-amd64.iso&lt;/span&gt; 파일이었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;선택 후 아래와 같이 '비어 있음' 부분이 바뀌었다면 성공입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;516&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGKv5i/btrpcMJ1AUQ/ekBGeZlITk5narMo822x8k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGKv5i/btrpcMJ1AUQ/ekBGeZlITk5narMo822x8k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGKv5i/btrpcMJ1AUQ/ekBGeZlITk5narMo822x8k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGKv5i%2FbtrpcMJ1AUQ%2FekBGeZlITk5narMo822x8k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;740&quot; height=&quot;516&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;516&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음은 왼쪽 탭에서 네트워크를 선택해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우분투를 설치하고 apt를 이용해 이것저것 설치하려면 아래와 같이 설정해줘야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나중에 samba를 이용해서 윈도우와 직접적으로 파일을 공유할 경우에도 &lt;span style=&quot;color: #ef6f53;&quot;&gt;어댑터에 브리지&lt;/span&gt;가 선택되어 있어야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;이름(N)&lt;/span&gt; 부분의 항목은 현재 인터넷이 되는 랜선이 직접적으로 꼽혀있는 랜카드를 선택해 주시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;738&quot; data-origin-height=&quot;516&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDlqL6/btroXMk1zNW/KBia2a2k0btIt8oljnanak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDlqL6/btroXMk1zNW/KBia2a2k0btIt8oljnanak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDlqL6/btroXMk1zNW/KBia2a2k0btIt8oljnanak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDlqL6%2FbtroXMk1zNW%2FKBia2a2k0btIt8oljnanak%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;738&quot; height=&quot;516&quot; data-origin-width=&quot;738&quot; data-origin-height=&quot;516&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 설정을 마쳤다면 오른쪽 아래 &lt;span style=&quot;color: #006dd7;&quot;&gt;확인&lt;/span&gt;을 눌러줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 가상머신을 구동할 준비는 다 되었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;시작(T)&lt;/span&gt; 버튼을 눌러 가상머신을 실행줍시다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;269&quot; data-origin-height=&quot;167&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/27DZ4/btrpcN3e5i2/AtJciSzx8oCISHlKrmEdU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/27DZ4/btrpcN3e5i2/AtJciSzx8oCISHlKrmEdU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/27DZ4/btrpcN3e5i2/AtJciSzx8oCISHlKrmEdU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F27DZ4%2FbtrpcN3e5i2%2FAtJciSzx8oCISHlKrmEdU0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;269&quot; height=&quot;167&quot; data-origin-width=&quot;269&quot; data-origin-height=&quot;167&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;656&quot; data-origin-height=&quot;150&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHIKvF/btro081XijE/4ibyljqy0DOsYrN6PJWJK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHIKvF/btro081XijE/4ibyljqy0DOsYrN6PJWJK1/img.png&quot; data-alt=&quot;창이 뜨더니 막 머라고 함;;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHIKvF/btro081XijE/4ibyljqy0DOsYrN6PJWJK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHIKvF%2Fbtro081XijE%2F4ibyljqy0DOsYrN6PJWJK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;656&quot; height=&quot;150&quot; data-origin-width=&quot;656&quot; data-origin-height=&quot;150&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;창이 뜨더니 막 머라고 함;;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;창이 안뜰 경우 방금 누른&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;시작(T)&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;버튼 자리를 확인해봅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;표시(H)&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;버튼으로 바뀌어 있다면 그걸 눌러주세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;revenue_unit_wrap&quot;&gt;
  &lt;div class=&quot;revenue_unit_item adsense responsive&quot;&gt;
    &lt;div class=&quot;revenue_unit_info&quot;&gt;반응형&lt;/div&gt;
    &lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async=&quot;async&quot;&gt;&lt;/script&gt;
    &lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-host=&quot;ca-host-pub-9691043933427338&quot; data-ad-client=&quot;ca-pub-4780157712246283&quot; data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
    &lt;script&gt;(adsbygoogle = window.adsbygoogle || []).push({});&lt;/script&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;조금 기다리면 선택해줘야 하는 사항이 몇 가지 나타납니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 그림을 보고 따라해 주시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/begf58/btro0723GuM/tzFGopyAxQRjqU4OurXDE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/begf58/btro0723GuM/tzFGopyAxQRjqU4OurXDE0/img.png&quot; data-alt=&quot;언어는 영어로 했습니다. 한국어는 없더라구요.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/begf58/btro0723GuM/tzFGopyAxQRjqU4OurXDE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbegf58%2Fbtro0723GuM%2FtzFGopyAxQRjqU4OurXDE0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;672&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;언어는 영어로 했습니다. 한국어는 없더라구요.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bWRXdM/btroYjQeWge/e8cuQKv3DdsnGIN2yavstk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bWRXdM/btroYjQeWge/e8cuQKv3DdsnGIN2yavstk/img.png&quot; data-alt=&quot;혹시 몰라서 인스톨러를 업데이트했습니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bWRXdM/btroYjQeWge/e8cuQKv3DdsnGIN2yavstk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbWRXdM%2FbtroYjQeWge%2Fe8cuQKv3DdsnGIN2yavstk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;672&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;혹시 몰라서 인스톨러를 업데이트했습니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bipF5b/btro6bxkD9b/GjTdIPP86zVgRDWPrzgWvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bipF5b/btro6bxkD9b/GjTdIPP86zVgRDWPrzgWvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bipF5b/btro6bxkD9b/GjTdIPP86zVgRDWPrzgWvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbipF5b%2Fbtro6bxkD9b%2FGjTdIPP86zVgRDWPrzgWvK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;672&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #777777;&quot;&gt;▼ IP는 사설IP(192.168.xxx.xxx)로 나옵니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #777777;&quot;&gt;DHCPv4 192.168.10.29/24 부분입니다.&lt;/span&gt;&lt;span style=&quot;color: #777777;&quot;&gt;지금은 유동IP(DHCP)로 설정되어 있는데 설치가 끝나면 고정IP(static)로 바꿀예정입니다.&lt;/span&gt;&lt;span style=&quot;color: #777777;&quot;&gt;자세한 내용은 설치 후에 말씀드릴게요.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CxtQv/btro12VdJXg/UUiNpxWd7kzz9OcmPEPAx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CxtQv/btro12VdJXg/UUiNpxWd7kzz9OcmPEPAx0/img.png&quot; data-alt=&quot;유동IP&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CxtQv/btro12VdJXg/UUiNpxWd7kzz9OcmPEPAx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCxtQv%2Fbtro12VdJXg%2FUUiNpxWd7kzz9OcmPEPAx0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;672&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;유동IP&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YnRVi/btrpcNIVZ8X/qXpKUHfK4qkOWLXKBOWukK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YnRVi/btrpcNIVZ8X/qXpKUHfK4qkOWLXKBOWukK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YnRVi/btrpcNIVZ8X/qXpKUHfK4qkOWLXKBOWukK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYnRVi%2FbtrpcNIVZ8X%2FqXpKUHfK4qkOWLXKBOWukK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;672&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmcI0k/btroVqWFwqW/mW9BGYkB0Vb5BAugzw6R91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmcI0k/btroVqWFwqW/mW9BGYkB0Vb5BAugzw6R91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmcI0k/btroVqWFwqW/mW9BGYkB0Vb5BAugzw6R91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmcI0k%2FbtroVqWFwqW%2FmW9BGYkB0Vb5BAugzw6R91%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;672&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s8CGo/btroXN5kgfJ/ylMxt5XIgjssjfuAKHtlR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s8CGo/btroXN5kgfJ/ylMxt5XIgjssjfuAKHtlR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s8CGo/btroXN5kgfJ/ylMxt5XIgjssjfuAKHtlR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs8CGo%2FbtroXN5kgfJ%2FylMxt5XIgjssjfuAKHtlR1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;672&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MNSRi/btro8v9Vitw/VrPRTl0Y5Zk1HyMD9Wl9b0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MNSRi/btro8v9Vitw/VrPRTl0Y5Zk1HyMD9Wl9b0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MNSRi/btro8v9Vitw/VrPRTl0Y5Zk1HyMD9Wl9b0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMNSRi%2Fbtro8v9Vitw%2FVrPRTl0Y5Zk1HyMD9Wl9b0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;672&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Irhvu/btro8wAZRcn/0ZovnVEk6XNFdHIDS5EKo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Irhvu/btro8wAZRcn/0ZovnVEk6XNFdHIDS5EKo0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Irhvu/btro8wAZRcn/0ZovnVEk6XNFdHIDS5EKo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIrhvu%2Fbtro8wAZRcn%2F0ZovnVEk6XNFdHIDS5EKo0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;672&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;▼ 계정 정보를 입력해주세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;Your name&lt;/span&gt;: 사용자의 이름&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;Your server's name&lt;/span&gt;: 서버의 이름&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;Pick a username&lt;/span&gt;: &lt;u&gt;로그인할 때 사용할&lt;/u&gt; 아이디&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;Choose a password&lt;/span&gt;: &lt;u&gt;로그인할 때 사용할&lt;/u&gt;&amp;nbsp;패스워드&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;Confirm your password&lt;/span&gt;: &lt;u&gt;로그인할 때 사용할&lt;/u&gt;&amp;nbsp;패스워드 확인&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uMOYt/btroWCoYQpA/C9Y0XhA91FupLutAxHsGf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uMOYt/btroWCoYQpA/C9Y0XhA91FupLutAxHsGf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uMOYt/btroWCoYQpA/C9Y0XhA91FupLutAxHsGf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuMOYt%2FbtroWCoYQpA%2FC9Y0XhA91FupLutAxHsGf0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;672&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;▼&amp;nbsp;Virtual Box는 서버의 역할로는 좋지만 SSH로 사용하기에는 좀 불편합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 따로 SSH 소프트웨어를 사용하여, 가상서버에 원격으로 접속해 사용하게되는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 원격으로 서버에 접속하려면 OpenSSH를 설치해야합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우분투를 설치하면서 이 부분을 체크하면 따로 설치할 필요없이 원격으로 SSH를 사용할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yT0oa/btroZFF0IsI/AoQYZ91ZlOKcLhoSoicFv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yT0oa/btroZFF0IsI/AoQYZ91ZlOKcLhoSoicFv1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yT0oa/btroZFF0IsI/AoQYZ91ZlOKcLhoSoicFv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyT0oa%2FbtroZFF0IsI%2FAoQYZ91ZlOKcLhoSoicFv1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;672&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;▼ 추가로 설치할 소프트웨어를 선택하여 설치 할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전 다 안쓸거라 따로 체크하지 않았습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5hwwl/btrpcO8Yf9x/Y6Y5hkfAF7NDycETmEOgu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5hwwl/btrpcO8Yf9x/Y6Y5hkfAF7NDycETmEOgu0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5hwwl/btrpcO8Yf9x/Y6Y5hkfAF7NDycETmEOgu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5hwwl%2FbtrpcO8Yf9x%2FY6Y5hkfAF7NDycETmEOgu0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;672&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;▼ 설치 시작&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8qmFj/btrpcPUnodh/FKIpxiAKu7Dkf0s6mTGwEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8qmFj/btrpcPUnodh/FKIpxiAKu7Dkf0s6mTGwEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8qmFj/btrpcPUnodh/FKIpxiAKu7Dkf0s6mTGwEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8qmFj%2FbtrpcPUnodh%2FFKIpxiAKu7Dkf0s6mTGwEK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;672&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;▼ 설치가 끝나고 &lt;span style=&quot;color: #006dd7;&quot;&gt;Reboot Now&lt;/span&gt; 버튼이 나타났습니다. 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* CD롬 언마운트를 실패했다고 난리 치는 경우가 있는데 이땐 그냥 엔터키를 눌러주세요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qXQ0O/btrpdoIZUYu/HKRIHEkXDPH42HobOCqed1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qXQ0O/btrpdoIZUYu/HKRIHEkXDPH42HobOCqed1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qXQ0O/btrpdoIZUYu/HKRIHEkXDPH42HobOCqed1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqXQ0O%2FbtrpdoIZUYu%2FHKRIHEkXDPH42HobOCqed1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;672&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;▼ 재부팅 후 이런식으로 가만히 있는 경우가 있는데, 한참을 기다려도 이런식으로 오래 멈춰있다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서도 엔터키를 눌러주시면 됩니다. (그럼 아이디 물어봐요..ㅎ;)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/O0Wgp/btro9HI4jP0/XiI3w8KIcF8vRwcbO77kW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/O0Wgp/btro9HI4jP0/XiI3w8KIcF8vRwcbO77kW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/O0Wgp/btro9HI4jP0/XiI3w8KIcF8vRwcbO77kW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FO0Wgp%2Fbtro9HI4jP0%2FXiI3w8KIcF8vRwcbO77kW0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;672&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;▼ '아까쓴서버명 login:'이 나타났다. 아이디와 비밀번호를 입력해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yHhlm/btro6aef6Fp/OlXAIV9SOMEwXAqL9xMY31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yHhlm/btro6aef6Fp/OlXAIV9SOMEwXAqL9xMY31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yHhlm/btro6aef6Fp/OlXAIV9SOMEwXAqL9xMY31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyHhlm%2Fbtro6aef6Fp%2FOlXAIV9SOMEwXAqL9xMY31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;672&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;798&quot; data-origin-height=&quot;104&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c6RW85/btrpaJtlq4x/9p156pgrkKLU33pyTY36h1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c6RW85/btrpaJtlq4x/9p156pgrkKLU33pyTY36h1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c6RW85/btrpaJtlq4x/9p156pgrkKLU33pyTY36h1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc6RW85%2FbtrpaJtlq4x%2F9p156pgrkKLU33pyTY36h1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;798&quot; height=&quot;104&quot; data-origin-width=&quot;798&quot; data-origin-height=&quot;104&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;▼ 로그인에 성공하면 빨간 상자 안에 서버의 몇 가지 정보를 확인할 수 있다. (로그인 할 때마다 나와요!)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 IPv4 address for enp0s3: 192.168.&lt;span style=&quot;color: #ef6f53;&quot;&gt;xxx&lt;/span&gt;.&lt;span style=&quot;color: #6164c6;&quot;&gt;yyy&amp;nbsp;&lt;/span&gt;부분을 잘 봐둬야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이따가 고정IP로 바꾸는 설정을 할 때 &lt;span style=&quot;color: #ef6f53;&quot;&gt;xxx&lt;/span&gt; 부분이 무엇인지 입력해야합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저의 경우는 &lt;span style=&quot;color: #ef6f53;&quot;&gt;xxx&lt;/span&gt; 부분 값이 &lt;span style=&quot;color: #ffffff; background-color: #781b33;&quot;&gt;10&lt;/span&gt; 이네요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* 이 IP는 설치할 때 봤던 IP와 다른 IP일 수 있는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유동IP(DHCP)로 설정되어 있어서 서버가 꺼졌다 켜질 때마다 IP가 바뀔 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;673&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Mgi8h/btrpcMpMnL3/3vkVag2nzhIXkxgEIPQmQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Mgi8h/btrpcMpMnL3/3vkVag2nzhIXkxgEIPQmQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Mgi8h/btrpcMpMnL3/3vkVag2nzhIXkxgEIPQmQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMgi8h%2FbtrpcMpMnL3%2F3vkVag2nzhIXkxgEIPQmQk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;673&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;673&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작업전에 root 권한을 획득합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;56&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s3cQZ/btrpdqn8jNH/Fn56CKtZ4W7KoPVazfhIM1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s3cQZ/btrpdqn8jNH/Fn56CKtZ4W7KoPVazfhIM1/img.png&quot; data-alt=&quot;위 로그인에 사용한 비번 입력&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s3cQZ/btrpdqn8jNH/Fn56CKtZ4W7KoPVazfhIM1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs3cQZ%2Fbtrpdqn8jNH%2FFn56CKtZ4W7KoPVazfhIM1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;220&quot; height=&quot;56&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;56&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;위 로그인에 사용한 비번 입력&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1641189652741&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ sudo su&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보시면 $부분이 #으로 변한걸 확인할 수 있습니다. $가 일반 사용자라면 #은 root 권한인 상태라고 보시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;root 권한을 얻었다면 이제 해당 서버를 고정IP로 바꿔줄 것입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1641180866256&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# vi /etc/netplan/00-installer-config.yaml&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ etc/netplan/ 경로에 00-installer-config.yaml 파일이 없다면 yaml 확장자를 가진 다른 파일을 찾으시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 저와 같은 버전의 우분투를 설치하셨으면 00-installer-config.yaml 파일이 있을거예요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일 안의 내용을 모두 지우고 아래와 같이 입력해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 내용 그대로를 입력할 때 addresses와 gateway4는 대부분 저와 다른 값을 입력해야합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;addresses: [192.168.&lt;span style=&quot;background-color: #953b34; color: #ffffff;&quot;&gt;10&lt;/span&gt;.&lt;span style=&quot;color: #ffffff; background-color: #1a5490;&quot;&gt;71&lt;/span&gt;/24] 에서 아까 위에서 봤던 본인 서버의 &lt;span style=&quot;color: #ef6f53;&quot;&gt;xxx&lt;/span&gt;값을 &lt;span style=&quot;color: #ffffff; background-color: #781b33;&quot;&gt;10&lt;/span&gt;에다가 넣으시고 &lt;span style=&quot;color: #ffffff; background-color: #1a5490;&quot;&gt;71&lt;/span&gt; 부분에는 지금 내부망에서 사용하지 않는 IP주소로 넣어주시면 됩니다.&lt;/p&gt;
&lt;pre id=&quot;code_1640679059630&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;network:
  ethernets:
    enp0s3:
      dhcp4: false
      addresses: [192.168.10.71/24]
      gateway4: 192.168.10.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
  version: 2&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오타 없이 잘 입력하셨으면 저장하고 나옵니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ffffff; background-color: #409d00;&quot;&gt;/* vim 에디터 저장 후 종료하는 법 시작&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 키보드 Esc 키&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. :wq 입력 후 엔터&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ffffff; background-color: #409d00;&quot;&gt;vim 에디터 저장 후 종료하는 법 맺음 */&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고정IP 세팅은 끝났습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서버를 리부팅해서 설정한 IP를 제대로 받아오는지 확인해 보면 끝 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리부팅 명령어&lt;/p&gt;
&lt;pre id=&quot;code_1641190016235&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# reboot&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;▼ 리부팅 후 다시 로그인 해보면 IP가 아까 설정한 IP로 바뀐 것이 확인됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;74&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lwrER/btrpHGbDmkB/Hs9pVW34xMly05HPShhYk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lwrER/btrpHGbDmkB/Hs9pVW34xMly05HPShhYk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lwrER/btrpHGbDmkB/Hs9pVW34xMly05HPShhYk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlwrER%2FbtrpHGbDmkB%2FHs9pVW34xMly05HPShhYk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;580&quot; height=&quot;74&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;74&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수고하셨습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아까 위에서 말씀드린 것과 같이 VirtualBox에서 작업을 하는 것은 불편합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GUI로 된 윈도우즈 같은 OS를 사용하다가 &lt;span style=&quot;letter-spacing: 0px;&quot;&gt;갑자기 검은 화면에 글씨만 빽옥한 CLI를 사용하는데 큰 불편함과 막막함을 느끼시는 분들이 많이 계실 것이라 생각합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;같은 검은화면이라도 글자에 색을 넣고 마우스로 일부 작업을 가능하게 하는 소프트웨어가 있어 소개시켜드립니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Putty보다는 훨씬 편하실거예요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;무료구요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;아래 주소에서 다운받아 사용하시면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://mobaxterm.mobatek.net/download.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://mobaxterm.mobatek.net/download.html&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아까 고정IP로 설정해뒀으니 세션을 추가해서 사용하시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 앞으로는 VirtualBox에서 가상머신을 실행할 때 &lt;span style=&quot;color: #006dd7;&quot;&gt;헤드리스 시작(H)&lt;/span&gt;을 누르시면 가상머신 창이 따로 안뜰거예요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;139&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c2mca7/btrpJQSGPxx/huI2R1Hkm9W0qgkPwklnJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c2mca7/btrpJQSGPxx/huI2R1Hkm9W0qgkPwklnJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c2mca7/btrpJQSGPxx/huI2R1Hkm9W0qgkPwklnJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc2mca7%2FbtrpJQSGPxx%2FhuI2R1Hkm9W0qgkPwklnJk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;403&quot; height=&quot;139&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;139&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 헤드리스로 시작하셨는데 콘솔창을 보고 싶으시면 &lt;span style=&quot;color: #006dd7;&quot;&gt;시작(T)&lt;/span&gt; 버튼 위치에 &lt;span style=&quot;color: #006dd7;&quot;&gt;표시(H)&lt;/span&gt;라는 문구로 바뀌어 있는데 이것을 누르시면 콘솔창이 뜰거예요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;382&quot; data-origin-height=&quot;132&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dAApvP/btrpGz4XGEV/VUcPPur9VK6btv5iXGA53k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dAApvP/btrpGz4XGEV/VUcPPur9VK6btv5iXGA53k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dAApvP/btrpGz4XGEV/VUcPPur9VK6btv5iXGA53k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdAApvP%2FbtrpGz4XGEV%2FVUcPPur9VK6btv5iXGA53k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;382&quot; height=&quot;132&quot; data-origin-width=&quot;382&quot; data-origin-height=&quot;132&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 포스팅은 여기까지 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 다들 고생하십쇼.&lt;/p&gt;</description>
      <category>for Web/Linux</category>
      <category>ubuntu</category>
      <category>VirtualBox</category>
      <category>버추얼박스</category>
      <category>우분투</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/94</guid>
      <comments>https://heavening.tistory.com/94#entry94comment</comments>
      <pubDate>Tue, 28 Dec 2021 16:21:44 +0900</pubDate>
    </item>
    <item>
      <title>로컬 개발환경 세팅 Virtual Box  ubuntu 20.04 LTS + PHP 8.1 + Laravel 8</title>
      <link>https://heavening.tistory.com/93</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;로컬에 개발환경을 세팅하기 기록.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인적인 기록이며, 비효율적이거나 잘못된 부분이 있을 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;부족하거나 추가해야하는 부분이 있다면 조언 부탁드립니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인적으로 윈도우에서 IIS로 PHP를 돌렸을 때 발생하던 자잘한 버그와&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비트나미에서 고생한 경험으로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IIS 및 XAMPP 사용을 하지 않기 위해 Virtual Box + Samba를 사용했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 선택이 어떤 치명적인 이슈가 있는지는 잘 모르겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;프로그램 및 버전&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 포스팅에서 사용된 프로그램과 버전입니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 370px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 10px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 10px;&quot;&gt;&lt;b&gt;Windows&lt;br /&gt;&lt;/b&gt; &lt;span style=&quot;color: #409d00;&quot;&gt;10&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 10px;&quot;&gt;&lt;b&gt;PHP Storm&lt;br /&gt;&lt;/b&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;2021.3&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 10px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 10px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 40px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 40px;&quot;&gt;&lt;b&gt;Virtual Box&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;6.1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 40px;&quot;&gt;&lt;b&gt;Ubuntu&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;20.04 LTS&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 40px;&quot;&gt;&lt;b&gt;Apache&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;2.4.41&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;&lt;b&gt;PHP&lt;br /&gt;&lt;/b&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;8.1.0&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 40px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 40px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 40px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 40px;&quot;&gt;&lt;b&gt;MariaDB&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;10.3.32&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 40px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 40px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 40px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 40px;&quot;&gt;&lt;b&gt;Composer&lt;br /&gt;&lt;/b&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;2.1.14&lt;/span&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 60px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 60px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 60px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 60px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 60px;&quot;&gt;&lt;b&gt;Laravel&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Installer&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;4.2.9&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 60px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 60px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 60px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 60px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 60px;&quot;&gt;&lt;b&gt;Laravel&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Framework&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;8.77.1&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 40px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 40px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 40px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 40px;&quot;&gt;&lt;b&gt;Samba&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;4.13.14&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;&lt;b&gt;Git&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;2.25.1&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;프로그램 설치&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;OS: Windows 10&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따로 설명하지 않겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나중에 포스팅 완성하고 생각나면 뭔가 더 써보던지 해보겠습니다. (과연?;;)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;IDE: PHP Storm&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.jetbrains.com/ko-kr/phpstorm/download/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.jetbrains.com/ko-kr/phpstorm/download/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1640585144694&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;다운로드 PhpStorm: 빠르고 스마트한 PHP IDE&quot; data-og-description=&quot;&quot; data-og-host=&quot;www.jetbrains.com&quot; data-og-source-url=&quot;https://www.jetbrains.com/ko-kr/phpstorm/download/&quot; data-og-url=&quot;https://www.jetbrains.com/ko-kr/phpstorm/download/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.jetbrains.com/ko-kr/phpstorm/download/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.jetbrains.com/ko-kr/phpstorm/download/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;다운로드 PhpStorm: 빠르고 스마트한 PHP IDE&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.jetbrains.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PHP 개발툴로 일단 유료입니다.. 쿨럭...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 유료인 값을 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PHP 웹개발로 수익이 있다면 도전해 볼만합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수익이 없는 사람들은 평가판을 사용해보세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 링크에서 회원가입 후 30일 평가판을 사용하실 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가끔 할인 이벤트를 하는데 지금은 하고 있을지 모르겠네요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;굳이 이 개발툴을 사용하지 않아도 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VSCode, Netbeans 등 다른 무료 개발툴들도 많습니다. (무료 개발툴 종류 엄청 많아요!)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;VM: Virtual Box&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;- Ubuntu&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VirtualBox에 우분투 설치는 아래 링크에 설명해뒀습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우분투 버전은 20.04 LTS입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://heavening.tistory.com/94&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://heavening.tistory.com/94&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1641191284757&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Virtual Box에 ubuntu 설치 + 고정IP 설정 (20.04 LTS)&quot; data-og-description=&quot;https://www.virtualbox.org/wiki/Downloads Downloads &amp;ndash; Oracle VM VirtualBox Download VirtualBox Here you will find links to VirtualBox binaries and its source code. VirtualBox binaries By downloadin..&quot; data-og-host=&quot;heavening.tistory.com&quot; data-og-source-url=&quot;https://heavening.tistory.com/94&quot; data-og-url=&quot;https://heavening.tistory.com/94&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/fLGrM/hyMWtHPlnC/ncezz1HUmC9m50ket0QLa1/img.png?width=584&amp;amp;height=466&amp;amp;face=0_0_584_466,https://scrap.kakaocdn.net/dn/cjlQ3Q/hyMXPvHXz4/QfVpz0y1HKOh4R60Kxnr40/img.png?width=584&amp;amp;height=466&amp;amp;face=0_0_584_466,https://scrap.kakaocdn.net/dn/5VaBM/hyMWufFVWo/yw8TaVToYIxua9NHwvNPr1/img.png?width=990&amp;amp;height=555&amp;amp;face=0_0_990_555&quot;&gt;&lt;a href=&quot;https://heavening.tistory.com/94&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://heavening.tistory.com/94&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/fLGrM/hyMWtHPlnC/ncezz1HUmC9m50ket0QLa1/img.png?width=584&amp;amp;height=466&amp;amp;face=0_0_584_466,https://scrap.kakaocdn.net/dn/cjlQ3Q/hyMXPvHXz4/QfVpz0y1HKOh4R60Kxnr40/img.png?width=584&amp;amp;height=466&amp;amp;face=0_0_584_466,https://scrap.kakaocdn.net/dn/5VaBM/hyMWufFVWo/yw8TaVToYIxua9NHwvNPr1/img.png?width=990&amp;amp;height=555&amp;amp;face=0_0_990_555');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Virtual Box에 ubuntu 설치 + 고정IP 설정 (20.04 LTS)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;https://www.virtualbox.org/wiki/Downloads Downloads &amp;ndash; Oracle VM VirtualBox Download VirtualBox Here you will find links to VirtualBox binaries and its source code. VirtualBox binaries By downloadin..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;heavening.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;- Apache + PHP 8 + MariaDB&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;APM 설치는 아래 링크를 참고해주세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인적으로 MariaDB를 써보고 싶어서 MySQL은 다루지 않을 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹서버도 Nginx보다 Apache를 더 선호하므로 한동안은 Apache만 사용하다가 나중에 기회가 되면 Nginx를 올릴 예정입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://heavening.tistory.com/88&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://heavening.tistory.com/88&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1641191667388&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;우분투 ubuntu 20.04 LTS APM(Apache2 + PHP8 + MariaDB) 설치&quot; data-og-description=&quot;APM&amp;nbsp;설치에&amp;nbsp;앞서 서버는 AWS를 사용했으며, 이 것을 기준으로 기록합니다. (다른 클라우드를 사용하시는 분들께는 죄송합니다.) 또한 작성의 속도를 높이기 위해 모든 문장에 높임법을 사용하지 &quot; data-og-host=&quot;heavening.tistory.com&quot; data-og-source-url=&quot;https://heavening.tistory.com/88&quot; data-og-url=&quot;https://heavening.tistory.com/88&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/qVM7O/hyMXIXEAQ0/e9XOOBIx9TRsGvSNQVAw1K/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200,https://scrap.kakaocdn.net/dn/p1Zdo/hyMWq5nA2S/EAKD8So5EMmR75nqo2k0yK/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200,https://scrap.kakaocdn.net/dn/xCFwn/hyMXLNCdwB/H2P5MQrApSgtD23dRHs3G0/img.png?width=674&amp;amp;height=1024&amp;amp;face=0_0_674_1024&quot;&gt;&lt;a href=&quot;https://heavening.tistory.com/88&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://heavening.tistory.com/88&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/qVM7O/hyMXIXEAQ0/e9XOOBIx9TRsGvSNQVAw1K/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200,https://scrap.kakaocdn.net/dn/p1Zdo/hyMWq5nA2S/EAKD8So5EMmR75nqo2k0yK/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200,https://scrap.kakaocdn.net/dn/xCFwn/hyMXLNCdwB/H2P5MQrApSgtD23dRHs3G0/img.png?width=674&amp;amp;height=1024&amp;amp;face=0_0_674_1024');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;우분투 ubuntu 20.04 LTS APM(Apache2 + PHP8 + MariaDB) 설치&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;APM&amp;nbsp;설치에&amp;nbsp;앞서 서버는 AWS를 사용했으며, 이 것을 기준으로 기록합니다. (다른 클라우드를 사용하시는 분들께는 죄송합니다.) 또한 작성의 속도를 높이기 위해 모든 문장에 높임법을 사용하지&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;heavening.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;- Laravel&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라라벨 설치는 아래에 정리해뒀습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(링크 안에 컴포저 설치링크도 있어요.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://heavening.tistory.com/90&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://heavening.tistory.com/90&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1641191918361&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;우분투 Ubuntu 20.04 라라벨 Laravel 8.X 설치 (초보도 가능)&quot; data-og-description=&quot;※ 작성속도를 높이기 위해 높임말을 사용하지 않았습니다. 설치에 앞서 라라벨(Laravel)은 PHP기반의 널리 사용되는 프레임워크이다. 오늘은 우분투(Ubuntu) 20.04 LTS에 라라벨을 설치해 보겠다. 라라&quot; data-og-host=&quot;heavening.tistory.com&quot; data-og-source-url=&quot;https://heavening.tistory.com/90&quot; data-og-url=&quot;https://heavening.tistory.com/90&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/d0okqT/hyMWtA2wWI/P5aFC7i8NSoOpsoPrKIgK0/img.png?width=231&amp;amp;height=240&amp;amp;face=0_0_231_240,https://scrap.kakaocdn.net/dn/cWgq3o/hyMWvS9oPS/8n2mtZIqY6ITXbEJXr14KK/img.png?width=231&amp;amp;height=240&amp;amp;face=0_0_231_240,https://scrap.kakaocdn.net/dn/bEdlYi/hyMWtVlMAF/7l5x6uDEJPLdtVocWwpOk0/img.jpg?width=1134&amp;amp;height=534&amp;amp;face=0_0_1134_534&quot;&gt;&lt;a href=&quot;https://heavening.tistory.com/90&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://heavening.tistory.com/90&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/d0okqT/hyMWtA2wWI/P5aFC7i8NSoOpsoPrKIgK0/img.png?width=231&amp;amp;height=240&amp;amp;face=0_0_231_240,https://scrap.kakaocdn.net/dn/cWgq3o/hyMWvS9oPS/8n2mtZIqY6ITXbEJXr14KK/img.png?width=231&amp;amp;height=240&amp;amp;face=0_0_231_240,https://scrap.kakaocdn.net/dn/bEdlYi/hyMWtVlMAF/7l5x6uDEJPLdtVocWwpOk0/img.jpg?width=1134&amp;amp;height=534&amp;amp;face=0_0_1134_534');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;우분투 Ubuntu 20.04 라라벨 Laravel 8.X 설치 (초보도 가능)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;※ 작성속도를 높이기 위해 높임말을 사용하지 않았습니다. 설치에 앞서 라라벨(Laravel)은 PHP기반의 널리 사용되는 프레임워크이다. 오늘은 우분투(Ubuntu) 20.04 LTS에 라라벨을 설치해 보겠다. 라라&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;heavening.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;- Samba&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저 같은 경우는 개발하는데 편의상 samba를 설치했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보안상으로 이게 맞는지는 모르겠지만 일단은 저도 연습중이라 일단은 samba를 사용했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;포스팅은 준비중입니다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;- Git&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;흠 조금 써보면 별거 아니겠지만 저같은 초보들을 위해 이 포스팅 역시 따로 작성할 계획입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>for Web/Linux</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/93</guid>
      <comments>https://heavening.tistory.com/93#entry93comment</comments>
      <pubDate>Mon, 27 Dec 2021 11:33:23 +0900</pubDate>
    </item>
    <item>
      <title>우분투 Ubuntu 20.04 LTS 컴포저 Composer 설치하기</title>
      <link>https://heavening.tistory.com/91</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #444444;&quot;&gt;요즘 뭐만 하면 컴포저(Composer)로 설치해야하는데 컴포저를 모르면 여러가지로 불편한 것 같습니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #444444;&quot;&gt;이번에는 우분투(Ubuntu) 서버에 컴포저를 설치해보겠습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Composer 설치에 앞서&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가상서버는 iwinv.kr에서 생성했습니다.&lt;br /&gt;작성속도를 높이기 위해 모든 문장에 높임법을 사용하지 않겠습니다. (여기부터 시작)&lt;br /&gt;본인도 초보라 문제 해결 능력은 떨어지지만 앞으로 자주하게 될 것 같아 여기에 기록한다.&lt;br /&gt;&lt;br /&gt;먼저 서버는 저번에 작성한 포스팅을 토대로 iwinv에서 서버 생성 후 APMariaDB로 설치했다.&lt;br /&gt;최근 iwinv에서 뭔가 큰 사고가 있었다는데 (잘 모름) 그래도 iwinv가 가성비가 좋은 것은 어쩔 수 없다 (고 한다..)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://heavening.tistory.com/88&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://heavening.tistory.com/88&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1638773944591&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;우분투 ubuntu 20.04 LTS APM(Apache2 + PHP8 + MariaDB) 설치&quot; data-og-description=&quot;APM&amp;nbsp;설치에&amp;nbsp;앞서 서버는 AWS를 사용했으며, 이 것을 기준으로 기록합니다. (다른 클라우드를 사용하시는 분들께는 죄송합니다.) 또한 작성의 속도를 높이기 위해 모든 문장에 높임법을 사용하지 &quot; data-og-host=&quot;heavening.tistory.com&quot; data-og-source-url=&quot;https://heavening.tistory.com/88&quot; data-og-url=&quot;https://heavening.tistory.com/88&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/06X7a/hyMB4UD7ZA/USPrH4ssBkxrjuw93dLSM1/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200,https://scrap.kakaocdn.net/dn/oKzTc/hyMAxc5HgF/DlbWduVnzSn4ajEemSZ4pK/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200,https://scrap.kakaocdn.net/dn/IcEkm/hyMAtaGoxU/8D25Bh38d7yx8k0tkp2Qpk/img.png?width=674&amp;amp;height=1024&amp;amp;face=0_0_674_1024&quot;&gt;&lt;a href=&quot;https://heavening.tistory.com/88&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://heavening.tistory.com/88&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/06X7a/hyMB4UD7ZA/USPrH4ssBkxrjuw93dLSM1/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200,https://scrap.kakaocdn.net/dn/oKzTc/hyMAxc5HgF/DlbWduVnzSn4ajEemSZ4pK/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200,https://scrap.kakaocdn.net/dn/IcEkm/hyMAtaGoxU/8D25Bh38d7yx8k0tkp2Qpk/img.png?width=674&amp;amp;height=1024&amp;amp;face=0_0_674_1024');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;우분투 ubuntu 20.04 LTS APM(Apache2 + PHP8 + MariaDB) 설치&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;APM&amp;nbsp;설치에&amp;nbsp;앞서 서버는 AWS를 사용했으며, 이 것을 기준으로 기록합니다. (다른 클라우드를 사용하시는 분들께는 죄송합니다.) 또한 작성의 속도를 높이기 위해 모든 문장에 높임법을 사용하지&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;heavening.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하기의 모든 명령어는 sudo su를 실행 후 입력하는 것을 기본으로 한다.&lt;br /&gt;iwinv의 경우 별도 작업없이 서버 생성 후 메일로 온 비밀번호를 사용하여 로그인 하면 루트 권한이므로 이 작업은 안해도 된다.&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;bash&quot; data-file=&quot;ubuntu ssh&quot; data-line=&quot;1&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;ubuntu@ip-000-000-000-000:~$ sudo su
root@ip-000-000-000-000:/#&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴포저 설치는 간단하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 후 마지막에 버전을 확인하려고 composer -v 를 입력했지만 관리자 계정으로는 컴포저를 실행할 때 경고메세지를 띄웠다.&lt;br /&gt;이번에는 컴포저로 무언가 설치 하려는게 아니니 신경쓰지말고 엔터를 눌러주자. (하단 12번째 줄 참고)&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;bash&quot; data-file=&quot;ubuntu ssh&quot; data-line=&quot;1,8-10&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;root@ip-000-000-000-000:/# curl -sS https://getcomposer.org/installer | php
All settings correct for using Composer
Downloading...

Composer (version 2.1.8) successfully installed to: /root/composer.phar
Use it: php composer.phar

root@ip-000-000-000-000:/# mv composer.phar /usr/local/bin/composer
root@ip-000-000-000-000:/# chmod +x /usr/local/bin/composer
root@ip-000-000-000-000:/# composer -v
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Continue as root/super user [yes]?
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.1.8 2021-09-15 13:55:14

Usage:
  command [options] [arguments]

Options:
  -h, --help                     Display this help message
  -q, --quiet                    Do not output any message
  -V, --version                  Display this application version
      --ansi                     Force ANSI output
      --no-ansi                  Disable ANSI output
  -n, --no-interaction           Do not ask any interactive question
      --profile                  Display timing and memory usage information
      --no-plugins               Whether to disable plugins.
  -d, --working-dir=WORKING-DIR  If specified, use the given directory as working directory.
      --no-cache                 Prevent use of the cache
  -v|vv|vvv, --verbose           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Available commands:
  about                Shows a short information about Composer.
  archive              Creates an archive of this composer package.
  browse               Opens the package's repository URL or homepage in your browser.
  cc                   Clears composer's internal package cache.
  check-platform-reqs  Check that platform requirements are satisfied.
  clear-cache          Clears composer's internal package cache.
  clearcache           Clears composer's internal package cache.
  config               Sets config options.
  create-project       Creates new project from a package into given directory.
  depends              Shows which packages cause the given package to be installed.
  diagnose             Diagnoses the system to identify common errors.
  dump-autoload        Dumps the autoloader.
  dumpautoload         Dumps the autoloader.
  exec                 Executes a vendored binary/script.
  fund                 Discover how to help fund the maintenance of your dependencies.
  global               Allows running commands in the global composer dir ($COMPOSER_HOME).
  help                 Displays help for a command
  home                 Opens the package's repository URL or homepage in your browser.
  i                    Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.
  info                 Shows information about packages.
  init                 Creates a basic composer.json file in current directory.
  install              Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.
  licenses             Shows information about licenses of dependencies.
  list                 Lists commands
  outdated             Shows a list of installed packages that have updates available, including their latest version.
  prohibits            Shows which packages prevent the given package from being installed.
  reinstall            Uninstalls and reinstalls the given package names
  remove               Removes a package from the require or require-dev.
  require              Adds required packages to your composer.json and installs them.
  run                  Runs the scripts defined in composer.json.
  run-script           Runs the scripts defined in composer.json.
  search               Searches for packages.
  self-update          Updates composer.phar to the latest version.
  selfupdate           Updates composer.phar to the latest version.
  show                 Shows information about packages.
  status               Shows a list of locally modified packages.
  suggests             Shows package suggestions.
  u                    Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file.
  update               Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file.
  upgrade              Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file.
  validate             Validates a composer.json and composer.lock.
  why                  Shows which packages cause the given package to be installed.
  why-not              Shows which packages prevent the given package from being installed.&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작성일 기준으로 2.1.8 버전의 컴포저가 설치됐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>for Web/Linux</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/91</guid>
      <comments>https://heavening.tistory.com/91#entry91comment</comments>
      <pubDate>Mon, 6 Dec 2021 16:02:23 +0900</pubDate>
    </item>
    <item>
      <title>우분투 Ubuntu 20.04 라라벨 Laravel 8.X 설치 (초보도 가능)</title>
      <link>https://heavening.tistory.com/90</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;※ 작성속도를 높이기 위해 높임말을 사용하지 않았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;설치에 앞서&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라라벨(Laravel)은 PHP기반의 널리 사용되는 프레임워크이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 우분투(Ubuntu) 20.04 LTS에 라라벨을 설치해 보겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라라벨 설치 방법은 몇 가지가 있지만 여기서는 라라벨 인스톨러를 설치하고 인스톨러를 이용하여 라라벨을 설치하는 방법을 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;APM 설치&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 포스팅은 아파치(Apache), PHP, MariaDB가 설치되어 있다는 가정하에 진행한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아직 설치되지 않은 사람들은 아래의 링크를 확인하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://heavening.tistory.com/88&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://heavening.tistory.com/88&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1638778900126&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;우분투 ubuntu 20.04 LTS APM(Apache2 + PHP8 + MariaDB) 설치&quot; data-og-description=&quot;APM&amp;nbsp;설치에&amp;nbsp;앞서 서버는 AWS를 사용했으며, 이 것을 기준으로 기록합니다. (다른 클라우드를 사용하시는 분들께는 죄송합니다.) 또한 작성의 속도를 높이기 위해 모든 문장에 높임법을 사용하지 &quot; data-og-host=&quot;heavening.tistory.com&quot; data-og-source-url=&quot;https://heavening.tistory.com/88&quot; data-og-url=&quot;https://heavening.tistory.com/88&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/06X7a/hyMB4UD7ZA/USPrH4ssBkxrjuw93dLSM1/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200,https://scrap.kakaocdn.net/dn/oKzTc/hyMAxc5HgF/DlbWduVnzSn4ajEemSZ4pK/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200,https://scrap.kakaocdn.net/dn/IcEkm/hyMAtaGoxU/8D25Bh38d7yx8k0tkp2Qpk/img.png?width=674&amp;amp;height=1024&amp;amp;face=0_0_674_1024&quot;&gt;&lt;a href=&quot;https://heavening.tistory.com/88&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://heavening.tistory.com/88&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/06X7a/hyMB4UD7ZA/USPrH4ssBkxrjuw93dLSM1/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200,https://scrap.kakaocdn.net/dn/oKzTc/hyMAxc5HgF/DlbWduVnzSn4ajEemSZ4pK/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200,https://scrap.kakaocdn.net/dn/IcEkm/hyMAtaGoxU/8D25Bh38d7yx8k0tkp2Qpk/img.png?width=674&amp;amp;height=1024&amp;amp;face=0_0_674_1024');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;우분투 ubuntu 20.04 LTS APM(Apache2 + PHP8 + MariaDB) 설치&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;APM&amp;nbsp;설치에&amp;nbsp;앞서 서버는 AWS를 사용했으며, 이 것을 기준으로 기록합니다. (다른 클라우드를 사용하시는 분들께는 죄송합니다.) 또한 작성의 속도를 높이기 위해 모든 문장에 높임법을 사용하지&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;heavening.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;컴포저 설치&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 컴포저 및 기타 라라벨을 구동하는데 있어 필요한 라이브러리가 설치되어 있어야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴포저 설치는 아래의 링크를 참조.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://heavening.tistory.com/91&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://heavening.tistory.com/91&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1638778907485&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;우분투 Ubuntu 20.04 LTS 컴포저 Composer 설치하기&quot; data-og-description=&quot;요즘 뭐만 하면 컴포저(Composer)로 설치해야하는데 컴포저를 모르면 여러가지로 불편한 것 같습니다. 이번에는 우분투(Ubuntu) 서버에 컴포저를 설치해보겠습니다. Composer 설치에 앞서 가상서버는 i&quot; data-og-host=&quot;heavening.tistory.com&quot; data-og-source-url=&quot;https://heavening.tistory.com/91&quot; data-og-url=&quot;https://heavening.tistory.com/91&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/i645P/hyMCagfwev/uJGFThY2bTScOkTFKJyHgk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bbipWP/hyMB3anLkb/MVXBeHkRZ61RBopOBgkXq1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://heavening.tistory.com/91&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://heavening.tistory.com/91&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/i645P/hyMCagfwev/uJGFThY2bTScOkTFKJyHgk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bbipWP/hyMB3anLkb/MVXBeHkRZ61RBopOBgkXq1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;우분투 Ubuntu 20.04 LTS 컴포저 Composer 설치하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;요즘 뭐만 하면 컴포저(Composer)로 설치해야하는데 컴포저를 모르면 여러가지로 불편한 것 같습니다. 이번에는 우분투(Ubuntu) 서버에 컴포저를 설치해보겠습니다. Composer 설치에 앞서 가상서버는 i&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;heavening.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;라이브러리 설치&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 명령어 실행시 apt가 안되면 apt-get으로 입력&lt;/p&gt;
&lt;pre id=&quot;code_1638775823186&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo apt install openssl php-mbstring php-mcrypt php-tokenizer&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;사용자 추가 및 설정&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라라벨을 이용하여 웹페이지를 만들 사용자 추가.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서는 사용자명을 &lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;tester&lt;/span&gt;&lt;/b&gt;로 기술.&lt;/p&gt;
&lt;pre id=&quot;code_1638776388998&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo adduser &amp;lt;사용자명&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1641459093240&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo adduser tester&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자세한 사용자 추가법은 아래 링크 참조.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://heavening.tistory.com/89&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://heavening.tistory.com/89&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1638776328906&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;리눅스 Linux 우분투 Ubuntu 사용자 추가&quot; data-og-description=&quot;사용자를 추가하기 전 관리자 권한을 가져옵니다. ubuntu@ip-000-000-000-000:~$ sudo su root@ip-000-000-000-000:/# 사용자 추가 우분투에서 사용자 추가하는 방법은 아래와 같습니다. ( 상세설명은 하기에.. )..&quot; data-og-host=&quot;heavening.tistory.com&quot; data-og-source-url=&quot;https://heavening.tistory.com/89&quot; data-og-url=&quot;https://heavening.tistory.com/89&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/c8s0Wp/hyMAomVmGZ/AqTwBkBJrAv1MYbml5Nk00/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200,https://scrap.kakaocdn.net/dn/b1XtxY/hyMBXBg3q2/aahbuvaOC2pc4H90IVwp7K/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200&quot;&gt;&lt;a href=&quot;https://heavening.tistory.com/89&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://heavening.tistory.com/89&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/c8s0Wp/hyMAomVmGZ/AqTwBkBJrAv1MYbml5Nk00/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200,https://scrap.kakaocdn.net/dn/b1XtxY/hyMBXBg3q2/aahbuvaOC2pc4H90IVwp7K/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;리눅스 Linux 우분투 Ubuntu 사용자 추가&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;사용자를 추가하기 전 관리자 권한을 가져옵니다. ubuntu@ip-000-000-000-000:~$ sudo su root@ip-000-000-000-000:/# 사용자 추가 우분투에서 사용자 추가하는 방법은 아래와 같습니다. ( 상세설명은 하기에.. )..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;heavening.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자를 추가하면 해당 사용자의 홈디렉토리가 자동으로 생성된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;방금 추가한 사용자의 홈디렉토리로 이동하자. (홈디렉토리를 모르겠으면 위의 링크 참조)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이동 후에는 계정 추가 후 구동할 홈페이지 파일을 생성 또는 업로드 할 디렉토리를 생성한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(웹파일을 저장하는 디렉토리는 대부분 www, public, html, public_html 등으로 쓰곤한다. 이름을 정하는건 자유지만 대부분이 사용하는 이름으로 생성해두면 여러 명이 참여하는 프로젝트를 진행중에 다른 작업자들이 한 눈에 알아보기 편할 것이다. 여기서는 www로 진행하겠다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 권한도 변경해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(홈디렉토리에 해당 계정이 아닌 관리자 계정으로 디렉토리를 생성하면 소유자가 관리자 계정으로 되어 있음)&lt;/p&gt;
&lt;pre id=&quot;code_1638777455598&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd /home/&amp;lt;사용자명&amp;gt;/
mkdir www
chown &amp;lt;사용자명&amp;gt;:&amp;lt;사용자명&amp;gt; www
cd www&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1641459070232&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd /home/tester/
mkdir www
chown tester:tester www
cd www&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;드디어 설치하기 위한 준비가 끝났다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라라벨 인스톨러 설치로 넘어가 보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;라라벨 설치&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞서 말했듯이 이 포스팅에서는 라라벨 인스톨러를 설치하고 그 인스톨러를 이용하여 필요한 계정에 라라벨을 설치할 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 인스톨러를 설치하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;라라벨 인스톨러 설치&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라라벨 인스톨러를 설치하기 앞서 인스톨러를 설치할 디렉토리로 이동하여야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;필자의 경우 /root 디렉토리에 설치할 것이므로 해당 디렉토리로 이동 후 컴포저를 이용하여 인스톨러를 설치할 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 root 계정으로 접속된 상태일 때를 가정하여 아래의 과정을 따라하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(※ 보안을 위해.. root 계정으로 SSH 접속 및 작업하는 것은 추천되지 않으며, 관리자 권한을 가진 다른 계정을 생성 후 작업하는 것을 권장한다. 하지만 필자를 포함한 초보들을 위한 설치작업이라는 가정하에 root 계정을 그대로 이용하여 설치를 진행함을 알림)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(라라벨 인스톨러가 설치되는 위치는 본인이 원하는 곳으로 정해도 됨)&lt;/p&gt;
&lt;pre id=&quot;code_1638779262716&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;composer global require laravel/installer&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;관리자 권한으로 composer global require laravel/installer 명령을 입력시 관리자 권한으로 컴포저를 실행할 것인지 물어보는데 y 또는 yes를 입력해준다.&lt;/p&gt;
&lt;pre id=&quot;code_1638862719843&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Continue as root/super user [yes]? y&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1641459127648&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Continue as root/super user [yes]? yes&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인스톨러를 어디에서나 사용할 수 있도록 환경변수 중 $PATH라는 환경변수에 심볼릭 링크를 만들어준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;심볼릭 링크는 Windows의 '바로가기'라고 생각하면 쉽다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;심볼릭 링크 생성&lt;/h3&gt;
&lt;pre id=&quot;code_1638780167882&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ln -s /root/.config/composer/vendor/bin/laravel /usr/bin/laravel&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ln -s [심볼릭 링크를 생성할 대상 파일 및 디렉토리] [생성할 심볼릭 링크]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 /usr/bin 디렉토리에 laravel이란 이름으로 심볼릭 링크를 생성했는데, 이유는 $PATH에 등록된 /usr/bin 폴더에 실행파일이 있으면어느 디렉토리에 있던지 파일명 만으로 실행이 가능하기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$PATH에는 여러 디렉토리를 입력해둘 수 있는데 설정법은 다음에 기회가 되면 다루도록 하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혹시나 $PATH에 어떤 디렉토리들이 있는지 확인하고 싶은 경우에는 $PATH라고 입력하면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1638837150217&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$PATH
[결과] -bash: /usr/local/bin:/usr/bin: ... 등등등&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력시 꼭 대문자로 입력.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;revenue_unit_wrap&quot;&gt;
  &lt;div class=&quot;revenue_unit_item adsense responsive&quot;&gt;
    &lt;div class=&quot;revenue_unit_info&quot;&gt;반응형&lt;/div&gt;
    &lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async=&quot;async&quot;&gt;&lt;/script&gt;
    &lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-host=&quot;ca-host-pub-9691043933427338&quot; data-ad-client=&quot;ca-pub-4780157712246283&quot; data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
    &lt;script&gt;(adsbygoogle = window.adsbygoogle || []).push({});&lt;/script&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;라라벨 설치&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 아까 생성한 사용자의 웹파일 폴더로 이동한다.&lt;/p&gt;
&lt;pre id=&quot;code_1638780879296&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd /home/&amp;lt;사용자명&amp;gt;/www&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1641459028919&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd /home/tester/www&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이동 후 아래와 같이 인스톨러를 이용하여 설정된 디렉토리에 라라벨을 설치.&lt;/p&gt;
&lt;pre id=&quot;code_1638836578576&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;laravel new &amp;lt;설치폴더&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1641458979265&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;laravel new laravel&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;laravel&lt;/span&gt;[1]을 실행해서 &lt;span style=&quot;color: #ef6f53;&quot;&gt;new&lt;/span&gt;[2] &lt;span style=&quot;color: #a6bc00;&quot;&gt;laravel&lt;/span&gt;[3]이라는 디렉토리에 설치한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라는 뜻이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;심볼릭 링크를 생성하지 않았으며, 설치할 디렉토리로 이동하지 않았다면 아래와 같이 명령어를 입력해주면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1638836839251&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/root/.config/composer/vendor/bin/laravel new /home/&amp;lt;사용자명&amp;gt;/www/&amp;lt;설치폴더&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1641458994752&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/root/.config/composer/vendor/bin/laravel new /home/tester/www/laravel&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[1] &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;laravel&lt;/b&gt;&lt;/span&gt; $PATH에 &quot;/root/.config/composer/vendor/bin/laravel&quot;을 심볼릭 링크로 생성하여 어디서든 실행할 수 있게 작업해 두었기 때문에 &quot;laravel&quot;이라고만 입력해도 OK.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[2] &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; 신규 라라벨을 설치할 때 사용하는 실행 옵션.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[3] &lt;span style=&quot;color: #a6bc00;&quot;&gt;&lt;b&gt;laravel&lt;/b&gt;&lt;/span&gt; 인스톨러로 라라벨을 설치할 디렉토리.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ 관리자 권한으로 신규 라라벨 설치시 Continue as root/super user [yes]? 라는 문구가 나오는데 위에서 한 번 했던 것과 같이 yes라고 입력해주면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;권한 설정 및 rewrite 모듈 활성화 설정&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설정이 끝났다면 웹에서 원활하게 실행이 가능하도록 권한을 설정해줘야한다.&lt;/p&gt;
&lt;pre id=&quot;code_1638837758180&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;chown -R &amp;lt;사용자명&amp;gt;:www-data &amp;lt;설치폴더&amp;gt;/ &amp;lt;설치폴더&amp;gt;/storage/ &amp;lt;설치폴더&amp;gt;/bootstrap/cache/
chmod -R 775 &amp;lt;설치폴더&amp;gt;/storage/ &amp;lt;설치폴더&amp;gt;/bootstrap/cache/
a2enmod rewrite&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1641458925176&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;chown -R tester:www-data laravel/ laravel/storage/ laravel/bootstrap/cache/
chmod -R 775 laravel/storage/ laravel/bootstrap/cache/
a2enmod rewrite&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;chown&lt;/span&gt;[1] &lt;span style=&quot;color: #ef6f53;&quot;&gt;-R&lt;/span&gt;[2] &lt;span style=&quot;color: #a6bc00;&quot;&gt;tester&lt;/span&gt;[3]&lt;span style=&quot;color: #a6bc00;&quot;&gt;:www-data&lt;/span&gt;[4] &lt;span style=&quot;color: #409d00;&quot;&gt;laravel/&lt;/span&gt;[5] &lt;span style=&quot;color: #409d00;&quot;&gt;laravel/storage/&lt;/span&gt;[6] &lt;span style=&quot;color: #409d00;&quot;&gt;laravel/bootstrap/cache/&lt;/span&gt;[7]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[1] &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;chown&lt;/b&gt;&lt;/span&gt; 소유자 변경 명령어.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[2] &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;-R&lt;/b&gt;&lt;/span&gt; 타겟이 되는 디렉토리 및 &quot;하위 디렉토리와 파일까지&quot; 모두 변경하겠다는 옵션. 대문자 필수.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[3]:[4] &lt;span style=&quot;color: #a6bc00;&quot;&gt;&lt;b&gt;tester:www-data&lt;/b&gt;&lt;/span&gt; 소유자의 사용자명:그룹명&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[5] [6] [7] &lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;laravel/ laravel/storage/ laravel/bootstrap/cache/&lt;/b&gt;&lt;/span&gt; 소유자를 변경할 타겟. 띄어쓰기로 다수 입력 가능.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;chmod&lt;/span&gt;[1] &lt;span style=&quot;color: #ef6f53;&quot;&gt;-R&lt;/span&gt;[2] &lt;span style=&quot;color: #a6bc00;&quot;&gt;775&lt;/span&gt;[3] &lt;span style=&quot;color: #409d00;&quot;&gt;laravel/storage/&lt;/span&gt;[4] &lt;span style=&quot;color: #409d00;&quot;&gt;laravel/bootstrap/cache/&lt;/span&gt;[5]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[1] &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;chmod&lt;/b&gt;&lt;/span&gt; 권한 변경 명령어.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[2] &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;-R&lt;/b&gt;&lt;/span&gt; 타겟이 되는 디렉토리 및 &quot;하위 디렉토리와 파일까지&quot; 모두 변경하겠다는 옵션. 대문자 필수.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[3] &lt;span style=&quot;color: #a6bc00;&quot;&gt;&lt;b&gt;775&lt;/b&gt;&lt;/span&gt; 변경할 권한. 자세한 설명은 아래의 링크 참조.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://recipes4dev.tistory.com/175&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://recipes4dev.tistory.com/175&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1638856776873&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;리눅스 chmod 명령어 사용법. (Linux chmod command) - 리눅스 파일 권한 변경.&quot; data-og-description=&quot;1. 리눅스 파일 사용 권한 리눅스에서, 파일(File)을 사용해 할 수 있는 작업은 크게 세 가지로 나눌 수 있습니다. 파일에 저장된 데이터를 읽기. (r = read). 파일에 데이터를 쓰기. (w = write). 파일 실&quot; data-og-host=&quot;recipes4dev.tistory.com&quot; data-og-source-url=&quot;https://recipes4dev.tistory.com/175&quot; data-og-url=&quot;https://recipes4dev.tistory.com/175&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/pzXxD/hyMB2wPw6I/ua3t0KvuaKbLujeWJkpGqK/img.png?width=700&amp;amp;height=126&amp;amp;face=0_0_700_126,https://scrap.kakaocdn.net/dn/Iytwo/hyMB3P4kXs/MnDiEafSE72kDEQma7vOp0/img.png?width=700&amp;amp;height=126&amp;amp;face=0_0_700_126,https://scrap.kakaocdn.net/dn/cjSqJy/hyMB42wZ93/yInidKRaVLPyHrnN5NmZuK/img.png?width=700&amp;amp;height=466&amp;amp;face=0_0_700_466&quot;&gt;&lt;a href=&quot;https://recipes4dev.tistory.com/175&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://recipes4dev.tistory.com/175&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/pzXxD/hyMB2wPw6I/ua3t0KvuaKbLujeWJkpGqK/img.png?width=700&amp;amp;height=126&amp;amp;face=0_0_700_126,https://scrap.kakaocdn.net/dn/Iytwo/hyMB3P4kXs/MnDiEafSE72kDEQma7vOp0/img.png?width=700&amp;amp;height=126&amp;amp;face=0_0_700_126,https://scrap.kakaocdn.net/dn/cjSqJy/hyMB42wZ93/yInidKRaVLPyHrnN5NmZuK/img.png?width=700&amp;amp;height=466&amp;amp;face=0_0_700_466');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;리눅스 chmod 명령어 사용법. (Linux chmod command) - 리눅스 파일 권한 변경.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;1. 리눅스 파일 사용 권한 리눅스에서, 파일(File)을 사용해 할 수 있는 작업은 크게 세 가지로 나눌 수 있습니다. 파일에 저장된 데이터를 읽기. (r = read). 파일에 데이터를 쓰기. (w = write). 파일 실&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;recipes4dev.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[4] [5] &lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;laravel/storage/ laravel/bootstrap/cache/&lt;/b&gt;&lt;/span&gt; 소유자를 변경할 타겟. 띄어쓰기로 다수 입력 가능.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;a2enmod&amp;nbsp;rewrite&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- rewrite 모듈 활성화&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기까지 왔다면 라라벨 설치는 끝났다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제는 라라벨을 웹브라우저에서 확인할 수 있도록 설정하는 작업만 남았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;도메인 연결&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본인이 도메인을 가지고 있다면 그 도메인과 연결할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;연결할 경우에는 도메인을 가지고 있어야 하며, 도메인 레코드를 추가하여 라라벨을 설치하는 서버를 연결해줘야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 작업은 이 작업이 끝났다는 전제하에 진행되어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서는 laravelstudy.com과 www.laravelstudy.com을 연결해보겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사이트 설정은 /etc/apache2/sites-available 디렉토리에서 할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 디렉토리에 사이트 설정 파일을 생성해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서는 vim을 사용했지만 본인이 편한 에디터로 생성해주면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1638862396319&quot; class=&quot;bash&quot; style=&quot;display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; margin: 20px auto 0px; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;vi /etc/apache2/sites-available/laravelstudy.com.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내용은 아래와 같이 입력해주고 저장한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와같이 vi 또는 vim으로 파일 저장방법.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) [Esc] 키.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) :wq 입력.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) [Enter] 키.&lt;/p&gt;
&lt;pre id=&quot;code_1638862895217&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;VirtualHost *:80&amp;gt;
	ServerName 도메인
	ServerAlias 추가도메인
	ServerAlias 추가도메인
	...

	DocumentRoot /home/사용자명/www/설치폴더/public

	&amp;lt;Directory /home/사용자명/www/설치폴더&amp;gt;
		AllowOverride All
	&amp;lt;/Directory&amp;gt;

	AssignUserID 사용자명 그룹명

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
&amp;lt;/VirtualHost&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1641459175480&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;VirtualHost *:80&amp;gt;
	ServerName laravelstudy.com
	ServerAlias www.laravelstudy.com

	DocumentRoot /home/tester/www/laravel/public

	&amp;lt;Directory /home/tester/www/laravel&amp;gt;
		AllowOverride All
	&amp;lt;/Directory&amp;gt;

	AssignUserID tester tester

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
&amp;lt;/VirtualHost&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사이트 설정이 끝나면 생성한 사이트 설정을 활성화 하고, 웹서버 프로세스를 재시작하여 준다.&lt;/p&gt;
&lt;pre id=&quot;code_1638936561014&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;a2ensite laravelstudy.com.conf
service apache2 restart&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1641459291208&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;a2ensite laravelstudy.com.conf
service apache2 restart&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 웹브라우저에서 해당 도메인으로 접속해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도메인이 연결되기까지 시간이 걸릴 수도 있지만 라라벨이 정상적으로 실행되었다면 아래와 같이 나올 것이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Screenshot 2021-12-08 at 13.12.36.jpg&quot; data-origin-width=&quot;1134&quot; data-origin-height=&quot;534&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c1QNSP/btrnkwpig4L/ueFjXX5XsifZsxOQkxy9Vk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c1QNSP/btrnkwpig4L/ueFjXX5XsifZsxOQkxy9Vk/img.jpg&quot; data-alt=&quot;라라벨 설치 성공&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c1QNSP/btrnkwpig4L/ueFjXX5XsifZsxOQkxy9Vk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc1QNSP%2Fbtrnkwpig4L%2FueFjXX5XsifZsxOQkxy9Vk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1134&quot; height=&quot;534&quot; data-filename=&quot;Screenshot 2021-12-08 at 13.12.36.jpg&quot; data-origin-width=&quot;1134&quot; data-origin-height=&quot;534&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;라라벨 설치 성공&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수고하셨습니다 :)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>for Web/Linux</category>
      <category>라라벨</category>
      <category>우분투</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/90</guid>
      <comments>https://heavening.tistory.com/90#entry90comment</comments>
      <pubDate>Mon, 6 Dec 2021 15:57:00 +0900</pubDate>
    </item>
    <item>
      <title>리눅스 Linux 우분투 Ubuntu 사용자 추가</title>
      <link>https://heavening.tistory.com/89</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;사용자를 추가하기 전&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;관리자 권한을 가져옵니다.&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;bash&quot; data-file=&quot;ubuntu ssh&quot; data-line=&quot;1&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;ubuntu@ip-000-000-000-000:~$ sudo su
root@ip-000-000-000-000:/#&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;사용자 추가&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우분투에서 사용자 추가하는 방법은 아래와 같습니다. ( 상세설명은 하기에.. )&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;shell&quot; data-file=&quot;ubuntu ssh&quot; data-line=&quot;1&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;root@ip-000-000-000-000:/# adduser 사용자명
Adding user `사용자명' ...
Adding new group `사용자명' (1001) ...
Adding new user `사용자명' (1001) with group `사용자명' ...
Creating home directory `/home/사용자명' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for 사용자명
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] y&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;New password: 비밀번호를 입력합니다. ( 비밀번호를 입력해도 화면에 아무것도 안써집이다. )&lt;br /&gt;Retype new password: 다시 한 번 더 비밀번호를 입력합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 항목은 정성들여 입력해도 되지만 귀찮으면 엔터엔터엔터엔터엔터 누르시면 됩니다.&lt;br /&gt;Full Name []:&lt;br /&gt;Room Number []:&lt;br /&gt;Work Phone []:&lt;br /&gt;Home Phone []:&lt;br /&gt;Other []:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막엔 정보를 제대로 입력했는지 물어보는데 맞으면 y 아니면 n을 입력하고 엔터키를 눌러주시면 됩니다.&lt;br /&gt;Is the information correct? [Y/n] y&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;사용자 추가 후&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자를 추가하면 /home/ 디렉터리에 계정명과 동일한 디렉터리가 생성됩니다.&lt;br /&gt;ex: /home/사용자명&lt;br /&gt;일반적으로 이 디렉터리를 &amp;ldquo;홈 디렉터리&amp;rdquo;라고 부릅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;홈디렉토리를 모를경우 해당 계정으로 접속 후 cd 명령어를 사용하면 홈디렉토리로 이동합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이동 후 현재 디렉토리를 알려주는 명령어는 pwd입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1638777090770&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@ip-000-000-000-000:/# sudo su 사용자명
사용자명@ip-000-000-000-000:~$ cd
사용자명@ip-000-000-000-000:~$ pwd
/home/사용자명
사용자명@ip-000-000-000-000:~$ exit
root@ip-000-000-000-000:/#&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확인 후 다시 원래 계정으로 돌아오려면 exit를 입력합니다.&lt;/p&gt;</description>
      <category>for Web/Linux</category>
      <category>adduser</category>
      <category>ubuntu</category>
      <category>사용자</category>
      <category>우분투</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/89</guid>
      <comments>https://heavening.tistory.com/89#entry89comment</comments>
      <pubDate>Wed, 1 Dec 2021 17:55:22 +0900</pubDate>
    </item>
    <item>
      <title>우분투 ubuntu 20.04 LTS APM(Apache2 + PHP8.1 + MariaDB) 설치</title>
      <link>https://heavening.tistory.com/88</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;APM&amp;nbsp;설치에&amp;nbsp;앞서&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #444444;&quot;&gt;서버는 AWS를 사용했으며, 이 것을 기준으로 기록합니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #444444;&quot;&gt;(다른 클라우드를 사용하시는 분들께는 죄송합니다.)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #444444;&quot;&gt;또한 작성의 속도를 높이기 위해 모든 문장에 높임법을 사용하지 않겠습니다. (여기부터 시작)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff; color: #444444;&quot;&gt;본인도 초보라 문제 해결 능력은 떨어지지만 앞으로 자주하게 될 것 같아 여기에 기록한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image-1024x86.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;86&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgmAgq/btrmK0qcRwA/8cV0CoPGkDBst8bKoJn7l0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgmAgq/btrmK0qcRwA/8cV0CoPGkDBst8bKoJn7l0/img.png&quot; data-alt=&quot;aws / Ubuntu Server 20.04 LTS 사용&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgmAgq/btrmK0qcRwA/8cV0CoPGkDBst8bKoJn7l0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgmAgq%2FbtrmK0qcRwA%2F8cV0CoPGkDBst8bKoJn7l0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;86&quot; data-filename=&quot;image-1024x86.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;86&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;aws / Ubuntu Server 20.04 LTS 사용&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하기의&amp;nbsp;모든&amp;nbsp;명령어는&amp;nbsp;sudo&amp;nbsp;su를&amp;nbsp;실행&amp;nbsp;후&amp;nbsp;입력하는&amp;nbsp;것을&amp;nbsp;기본으로&amp;nbsp;한다.&lt;span style=&quot;background-color: #ffffff; color: #444444;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1638775977125&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ubuntu@ip-000-000-000-000:~$ sudo su
root@ip-000-000-000-000:/#&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치에&amp;nbsp;앞서&amp;nbsp;우분투&amp;nbsp;버전&amp;nbsp;확인한다. &lt;br /&gt;lsb_release&amp;nbsp;-a를&amp;nbsp;입력하여&amp;nbsp;버전을&amp;nbsp;확인하는데&amp;nbsp;맨&amp;nbsp;아래&amp;nbsp;Codename을&amp;nbsp;잘&amp;nbsp;확인해봐야&amp;nbsp;한다. &lt;br /&gt;만약&amp;nbsp;apt-get을&amp;nbsp;사용하는데&amp;nbsp;어딘가&amp;nbsp;모를&amp;nbsp;오류가&amp;nbsp;발생한다면&amp;nbsp;/etc/apt/sources.list에&amp;nbsp;이&amp;nbsp;Codename에&amp;nbsp;맞게&amp;nbsp;미러서버를&amp;nbsp;설정했는지&amp;nbsp;확인해봐야한다.&lt;/p&gt;
&lt;pre id=&quot;code_1638343242254&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@ip-000-000-000-000:/# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.2 LTS
Release:        20.04
Codename:       focal&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;/etc/apt/sources.list&amp;nbsp;내에&amp;nbsp;Codename이&amp;nbsp;실제&amp;nbsp;버전과&amp;nbsp;맞지&amp;nbsp;않는&amp;nbsp;경우&amp;nbsp;아래와&amp;nbsp;같은&amp;nbsp;오류가&amp;nbsp;노출된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #953b34;&quot;&gt;The&amp;nbsp;following&amp;nbsp;packages&amp;nbsp;have&amp;nbsp;unmet&amp;nbsp;dependencies: &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #953b34;&quot;&gt;distro-info-data&amp;nbsp;:&amp;nbsp;Breaks:&amp;nbsp;distro-info&amp;nbsp;(&amp;lt;&amp;nbsp;0.20~)&amp;nbsp;but&amp;nbsp;0.18ubuntu0.18.04.1&amp;nbsp;is&amp;nbsp;to&amp;nbsp;be&amp;nbsp;installed &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #953b34;&quot;&gt;dpkg&amp;nbsp;:&amp;nbsp;Breaks:&amp;nbsp;libapt-pkg5.0&amp;nbsp;(&amp;lt;&amp;nbsp;1.7~b)&amp;nbsp;but&amp;nbsp;1.6.13&amp;nbsp;is&amp;nbsp;to&amp;nbsp;be&amp;nbsp;installed &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #953b34;&quot;&gt;E:&amp;nbsp;Broken&amp;nbsp;packages&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;apt update &amp;amp; apt upgrade&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;apt-get은&amp;nbsp;apt로&amp;nbsp;줄여서&amp;nbsp;사용할&amp;nbsp;수&amp;nbsp;있게&amp;nbsp;되어있다.&amp;nbsp;만약&amp;nbsp;apt&amp;nbsp;명령어가&amp;nbsp;먹히지&amp;nbsp;않는다면&amp;nbsp;apt-get으로&amp;nbsp;입력해주면&amp;nbsp;된다.&amp;nbsp;(vim을&amp;nbsp;vi로&amp;nbsp;줄여쓰는&amp;nbsp;경우도&amp;nbsp;이와&amp;nbsp;같음) &lt;br /&gt;/etc/apt/sources.list에는&amp;nbsp;우리가&amp;nbsp;apt를&amp;nbsp;사용할&amp;nbsp;때&amp;nbsp;읽어올&amp;nbsp;서버(저장소)들이&amp;nbsp;적혀&amp;nbsp;있는데&amp;nbsp;만약&amp;nbsp;당신의&amp;nbsp;서버가&amp;nbsp;한국에&amp;nbsp;있다면&amp;nbsp;아래의&amp;nbsp;명령어를&amp;nbsp;실행하여&amp;nbsp;저장소를&amp;nbsp;한국에&amp;nbsp;있는&amp;nbsp;서버로&amp;nbsp;바꿔주는&amp;nbsp;것이&amp;nbsp;설치&amp;nbsp;시간&amp;nbsp;단축에&amp;nbsp;도움을&amp;nbsp;준다. &lt;br /&gt;vim&amp;nbsp;편집기를&amp;nbsp;사용하여,&amp;nbsp;/etc/apt/sources.list를&amp;nbsp;연다.&lt;/p&gt;
&lt;pre id=&quot;code_1640161549352&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@ip-000-000-000-000:/# vi /etc/apt/sources.list&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일이 열리면 d를 꾸욱 눌러서 모든 라인을 지우고 아래의 내용을 복붙한다.&lt;br /&gt;복붙 후 :wq를 입력하여 저장하고 편집기를 나온다.&lt;/p&gt;
&lt;pre id=&quot;code_1640161630327&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;deb http://mirror.kakao.com/ubuntu/ focal main restricted universe multiverse
deb http://mirror.kakao.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirror.kakao.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu focal-security main restricted universe multiverse&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;복붙한 내용을 보면 아까 확인했던 Codename인 focal이 쓰여 있는데 Codename이 다른 서버를 사용하는 사람들은 focal 부분을 본인의 서버 Codename으로 바꿔 놓으면 된다.&lt;br /&gt;일일이 고치는 것이 귀찮기 때문에 아래의 명령어를 참고하여 자신의 Codename으로 바꿔준다.&lt;/p&gt;
&lt;pre id=&quot;code_1638343406977&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@ip-000-000-000-000:/# sed -i 's/focal/자신서버의Codename/g' /etc/apt/sources.list&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약&amp;nbsp;본인이&amp;nbsp;저장소를&amp;nbsp;직접&amp;nbsp;선택하고&amp;nbsp;싶다면&amp;nbsp;아래의&amp;nbsp;링크를&amp;nbsp;참조한다. &lt;br /&gt;&lt;a href=&quot;https://launchpad.net/ubuntu/+archivemirrors&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://launchpad.net/ubuntu/+archivemirrors&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저장소&amp;nbsp;변경이&amp;nbsp;끝났다면&amp;nbsp;update&amp;nbsp;&amp;amp;&amp;nbsp;upgrade로&amp;nbsp;서버를&amp;nbsp;최신화&amp;nbsp;한다.&lt;/p&gt;
&lt;pre id=&quot;code_1638344116505&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@ip-000-000-000-000:/# apt update
update 내용...
root@ip-000-000-000-000:/# apt upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;apt&amp;nbsp;upgrade&amp;nbsp;명령어를&amp;nbsp;입력시&amp;nbsp;블라블라하다가&amp;nbsp;Y/n이&amp;nbsp;나타나는데&amp;nbsp;y입력&amp;nbsp;후&amp;nbsp;엔터키&amp;nbsp;누르면&amp;nbsp;된다. &lt;br /&gt;지금까지의&amp;nbsp;과정을&amp;nbsp;무리없이&amp;nbsp;끝냈다면&amp;nbsp;우리가&amp;nbsp;원하는&amp;nbsp;apache2,&amp;nbsp;php8,&amp;nbsp;mariadb를&amp;nbsp;설치할&amp;nbsp;준비가&amp;nbsp;완료된&amp;nbsp;것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;서버&amp;nbsp;시간&amp;nbsp;설정&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시간&amp;nbsp;설정을&amp;nbsp;하자(물론&amp;nbsp;날짜도&amp;nbsp;포함).&amp;nbsp;이&amp;nbsp;부분이&amp;nbsp;안되어&amp;nbsp;있으면&amp;nbsp;나중에&amp;nbsp;피(?)를&amp;nbsp;볼&amp;nbsp;수&amp;nbsp;있다.&lt;/p&gt;
&lt;pre id=&quot;code_1638344176317&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@ip-000-000-000-000:/# dpkg-reconfigure tzdata&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력&amp;nbsp;후&amp;nbsp;하단의&amp;nbsp;이미지와&amp;nbsp;같이&amp;nbsp;각각&amp;nbsp;Asia&amp;nbsp;선택&amp;nbsp;후&amp;nbsp;엔터&amp;nbsp;키,&amp;nbsp;Seoul&amp;nbsp;선택&amp;nbsp;후&amp;nbsp;엔터&amp;nbsp;키를&amp;nbsp;누른다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image-4.png&quot; data-origin-width=&quot;216&quot; data-origin-height=&quot;166&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bppVm0/btrmJkbXZWh/NXy7yTNs2BPCq6MxiJfpNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bppVm0/btrmJkbXZWh/NXy7yTNs2BPCq6MxiJfpNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bppVm0/btrmJkbXZWh/NXy7yTNs2BPCq6MxiJfpNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbppVm0%2FbtrmJkbXZWh%2FNXy7yTNs2BPCq6MxiJfpNk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;216&quot; height=&quot;166&quot; data-filename=&quot;image-4.png&quot; data-origin-width=&quot;216&quot; data-origin-height=&quot;166&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image-3.png&quot; data-origin-width=&quot;200&quot; data-origin-height=&quot;190&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Iy9fc/btrmKhTAzvV/2Q1fSMX5bPsT26dJA7b4oK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Iy9fc/btrmKhTAzvV/2Q1fSMX5bPsT26dJA7b4oK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Iy9fc/btrmKhTAzvV/2Q1fSMX5bPsT26dJA7b4oK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIy9fc%2FbtrmKhTAzvV%2F2Q1fSMX5bPsT26dJA7b4oK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;200&quot; height=&quot;190&quot; data-filename=&quot;image-3.png&quot; data-origin-width=&quot;200&quot; data-origin-height=&quot;190&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시간&amp;nbsp;설정이&amp;nbsp;끝났다.&amp;nbsp;확인은&amp;nbsp;date&amp;nbsp;명령어로&amp;nbsp;해준다.&lt;/p&gt;
&lt;pre id=&quot;code_1638344245597&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@ip-000-000-000-000:/# date
Tue Jun  8 16:29:13 KST 2021&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간단..ㅎ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Apache2&amp;nbsp;설치&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저&amp;nbsp;apache2를&amp;nbsp;설치해보자.&lt;/p&gt;
&lt;pre id=&quot;code_1638344279988&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@ip-000-000-000-000:/# apt install apache2&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치될&amp;nbsp;용량을&amp;nbsp;말해주면서&amp;nbsp;Do&amp;nbsp;you&amp;nbsp;want&amp;nbsp;to&amp;nbsp;continue?&amp;nbsp;[Y/n]&amp;nbsp;분기가&amp;nbsp;생기는데&amp;nbsp;그냥&amp;nbsp;y를&amp;nbsp;입력해준다. &lt;br /&gt;(앞으로 이 과정은 생략함)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치가 끝나고 진짜 하나도 안궁금할수도 있지만 아파치 버전을 확인해 보고 싶은 사람은 apache2 -v를 입력하면 확인이 가능하다. 필자와 버전이 다르더라도 놀라지 않도록 한다. 그동안 버전이 올랐을 수도 있다&amp;hellip;ㅎ;&lt;/p&gt;
&lt;pre id=&quot;code_1638775999451&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@ip-000-000-000-000:/# apache2 -v
Server version: Apache/2.4.41 (Ubuntu)
Server built:   2020-08-12T19:46:17&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아파치&amp;nbsp;설치&amp;nbsp;후&amp;nbsp;웹브라우저에&amp;nbsp;서버의&amp;nbsp;아이피를&amp;nbsp;입력해보면&amp;nbsp;뭔가&amp;nbsp;뜬다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;image-6-674x1024.png&quot; data-origin-width=&quot;674&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Tt5uc/btrmJjxmTp4/HNPb5FzSrZmXIKI015kaf1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Tt5uc/btrmJjxmTp4/HNPb5FzSrZmXIKI015kaf1/img.png&quot; data-alt=&quot;뭐라 막 써있는데 그냥 '잘 설치되었구나'라고 생각하고 창을 닫았다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Tt5uc/btrmJjxmTp4/HNPb5FzSrZmXIKI015kaf1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTt5uc%2FbtrmJjxmTp4%2FHNPb5FzSrZmXIKI015kaf1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;674&quot; height=&quot;1024&quot; data-filename=&quot;image-6-674x1024.png&quot; data-origin-width=&quot;674&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;뭐라 막 써있는데 그냥 '잘 설치되었구나'라고 생각하고 창을 닫았다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가로 certbot을 설치&lt;/p&gt;
&lt;pre id=&quot;code_1638344460885&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@ip-000-000-000-000:/# apt install certbot&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;PHP8.1 설치 &lt;/b&gt;(updated at 2022-01-03)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작성일&amp;nbsp;기준,&amp;nbsp;현재&amp;nbsp;최신&amp;nbsp;버전의&amp;nbsp;php를&amp;nbsp;설치하려면&amp;nbsp;저장소를&amp;nbsp;따로&amp;nbsp;지정해줘야&amp;nbsp;한다. &lt;br /&gt;apt&amp;nbsp;list&amp;nbsp;php&amp;nbsp;등의&amp;nbsp;명령어로&amp;nbsp;확인해&amp;nbsp;보면&amp;nbsp;알겠지만&amp;nbsp;php7대&amp;nbsp;까지만&amp;nbsp;설치할&amp;nbsp;수&amp;nbsp;있다. &lt;br /&gt;아래의&amp;nbsp;명령어로&amp;nbsp;php는&amp;nbsp;최신&amp;nbsp;버전을&amp;nbsp;받을&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;저장소로&amp;nbsp;따로&amp;nbsp;연결해준다.&lt;/p&gt;
&lt;pre id=&quot;code_1638344509262&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@ip-000-000-000-000:/# add-apt-repository ppa:ondrej/php
 Co-installable PHP versions: PHP 5.6, PHP 7.x and most requested extensions are included. Only Supported Versions of PHP (http://php.net/supported-versions.php) for Supported Ubuntu Releases (https://wiki.ubuntu.com/Releases) are provided. Don't ask for end-of-life PHP versions or Ubuntu release, they won't be provided.

Debian oldstable and stable packages are provided as well: https://deb.sury.org/#debian-dpa

You can get more information about the packages at https://deb.sury.org

IMPORTANT: The &amp;lt;foo&amp;gt;-backports is now required on older Ubuntu releases.

BUGS&amp;amp;FEATURES: This PPA now has a issue tracker:
https://deb.sury.org/#bug-reporting

CAVEATS:
1. If you are using php-gearman, you need to add ppa:ondrej/pkg-gearman
2. If you are using apache2, you are advised to add ppa:ondrej/apache2
3. If you are using nginx, you are advised to add ppa:ondrej/nginx-mainline
   or ppa:ondrej/nginx

PLEASE READ: If you like my work and want to give me a little motivation, please consider donating regularly: https://donate.sury.org/

WARNING: add-apt-repository is broken with non-UTF-8 locales, see
https://github.com/oerdnj/deb.sury.org/issues/56 for workaround:

# LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
 More info: https://launchpad.net/~ondrej/+archive/ubuntu/php
Press [ENTER] to continue or Ctrl-c to cancel adding it.

Hit:1 http://mirror.kakao.com/ubuntu focal InRelease
Get:2 http://mirror.kakao.com/ubuntu focal-updates InRelease [114 kB]
Get:3 http://mirror.kakao.com/ubuntu focal-backports InRelease [101 kB]
Get:4 http://mirror.kakao.com/ubuntu focal-updates/main amd64 Packages [1026 kB]
Get:5 http://mirror.kakao.com/ubuntu focal-updates/universe amd64 Packages [781 kB]
Get:6 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Get:7 http://ppa.launchpad.net/ondrej/php/ubuntu focal InRelease [23.9 kB]
Get:8 http://ppa.launchpad.net/ondrej/php/ubuntu focal/main amd64 Packages [91.9 kB]
Get:9 http://ppa.launchpad.net/ondrej/php/ubuntu focal/main Translation-en [31.6 kB]
Fetched 2283 kB in 3s (846 kB/s)
Reading package lists... Done&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의&amp;nbsp;작업이&amp;nbsp;끝났다면&amp;nbsp;php8.0을&amp;nbsp;설치한다. &lt;br /&gt;참고로&amp;nbsp;libapache2-mod-php8.0은&amp;nbsp;아파치에서&amp;nbsp;사용하기&amp;nbsp;위한&amp;nbsp;모듈이다.&lt;/p&gt;
&lt;pre id=&quot;code_1638344569118&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@ip-000-000-000-000:/# apt install php8.1 libapache2-mod-php8.1&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치&amp;nbsp;후&amp;nbsp;php&amp;nbsp;버전&amp;nbsp;확인&amp;nbsp;명령어&lt;/p&gt;
&lt;pre id=&quot;code_1638344597163&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@ip-000-000-000-000:/# php -v
PHP 8.1.1 (cli) (built: Dec 31 2021 07:26:20) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.1, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.1, Copyright (c), by Zend Technologies&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의&amp;nbsp;추가&amp;nbsp;라이브러리는&amp;nbsp;본인이&amp;nbsp;필요한&amp;nbsp;것만&amp;nbsp;설치하면&amp;nbsp;된다.&lt;/p&gt;
&lt;pre id=&quot;code_1638344623387&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@ip-000-000-000-000:/# apt install php8.1-{cli,curl,dev,gd,imagick,imap,mbstring,mysql,oauth,soap,xml,xmlrpc,zip}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;MariaDB&amp;nbsp;설치&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mariadb를&amp;nbsp;설치하자.&lt;/p&gt;
&lt;pre id=&quot;code_1638344658245&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@ip-000-000-000-000:/# apt install mariadb-server&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 후 몇 가지 설정을 해줘야하는데.. (설명은 소스 하기에..)&lt;/p&gt;
&lt;pre id=&quot;code_1638344707547&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;root@ip-000-000-000-000:/# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Enter&amp;nbsp;current&amp;nbsp;password&amp;nbsp;for&amp;nbsp;root&amp;nbsp;(enter&amp;nbsp;for&amp;nbsp;none): &lt;br /&gt;여기는&amp;nbsp;루트&amp;nbsp;비밀번호를&amp;nbsp;입력하라는&amp;nbsp;것인데&amp;nbsp;이제&amp;nbsp;막&amp;nbsp;설치해&amp;nbsp;비밀번호가&amp;nbsp;없으니&amp;nbsp;그냥&amp;nbsp;엔터키를&amp;nbsp;누른다. &lt;br /&gt;(다음에&amp;nbsp;또&amp;nbsp;실행할&amp;nbsp;경우에는&amp;nbsp;아래에서&amp;nbsp;설정하는&amp;nbsp;비밀번호를&amp;nbsp;입력해주면&amp;nbsp;된다.) &lt;br /&gt;Set&amp;nbsp;root&amp;nbsp;password?&amp;nbsp;[Y/n]&amp;nbsp;y &lt;br /&gt;루트&amp;nbsp;비밀번호를&amp;nbsp;설정할지&amp;nbsp;결정&amp;nbsp;참고로&amp;nbsp;필자는&amp;nbsp;아래&amp;nbsp;모든&amp;nbsp;분기에&amp;nbsp;y를&amp;nbsp;선택했다. &lt;br /&gt;Remove&amp;nbsp;anonymous&amp;nbsp;users?&amp;nbsp;[Y/n]&amp;nbsp;y &lt;br /&gt;익명&amp;nbsp;사용자&amp;nbsp;제거&amp;nbsp;유무 &lt;br /&gt;Disallow&amp;nbsp;root&amp;nbsp;login&amp;nbsp;remotely?&amp;nbsp;[Y/n]&amp;nbsp;y &lt;br /&gt;원격&amp;nbsp;루트&amp;nbsp;로그인&amp;nbsp;허용&amp;nbsp;안함 &lt;br /&gt;Remove&amp;nbsp;test&amp;nbsp;database&amp;nbsp;and&amp;nbsp;access&amp;nbsp;to&amp;nbsp;it?&amp;nbsp;[Y/n]&amp;nbsp;y &lt;br /&gt;테스트DB&amp;nbsp;삭제&amp;nbsp;여부 &lt;br /&gt;Reload&amp;nbsp;privilege&amp;nbsp;tables&amp;nbsp;now?&amp;nbsp;[Y/n]&amp;nbsp;y &lt;br /&gt;권한&amp;nbsp;테이블&amp;nbsp;리로드&amp;nbsp;여부&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단&amp;nbsp;apache2,&amp;nbsp;php8,&amp;nbsp;mariadb&amp;nbsp;설치를&amp;nbsp;마쳤다. &lt;br /&gt;&lt;br /&gt;수고하셨습니다 :)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>for Web/Linux</category>
      <category>20.04</category>
      <category>apache2</category>
      <category>MariaDB</category>
      <category>php8</category>
      <category>우분투</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/88</guid>
      <comments>https://heavening.tistory.com/88#entry88comment</comments>
      <pubDate>Wed, 1 Dec 2021 16:48:45 +0900</pubDate>
    </item>
    <item>
      <title>MySQL에서 LIKE 검색의 반대는?</title>
      <link>https://heavening.tistory.com/87</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;MySQL에서 특정 단어를 검색할 때 LIKE를 사용하게 되는데, 가끔은 특정 단어가 없는 데이터를 불러와야 할 경우가 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LIKE의 반대로 검색하는 방법을 알아봅시다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1636955825546&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM 테이블명 WHERE 컬럼명 NOT LIKE '%특정단어%'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;알고보면 너무 간단합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ LIKE와 NOT LIKE 둘 다 인덱싱이 먹히지 않으므로, 큰 데이터에서는 사용하는 것을 추천하지 않습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>for Web/MySQL</category>
      <category>Like</category>
      <category>LIKE 반대</category>
      <category>MySQL</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/87</guid>
      <comments>https://heavening.tistory.com/87#entry87comment</comments>
      <pubDate>Mon, 15 Nov 2021 14:59:10 +0900</pubDate>
    </item>
    <item>
      <title>MySQL에서 NULL값인 것, NULL값이 아닌 것 검색</title>
      <link>https://heavening.tistory.com/86</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. NULL인 것을 검색&lt;/h4&gt;
&lt;pre id=&quot;code_1636955218815&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM 테이블명 WHERE 컬럼명 IS NULL&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1636955246772&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM 테이블명 WHERE 컬럼명 &amp;lt;=&amp;gt; NULL&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;2. NULL이 아닌 것을 검색&lt;/h4&gt;
&lt;pre id=&quot;code_1636955335389&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM 테이블명 WHERE 컬럼명 IS NOT NULL&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>for Web/MySQL</category>
      <category>MySQL</category>
      <category>NULL 검색</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/86</guid>
      <comments>https://heavening.tistory.com/86#entry86comment</comments>
      <pubDate>Mon, 15 Nov 2021 14:50:45 +0900</pubDate>
    </item>
    <item>
      <title>int의 종류 및 크기 tinyint, smallint, int, bigint 초간단 정리</title>
      <link>https://heavening.tistory.com/85</link>
      <description>&lt;p&gt;int가 들어가는 데이터 타입의 크기가 가끔 헷갈리는데 간단하게 정리합니다.&lt;/p&gt;
&lt;p&gt;int는 inteager의 약자입니다.&lt;/p&gt;
&lt;p&gt;int는 정수입니다. 소숫점을 사용하고 싶은 분은 decimal 같은 데이터 형식을 사용하세요 :)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;span style=&quot;color: #ff7154;&quot;&gt;&lt;b&gt;#크기비교&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;tinyint &amp;lt; smallint &amp;lt; int &amp;lt; bigint&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;span style=&quot;color: #ff7154;&quot;&gt;&lt;b&gt;#tinyint&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;크기 : 0 ~ 255&lt;/p&gt;
&lt;p&gt;비고 : 0을 시작으로 2^8(=2의8승=256)번째까지 정수&lt;/p&gt;
&lt;p&gt;용량 : 1바이트&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;span style=&quot;color: #ff7154;&quot;&gt;&lt;b&gt;#smallint&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;크기 : -&lt;span&gt;32,768 ~&amp;nbsp;&lt;span&gt;32,767&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;비고 : -2^15 ~ (2^15 - 1) 사이의 정수. 2의15승에서 1을 빼는 이유는 0의 자리가 포함되기 때문입니다. 나머지들도 모두 마찬가지 입니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;용량 : 2바이트&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;span style=&quot;color: #ff7154;&quot;&gt;&lt;b&gt;#int&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;크기 :&amp;nbsp;&lt;span style=&quot;color: #333333;&quot;&gt;-2,147,483,648 ~&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2,147,483,647&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;비고 :&amp;nbsp;&lt;span style=&quot;color: #333333;&quot;&gt;-2^31 ~ (2^31 - 1) 사이의 정수. 역시 0의 자리를 위해 양수에서 -1 해줍니다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;용량 : 4바이트&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;span style=&quot;color: #ff7154;&quot;&gt;&lt;b&gt;#bigint&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;크기 : -9,223,372,036,854,775,808‬ ~&amp;nbsp;9,223,372,036,854,775,8087&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;비고 :&amp;nbsp;&lt;span style=&quot;color: #333333;&quot;&gt;-2^63 ~ (2^63 - 1) 사이의 정수. 0의 자리를 확보하기 위해 역시 뒤에서 -1 해줍니다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;용량 : 8바이트&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 100px;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 20px;&quot;&gt;tinyint&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 20px;&quot;&gt;smallint&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 20px;&quot;&gt;int&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 20px;&quot;&gt;bigint&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; text-align: right; height: 40px;&quot; rowspan=&quot;2&quot;&gt;크기&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 20px;&quot;&gt;0 ~ 2^8&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 20px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;-2^15 ~ (2^15 - 1)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 20px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;-2^31 ~ (2^31 - 1)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 20px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;-2^63 ~ (2^63 - 1)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 20px;&quot;&gt;8 = 2^&lt;span style=&quot;color: #ff7600;&quot;&gt;&lt;b&gt;3&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 20px;&quot;&gt;15 = 2^&lt;span style=&quot;color: #ff7600;&quot;&gt;&lt;b&gt;4&lt;/b&gt;&lt;/span&gt; -1&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 20px;&quot;&gt;31 = 2^&lt;span style=&quot;color: #ff7600;&quot;&gt;&lt;b&gt;5&lt;/b&gt;&lt;/span&gt; - 1&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 20px;&quot;&gt;63 = 2^&lt;span style=&quot;color: #ff7600;&quot;&gt;&lt;b&gt;6&lt;/b&gt;&lt;/span&gt; - 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; text-align: right; height: 40px;&quot; rowspan=&quot;2&quot;&gt;용량&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 20px;&quot;&gt;1 byte&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 20px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2 byte&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 20px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;4 byte&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 20px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;8 byte&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 20px;&quot;&gt;1&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;byte&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 20px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;u&gt;tinyint * 2&lt;/u&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;byte&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 20px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;u&gt;smallint * 2&lt;/u&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;byte&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20%; text-align: center; height: 20px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;u&gt;int * 2&lt;/u&gt; byte&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <category>for Web/SQL Server (MS SQL)</category>
      <category>bigint</category>
      <category>INT</category>
      <category>int의종류</category>
      <category>Smallint</category>
      <category>Tinyint</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/85</guid>
      <comments>https://heavening.tistory.com/85#entry85comment</comments>
      <pubDate>Wed, 24 Jul 2019 11:42:22 +0900</pubDate>
    </item>
    <item>
      <title>SELECT 하여 다수의 행 INSERT 하기 SQL Server</title>
      <link>https://heavening.tistory.com/84</link>
      <description>&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #1b9ae6;&quot;&gt;SELECT&lt;/span&gt;&lt;/b&gt;로 &lt;b&gt;&lt;span style=&quot;color: #1b9ae6;&quot;&gt;INSERT&lt;/span&gt;&lt;/b&gt;하기 GoGo!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;아래와 같이 작성하면 &lt;b&gt;&lt;span style=&quot;color: #1b9ae6;&quot;&gt;SELECT&lt;/span&gt; &lt;/b&gt;로 읽어들인 행들이 등록됩니다.&lt;/p&gt;
&lt;p&gt;실수로 &lt;b&gt;&lt;span style=&quot;color: #ff7154;&quot;&gt;VALUE&lt;/span&gt;&lt;/b&gt;나 &lt;b&gt;&lt;span style=&quot;color: #ff7154;&quot;&gt;VALUE&lt;/span&gt;&lt;span style=&quot;color: #ff7154;&quot;&gt;S&lt;/span&gt;&lt;/b&gt;를 쓰면 구문 오류가 발생하니 주의해 주세요.&lt;/p&gt;
&lt;pre id=&quot;code_1563841687593&quot; class=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;INSERT INTO student (
	name, grade, number
)
SELECT user_name, user_grade, user_school_number
FROM user_list
WHERE user_type = 'student'&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;SQL Server에서 사용했는데 MySQL에서도 되는지는 모르겠네요 ㅎ&lt;/p&gt;</description>
      <category>for Web/SQL Server (MS SQL)</category>
      <category>INSERT SELECT</category>
      <category>select insert</category>
      <category>SQL Server</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/84</guid>
      <comments>https://heavening.tistory.com/84#entry84comment</comments>
      <pubDate>Tue, 23 Jul 2019 09:38:25 +0900</pubDate>
    </item>
    <item>
      <title>반복되는 mouseover, mouseout 해결법</title>
      <link>https://heavening.tistory.com/82</link>
      <description>&lt;p&gt;개발중 mouseover, mouseout을 같이 사용할 경우 반복되어 실행되는 경우가 발생합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;즉,&lt;/p&gt;&lt;p&gt;$('#object').mouseover();&lt;/p&gt;&lt;p&gt;$('#object').mouseout();&lt;/p&gt;&lt;p&gt;$('#object').mouseover();&lt;/p&gt;&lt;p&gt;$('#object').mouseout();&lt;/p&gt;&lt;p&gt;반복되어 실행되는 경우가 발생하는데&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이럴 때는&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;mouseover 대신 mouseenter 를&lt;/p&gt;&lt;p&gt;moustout 대신 mouseleave 를 사용하면 됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;바로 바꾸고 &lt;span style=&quot;font-size: 18pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;소스 다시 확인&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;하고 테스트 ㄱ&lt;/p&gt;</description>
      <category>for Web/jQuery</category>
      <category>jquery</category>
      <category>MouseEnter</category>
      <category>MouseLeave</category>
      <category>mouseout</category>
      <category>mouseover</category>
      <category>반복</category>
      <category>버블링</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/82</guid>
      <comments>https://heavening.tistory.com/82#entry82comment</comments>
      <pubDate>Tue, 21 Aug 2018 09:57:04 +0900</pubDate>
    </item>
    <item>
      <title>릴이 작동하지 않아요? 리셋시켜 보세요! 릴 리셋 하는 법</title>
      <link>https://heavening.tistory.com/81</link>
      <description>&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99EBDD405B6D022915&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99EBDD405B6D022915&quot; width=&quot;500&quot; height=&quot;215&quot; filename=&quot;gateimg.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;어느 날 갑자기 릴이 정상적으로 작동하지 않아 몇 일 동안 릴 구매전 사용하던 아이코스를 사용하며 버티고 있었어요.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;고장 현상은 릴을 작동시키면 &lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;span style=&quot;color: rgb(0, 130, 153);&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: rgb(61, 183, 204);&quot;&gt;하늘색&lt;/span&gt;&lt;/b&gt;&lt;/span&gt; 불이 반짝거리다가 &lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;빨간&lt;/span&gt; 불 다섯 번 반짝 후 꺼짐현상&lt;/span&gt;....&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99CC4C345B6D34BF1C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99CC4C345B6D34BF1C&quot; width=&quot;500&quot; height=&quot;499&quot; filename=&quot;gatelilimg.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;사는 곳이 일산이다 보니 구매는 서울에서 했으며,&lt;/p&gt;&lt;p&gt;( 일산에서 딱 한 군데 판매하는 곳이 있었는데 예약하면 10일정도&amp;nbsp;기다려야하고 예약을 하려면 열흘 동안 펴지도 못할 Fit(?)을&amp;nbsp;한 보루 사야한다는 소릴 하길래 걍 안사고 돌아옴..&amp;nbsp;※ 현재 그 편의점은 무슨 이유 때문인지 더 이상 판매를 안하고 있는듯 하더라구요 ㅋㅋ &lt;strike&gt;메데타시 메데타시&lt;/strike&gt;&amp;nbsp;)&lt;/p&gt;&lt;p&gt;AS 받을 수 있는 곳도 고양시 내에선 탄현 한 군데라 거리가 있어 시간을 내어 금요일에 가기로 했었죠.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/998CEE4D5B6D037C15&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F998CEE4D5B6D037C15&quot; width=&quot;500&quot; height=&quot;380&quot; filename=&quot;tanhyeon.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;홈페이지에서 정확한 위치를 보기위해 검색중 방문 전 콜센터 위치를 확인했는데 접수 후 방문이라 되어있어 콜센터에 문의했더니 리셋하라고 하시더라구요!&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그래서 제가 리셋 방법을 여쭤보고 리셋 후 문제가 지속되면 연락드리겠다고 했어요.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(47, 157, 39); font-size: 14pt;&quot;&gt;&lt;b&gt;리셋 방법은 작동버튼을 8초 이상 누르고 있기!&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;8초이상 누르면 중간에 릴이&amp;nbsp;작동 되는데 무시하고 계속 누르고 계시면 돼요!&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그러면 잠시후 불빛 색이 번갈아가면서 켜졌을 때 손을 떼시면 됩니다 ^^&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;다행히 제가 사용하고 있는 릴은 리셋후 정상작동되네요!&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;정말 다행이예요 ㅋㅋ&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;정상 작동 확인 후 릴 홈페이지에 가보니 영상으로 오류났을 때 대처법이 나와 있었네요...ㅠ ( 진작 찾아볼껄.. )&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/FN8vY_8D8ZI&quot; width=&quot;560&quot; height=&quot;315&quot; allow=&quot;autoplay; encrypted-media&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99445F3E5B6D34F728&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99445F3E5B6D34F728&quot; width=&quot;500&quot; height=&quot;410&quot; filename=&quot;lilbox.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이미지 출처 : &lt;a href=&quot;https://its-lil.com/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;릴 공식 홈페이지 (&amp;nbsp;https://its-lil.com/ )&lt;/a&gt;&lt;/p&gt;</description>
      <category>Story</category>
      <category>Lil</category>
      <category>고장</category>
      <category>리셋</category>
      <category>리셋방법</category>
      <category>릴</category>
      <category>오류</category>
      <author>Heavening</author>
      <guid isPermaLink="true">https://heavening.tistory.com/81</guid>
      <comments>https://heavening.tistory.com/81#entry81comment</comments>
      <pubDate>Fri, 10 Aug 2018 15:49:14 +0900</pubDate>
    </item>
  </channel>
</rss>