<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>뭐든지하는 웹개발</title>
    <link>https://rootjs.tistory.com/</link>
    <description>매번 다른분들 블로그에서 찾을빠엔 내꺼에 등록해두자로 시작했습니다.
웹개발자로 일하고 있습니다.</description>
    <language>ko</language>
    <pubDate>Sun, 17 May 2026 02:18:56 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Root_js</managingEditor>
    <image>
      <title>뭐든지하는 웹개발</title>
      <url>https://tistory1.daumcdn.net/tistory/1739773/attach/1354ecc229094115aa2cf3918b260885</url>
      <link>https://rootjs.tistory.com</link>
    </image>
    <item>
      <title>[엑셀] 초를 시분초로.. 2000 =&amp;gt; 00:00:00</title>
      <link>https://rootjs.tistory.com/171</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;E2가 셀~&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(QUOTIENT(E2,3600)=0,&quot;00:&quot;,IF(LEN(QUOTIENT(E2,3600))=1,&quot;0&quot;&amp;amp;QUOTIENT(E2,3600),QUOTIENT(E2,3600))&amp;amp;&quot;:&quot;)&amp;amp;IF(MOD(QUOTIENT(E2,60),60)=0,&quot;00:&quot;,IF(LEN(MOD(QUOTIENT(E2,60),60))=1,&quot;0&quot;&amp;amp;MOD(QUOTIENT(E2,60),60),MOD(QUOTIENT(E2,60),60))&amp;amp;&quot;:&quot;)&amp;amp;IF(MOD(E2,60)=0,&quot;00&quot;,IF(LEN(MOD(E2,60))=1,&quot;0&quot;&amp;amp;MOD(E2,60),MOD(E2,60)))&lt;/p&gt;</description>
      <category>일상/이야기</category>
      <category>Excel</category>
      <category>시분초</category>
      <category>엑셀</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/171</guid>
      <comments>https://rootjs.tistory.com/171#entry171comment</comments>
      <pubDate>Thu, 16 Jan 2025 16:42:28 +0900</pubDate>
    </item>
    <item>
      <title>ubuntu22.04 sqlsrv_connect() install sqlsrv php7.2 nginx</title>
      <link>https://rootjs.tistory.com/170</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;apt-get&amp;nbsp;install&amp;nbsp;php7.2-dev&amp;nbsp;php7.2-xml&amp;nbsp;-y&amp;nbsp;--allow-unauthenticated &lt;br /&gt;sudo&amp;nbsp;curl&amp;nbsp;&lt;a href=&quot;https://packages.microsoft.com/keys/microsoft.asc&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://packages.microsoft.com/keys/microsoft.asc&lt;/a&gt;&amp;nbsp;|&amp;nbsp;apt-key&amp;nbsp;add&amp;nbsp;- &lt;br /&gt;sudo&amp;nbsp;curl&amp;nbsp;&lt;a href=&quot;https://packages.microsoft.com/config/ubuntu/18.04/prod.list&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://packages.microsoft.com/config/ubuntu/22.04/prod.list&lt;/a&gt;&amp;nbsp;&amp;gt;&amp;nbsp;/etc/apt/sources.list.d/mssql-release.list &lt;br /&gt;sudo&amp;nbsp;apt-get&amp;nbsp;update &lt;br /&gt;&lt;br /&gt;sudo&amp;nbsp;ACCEPT_EULA=Y&amp;nbsp;apt-get&amp;nbsp;install&amp;nbsp;msodbcsql17&amp;nbsp;-y &lt;br /&gt;sudo&amp;nbsp;ACCEPT_EULA=Y&amp;nbsp;apt-get&amp;nbsp;install&amp;nbsp;mssql-tools&amp;nbsp;-y &lt;br /&gt;echo&amp;nbsp;'export&amp;nbsp;PATH=&quot;$PATH:/opt/mssql-tools/bin&quot;'&amp;nbsp;&amp;gt;&amp;gt;&amp;nbsp;~/.bash_profile &lt;br /&gt;echo&amp;nbsp;'export&amp;nbsp;PATH=&quot;$PATH:/opt/mssql-tools/bin&quot;'&amp;nbsp;&amp;gt;&amp;gt;&amp;nbsp;~/.bashrc &lt;br /&gt;source&amp;nbsp;~/.bashrc &lt;br /&gt;&lt;br /&gt;sudo&amp;nbsp;apt-get&amp;nbsp;install&amp;nbsp;unixodbc-dev&amp;nbsp;-y &lt;br /&gt;sudo&amp;nbsp;apt-get&amp;nbsp;install&amp;nbsp;gcc&amp;nbsp;g++&amp;nbsp;make&amp;nbsp;autoconf&amp;nbsp;libc-dev&amp;nbsp;pkg-config&amp;nbsp;-y&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;sudo&amp;nbsp;printf&amp;nbsp;&quot;;&amp;nbsp;priority=20\nextension=sqlsrv.so\n&quot;&amp;nbsp;&amp;gt;&amp;nbsp;/etc/php/7.2/mods-available/sqlsrv.ini &lt;br /&gt;sudo&amp;nbsp;printf&amp;nbsp;&quot;;&amp;nbsp;priority=30\nextension=pdo_sqlsrv.so\n&quot;&amp;nbsp;&amp;gt;&amp;nbsp;/etc/php/7.2/mods-available/pdo_sqlsrv.ini &lt;br /&gt;sudo&amp;nbsp;phpenmod&amp;nbsp;-v&amp;nbsp;7.2&amp;nbsp;sqlsrv&amp;nbsp;pdo_sqlsrv &lt;br /&gt;sudo&amp;nbsp;apt-get&amp;nbsp;install&amp;nbsp;libapache2-mod-php7.2&amp;nbsp; &lt;br /&gt;&lt;br /&gt;SUDO&amp;nbsp;pecl&amp;nbsp;-d&amp;nbsp;php_suffix=7.2&amp;nbsp;install&amp;nbsp;sqlsrv-5.8.0 &lt;br /&gt;SUDO&amp;nbsp;pecl&amp;nbsp;-d&amp;nbsp;php_suffix=7.2&amp;nbsp;install&amp;nbsp;pdo_sqlsrv-5.8.0 &lt;br /&gt;&lt;br /&gt;sudo&amp;nbsp;echo&amp;nbsp;extension=pdo_sqlsrv.so&amp;nbsp;&amp;gt;&amp;gt;&amp;nbsp;`php&amp;nbsp;--ini&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;&quot;Scan&amp;nbsp;for&amp;nbsp;additional&amp;nbsp;.ini&amp;nbsp;files&quot;&amp;nbsp;|&amp;nbsp;sed&amp;nbsp;-e&amp;nbsp;&quot;s|.*:\s*||&quot;`/pdo_sqlsrv.ini &lt;br /&gt;sudo&amp;nbsp;echo&amp;nbsp;extension=sqlsrv.so&amp;nbsp;&amp;gt;&amp;gt;&amp;nbsp;`php&amp;nbsp;--ini&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;&quot;Scan&amp;nbsp;for&amp;nbsp;additional&amp;nbsp;.ini&amp;nbsp;files&quot;&amp;nbsp;|&amp;nbsp;sed&amp;nbsp;-e&amp;nbsp;&quot;s|.*:\s*||&quot;`/sqlsrv.ini &lt;br /&gt;sudo&amp;nbsp;apt-get&amp;nbsp;install&amp;nbsp;php-pear&amp;nbsp;-y&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;pdo_sqlsrv.ini, sqlsrv.ini 파일 생성 확인 및 .so 내용 작성되었는지 확인&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;sqlcmd -S 111.222.333.444 -U SA -P '{비밀번호}'&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sqlcmd:&amp;nbsp;Error:&amp;nbsp;Microsoft&amp;nbsp;ODBC&amp;nbsp;Driver&amp;nbsp;17&amp;nbsp;for&amp;nbsp;SQL&amp;nbsp;Server&amp;nbsp;:&amp;nbsp;TCP&amp;nbsp; &lt;br /&gt;Provider:&amp;nbsp;Error&amp;nbsp;code&amp;nbsp;0x2746.&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 /etc/ssl/openssl.conf&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CipherString&amp;nbsp;=&amp;nbsp;DEFAULT:@SECLEVEL=2&amp;nbsp;=&amp;gt;&amp;nbsp;CipherString&amp;nbsp;=&amp;nbsp;DEFAULT:@SECLEVEL=0&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2를 0으로 변경&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>serverSide/Linux</category>
      <category>MSSQL</category>
      <category>nginx</category>
      <category>php7.2</category>
      <category>ubuntu22.04</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/170</guid>
      <comments>https://rootjs.tistory.com/170#entry170comment</comments>
      <pubDate>Wed, 4 Dec 2024 15:47:12 +0900</pubDate>
    </item>
    <item>
      <title>apache2.4 AH00051: child pid 1486424 exit signal Segmentation fault (11)</title>
      <link>https://rootjs.tistory.com/169</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;아래 조치사항은 어디까지나 나의 경우이니 참고용으로 봐주세요~&lt;/b&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;Rocky Linux release 8.9&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;php7.2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;에 apache와 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;내경우는 간헐적으로 404페이지가 뜰때나 rewrite 모듈 사용할때 err_empty_response 가 뜨는 문제였음&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.4 AH00051: child pid 1486424 exit signal Segmentation fault (11)&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;이문제와 관련이 있다고 생각도 못했고 아파치설정 변경하고 php.ini 설정 변경해가면서 테스트함&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;하다하다 안되서 IDC 요청했으나 며칠에 걸쳐 테스트한 결론은 모듈쪽 오류인거까진 확인했는데 하나하나 테스트를 해봐야할꺼같다고 회신이 옴&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;저 에러가 발생하는 경우 높은 확률로 coredump를 떠서 확인을 함&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;apache 설치 경로상의 httpd.conf 파일 열어서 하단에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CoreDumpDirectory /tmp&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;지정한 폴더 권한을 apache에서 사용하는 권한과 동일하게 맞춤 내경우는 nobody&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;apachectl restart 아파치 재시작&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;재시작해도 안되는경우는 stop 후 start 하라는데 그래도 안생김&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;코어덤프 설정을 아래 경로에서 한다고 함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;/proc/sys/kernel/core_pattern&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;find / -name core*&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;/var/lib/systemd/coredump/&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;덤프파일 확인했으니 gdb 통해서 디버깅&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;덤프파일 생성 확장자가 lz4로 생성됨 압축파일이니 풀어야 디버깅 가능&lt;/b&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;gdb /usr/local/httpd/bin/httpd /var/lib/systemd/coredump/core.httpd.65534.e368e68e7d6d494a9cff1d15a64b3156.1445143.1722234264000000&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;위 명령어 실행하면 gdb가 시작되고&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;bt를 입력하면 backtrace 정보를 보여줌&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1056&quot; data-origin-height=&quot;301&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BGibP/btsIQpiBO1W/RtKLdzvAHE4Mjg22lKW7Y0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BGibP/btsIQpiBO1W/RtKLdzvAHE4Mjg22lKW7Y0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BGibP/btsIQpiBO1W/RtKLdzvAHE4Mjg22lKW7Y0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBGibP%2FbtsIQpiBO1W%2FRtKLdzvAHE4Mjg22lKW7Y0%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;1056&quot; height=&quot;301&quot; data-origin-width=&quot;1056&quot; data-origin-height=&quot;301&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;내경우의 bt정보인데 뭔소린지 하나도 모르겠어서 위에서부터 하나씩 모듈을 닫아보기로 함&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;그랬더니 mod_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;서버 OS 설치 및 기본 세팅은 내가 하지 않아서 어떻게 설정되어있는지 모르지만 mod_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;/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>serverSide/Linux</category>
      <category>apache</category>
      <category>coredump</category>
      <category>gdb</category>
      <category>php7.2</category>
      <category>Rocky LInux</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/169</guid>
      <comments>https://rootjs.tistory.com/169#entry169comment</comments>
      <pubDate>Tue, 30 Jul 2024 08:14:32 +0900</pubDate>
    </item>
    <item>
      <title>apache2.4 php htaccess 설정</title>
      <link>https://rootjs.tistory.com/168</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;내가 서버세팅 한게 아니기도 하고 nginx를 사용하고 있다보니 설정하느라 시간 좀 보낸 ㅠㅠ&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;apache 버전 및 설치 폴더 확인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;httpd설정 또는 vhosts 설정을 변경해야해서 설치폴더 위치를 확인해야함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;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;vhosts파일 위치 찾은 후 htaccess 를 사용할 사이트에 적용&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;lt;VirtualHost&amp;nbsp;*:80&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ServerName&amp;nbsp;&lt;a href=&quot;http://www.aaaa.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;http://www.aaaa.com&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DocumentRoot &quot;/usr/lib/myDoc&quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;Directory&amp;nbsp;&quot;/usr/lib/myDoc&quot;&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Options&amp;nbsp;FollowSymLinks &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AllowOverride&amp;nbsp;All &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Require&amp;nbsp;all&amp;nbsp;granted &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Directory&amp;gt;&lt;br /&gt;&amp;lt;/VirtualHost&amp;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;&amp;nbsp;&amp;lt;Directory&amp;nbsp;&quot;/usr/lib/myDoc&quot;&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Options&amp;nbsp;FollowSymLinks &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AllowOverride&amp;nbsp;All &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Require&amp;nbsp;all&amp;nbsp;granted &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/Directory&amp;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;위 부분 추가 후 apache 재시작&lt;/p&gt;</description>
      <category>serverSide/Linux</category>
      <category>apache</category>
      <category>htaccess</category>
      <category>rewirte</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/168</guid>
      <comments>https://rootjs.tistory.com/168#entry168comment</comments>
      <pubDate>Thu, 18 Jul 2024 10:56:09 +0900</pubDate>
    </item>
    <item>
      <title>MySQL5.1 백업 -&amp;gt; MySQL5.7 복원</title>
      <link>https://rootjs.tistory.com/167</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;우선 이전DB에서 전체 스키마 백업 파일 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mysqldump -p -u root --opt --single-transaction --master-data=1 --all-databases &amp;gt; allbak.sql&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;신규 DB에 복원&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mysql -uroot -p &amp;lt; ***.sql&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;복원 후에 mysql 스키마에 변경된 부분들이 있어 수정 처리 해둠&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mysql_upgrade&amp;nbsp;-uroot&amp;nbsp;-p&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;혹시나 서버가 replication 설정 되어있으면 위 mysql_upgrade는 양쪽 서버 모두 실행해야 됨 안그러면 slave에서 에러 발생함~&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>serverSide/MariaDB(MYSQL)</category>
      <category>Backup</category>
      <category>mysql</category>
      <category>Replication</category>
      <category>restore</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/167</guid>
      <comments>https://rootjs.tistory.com/167#entry167comment</comments>
      <pubDate>Mon, 8 Jul 2024 14:53:35 +0900</pubDate>
    </item>
    <item>
      <title>php 배열 싱글쿼테이션 치환</title>
      <link>https://rootjs.tistory.com/166</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;([$])(.[a-zA-Z0-9]*)\[((?![0-9].)[a-zA-Z0-9_]+)\]&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;5.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;형식은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$_aaa[bbb]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$bbb[aa_04]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 같은 형식은 적용이 되고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$aaa[$b]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위처럼 배열 키값을 별도로 받아오는경우는 제외&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$aaa[]&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;$1$2['$3']&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위처럼 하면 됨&lt;/p&gt;</description>
      <category>serverSide/PHP</category>
      <category>5.3</category>
      <category>php</category>
      <category>배열</category>
      <category>싱글쿼테이션</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/166</guid>
      <comments>https://rootjs.tistory.com/166#entry166comment</comments>
      <pubDate>Tue, 25 Jun 2024 11:04:31 +0900</pubDate>
    </item>
    <item>
      <title>Ubuntu 22.04 no matching host key type found. Their offer: ssh-rsa,ssh-dss</title>
      <link>https://rootjs.tistory.com/165</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;(ubuntu)우분투 서버에서 CentOS6(센토스) 서버로 ssh 연결을 시도하는데 아래와 같은 에러가 나옴&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;no&amp;nbsp;matching&amp;nbsp;host&amp;nbsp;key&amp;nbsp;type&amp;nbsp;found.&amp;nbsp;Their&amp;nbsp;offer:&amp;nbsp;ssh-rsa,ssh-dss&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;ubuntu22.04와 CentOS6이 시기적으로 차이가 많이 나다보니 알고리즘 방식이 차단되면서 발생한 문제&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;ubuntu22.04 서버에 ssh 설정을 추가함&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;vim /etc/ssh/sshd_config&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;HostkeyAlgorithms&amp;nbsp;ssh-dss,ssh-rsa &lt;br /&gt;KexAlgorithms +diffie-hellman-group1-sha1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PubkeyAcceptedKeyTypes&amp;nbsp;+ssh-rsa&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>serverSide/Linux</category>
      <category>centos6</category>
      <category>ssh</category>
      <category>ubuntu22.04</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/165</guid>
      <comments>https://rootjs.tistory.com/165#entry165comment</comments>
      <pubDate>Thu, 16 May 2024 11:02:46 +0900</pubDate>
    </item>
    <item>
      <title>폴드5 카메라 무음 처리</title>
      <link>https://rootjs.tistory.com/164</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;방법 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;플레이스토어에서 SetEdit 를 설치&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;b&gt;&quot;csc_pref_camera_forced_shuttersound_key&quot; &quot;1&quot;&lt;/b&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;b&gt;edit Value 클릭 후 1을 0으로 수정&lt;/b&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. 프로그램 이용&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;ADB app control 이란 프로그램을 설치 함 (&lt;a href=&quot;https://adbappcontrol.com/en/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://adbappcontrol.com/en/&lt;/a&gt;)&lt;/b&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;b&gt;디버깅 모드 활성화&lt;/b&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;gt; 휴대전화 정보 &amp;gt; 소프트웨어 정보 &amp;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;개발자옵션으로 넘어가서 USB 디버깅 켜고 컴퓨터와 연결&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;정상 연결되면 ADB app control 프로그램에 설치앱 정보들이 로딩 됨&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;위 탭중에 console 탭으로 넘어가서&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;b&gt; &lt;span style=&quot;background-color: #ffffff; color: #1f1f1f; text-align: left;&quot;&gt;adb shell settings put system csc_pref_camera_forced_shuttersound_key 0&lt;/span&gt;&lt;/b&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: #1f1f1f;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&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;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;2번 방법으로는 업데이트 이후에도 정상 무음 처리 됨..&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;</description>
      <category>일상/이야기</category>
      <category>adb app control</category>
      <category>카메라 무음</category>
      <category>폴드5</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/164</guid>
      <comments>https://rootjs.tistory.com/164#entry164comment</comments>
      <pubDate>Tue, 7 May 2024 09:52:21 +0900</pubDate>
    </item>
    <item>
      <title>ADGUARD 삭제 후 (local.adguard.org) 비발디 브라우저 로딩 지연 문제</title>
      <link>https://rootjs.tistory.com/163</link>
      <description>&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;blob&quot; data-origin-width=&quot;631&quot; data-origin-height=&quot;87&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/criBwg/btsCUBP1qOM/GZEfb1JZXI5NdUENKEp3z0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/criBwg/btsCUBP1qOM/GZEfb1JZXI5NdUENKEp3z0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/criBwg/btsCUBP1qOM/GZEfb1JZXI5NdUENKEp3z0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcriBwg%2FbtsCUBP1qOM%2FGZEfb1JZXI5NdUENKEp3z0%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;631&quot; height=&quot;87&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;631&quot; data-origin-height=&quot;87&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;adguard쪽에 문의하니 삭제툴을 이용해보라고 해서 삭제 했으나 해결 안됨&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;iframe 호출부분에서만 발생하는데 브라우저 문제인건지 adguard 문제인건지 유니콘문제인건지 뭔지 파악이 안됨..&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;adguard 삭제 해보고 유니콘 프로 꺼보고 브라우저 업데이트 해보고 이것저것 시도해봤으나 문제가 해결이 안됨...&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;b&gt;1번 방법은 브라우저 열때마다 설정해야해서 불편하고 2번 방법 추천~&lt;/b&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;b&gt;1. 브라우저에서 차단&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;차단 방법 페이지 접속 후 f12로 개발자도구 연 후 네트워크 탭으로 이동&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;314&quot; data-origin-height=&quot;45&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/csRmhk/btsCWLY6FM6/6AmLKazwRwavLqHuBOhiKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/csRmhk/btsCWLY6FM6/6AmLKazwRwavLqHuBOhiKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/csRmhk/btsCWLY6FM6/6AmLKazwRwavLqHuBOhiKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcsRmhk%2FbtsCWLY6FM6%2F6AmLKazwRwavLqHuBOhiKk%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;314&quot; height=&quot;45&quot; data-origin-width=&quot;314&quot; data-origin-height=&quot;45&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;페이지를 새로고침 하면 해당 사이트에서 로딩하는 파일들 목록이 쭉 보임 그중에 차단되는 파일에 우클릭 후 요청 URL 차단 클릭해서 해당 주소 접근 시 브라우저에서 아예 차단되게 변경해둠&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;391&quot; data-origin-height=&quot;373&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAROTc/btsC01mOG68/wyxsuHQmHlU34phNjyInak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAROTc/btsC01mOG68/wyxsuHQmHlU34phNjyInak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAROTc/btsC01mOG68/wyxsuHQmHlU34phNjyInak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAROTc%2FbtsC01mOG68%2FwyxsuHQmHlU34phNjyInak%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;391&quot; height=&quot;373&quot; data-origin-width=&quot;391&quot; data-origin-height=&quot;373&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;b&gt;2. DNS에서 연결 안되도록 변경처리&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메모장을 관리자 권한으로 열어서 C:\Windows\System32\drivers\etc 의 hosts 파일을 열어서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제일 하단에 0.0.0.0&amp;nbsp; local.adguard.org 를 입력해서 저장하면 해당 도메인 연결이 지연없이 차단됨..&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>일상/이야기</category>
      <category>adguard</category>
      <category>local.adguard.org</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/163</guid>
      <comments>https://rootjs.tistory.com/163#entry163comment</comments>
      <pubDate>Wed, 3 Jan 2024 13:26:42 +0900</pubDate>
    </item>
    <item>
      <title>awk 를 사용해서 nginx apache 로그 파일 분석</title>
      <link>https://rootjs.tistory.com/162</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;apache 로그 기준&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;awk '($7 ~ /접속페이지/ &amp;amp;&amp;amp; $1 ~ /접속아이피/)' /usr/local/apache/logs/파일명 | awk '{print}' | sort | uniq -c | sort -r | head -n 1000&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;위 명령어를 사용하면 로그파일 상의 접속 페이지 기록 중 접속 아이피만 출력하는데 {print} 로 로그상의 모든 내용을 출력하면 중복 카운팅 없이 전체 출력이 가능함&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;awk '($7 ~ /접속페이지/ &amp;amp;&amp;amp; $1 ~ /접속아이피/)' /usr/local/apache/logs/파일명 | awk '{print $1, $7}' | sort | uniq -c | sort -r | head -n 1000&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;위 처럼 print 부분에 순서를 지정해주면 중복제거되고 카운팅으로 출력 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>serverSide/Linux</category>
      <category>apache</category>
      <category>awk</category>
      <category>log</category>
      <category>nginx</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/162</guid>
      <comments>https://rootjs.tistory.com/162#entry162comment</comments>
      <pubDate>Tue, 12 Dec 2023 17:56:04 +0900</pubDate>
    </item>
    <item>
      <title>ubuntu22.04 설치 후 기본 세팅</title>
      <link>https://rootjs.tistory.com/161</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;&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;- 센토스와 우분투 모두 설치 시 네트워크 설정을 입력하도록 되어있으나 기본 라우팅 설정문제로 네트워크가 정상적으로 외부 연결이 안되거나 특정 부분에서 막히는 경우가 생김&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 꼭 핑테스트와 APT 또는 YUM 레포지토리 연결이 성장 진행되는지 확인이 필요&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;2. 방화벽 설정 확인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 서버 기본 방화벽 firewall-cmd / ufw 설정이 귀찮다고 끄고 사용하면 그만큼 보안에 문제가 발생하니 귀찮더라도 켜두고 세팅을 진행&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;3. ssh 연결&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;ssh 설치는 기본적으로 되어있지만 mini로 설치하면 안되어있는 경우도 있으니 1번 부분이 정상 진행되었다면 설치를 진행함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;ssh 설치 및 테스트는 내부 외부 모두 진행하며 방화벽을 아이피에 포트까지 제한하여 사용한다면 기본포트를 사용해도 되지만 보안을 조금이라도 더 높힌다면 다른 포트로 변경해서 사용하길 권장&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;root 계정은 로컬이 아닌 접속에서는 연결이 안되도록 하는게 기본이고 그외 sftp설정을 손을 안대면 추가계정들이 sftp 접속 시 상위폴더 접근이 가능해지니 ftp로 사용할 계정과 콘솔연결용 계정을 따로 둬서 사용하며 ftp계정은 콘솔 연결 시 상위로 접근이 안되도록 하거나 아예 ssh로 연결이 안되게 처리함&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;4. vsftp 설정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- ftp기본포트는 21번이나 이부분도 위와 동일한 조건으로 설정이 안된다면 다른포트로 변경해서 사용함을 권장함&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>serverSide/Linux</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/161</guid>
      <comments>https://rootjs.tistory.com/161#entry161comment</comments>
      <pubDate>Fri, 3 Nov 2023 11:01:47 +0900</pubDate>
    </item>
    <item>
      <title>ubuntu Server 22.04 설치 및 라우팅 설정(default routes)</title>
      <link>https://rootjs.tistory.com/160</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;기존에 서버들은 몯 CentOS7이나 6.10을 사용했으나 지원이 끊기는 관계로 우분투로 넘어가게 되었음&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;파티션 설정도 LVM으로 처리했으나 여유공간을 너무 잡아두길래 swap 4G 추가하고 남은 공간 계산해서 lv 다 포함 시켜서 생성함&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;문제는 내부 외부 모두 설정하고 라우팅 설정 따로 하지 않으면 apt 저장소에 접속이 안됨&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;이게 왜 그런건지 확인하느라고 dns 바꿔보고 했는데 최종 문제는 기본 라우팅을 뭘로 사용할지 설정을 하지 않아서 생기는 문제&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;routes:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- to: 192.168.0.0/24&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;via: 192.168.0.1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 처럼 설정하고 외부로 연결될 라우트를 default 로 설정해야 함&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>serverSide/Linux</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/160</guid>
      <comments>https://rootjs.tistory.com/160#entry160comment</comments>
      <pubDate>Thu, 2 Nov 2023 13:28:19 +0900</pubDate>
    </item>
    <item>
      <title>MariaDB 10.5 사용자 확인</title>
      <link>https://rootjs.tistory.com/159</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;user table이 view로 변경되고 사용자 추가할때마다 까먹어서 작성해둠..&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;select * from mysql.global_priv;&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;현재 설정되어있는 user와 host 정보 확인 가능&lt;/p&gt;</description>
      <category>serverSide/MariaDB(MYSQL)</category>
      <category>MariaDB</category>
      <category>user</category>
      <category>view</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/159</guid>
      <comments>https://rootjs.tistory.com/159#entry159comment</comments>
      <pubDate>Tue, 22 Aug 2023 07:32:34 +0900</pubDate>
    </item>
    <item>
      <title>[CentOS6.9] Apache, SSL 가상호스트 설정</title>
      <link>https://rootjs.tistory.com/158</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;작업환경은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CentOS6.9&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Apache 2.2.22&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;아파치2.1 버전 이후에는 mod_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;근데 실제 세팅해보니 이게 되는건지 안되는건지 애먹음..&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;아파치 폴더경로는 /usr/local/apache 이고&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;설정파일은 /usr/local/apache/conf/extra 폴더에 httpd-ssl.conf 파일에다가 세팅함&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;http 가상호스트 설정해서 https로 넘기는건 별도 작업이 필요&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;NameVirtualHost&amp;nbsp;*:443 &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&amp;lt;VirtualHost&amp;nbsp;_default_:443&amp;gt; &lt;br /&gt;&lt;br /&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;General&amp;nbsp;setup&amp;nbsp;for&amp;nbsp;the&amp;nbsp;virtual&amp;nbsp;host &lt;br /&gt;DocumentRoot&amp;nbsp;&quot;폴더경로&quot; &lt;br /&gt;ServerName 사용도메인&lt;br /&gt;ServerAlias 본도메인&lt;br /&gt;&lt;br /&gt;SSLEngine on&lt;br /&gt;SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL&amp;nbsp; &amp;lt;== 각 서버 설정에 맞도록 변경 필요&lt;br /&gt;SSLCertificateFile /usr/local/apache/conf/cert_도메인.crt &lt;br /&gt;SSLCACertificateFile /usr/local/apache/conf/rootca_도메인.crt &lt;br /&gt;SSLCertificateChainFile /usr/local/apache/conf/subca_도메인.crt &lt;br /&gt;SSLCertificateKeyFile /usr/local/apache/conf/prv_도메인.key &lt;br /&gt;&lt;br /&gt;&amp;lt;/VirtualHost&amp;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;위처럼 설정하면 기본 ssl은 연결이 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 코드랑 동일하게 복붙한 후 도메인부분과 폴더경로 설정하고 apachectl restart 하면!&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;span style=&quot;color: #ee2323;&quot;&gt;ssl 연결이 안됨.... 서버에서 다시 한번 아파치를 재시작하면 ssl 인증서 암호 입력하라고 뜨고 정상 연결 됨&lt;/span&gt;&lt;/b&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; mod_ssl을 설치해볼까도 살펴보고 이것저것 해봤지만 다 안됨..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2번 재시작해야 정상 가동되는 부분이 왜 그런건지는 파악하지 못했으나 2개 도메인 다 별도 폴더 경로로 연결이 되서 마무리함 ㅎ;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>serverSide/Linux</category>
      <category>apache</category>
      <category>centos</category>
      <category>linux</category>
      <category>SSL</category>
      <category>VirtualHost</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/158</guid>
      <comments>https://rootjs.tistory.com/158#entry158comment</comments>
      <pubDate>Tue, 25 Jul 2023 08:19:34 +0900</pubDate>
    </item>
    <item>
      <title>매직포스  Smart 21 블루투스 연결</title>
      <link>https://rootjs.tistory.com/157</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Fn + Enter 키를 5초간 누른다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상태표시등이 깜빡거리면 페어링 상태&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디바이스에서 Magicforce Smart 21 찾아서 연결하면 끝&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>일상/이야기</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/157</guid>
      <comments>https://rootjs.tistory.com/157#entry157comment</comments>
      <pubDate>Wed, 17 May 2023 15:14:34 +0900</pubDate>
    </item>
    <item>
      <title>vi 복사 붙여넣기 시 들여쓰기 문제</title>
      <link>https://rootjs.tistory.com/156</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;좀 귀찮더라도 vi 에서 인서트 하기전에 :set paste 입력하고 i 눌러서 입력하면 insert(paste) 로 설정됨&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>serverSide/Linux</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/156</guid>
      <comments>https://rootjs.tistory.com/156#entry156comment</comments>
      <pubDate>Wed, 17 May 2023 07:36:35 +0900</pubDate>
    </item>
    <item>
      <title>monsgeek M5 RGB 백라이트 설정 단축키</title>
      <link>https://rootjs.tistory.com/155</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;검색해보다가 기억해둘 겸 작성합니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #111111; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;끄기 켜기 : Fn + L&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #111111; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;색상 변경 : &amp;nbsp;Fn + \&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #111111; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;​밝기 조절 : Fn + &amp;uarr;&amp;darr;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #111111; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;효과 변경 : Fn + Insert / Home / PgUp / Del / End / PgDn&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #111111; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;채도 변경 : Fn + &amp;larr; &amp;rarr;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #111111; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;속도 변경 : Fn + - + &amp;nbsp;(더하기 빼기 키)&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #111111; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;그 외에 키도 있는데 적용이 안되는 건지 확인된것만 위에 올립니다. 추가로 M3한글 매뉴얼 링크 올립니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #111111; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #111111; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://manuals.plus/ko/monsgeek/m3-qmk-mechanical-keyboard-manual&quot;&gt;MONSGEEK M3 QMK 기계식 키보드 사용 설명서 - Manuals+&lt;/a&gt;&lt;/p&gt;</description>
      <category>일상/이야기</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/155</guid>
      <comments>https://rootjs.tistory.com/155#entry155comment</comments>
      <pubDate>Fri, 12 May 2023 14:13:56 +0900</pubDate>
    </item>
    <item>
      <title>SSH 공개키(개인키) - 비밀번호 없이 로그인</title>
      <link>https://rootjs.tistory.com/154</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;환경 : 윈도우 10&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;우선 git을 설치해서 bash 사용을 할 수 있게하던지 bash 를 쓸 수 있게 만들어야함&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;작성 기준은 git bash를 사용한다는 기준으로 설명&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;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. 윈도우탐색기를 열고&amp;nbsp; 내 PC에서 로컬 디스크( C:) 클릭 폴더목록화면에서 마우스 우클릭 한 후 Git Bash Here 클릭&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. 이후로는 마우스를 사용하지 않고 다 키보드 입력 =&amp;gt; bash 창 열린 후 cd ~ 입력 후 엔터&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3. ls -al 입력 후 엔터 =&amp;gt; 폴더 목록에서 .ssh 가 있는지 확인 &amp;lt;= 폴더명은 퍼런색으로 보임&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;4. ssh 폴더가 있으면 cd .ssh로 이동 없으면 mkdir .ssh로 생성 후 이동&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;5. ssh-keygen -t rsa 입력 후 엔터 엔터 엔터 엔터 엔터 엔....&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;6. ls -al 입력 후 엔터 =&amp;gt; id_rsa, id_rsa.pub, known_hosts 등 파일이 확인되면 키생성 완료&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;6번까지 완료하면 개인키 생성 완료&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;생성한 키 파일을 비밀번호 없이 연결할 쪽으로 전송&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;.ssh 폴더에서 아래 명령어 입력&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;scp -P포트번호 id_rsa.pub 계정명@호스트정보:폴더경로&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;연결이 정상적으로 된거면 비밀번호 입력창이 뜸&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;계정명 &amp;lt;= 의 비밀번호 입력하면 일단 서버쪽으로 개인키파일 전송 완료&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이제 키파일을 보낸 서버쪽에서 개인키를 접속할 계정의 authorized_keys 에 입력해주면 끝~&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IDE/GIT</category>
      <category>bash</category>
      <category>Git</category>
      <category>ssh</category>
      <category>개인키</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/154</guid>
      <comments>https://rootjs.tistory.com/154#entry154comment</comments>
      <pubDate>Wed, 12 Apr 2023 08:46:33 +0900</pubDate>
    </item>
    <item>
      <title>smartEditor2 첨부 이미지 사이즈 크기 조절</title>
      <link>https://rootjs.tistory.com/153</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://gist.github.com/kyungilpark/a5901e43be5ef7222ef531a466678918#file-hp_se_quickeditor_image-js&quot;&gt;gist.github.com/kyungilpark/a5901e43be5ef7222ef531a466678918#file-hp_se_quickeditor_image-js&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1677807239897&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;hp_SE_QuickEditor_Image.js&quot; data-og-description=&quot;hp_SE_QuickEditor_Image.js. GitHub Gist: instantly share code, notes, and snippets.&quot; data-og-host=&quot;gist.github.com&quot; data-og-source-url=&quot;https://gist.github.com/kyungilpark/a5901e43be5ef7222ef531a466678918#file-hp_se_quickeditor_image-js&quot; data-og-url=&quot;https://gist.github.com/kyungilpark/a5901e43be5ef7222ef531a466678918&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cpmRMM/hyROQwJxI6/ylm7kKsPDySN3BtMQ9Mm81/img.png?width=1280&amp;amp;height=640&amp;amp;face=0_0_1280_640&quot;&gt;&lt;a href=&quot;https://gist.github.com/kyungilpark/a5901e43be5ef7222ef531a466678918#file-hp_se_quickeditor_image-js&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://gist.github.com/kyungilpark/a5901e43be5ef7222ef531a466678918#file-hp_se_quickeditor_image-js&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cpmRMM/hyROQwJxI6/ylm7kKsPDySN3BtMQ9Mm81/img.png?width=1280&amp;amp;height=640&amp;amp;face=0_0_1280_640');&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;hp_SE_QuickEditor_Image.js&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;hp_SE_QuickEditor_Image.js. GitHub Gist: instantly share code, notes, and snippets.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;gist.github.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;&amp;nbsp;&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;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;smarteditor/js/&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;hp_SE_QuickEditor_Image&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;.js&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: #ffffff;&quot;&gt;skin파일에 위 파일 링크 추가&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;smarteditor/&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;SmartEditor2Skin.html&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1677807586719&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script type=&quot;text/javascript&quot; src=&quot;./js/hp_SE_QuickEditor_Image.js&quot; charset=&quot;utf-8&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;위 링크 추가 시 주의할점 &lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1677807577229&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script type=&quot;text/javascript&quot; src=&quot;./js/SE2B_Configuration_General.js&quot; charset=&quot;utf-8&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-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;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;js폴더에 설정파일이 2개로 구분되어있을수도 있고 하나일수도 있는데&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;nhn.husky.SE2M_Configuration.QuickEditor&amp;nbsp;=&amp;nbsp;{&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 코드가 검색되면 common 밑에&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1677807562607&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Image : {
nImageMaxWidthSize : 9999,
nImageMaxHeightSize : 9999
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;값만 추가하고 검색이 안되면 SE2B_Configuration_General.js 파일이나 SE2B_Configuration_Service.js 파일에&amp;nbsp; 아래 내용 추가&lt;/p&gt;
&lt;pre id=&quot;code_1677807553158&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;nhn.husky.SE2M_Configuration.QuickEditor = {
common : {
bUseConfig : false
},
Image : {
nImageMaxWidthSize : 9999,
nImageMaxHeightSize : 9999
}
};&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;js폴더 &lt;span style=&quot;background-color: #ffffff; color: #353535;&quot;&gt;SE2BasicCreator.js 파일에 아래 내용 추가&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1677807637809&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;oEditor.registerPlugin(new nhn.husky.SE_QuickEditor_Image(elAppContainer));	// 이미지 퀵에디터&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;span style=&quot;background-color: #ffffff;&quot;&gt;마지막으로 husky_SE2B_Lang_ko_KR.js 파일이 검색 되면 언어설정 파일에 추가하고 파일 검색이 안되면 smarteditor2.js 파일 하단에 var oMessageMap = { 부분에 아래 내용 추가&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1677807755801&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'SE_QuickEditor_Image.exceedMaxSize' : '이미지 크기를 에디터 가로폭(${nEditorWidth}px)보다 크게 조절하실 수 없습니다.',&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;span style=&quot;background-color: #ffffff;&quot;&gt;끝!&lt;/span&gt;&lt;/p&gt;</description>
      <category>clientSide/javascript</category>
      <category>EDITOR</category>
      <category>javascript</category>
      <category>SmartEditor2</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/153</guid>
      <comments>https://rootjs.tistory.com/153#entry153comment</comments>
      <pubDate>Fri, 3 Mar 2023 10:43:34 +0900</pubDate>
    </item>
    <item>
      <title>[SERVER2012] 윈도우 서버 2012와 리눅스 서버 간 ssh 공개키 인증</title>
      <link>https://rootjs.tistory.com/152</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://rootjs.tistory.com/151&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://rootjs.tistory.com/151&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1676621240667&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;[SERVER 2012] 윈도우 서버 2012 SSH 설치&quot; data-og-description=&quot;서버 2012는 SSH를 별도로 설치해줘야함 우선 다운로드 진행 Releases &amp;middot; PowerShell/Win32-OpenSSH (github.com) Releases &amp;middot; PowerShell/Win32-OpenSSH Win32 port of OpenSSH. Contribute to PowerShell/Win32-OpenSSH development by creating an ac&quot; data-og-host=&quot;rootjs.tistory.com&quot; data-og-source-url=&quot;https://rootjs.tistory.com/151&quot; data-og-url=&quot;https://rootjs.tistory.com/151&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/F4xry/hyRERXxpLI/FKN1moTKBuar13eUY3g0K1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/KISbf/hyREJSJcIz/55CK1rfTkHexqZRivt0rZ0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://rootjs.tistory.com/151&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://rootjs.tistory.com/151&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/F4xry/hyRERXxpLI/FKN1moTKBuar13eUY3g0K1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/KISbf/hyREJSJcIz/55CK1rfTkHexqZRivt0rZ0/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;[SERVER 2012] 윈도우 서버 2012 SSH 설치&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;서버 2012는 SSH를 별도로 설치해줘야함 우선 다운로드 진행 Releases &amp;middot; PowerShell/Win32-OpenSSH (github.com) Releases &amp;middot; PowerShell/Win32-OpenSSH Win32 port of OpenSSH. Contribute to PowerShell/Win32-OpenSSH development by creating an ac&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;rootjs.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;p data-ke-size=&quot;size16&quot;&gt;이작업을 하는 이유는 git 업데이트 시 호스팅 서버로 자동 pull 처리 하기 위함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;jenkins를 쓰면 되겠지만 그건 다음 이시간에~&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;계정은 administrator 권한으로 진행 계정 git 설치 후 탐색기열어서 아무 폴더에나 마우스 우클릭 하고 git bash 실행&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cd ~/&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mkdir .ssh&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cd .ssh&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ssh-keygen -t rsa&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;id_rsa.pub 공개키를 리눅스 서버에서 접속할 계정의 authorized_keys에 추가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;scp를 이용해도 되고 복사 붙혀넣기 해도 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 부분은 기존에 ssh 접속하는 방식과 동일하나 공개키를 관리자(administrator)로 생성할지 사용자로 생성할지 결정 후 진행&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;이부분은 기존 접속 방식과 크게 다른게 없음&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;2. 리눅스에서 윈도우 서버로 접속&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;우선 ssh 설정에서 PermitRootLogin no 로 설정을 해도 administrator는 연결이 되니 추가적으로 방화벽이나 포트변경등의 다른 보안사항들을 점검 후에 작업 권장&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 공개키를 접속 계정의 .ssh폴더에 authorized_keys 파일에 입력하지만 위 방식으로 ssh 설치 시 경로가 다름&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C:\ProgramData\ssh\administrators_authorized_keys&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리눅스쪽 공개키를 위 경로 파일에 붙혀넣기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 경로 파일에 공개키를 등록해두고 sshd_config 파일 HostKey 부분의 주석 모두 제거&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;후 서비스에 OpenSSH로 시작하는 서비스 2개를 재시작&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리눅스쪽에서 공개키를 넘겨준 계정으로 ssh administrator@아이피:포트번호&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>serverSide/windows</category>
      <category>Git</category>
      <category>linux</category>
      <category>server2012</category>
      <category>ssh</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/152</guid>
      <comments>https://rootjs.tistory.com/152#entry152comment</comments>
      <pubDate>Mon, 20 Feb 2023 08:42:52 +0900</pubDate>
    </item>
    <item>
      <title>[SERVER 2012] 윈도우 서버 2012 SSH 설치</title>
      <link>https://rootjs.tistory.com/151</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;서버 2012는 SSH를 별도로 설치해줘야함&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;a href=&quot;https://github.com/PowerShell/Win32-OpenSSH/releases&quot;&gt;Releases &amp;middot; PowerShell/Win32-OpenSSH (github.com)&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1676607910589&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;Releases &amp;middot; PowerShell/Win32-OpenSSH&quot; data-og-description=&quot;Win32 port of OpenSSH. Contribute to PowerShell/Win32-OpenSSH development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/PowerShell/Win32-OpenSSH/releases&quot; data-og-url=&quot;https://github.com/PowerShell/Win32-OpenSSH/releases&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bx98Nm/hyREKcIXXq/vBZbn9OT7ite6gyVkXOXBK/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/PowerShell/Win32-OpenSSH/releases&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/PowerShell/Win32-OpenSSH/releases&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bx98Nm/hyREKcIXXq/vBZbn9OT7ite6gyVkXOXBK/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&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;Releases &amp;middot; PowerShell/Win32-OpenSSH&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Win32 port of OpenSSH. Contribute to PowerShell/Win32-OpenSSH development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.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;a href=&quot;https://github.com/PowerShell/Win32-OpenSSH/releases/download/v9.1.0.0p1-Beta/OpenSSH-Win64-v9.1.0.0.msi&quot; data-turbo=&quot;false&quot; data-view-component=&quot;true&quot;&gt;&lt;span data-view-component=&quot;true&quot;&gt;OpenSSH-Win64-v9.1.0.0.msi&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서버에 설치하고 나면 C:\ProgramData\ssh 경로가 생성 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해야하는건 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;위 폴더에 sshd_config 파일을 메모장에서 관리자권한으로 연 후 주석처리 되어있는 #Port 22 를 Port 사용포트로 변경&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;접속폴더 변경&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;#ChrootDirectory&amp;nbsp; 를 접속할 폴더로 ChrootDirectory&amp;nbsp; &quot;D:\&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;지정한 폴더를 방화벽에서 열고 난후 서비스 목록에 보면 OpenSSH Authentication Agent 와 OpenSSH SSH Server 를 다시 시작&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>serverSide/windows</category>
      <category>chroot</category>
      <category>port</category>
      <category>ssh</category>
      <category>리눅스서버</category>
      <category>윈도우서버</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/151</guid>
      <comments>https://rootjs.tistory.com/151#entry151comment</comments>
      <pubDate>Fri, 17 Feb 2023 13:42:53 +0900</pubDate>
    </item>
    <item>
      <title>[CentOS7] php7.2 mecab 형태소 분석</title>
      <link>https://rootjs.tistory.com/150</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;필요한 패키지 설치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;yum install gcc-++&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;mecab 설치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cd&amp;nbsp;/usr/local/src/&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다운받을 파일 경로&lt;br /&gt;&lt;a href=&quot;https://bitbucket.org/eunjeon/mecab-ko/downloads&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://bitbucket.org/eunjeon/mecab-ko/downloads&lt;/a&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;wget&amp;nbsp;&lt;a href=&quot;https://bitbucket.org/eunjeon/mecab-ko/downloads/mecab-0.996-ko-0.9.2.tar.gz&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://bitbucket.org/eunjeon/mecab-ko/downloads/mecab-0.996-ko-0.9.2.tar.gz&lt;/a&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;tar&amp;nbsp;zxvf&amp;nbsp;mecab-0.996-ko-0.9.2.tar.gz &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&amp;nbsp;mecab-0.996-ko-0.9.2 &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;폴더 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mkdir&amp;nbsp;/usr/local/mecab &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;./configure&amp;nbsp;--prefix=/usr/local/mecab &lt;br /&gt;make &lt;br /&gt;make&amp;nbsp;install&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;mecab-ko 설치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cd /usr/local/src/&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://bitbucket.org/eunjeon/mecab-ko-dic/downloads&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://bitbucket.org/eunjeon/mecab-ko-dic/downloads&lt;/a&gt; &lt;br /&gt;최신버전 다운로드&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;wget&amp;nbsp;&lt;a href=&quot;https://bitbucket.org/eunjeon/mecab-ko-dic/downloads/mecab-ko-dic-2.1.1-20180720.tar.gz&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://bitbucket.org/eunjeon/mecab-ko-dic/downloads/mecab-ko-dic-2.1.1-20180720.tar.gz&lt;/a&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;letter-spacing: 0px;&quot;&gt;tar&amp;nbsp;zxvf&amp;nbsp;mecab-ko-dic-2.1.1-20180720.tar.gz&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;cd&amp;nbsp;mecab-ko-dic-2.1.1-20180720&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치&lt;br /&gt;./configure&amp;nbsp;--prefix=/usr/local/mecab/dic&amp;nbsp;--with-mecab-config=/usr/local/mecab/bin/mecab-config&amp;nbsp;&amp;nbsp;&amp;nbsp;--with-dicdir=/usr/local/mecab/dic&amp;nbsp;&amp;nbsp;&amp;nbsp;--libexecdir=/usr/local/mecab/libexec/mecab &lt;br /&gt;make&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;make 실행 시&amp;nbsp; `AM_INIT_AUTOMAKE(mecab-ko-dic, 2.0.0)' 가 뜨면&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;$&amp;nbsp;./autogen.sh &lt;br /&gt;$&amp;nbsp;make &lt;br /&gt;$&amp;nbsp;make&amp;nbsp;install&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;형태소 실행 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cd /usr/local/mecab/bin&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;./mecab -d /usr/local/mecab/dic&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;ctrl + c&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;NNP,지명,F,동해,*,*,*,* &lt;br /&gt;물&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NNG,*,T,물,*,*,*,* &lt;br /&gt;과&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JC,*,F,과,*,*,*,* &lt;br /&gt;백두산&amp;nbsp;&amp;nbsp;NNP,지명,T,백두산,Compound,*,*,백두/NNG/*+산/NNG/* &lt;br /&gt;이&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JKS,*,F,이,*,*,*,* &lt;br /&gt;마르&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VV,*,F,마르,*,*,*,* &lt;br /&gt;고&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EC,*,F,고,*,*,*,* &lt;br /&gt;닳&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VV,*,T,닳,*,*,*,* &lt;br /&gt;도록&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EC,*,T,도록,*,*,*,* &lt;br /&gt;EOS &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;php-mecab 설치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cd&amp;nbsp;/usr/local/src/&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일 다운로드&lt;br /&gt;wget&amp;nbsp;&lt;a href=&quot;https://github.com/rsky/php-mecab/archive/master.zip&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/rsky/php-mecab/archive/master.zip&lt;/a&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;unzip&amp;nbsp;master.zip&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;폴더이동&lt;br /&gt;cd&amp;nbsp;php-mecab-master/mecab/&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치&lt;br /&gt;phpize &lt;br /&gt;./configure&amp;nbsp;--with-php-config=/usr/bin/php-config&amp;nbsp;--with-mecab=/usr/local/mecab/bin/mecab-config &lt;br /&gt;make&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;make test&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;make test 실행시 100% 안나오고 3개인가 failed 뜨는데 그냥 진행 했음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;make install&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;cd /usr/lib64/php/modules&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 폴더에 mecab.so 파일 있는지 확인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ls -al&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;echo&amp;nbsp;&quot;extension=mecab.so&quot;&amp;nbsp;&amp;gt;&amp;nbsp;/etc/php.d/mecab.ini&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;apachectl restart / systemctl restart php-fpm&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;위 실행 후 phpinfo() 확인해 보면&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;mecab.png&quot; data-origin-width=&quot;941&quot; data-origin-height=&quot;300&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjycCf/btrInIprR6u/eZsA52QGqMKiytYRDJTyok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjycCf/btrInIprR6u/eZsA52QGqMKiytYRDJTyok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjycCf/btrInIprR6u/eZsA52QGqMKiytYRDJTyok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjycCf%2FbtrInIprR6u%2FeZsA52QGqMKiytYRDJTyok%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;941&quot; height=&quot;300&quot; data-filename=&quot;mecab.png&quot; data-origin-width=&quot;941&quot; data-origin-height=&quot;300&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://requireme.tistory.com/entry/CentOS7-php-mecab-%ED%98%95%ED%83%9C%EC%86%8C-%EB%B6%84%EC%84%9D&quot;&gt;내가뭘 :: CentOS7 - php - mecab 형태소 분석 (tistory.com)&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1658978220212&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;CentOS7 - php - mecab 형태소 분석&quot; data-og-description=&quot;1.&amp;nbsp;centos7&amp;nbsp;기본설정&amp;nbsp;및&amp;nbsp;apm&amp;nbsp;설치 &amp;nbsp;&amp;nbsp;yum&amp;nbsp;install&amp;nbsp;gcc-c++ 2.&amp;nbsp;mecab&amp;nbsp;다운로드/설치 &amp;nbsp;cd&amp;nbsp;/usr/local/src/ &amp;nbsp;https://bitbucket.org/eunjeon/mecab-ko/downloads&amp;nbsp;최신버전&amp;nbsp;다운로드 &amp;nbsp;wget&amp;nbsp;https://b..&quot; data-og-host=&quot;requireme.tistory.com&quot; data-og-source-url=&quot;https://requireme.tistory.com/entry/CentOS7-php-mecab-%ED%98%95%ED%83%9C%EC%86%8C-%EB%B6%84%EC%84%9D&quot; data-og-url=&quot;https://requireme.tistory.com/entry/CentOS7-php-mecab-%ED%98%95%ED%83%9C%EC%86%8C-%EB%B6%84%EC%84%9D&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bAl4Mp/hyPeLrPJM2/sKKxBYzH5GJg1VSDuNqi8K/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bNpuUx/hyPeKsVFUw/wdBK0i9Tnoy3v6cBe5YXxK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://requireme.tistory.com/entry/CentOS7-php-mecab-%ED%98%95%ED%83%9C%EC%86%8C-%EB%B6%84%EC%84%9D&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://requireme.tistory.com/entry/CentOS7-php-mecab-%ED%98%95%ED%83%9C%EC%86%8C-%EB%B6%84%EC%84%9D&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bAl4Mp/hyPeLrPJM2/sKKxBYzH5GJg1VSDuNqi8K/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bNpuUx/hyPeKsVFUw/wdBK0i9Tnoy3v6cBe5YXxK/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;CentOS7 - php - mecab 형태소 분석&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;1.&amp;nbsp;centos7&amp;nbsp;기본설정&amp;nbsp;및&amp;nbsp;apm&amp;nbsp;설치 &amp;nbsp;&amp;nbsp;yum&amp;nbsp;install&amp;nbsp;gcc-c++ 2.&amp;nbsp;mecab&amp;nbsp;다운로드/설치 &amp;nbsp;cd&amp;nbsp;/usr/local/src/ &amp;nbsp;https://bitbucket.org/eunjeon/mecab-ko/downloads&amp;nbsp;최신버전&amp;nbsp;다운로드 &amp;nbsp;wget&amp;nbsp;https://b..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;requireme.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;&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;php7.0으로 올라오면서 함수가 아니고 클래스로 변경됨&lt;/p&gt;
&lt;pre id=&quot;code_1658973789928&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$mecab = new \MeCab\Tagger(['-d', '/usr/local/mecab/dic']);
$result = $mecab-&amp;gt;parse('동해물과백두산이마르고닳도록');
$mecab_array = array();
$code = array('NNG','NNP');
//결과값에서 줄단위로 분리
preg_match_all('/[^EOS](.*)\n/', $result, $find_code);
//각줄별로 루프를 돌며 텍스트와 태그(코드)값분리
for($i=0; $i &amp;lt; count($find_code[0]); $i++)	{
	preg_match('/(.*)(?=\t)/', $find_code[0][$i], $find_text); // text
	preg_match('/(?&amp;lt;=\t)([^\,]+)/', $find_code[0][$i], $find_tag); // tag
	//걸러내고자하는 코드가 있을시
	if(count($code) &amp;gt; 0)
	{
		//걸러내려는 코드안에 태그가 포함되는지
		if(in_array($find_tag[0],$code)
		//중복되는 텍스트가 있는지
		&amp;amp;&amp;amp; in_array($find_text[0],$mecab_array) === false)
		{
			$mecab_array[] = $find_text[0];				
		}
    } else {
        //중복되는 텍스트가 있는지
        if(in_array($find_text[0],$mecab_array) === false)
        {
            $mecab_array[] = $find_text[0];
        }
    }
}
var_dump($mecab_array);&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;위 php 코드 참조&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;a href=&quot;https://www.cikorea.net/bbs/view/tip?idx=17936&amp;amp;page=1&amp;amp;view_category=&amp;amp;lists_style=&quot;&gt;php용 형태소 분석기 설치 및 바인딩과 실사용 - CodeIgniter 한국사용자포럼 (cikorea.net)&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1658975353481&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용 입니다. 여러 블로그들에 잘 정리 되어있네요. 최신dic파일로 변경하셔서 사용하시면 될듯 합니다. 검색시에 유용하네요. &amp;nbsp; # 설치 참고 : http://gogoke1.blog.me/220211846966 # 바인딩 및&quot; data-og-host=&quot;www.cikorea.net&quot; data-og-source-url=&quot;https://www.cikorea.net/bbs/view/tip?idx=17936&amp;amp;page=1&amp;amp;view_category=&amp;amp;lists_style=&quot; data-og-url=&quot;http://www.cikorea.net/bbs/view/tip?idx=17936&amp;amp;page=1&amp;amp;view_category=&amp;amp;lists_style=&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.cikorea.net/bbs/view/tip?idx=17936&amp;amp;page=1&amp;amp;view_category=&amp;amp;lists_style=&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.cikorea.net/bbs/view/tip?idx=17936&amp;amp;page=1&amp;amp;view_category=&amp;amp;lists_style=&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;php용 형태소 분석기 설치 및 바인딩과 실사용&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;형태소분석 php용 입니다. 여러 블로그들에 잘 정리 되어있네요. 최신dic파일로 변경하셔서 사용하시면 될듯 합니다. 검색시에 유용하네요. &amp;nbsp; # 설치 참고 : http://gogoke1.blog.me/220211846966 # 바인딩 및&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.cikorea.net&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>serverSide/PHP</category>
      <category>centos</category>
      <category>linux</category>
      <category>mecab</category>
      <category>nginx</category>
      <category>php</category>
      <category>형태소</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/150</guid>
      <comments>https://rootjs.tistory.com/150#entry150comment</comments>
      <pubDate>Thu, 28 Jul 2022 12:24:20 +0900</pubDate>
    </item>
    <item>
      <title>[Python3] 셀레니움을 이용한 사이트 로그인 처리</title>
      <link>https://rootjs.tistory.com/149</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;개발환경&amp;nbsp; : 윈도우 10&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파이썬 : Python 3.10.5&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;셀레니움 : 4.3.0&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;pre id=&quot;code_1658187994640&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from selenium import webdriver as wd
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.alert import Alert
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

import sys
import time
import logging
import datetime
import traceback&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;pre id=&quot;code_1658187987716&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;logger = logging.getLogger()
logger.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
stream_hander = logging.StreamHandler()
stream_hander.setFormatter(formatter)
logger.addHandler(stream_hander)

nowdate = datetime.datetime.now().strftime(&quot;%Y%m%d%H%M&quot;)
file_handler = logging.FileHandler(&quot;nowdate+&quot;.log&quot;)
logger.addHandler(file_handler)&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;pre id=&quot;code_1658188009084&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;chrome_options = Options()
chrome_options.add_argument(&quot;--incognito&quot;) #시크릿모드
chrome_options.add_experimental_option(&quot;excludeSwitches&quot;, [&quot;enable-logging&quot;]) #USB 출력 관련 오류 안보이게 처리

driver = wd.Chrome(service=Service(ChromeDriverManager().install()), chrome_options=chrome_options)

# 기존에 크롬버전에 맞춰 webdriver를 다운받아서 파일경로를 입력했어야했는데 위 명령어로 알아서 불러옴 다만 속도차이가 있음
driver.set_window_size(1080,800) #화면사이즈
driver.implicitly_wait(3)&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;b&gt;그냥 기본(아이디, 비번, 버튼) 로그인 창&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1658187203465&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;try:
	driver.get('https://도메인명/login')
	time.sleep(1)
	driver.find_element('name','id').send_keys('아이디')
	time.sleep(0.5)
	driver.find_element('name','pw').send_keys('비밀번호')
	time.sleep(0.5)
	driver.find_element('xpath','버튼의xpath').click()
	time.sleep(3)
except:
	logging.error(traceback.format_exc())&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;셀레니움 이전버전에 find_element_by~~~ 명령어들이 find_element, find_elements로 변경됨&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;경고창 처리(alert)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1658187493701&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;result = Alert(driver)
result.accept()&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;b&gt;로그인창이 레이어팝업인경우&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1658187636573&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;driver.get('로그인페이지주소')
time.sleep(1)
driver.find_element('xpath','로그인버튼경로').click()
time.sleep(1)
WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.ID,&quot;userid&quot;))).send_keys('아이디')
WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.ID,&quot;password&quot;))).send_keys('비밀번호')
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, 'button'))).click()
time.sleep(1)
driver.switch_to.default_content() #본창으로 이동
time.sleep(0.5)&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;b&gt;아이프레임 처리&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1658187735548&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,&quot;//iframe[@title='reCAPTCHA']&quot;)))
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, &quot;div.recaptcha-checkbox-border&quot;))).click()
time.sleep(1)
driver.switch_to.default_content()&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 코드는 reCAPTCHA에 활용 가능 다만 로봇이 아닙니다 체크만 가능하며 이미지선택박스 뜨면 에러남&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;pre id=&quot;code_1658188019828&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;logging.error(traceback.format_exc())&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;try: except: 를 활용해서 except에 에러 로그 처리&lt;/p&gt;</description>
      <category>serverSide/Python</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/149</guid>
      <comments>https://rootjs.tistory.com/149#entry149comment</comments>
      <pubDate>Tue, 19 Jul 2022 08:47:07 +0900</pubDate>
    </item>
    <item>
      <title>시놀로지 나스(synology nas) transmission auto delete(자동 삭제)</title>
      <link>https://rootjs.tistory.com/148</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;dsm7 이상에서 블로그에 돌아다니는 스크립트 실행 하려고 해도 안되서 수정함&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;별건 없고 그냥 PATH 설정 추가해도 transmission이나 스케줄러에서 명령어 실행이 안되기에 경로 다 넣어줌&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;#!/bin/sh &lt;br /&gt;SERVER=&quot;9091 --auth [트랜스미션 계정]:[비번]&quot; &lt;br /&gt;TORRENTLIST=`/volume1/@appstore/transmission/bin/transmission-remote&amp;nbsp;$SERVER&amp;nbsp;--list&amp;nbsp;|&amp;nbsp;sed&amp;nbsp;-e&amp;nbsp;'1d;$d;s/^&amp;nbsp;*//'&amp;nbsp;|&amp;nbsp;cut&amp;nbsp;--only-delimited&amp;nbsp;--delimiter=&quot;&amp;nbsp;&quot;&amp;nbsp;--fields=1` &lt;br /&gt;for&amp;nbsp;TORRENTID&amp;nbsp;in&amp;nbsp;$TORRENTLIST &lt;br /&gt;do &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DL_COMPLETED=`/volume1/@appstore/transmission/bin/transmission-remote&amp;nbsp;$SERVER&amp;nbsp;--torrent&amp;nbsp;$TORRENTID&amp;nbsp;--info&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;&quot;Percent&amp;nbsp;Done:&amp;nbsp;100%&quot;` &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;STATE_STOPPED=`/volume1/@appstore/transmission/bin/transmission-remote&amp;nbsp;$SERVER&amp;nbsp;--torrent&amp;nbsp;$TORRENTID&amp;nbsp;--info&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;&quot;State:&amp;nbsp;Seeding\|Stopped\|Finished\|Idle&quot;` &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;[&amp;nbsp;&quot;$DL_COMPLETED&quot;&amp;nbsp;]&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;[&amp;nbsp;&quot;$STATE_STOPPED&quot;&amp;nbsp;];&amp;nbsp;then &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/volume1/@appstore/transmission/bin/transmission-remote&amp;nbsp;$SERVER&amp;nbsp;--torrent&amp;nbsp;$TORRENTID&amp;nbsp;--remove &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fi &lt;br /&gt;done&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;/volume1/@appstore/transmission/bin/&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 경로가 transmission-remote 위치&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;참고로 setting.json 음 /volume1/@appdata/transmission 폴더에 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>serverSide/Linux</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/148</guid>
      <comments>https://rootjs.tistory.com/148#entry148comment</comments>
      <pubDate>Mon, 11 Jul 2022 13:37:28 +0900</pubDate>
    </item>
    <item>
      <title>파일서버 자동 백업 스크립트(robocopy), 스케줄 생성</title>
      <link>https://rootjs.tistory.com/147</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;백업 스크립트는 robocopy 를 이용해서 만듬&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;우선 bat 파일 생성&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;@echo off&lt;br /&gt;set&amp;nbsp;CUR_YYYY=%date:~0,4% &lt;br /&gt;set&amp;nbsp;CUR_MM=%date:~5,2% &lt;br /&gt;set&amp;nbsp;CUR_DD=%date:~8,2% &lt;br /&gt;set&amp;nbsp;CUR_HH=%time:~0,2% &lt;br /&gt;if %CUR_HH% lss 10 (set CUR_HH=0%time:~1,1%)&lt;br /&gt;set&amp;nbsp;CUR_NN=%time:~3,2% &lt;br /&gt;set&amp;nbsp;CUR_SS=%time:~6,2% &lt;br /&gt;set CUR_MS=%time:~9,2%&lt;br /&gt;set SUBFILENAME=%CUR_YYYY%%CUR_MM%%CUR_DD%-%CUR_HH%%CUR_NN%%CUR_SS%&lt;br /&gt;net use \\[백업서버IP]\[폴더경로] /delete&lt;br /&gt;net use \\[백업서버IP]\[폴더경로] /user:[사용자계정] [비밀번호]&lt;br /&gt;robocopy D:\[백업할 폴더경로]\ \\&lt;span&gt;[백업서버IP]\[폴더경로]&lt;/span&gt;\[상세폴더] /MIR /XA:H /W:0 /R:1 /REG /S &amp;gt; D:\[로그파일경로]\%SUBFILENAME%.log&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;set SUBFILENAME 까지는 파일 실행 시 로그파일이 날짜 및 시간으로 파일명을 생성하도록 하는 부분&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;net use 부분은 네트워크 연결 끊고 다시 연결해주는 부분&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;net use&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;robocopy 명령어는 미러링용이고 경로만 잘 맞춰서 작성하면 됨&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;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;찾아보기를 통해 위에 만든 bat 파일 선택 후 확인&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>serverSide/windows</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/147</guid>
      <comments>https://rootjs.tistory.com/147#entry147comment</comments>
      <pubDate>Wed, 6 Jul 2022 09:50:45 +0900</pubDate>
    </item>
    <item>
      <title>[CentOS] crontab rsync 스케줄 설정</title>
      <link>https://rootjs.tistory.com/146</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://rootjs.tistory.com/145&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2022.07.04 - [serverSide/Linux] - 리눅스에서 시놀로지 나스 파일 자동 백업 구축&lt;/a&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;시놀로지 나스 백업 세팅 후 crontab을 이용해서 1일 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;우선 rsync 실행용 sh 파일 생성&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;#!/bin/bash&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;rsync -av -e 'ssh -p ssh포트' /home/[백업할폴더경로] [시놀로지사용자계정]@[시놀로지 아이피]::NetBackup/[저장될파일경로]/ &amp;gt;&amp;gt; /var/log/filelog/backuplog_$(date +\%Y\%m\%d).log&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;위 내용대로 sh 파일 만들고 저장 후 파일 권한 755로 변경&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;rsync 속성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-a : 옵션 백업하면서 파일 자동 갱신하지만 삭제된 파일은 지워지지 않음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-v : 복사내역 출력&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;--delete : 삭제된 파일에 대해 백업에서도 삭제하고 싶으면 추가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-e :&amp;nbsp; ssh연결용 설정 기본포트를 사용하면 -e 'ssh' 까지만 적어도 됨&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;우선 여기까지 하고 sh ./sh파일명.sh 실행해서 백업파일 생성 및 파일 백업이 정상적으로 진행되는지 확인&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;crontab -e&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;00 1 * * * sudo sh파일경로&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;00 1 * * * su - root -c 'sh파일경로'&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>serverSide/Linux</category>
      <category>centos</category>
      <category>Crontab</category>
      <category>Rsync</category>
      <category>sh</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/146</guid>
      <comments>https://rootjs.tistory.com/146#entry146comment</comments>
      <pubDate>Wed, 6 Jul 2022 09:38:21 +0900</pubDate>
    </item>
    <item>
      <title>리눅스에서 시놀로지 나스 파일 자동 백업 구축</title>
      <link>https://rootjs.tistory.com/145</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;리눅스서버 CentOS7&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;rsync가 설치 안되어있으면 yum install rsync&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;시놀로지 DSM 버전 7.1-42661 Update2&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;b&gt;제어판 &amp;gt; 사용자 및 그룹 &amp;gt; 고급 &amp;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;&amp;nbsp; 살리는 이유는 시놀로지 ssh 접속 시 비번 없이 연결하려면 사용자 계정에 개인키 등록해야하기 때문에..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;제어판 &amp;gt; 터미널 및 SNMP &amp;gt; 터미널 &amp;gt; ssh 서비스 활성화&lt;/b&gt;&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; 별도 방화벽을 사용하지 않는다면 기본 22포트 대신 다른포트로 변경하여 설정해야 보안에 그나마 문제가 덜함&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;제어판 &amp;gt; 파일 서비스 &amp;gt; rsnyc &amp;gt; rsync 서비스 활성화&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;: ssh 포트 변경했으면 같이 변경&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로 접속 후 root 계정 권한 얻어야 설정 변경 가능&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;ssh 폴더 생성 mkdir .ssh&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;계정은 root 에서 진행 함&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-keygen&amp;nbsp;-t&amp;nbsp;rsa&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;chmod&amp;nbsp;700&amp;nbsp;~/.ssh&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;chmod&amp;nbsp;600&amp;nbsp;~/.ssh/*&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;ssh-copy-id -i id_rsa.pub&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;전송이 완료되면 다시 시놀로지 나스에서 root 계정으로 접속&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자 계정 로그인 후&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sudo -i 엔터&lt;/p&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;사용자 계정으로 이동&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cd /volume1/homes/사용자계정/&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자 계정 권한 변경&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;chmod 700 .ssh &amp;amp;&amp;amp; chmod 600 .ssh/*&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;위 까지 작업이 완료되었으면 리눅스서버에서 시놀로지나스로 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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;접속 시 비번 안물어보고 연결이 되면 rsync 로 넘어가면 되고 비밀번호를 물어보면 어딘가가 잘못된거니 다른 블로그들 참조하시어 진행해보셔야합니다.&lt;/b&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;리눅스서버에서 시놀로지로 백업하기 NetBackup은 rsync 활성화시키면 자동 생성되며 rsync 실행 시 해당 폴더로 연결됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;리눅스서버에서 -e 'ssh -p 22' 속성 없이 진행 시 비밀번호 물어보니 꼭 -e 'ssh' 속성 넣어서 전송해야함&lt;/b&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;rsync -av -e 'ssh' /리눅스서버폴더/ 시놀로지사용자계정@시놀로지아이피::NetBackup/시놀로지폴더 경로/&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;위 까지 성공했으면 다음은 backup.sh 파일 생성 후 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;&lt;a href=&quot;https://rootjs.tistory.com/146&quot;&gt;2022.07.06 - [serverSide/Linux] - [CentOS] crontab rsync 스케줄 설정&lt;/a&gt;&lt;/p&gt;</description>
      <category>serverSide/Linux</category>
      <category>centos</category>
      <category>linux</category>
      <category>NAS</category>
      <category>server</category>
      <category>synolgy</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/145</guid>
      <comments>https://rootjs.tistory.com/145#entry145comment</comments>
      <pubDate>Mon, 4 Jul 2022 09:48:13 +0900</pubDate>
    </item>
    <item>
      <title>Classic ASP Connection to MariaDB</title>
      <link>https://rootjs.tistory.com/144</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;환경&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹서버 : window server 2012 / IIS 8&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DB서버 : CentOS7 / MariaDB 10.5.9&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://mariadb.com/downloads/connectors/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://mariadb.com/downloads/connectors/&lt;/a&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;위 주소로 접속 하여 ODBC Connector 다운로드&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 버전 : mariadb-connector-odbc-3.1.16-win64.msi&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;위 파일 설치 후 윈도우 서버 에서 odbc 데이터 원본 관리자 창 열고 드라이버 탭 확인하면 아래와 같이 MariaDB ODBC 3.1 Driver 확인 됨&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-filename=&quot;mariadb.png&quot; data-origin-width=&quot;711&quot; data-origin-height=&quot;484&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dmCf7a/btrF8Q34UAQ/7vzsqMokZ7kh12dCbE9IP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dmCf7a/btrF8Q34UAQ/7vzsqMokZ7kh12dCbE9IP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dmCf7a/btrF8Q34UAQ/7vzsqMokZ7kh12dCbE9IP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdmCf7a%2FbtrF8Q34UAQ%2F7vzsqMokZ7kh12dCbE9IP1%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;711&quot; height=&quot;484&quot; data-filename=&quot;mariadb.png&quot; data-origin-width=&quot;711&quot; data-origin-height=&quot;484&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;asp code&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Set&amp;nbsp;dbConn&amp;nbsp;=&amp;nbsp;Server.CreateObject(&quot;ADODB.Connection&quot;) &lt;br /&gt;dbConn.Open &quot;Driver={MariaDB ODBC 3.1 driver}; Server=host; Database=DBname; Uid=userid; Pwd=passowrd;&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;if&amp;nbsp;dbConn.errors.count&amp;nbsp;=&amp;nbsp;0&amp;nbsp;Then&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;response.write '접속 성공'&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;end if&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>serverSide/ASP</category>
      <category>ASP</category>
      <category>MariaDB</category>
      <category>odbc</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/144</guid>
      <comments>https://rootjs.tistory.com/144#entry144comment</comments>
      <pubDate>Thu, 30 Jun 2022 15:11:46 +0900</pubDate>
    </item>
    <item>
      <title>ajax CORS error 처리</title>
      <link>https://rootjs.tistory.com/143</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;has&amp;nbsp;been&amp;nbsp;blocked&amp;nbsp;by&amp;nbsp;CORS&amp;nbsp;policy:&amp;nbsp;No&amp;nbsp;'Access-Control-Allow-Origin'&amp;nbsp;header&amp;nbsp;is&amp;nbsp;present&amp;nbsp;on&amp;nbsp;the&amp;nbsp;requested&amp;nbsp;resource.&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차도메인은 같고 서브도메인이 다른 주소에서 ajax 데이터를 당겨왔음..&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;보안상의 이유로 차단된다는건데 처리방법은 response 해주는 서버쪽에 Access-Control-Allow-Origin 헤더를 추가해주면 됨.&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;gt; header('Access-Control-Allow-Origin', '*');&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;양쪽 모두 https 로 접속해야 됨.&lt;/p&gt;</description>
      <category>clientSide/javascript</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/143</guid>
      <comments>https://rootjs.tistory.com/143#entry143comment</comments>
      <pubDate>Tue, 28 Jun 2022 10:55:17 +0900</pubDate>
    </item>
    <item>
      <title>[jquery] ajax loading 예외 처리</title>
      <link>https://rootjs.tistory.com/142</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;전역으로 ajax 로딩 이미지를 걸어놨는데 주기적으로 불러오는 데이터에는 제외 시켜야 했음&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;$.ajax 속성에&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;global : false, 를 주면 로딩 이미지 안뜸~&lt;/p&gt;</description>
      <category>clientSide/javascript</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/142</guid>
      <comments>https://rootjs.tistory.com/142#entry142comment</comments>
      <pubDate>Mon, 20 Jun 2022 11:54:53 +0900</pubDate>
    </item>
    <item>
      <title>CentOS HP Smart Array Raid status 레이드 상태 확인</title>
      <link>https://rootjs.tistory.com/141</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;레이드 컨트롤러 상태 확인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;hpacucli controller all show status&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;hpacucli controller slot=0 logicaldrive all show status&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;hpacucli controller slot=0 physicaldrive all show status&lt;/p&gt;</description>
      <category>serverSide/Linux</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/141</guid>
      <comments>https://rootjs.tistory.com/141#entry141comment</comments>
      <pubDate>Thu, 12 May 2022 09:18:03 +0900</pubDate>
    </item>
    <item>
      <title>html 파일에서 php 코드 적용</title>
      <link>https://rootjs.tistory.com/140</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;메뉴 파일 &amp;gt; 기본설정 &amp;gt; 설정에서 검색창에 files.associations 입력 하면&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;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;항목에 *html 값에 php 넣고 저장하면 html파일안에&amp;nbsp; 포함된 php코드가 색상으로 나옴&lt;/p&gt;</description>
      <category>IDE/VSCODE</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/140</guid>
      <comments>https://rootjs.tistory.com/140#entry140comment</comments>
      <pubDate>Tue, 12 Apr 2022 10:14:59 +0900</pubDate>
    </item>
    <item>
      <title>[PHP] ZipArchive 이용한 폴더 압축</title>
      <link>https://rootjs.tistory.com/139</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;현재 운영중인 사이트는 코드이그나이터(CI) 프레임워크를 이용해 개발해놨음.&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;CI의 ZIP 라이브러리에 폴더 압축 기능이 있으나 이 기능을 사용해서 압축을 하면 압축은 잘 되나 다운받아서 반디집이용해서 풀면 한글 다 깨짐 케릭터셋 문제가 발생함.&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 기본 기능인 ZipArchive 를 활용하면 윈도우에서 파일명 정상으로 보이는걸 확인&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;div&gt;
&lt;div&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$zip&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c678dd;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e5c07b;&quot;&gt;ZipArchive&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$zip_name&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&lt;span style=&quot;color: #61afef;&quot;&gt;파일명&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$res&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$zip&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #61afef;&quot;&gt;open&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #98c379;&quot;&gt;'/압축파일저장폴더/'&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$zip_name&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #e5c07b;&quot;&gt;ZipArchive&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: #d19a66;&quot;&gt;CREATE&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c678dd;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$res&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d19a66;&quot;&gt;TRUE&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #e5c07b;&quot;&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #e5c07b;&quot;&gt;$this&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #61afef;&quot;&gt;dirZip&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$zip&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;'/압축할폴더/'&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$zip&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #61afef;&quot;&gt;close&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;();&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;} &lt;/span&gt;&lt;span style=&quot;color: #c678dd;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #98c379;&quot;&gt;&quot;에러 코드: &quot;&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$res&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #c678dd;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #61afef;&quot;&gt;dirZip&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$resource&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$dir&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;) {&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #c678dd;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;filetype&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$dir&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #98c379;&quot;&gt;'dir'&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;) {&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;clearstatcache&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;();&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #c678dd;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$fp&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c678dd;&quot;&gt;@&lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;opendir&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$dir&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;)) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #c678dd;&quot;&gt;while&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #d19a66;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;!==&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$ftmp&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;readdir&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$fp&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;))){&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #c678dd;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$ftmp&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;!==&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #98c379;&quot;&gt;&quot;.&quot;&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$ftmp&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;!==&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #98c379;&quot;&gt;&quot;..&quot;&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$ftmp&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;!==&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #98c379;&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;))&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #c678dd;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;filetype&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$dir&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #98c379;&quot;&gt;'/'&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$ftmp&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #98c379;&quot;&gt;'dir'&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;clearstatcache&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;();&lt;/span&gt;&lt;span style=&quot;color: #7f848e;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$resource&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #61afef;&quot;&gt;addEmptyDir&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$dir&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #98c379;&quot;&gt;'/'&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$ftmp&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;set_time_limit&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #d19a66;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #61afef;&quot;&gt;dirZip&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$resource&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$dir&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #98c379;&quot;&gt;'/'&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$ftmp&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &lt;/span&gt;&lt;span style=&quot;color: #c678dd;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; {&lt;/span&gt;&lt;span style=&quot;color: #7f848e;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$resource&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #61afef;&quot;&gt;addFile&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$dir&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #98c379;&quot;&gt;'/'&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$ftmp&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$ftmp&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #c678dd;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;is_resource&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$fp&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;)){&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;closedir&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$fp&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; } &lt;/span&gt;&lt;span style=&quot;color: #c678dd;&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; {&lt;/span&gt;&lt;span style=&quot;color: #7f848e;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$resource&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #61afef;&quot;&gt;addFile&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$dir&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;</description>
      <category>serverSide/PHP</category>
      <category>php</category>
      <category>zip</category>
      <category>압축</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/139</guid>
      <comments>https://rootjs.tistory.com/139#entry139comment</comments>
      <pubDate>Tue, 14 Dec 2021 08:25:45 +0900</pubDate>
    </item>
    <item>
      <title>[PHP] cURL error 60: Peer&amp;rsquo;s Certificate issuer is not recognized</title>
      <link>https://rootjs.tistory.com/138</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;서버 호스팅 이전 후 Curl 실행 했더니 위 같은 에러 발생..&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;속성중에 인증서 관련 검사하는 옵션을 false로 설정하고 통신 시도 하면 정상 연결 됨&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: #d19a66;&quot;&gt;CURLOPT_SSL_VERIFYPEER&lt;/span&gt;&lt;span style=&quot;color: #d19a66;&quot;&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; =&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #61afef;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #d19a66;&quot;&gt;false&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;</description>
      <category>serverSide/PHP</category>
      <category>curl</category>
      <category>error60</category>
      <category>php</category>
      <category>SSL</category>
      <category>인증서</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/138</guid>
      <comments>https://rootjs.tistory.com/138#entry138comment</comments>
      <pubDate>Thu, 9 Dec 2021 18:41:44 +0900</pubDate>
    </item>
    <item>
      <title>[CentOS7] SYSTEMCTL 명령어</title>
      <link>https://rootjs.tistory.com/137</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;systemctl start nginx &amp;lt;== 시작&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;systemctl restart nginx &amp;lt;== 재시작&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;systemctl stop nginx &amp;lt;== 중지&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;systemctl enable nginx &amp;lt;== 부팅 자동 실행&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;systemctl disable nginx &amp;lt;== 부팅 자동 실행 중지&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;systemctl status nginx &amp;lt;== 상태확인&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>serverSide/Linux</category>
      <category>centos</category>
      <category>linux</category>
      <category>systemctl</category>
      <category>리눅스</category>
      <category>센토스</category>
      <category>자동실행</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/137</guid>
      <comments>https://rootjs.tistory.com/137#entry137comment</comments>
      <pubDate>Tue, 26 Oct 2021 07:50:58 +0900</pubDate>
    </item>
    <item>
      <title>certbot LetsEncrypt wildcard 인증서 자동 갱신</title>
      <link>https://rootjs.tistory.com/136</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light'; color: #ee2323;&quot;&gt;&lt;b&gt;자동으로 갱신이 가능하려면 도메인 네임서버(DNS)가 클라우드플레어(&lt;/b&gt;&lt;/span&gt;Cloudflare&lt;span style=&quot;font-family: 'Noto Sans Light'; color: #ee2323;&quot;&gt;&lt;b&gt;)로 등록되어 있어야 가능함&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 방식으로 처리가 되지 않아 cloudflare API를 활용함&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://dash.cloudflare.com/profile/api-tokens&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://dash.cloudflare.com/profile/api-tokens&lt;/a&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;위 페이지에서 API 키를 Global API Key를 생성 또는 확인(생성한적이 없는거 같은데 생성되어있어서...)&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;서버는 centos7&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 certbot-dns-cloudflare 설치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;yum install certbot-dns-cloudflare&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;cd ~/&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mkdir .secrets&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vim cloudflare.ini&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;Cloudflare&amp;nbsp;API&amp;nbsp;credentials&amp;nbsp;used&amp;nbsp;by&amp;nbsp;Certbot &lt;br /&gt;&amp;nbsp;dns_cloudflare_email = 클라우드플래어 계정 이메일&lt;br /&gt;&amp;nbsp;dns_cloudflare_api_key = global key&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;폴더는 700 파일은 600&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;certbot&amp;nbsp;certonly&amp;nbsp;\ &lt;br /&gt;-d *.도메인.컴 \ &lt;br /&gt;-d 도메인.컴 \ &lt;br /&gt;--server&amp;nbsp;&lt;a href=&quot;https://acme-v02.api.letsencrypt.org/directory&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://acme-v02.api.letsencrypt.org/directory&lt;/a&gt;&amp;nbsp;\ &lt;br /&gt;--dns-cloudflare&amp;nbsp;--dns-cloudflare-credentials&amp;nbsp;~/.secrets/cloudflare.ini&amp;nbsp;\ &lt;br /&gt;--preferred-challenges&amp;nbsp;dns-01&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;도메인.컴 / 도메인11.컴 인경우&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;*.도메인11.컴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도메인11.컴&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번 실행 ㄱㄱ&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인증서 갱신은 certbot renew&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 에 넣어서 처리하면 되지만 nginx는 재시작 따로 걸어줘야하니 스크립트 짜서 스케쥴로 넣는게 좋을듯 함&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>serverSide/Linux</category>
      <category>centos</category>
      <category>Certbot</category>
      <category>CloudFlare</category>
      <category>letsencrypt</category>
      <category>linux</category>
      <category>nginx</category>
      <category>SSL</category>
      <category>Wildcard</category>
      <category>인증서</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/136</guid>
      <comments>https://rootjs.tistory.com/136#entry136comment</comments>
      <pubDate>Wed, 15 Sep 2021 11:26:29 +0900</pubDate>
    </item>
    <item>
      <title>CentOS7 + nginx  Let'sEncrypt wildcard 인증서 설치</title>
      <link>https://rootjs.tistory.com/135</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;저장소를 추가한다. 기존에 php 설치하면서 이미 설치되어있긴했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;yum intstall epel-release&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;certbot 설치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;yum install certbot&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;필요한 모듈 설치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;yum install python2-certbot-nginx &amp;lt;---버전에 따라 다를수 있음 python3-certbot-nginx, certbot-nginx&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;certbot certonly --manual -d &quot;*.도메인.co.kr&quot; -d &quot;도메인.co.kr&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;작업 후 nginx 설정에 ssl 추가 하면 됨 인증서 설치 위치는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;/etc/letsencrypt/live/&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;conf 설정은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;ssl_certificate /etc/letsencrypt/live/도메인.co.kr/fullchain.pem; &lt;br /&gt;&amp;nbsp;ssl_certificate_key /etc/letsencrypt/live/도메인.co.kr/privkey.pem;&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;nginx 설정 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;nginx -t&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;systemctl restart nginx&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>serverSide/Linux</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/135</guid>
      <comments>https://rootjs.tistory.com/135#entry135comment</comments>
      <pubDate>Wed, 15 Sep 2021 08:10:41 +0900</pubDate>
    </item>
    <item>
      <title>asp euc-kr 에서 php utf-8 로 한글전송</title>
      <link>https://rootjs.tistory.com/134</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;아직도 classic asp 를 쓰고 euc-kr로 된 사이트가 있고 운영중이다 ㅎㅎㅎㅎㅎㅎㅎㅎㅎ&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;처음겪는 일은 아니지만.. 어떻게 처리할까 하다가 asp 에서 escape 한걸 php에서 unescape로 처리&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;asp쪽&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;escape&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(stringValue)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변수를 escape로 감싸서 전송&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;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #c678dd;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #61afef;&quot;&gt;fn_tostring&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$text&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;)&amp;nbsp;{&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #c678dd;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;iconv&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #98c379;&quot;&gt;'UTF-16LE'&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #61afef;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #98c379;&quot;&gt;'UTF-8'&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #61afef;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;chr&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;hexdec&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;substr&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$text&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #d19a66;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color: #61afef;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #d19a66;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #61afef;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #d19a66;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;)))&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;chr&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;hexdec&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;substr&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$text&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #d19a66;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color: #61afef;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #d19a66;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #61afef;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #d19a66;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;))));&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #c678dd;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #61afef;&quot;&gt;fn_urlutfchr&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$text&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;){&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #c678dd;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;rawurldecode&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;preg_replace_callback&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #98c379;&quot;&gt;'/&lt;/span&gt;&lt;span style=&quot;color: #56b6c2;&quot;&gt;%u([[:alnum:]]{4})&lt;/span&gt;&lt;span style=&quot;color: #98c379;&quot;&gt;/'&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #61afef;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #98c379;&quot;&gt;'fn_tostring'&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #61afef;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #e06c75;&quot;&gt;$text&lt;/span&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;));&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #abb2bf;&quot;&gt;&amp;nbsp;&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;위처럼 받아서 처리하면 정상적으로 한글 인식함.&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>serverSide/PHP</category>
      <category>ASP</category>
      <category>euc-kr</category>
      <category>php</category>
      <category>utf-8</category>
      <category>한글</category>
      <category>한글깨짐</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/134</guid>
      <comments>https://rootjs.tistory.com/134#entry134comment</comments>
      <pubDate>Thu, 1 Jul 2021 15:13:19 +0900</pubDate>
    </item>
    <item>
      <title>cloudflare + nginx + xml 속도지연</title>
      <link>https://rootjs.tistory.com/133</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;서버 호스팅 이전 후 로딩속도가 너무 느려져서 증상 확인 차 점검 진행&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;최종 문제가 되는 부분은 xml을 외부 도메인에서 불러와서 처리하는 부분이 있는데 이 도메인에 접근해서 데이터를 받아오는데 간혹 지연되는 문제가 발생..&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;서버상의 dns 설정은 kt껄로 설정해놨고.. 자체 dns 서버 운영 시에는 발생하지 않던 문제..&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/hosts 에 도메인 아이피를 입력하여 바로 접속되도록 변경..&lt;/p&gt;</description>
      <category>serverSide/Linux</category>
      <category>CloudFlare</category>
      <category>DNS</category>
      <category>nginx</category>
      <category>XML</category>
      <category>접속지연</category>
      <category>클라우드플래어</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/133</guid>
      <comments>https://rootjs.tistory.com/133#entry133comment</comments>
      <pubDate>Wed, 23 Jun 2021 10:54:01 +0900</pubDate>
    </item>
    <item>
      <title>[PHP] php + ci3 메모리 사용량</title>
      <link>https://rootjs.tistory.com/132</link>
      <description>&lt;p&gt;ci3.1.4 버전으로 개발 후 최종 메모리 사용량 체크 시 페이지당 4메가 후반 ~ 5메가 중반까지 사용함..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;뭔가 이상하여 검색 후 opcache 설치 후 2메가대로 내려감..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;메모리 사용량이 많다면 한번씩 체크해보세요.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;서버환경 : CentOS7 + PHP7.2 + nginx + php-fpm&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;설치는 그냥 yum install php-opcache 후 php-fpm 재시작~&lt;/p&gt;</description>
      <category>serverSide/PHP</category>
      <category>centos</category>
      <category>nginx</category>
      <category>opcache</category>
      <category>php</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/132</guid>
      <comments>https://rootjs.tistory.com/132#entry132comment</comments>
      <pubDate>Wed, 31 Mar 2021 13:09:22 +0900</pubDate>
    </item>
    <item>
      <title>[nginx] aceess.log awk 이용</title>
      <link>https://rootjs.tistory.com/131</link>
      <description>&lt;p&gt;간단하게 에러코드가 어느 url통해서 발생하는지 확인하는 용도로 사용&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;awk '($9 ~ /500/)' /var/log/nginx/access.log | awk '{print $7}' | sort | uniq -c | sort -r&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;로그상에 별도로 항목을 변경하거나 하지 않았다는 조건하에 명령어를 입력하면 500에러가 발생한 url 집계순으로 정렬됨&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;awk -F\&quot; '($2 ~ &quot;/wp-admin/install.php&quot;){print $1}' access.log | awk '{print $1}' | sort | uniq -c | sort -r&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;url 경로로 접속 아이피 확인하는 명령어&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;awk '($9 ~ /404/)' access.log | awk -F\&quot; '($2 ~ &quot;^GET .*.php&quot;)' | awk '{print $7}' | sort | uniq -c | sort -r | head -n 20&lt;/p&gt;
&lt;p&gt;404에러중에 php파일만 골라서 확인&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>serverSide/Linux</category>
      <category>access.log</category>
      <category>awk</category>
      <category>centos7</category>
      <category>linux</category>
      <category>log</category>
      <category>nginx</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/131</guid>
      <comments>https://rootjs.tistory.com/131#entry131comment</comments>
      <pubDate>Thu, 11 Mar 2021 14:50:59 +0900</pubDate>
    </item>
    <item>
      <title>[ModSecurity] CentOS7 + nginx + ModSecurity 설치</title>
      <link>https://rootjs.tistory.com/130</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;해당 작업은 root 계정으로 진행되었고 폴더도 root 폴더에서 진행 됨&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;필요한 패키지 설치&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Nanum Gothic';&quot;&gt;yum groupinstall -y &quot;Development Tools&quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Nanum Gothic';&quot;&gt;yum install -y http httpd-devel pure pure-devel libxml2 libxml2-devel curl curl-devel openssl openssl-devel pcre-devel wget&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Nanum Gothic';&quot;&gt;modSecurity 저장소에서 파일 가져옴&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Nanum Gothic';&quot;&gt;git clone --depth 1 -b v3/master --single-branch &lt;a style=&quot;color: #000000;&quot; href=&quot;https://github.com/SpiderLabs/ModSecurity&quot;&gt;https://github.com/SpiderLabs/ModSecurity&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1614844715735&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;object&quot; data-og-title=&quot;SpiderLabs/ModSecurity&quot; data-og-description=&quot;ModSecurity is an open source, cross platform web application firewall (WAF) engine for Apache, IIS and Nginx that is developed by Trustwave's SpiderLabs. It has a robust event-based programmin...&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/SpiderLabs/ModSecurity&quot; data-og-url=&quot;https://github.com/SpiderLabs/ModSecurity&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/48353/hyJsj80hBj/vgoyymkUutUeZLlalCGajk/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400,https://scrap.kakaocdn.net/dn/DA9Od/hyJshi3lqe/yjVR04ChQ5V4Q7UfsAzDz1/img.png?width=1616&amp;amp;height=422&amp;amp;face=0_0_1616_422&quot;&gt;&lt;a href=&quot;https://github.com/SpiderLabs/ModSecurity&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/SpiderLabs/ModSecurity&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/48353/hyJsj80hBj/vgoyymkUutUeZLlalCGajk/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400,https://scrap.kakaocdn.net/dn/DA9Od/hyJshi3lqe/yjVR04ChQ5V4Q7UfsAzDz1/img.png?width=1616&amp;amp;height=422&amp;amp;face=0_0_1616_422');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;SpiderLabs/ModSecurity&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;ModSecurity is an open source, cross platform web application firewall (WAF) engine for Apache, IIS and Nginx that is developed by Trustwave's SpiderLabs. It has a robust event-based programmin...&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;cd ModSecurity&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Nanum Gothic';&quot;&gt;git submodule init &amp;amp;&amp;amp; git submodule update &amp;amp;&amp;amp; ./build.sh &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Nanum Gothic';&quot;&gt;git clone --depth 1 &lt;a style=&quot;color: #000000;&quot; href=&quot;https://github.com/SpiderLabs/ModSecurity-nginx.git&quot;&gt;https://github.com/SpiderLabs/ModSecurity-nginx.git&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1614844809347&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;object&quot; data-og-title=&quot;SpiderLabs/ModSecurity-nginx&quot; data-og-description=&quot;ModSecurity v3 Nginx Connector. Contribute to SpiderLabs/ModSecurity-nginx development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/SpiderLabs/ModSecurity-nginx.git&quot; data-og-url=&quot;https://github.com/SpiderLabs/ModSecurity-nginx&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/eTkCk/hyJsoiaK1I/G6FxGfqKOesGFPVogiHRU1/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400,https://scrap.kakaocdn.net/dn/bM9Rv8/hyJsfr1Giq/U81IxJrVusqrwcUBgxbT7k/img.png?width=1616&amp;amp;height=422&amp;amp;face=0_0_1616_422&quot;&gt;&lt;a href=&quot;https://github.com/SpiderLabs/ModSecurity-nginx.git&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/SpiderLabs/ModSecurity-nginx.git&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/eTkCk/hyJsoiaK1I/G6FxGfqKOesGFPVogiHRU1/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400,https://scrap.kakaocdn.net/dn/bM9Rv8/hyJsfr1Giq/U81IxJrVusqrwcUBgxbT7k/img.png?width=1616&amp;amp;height=422&amp;amp;face=0_0_1616_422');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;SpiderLabs/ModSecurity-nginx&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;ModSecurity v3 Nginx Connector. Contribute to SpiderLabs/ModSecurity-nginx development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Nanum Gothic';&quot;&gt;nginx -v&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Nanum Gothic';&quot;&gt;버전에 맞는 파일 다운로드&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Nanum Gothic';&quot;&gt;wget &lt;a style=&quot;color: #000000;&quot; href=&quot;http://nginx.org/download/nginx-1.13.7.tar.gz&quot;&gt;http://nginx.org/download/nginx-1.18.0.tar.gz&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Nanum Gothic';&quot;&gt;압축 풀고&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Nanum Gothic';&quot;&gt;tar xvzf nginx-1.18.0.tar.gz&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Nanum Gothic';&quot;&gt;cd nginx-1.18.0&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Nanum Gothic';&quot;&gt;./configure --with-compat --add-dynamic-module=../ModSecurity-nginx&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Nanum Gothic';&quot;&gt;make modules&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Nanum Gothic';&quot;&gt;cp objs/ngx_http_modsecurity_module.so /etc/nginx/modules&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;모듈 로드/etc/nginx/nginx.conf&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;vim /etc/nginx/nginx.conf&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;//아랫줄 코드 추가&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Nanum Gothic';&quot;&gt;load_module &quot;modules/ngx_http_modsecurity_module.so&quot;;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;// OWASP Core Rule Set 사용&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;$ cd /etc/nginx/modsec &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;$ wget &lt;a style=&quot;color: #000000;&quot; href=&quot;https://github.com/SpiderLabs/owasp-modsecurity-crs/archive/v3.1.0.tar.gz&quot;&gt;https://github.com/SpiderLabs/owasp-modsecurity-crs/archive/v3.1.0.tar.gz&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;$ tar -xvzf tar -xvzf &lt;a style=&quot;color: #000000;&quot; href=&quot;http://v3.1.0.tar.gz&quot;&gt;v3.1.0.tar.gz&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;$ rm &lt;a style=&quot;color: #000000;&quot; href=&quot;http://v3.1.0.tar.gz&quot;&gt;v3.1.0.tar.gz&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;$ cd &lt;a style=&quot;color: #000000;&quot; href=&quot;http://v3.1.0.tar.gz/rules&quot;&gt;v3.1.0.tar.gz/rules&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;$ cp &lt;a style=&quot;color: #000000;&quot; href=&quot;http://REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example&quot;&gt;REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example&lt;/a&gt; &lt;a style=&quot;color: #000000;&quot; href=&quot;http://REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&quot;&gt;REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;$ cp &lt;a style=&quot;color: #000000;&quot; href=&quot;http://RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example&quot;&gt;RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example&lt;/a&gt; &lt;a style=&quot;color: #000000;&quot; href=&quot;http://RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf&quot;&gt;RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;$ cp /etc/nginx/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;$ cp /etc/nginx/ModSecurity/unicode.mapping /etc/nginx/modsec/unicode.mapping &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;// make modsec conf and rules file &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;$ touch &lt;a style=&quot;color: #000000;&quot; href=&quot;http://modsec_includes.conf&quot;&gt;modsec_includes.conf&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;// write below in &lt;a style=&quot;color: #000000;&quot; href=&quot;http://modsec_includes.conf&quot;&gt;modsec_includes.conf&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;include &lt;a style=&quot;color: #000000;&quot; href=&quot;http://modsecurity.conf&quot;&gt;modsecurity.conf&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;include owasp-modsecurity-crs/crs-setup.conf &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;include owasp-modsecurity-crs/rules/*.conf &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;// &amp;ldquo;detection only&amp;rdquo; 모드에서 actively dropping traffic 로 변경 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;$ sed -i 's/SecRuleEngine DetectionOnly/SecRuleEngine On/' /etc/nginx/modsec/modsecurity.conf&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;#nginx 호스팅 설정에 추가&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;cd /etc/nginx/conf.d&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;vim default.conf&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;modsecurity on;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;modsecurity_rules_file /etc/nginx/modsec/modsec_includes.conf;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;참조 블로그&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://itzone.tistory.com/707&quot;&gt;Nginx open source 에 ModSecurity v3 웹방화벽 모듈 설치 - VoidNoble IT Zone (tistory.com)&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1614847922125&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Nginx open source 에 ModSecurity v3 웹방화벽 모듈 설치&quot; data-og-description=&quot;사전 요구 사항 1. Nginx latest 를 official repository 로부터 설치 nginx.org/en/linux_packages.html#mainline 2. 사전요구 패키지 설치 * Ubuntu $ apt-get install -y apt-utils autoconf automaker build-e..&quot; data-og-host=&quot;itzone.tistory.com&quot; data-og-source-url=&quot;https://itzone.tistory.com/707&quot; data-og-url=&quot;https://itzone.tistory.com/707&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/54PVf/hyJsk7ZU25/54Yly2GFIemD5NYr1vhbk1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/B77yu/hyJsgkbgrO/ffZPDbZlcCLkj569vVpwe0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://itzone.tistory.com/707&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://itzone.tistory.com/707&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/54PVf/hyJsk7ZU25/54Yly2GFIemD5NYr1vhbk1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/B77yu/hyJsgkbgrO/ffZPDbZlcCLkj569vVpwe0/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;&gt;Nginx open source 에 ModSecurity v3 웹방화벽 모듈 설치&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;사전 요구 사항 1. Nginx latest 를 official repository 로부터 설치 nginx.org/en/linux_packages.html#mainline 2. 사전요구 패키지 설치 * Ubuntu $ apt-get install -y apt-utils autoconf automaker build-e..&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;itzone.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #000000;&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://sronsemiro.tistory.com/8&quot;&gt;Nginx에 ModSecurity 웹방화벽 설치 :: onsemiro (tistory.com)&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1614847928265&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Nginx에  ModSecurity 웹방화벽 설치&quot; data-og-description=&quot;* Ubuntu 18.04.4 LTS / Nginx 1.19.0 버전에서 테스트 했습니다. * Ubuntu에 Nginx가 설치되어있다고 가정합니다. libmodsecurity 다운 및 컴파일 // Clone $ git clone --depth 1 -b v3/master --single-branch..&quot; data-og-host=&quot;sronsemiro.tistory.com&quot; data-og-source-url=&quot;https://sronsemiro.tistory.com/8&quot; data-og-url=&quot;https://sronsemiro.tistory.com/8&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/mJHfg/hyJsg5zjh8/HKcjIFHji8XoKvD8cnQ3D1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/dAfF7j/hyJsjHZKft/1XTdAou1evkyOGKS7r7h10/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/kNdcL/hyJsk7ZU3D/qYgOR4mNkiGfKm6gPKluok/img.png?width=257&amp;amp;height=461&amp;amp;face=0_0_257_461&quot;&gt;&lt;a href=&quot;https://sronsemiro.tistory.com/8&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://sronsemiro.tistory.com/8&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/mJHfg/hyJsg5zjh8/HKcjIFHji8XoKvD8cnQ3D1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/dAfF7j/hyJsjHZKft/1XTdAou1evkyOGKS7r7h10/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/kNdcL/hyJsk7ZU3D/qYgOR4mNkiGfKm6gPKluok/img.png?width=257&amp;amp;height=461&amp;amp;face=0_0_257_461');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Nginx에 ModSecurity 웹방화벽 설치&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;* Ubuntu 18.04.4 LTS / Nginx 1.19.0 버전에서 테스트 했습니다. * Ubuntu에 Nginx가 설치되어있다고 가정합니다. libmodsecurity 다운 및 컴파일 // Clone $ git clone --depth 1 -b v3/master --single-branch..&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;sronsemiro.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>serverSide/Linux</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/130</guid>
      <comments>https://rootjs.tistory.com/130#entry130comment</comments>
      <pubDate>Thu, 4 Mar 2021 17:55:54 +0900</pubDate>
    </item>
    <item>
      <title>[CentOS7]특정 계정 su 명령어 막기</title>
      <link>https://rootjs.tistory.com/129</link>
      <description>&lt;p&gt;git 설정하면서 ftp도 같은 계정으로 사용하다보니 ssh를 막을수가 없어서 같이 사용하는 계정에 su 권한을 빼버림..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;계정 권한 하나만 제거는 안되고 다 제거 후 특정 계정 사용 권한만 넣는걸로 작업함&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;vim /etc/pam.d/su&lt;/p&gt;
&lt;p&gt;6행 auth required pam_wheel.so use_uid&lt;/p&gt;
&lt;p&gt;주석 제거&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;vim /etc/group&lt;/p&gt;
&lt;p&gt;wheel:x:10: 찾아서 사용할 계정 추가&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;wheel:x:10:root,사용자계정&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;위처럼 한 후 git 계정으로 ssh 접속 후 sudo&amp;nbsp; 명령어 사용하면 기록 남고 거부 됨&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>serverSide/Linux</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/129</guid>
      <comments>https://rootjs.tistory.com/129#entry129comment</comments>
      <pubDate>Thu, 4 Mar 2021 15:35:24 +0900</pubDate>
    </item>
    <item>
      <title>[CentOS7] php7.2 + mssql(sqlsrv)</title>
      <link>https://rootjs.tistory.com/128</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;php에서 mssql서버 접속 시 필요한 모듈 설치 관련 내용임..&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;기존에는 pecl install sqlsrv &amp;lt;-- pecl을 이용해서 설치 하였으나 이렇게 하면 버전이 안맞는다고 설치안됨..&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;그래서 해당하는 버전을 찾아 설치 pecl install sqlsrv-5.8.11 뭐 이런식으로 하는데 make 부분에서 에러남..&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;혹시나 해서 yum list&amp;nbsp; php-sqlsrv 찾아보니 있음..&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;그냥 yum 이용해서 설치하면 끝~&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;sudo&amp;nbsp;su &lt;br /&gt;curl&amp;nbsp;&lt;a href=&quot;https://packages.microsoft.com/config/rhel/7/prod.repo&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://packages.microsoft.com/config/rhel/7/prod.repo&lt;/a&gt;&amp;nbsp;&amp;gt;&amp;nbsp;/etc/yum.repos.d/mssql-release.repo &lt;br /&gt;exit &lt;br /&gt;sudo&amp;nbsp;yum&amp;nbsp;update &lt;br /&gt;sudo&amp;nbsp;ACCEPT_EULA=Y&amp;nbsp;yum&amp;nbsp;install&amp;nbsp;-y&amp;nbsp;msodbcsql&amp;nbsp;mssql-tools&amp;nbsp;unixODBC-devel&amp;nbsp; &lt;br /&gt;sudo&amp;nbsp;yum&amp;nbsp;groupinstall&amp;nbsp;&quot;Development&amp;nbsp;Tools&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;yum install php-sqlsrv&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;설치되는 버전은 5.8.1-1&lt;/p&gt;</description>
      <category>serverSide/Linux</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/128</guid>
      <comments>https://rootjs.tistory.com/128#entry128comment</comments>
      <pubDate>Thu, 4 Mar 2021 13:51:42 +0900</pubDate>
    </item>
    <item>
      <title>[CentOS7] git 웹서버 배포</title>
      <link>https://rootjs.tistory.com/127</link>
      <description>&lt;p&gt;기존에 한 서버에 git 저장소 운영 및 호스팅서버를 같이 돌리고 있었음..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그러다 서버를 늘려야하는 상황이 생겨 서버쪽 작업을 진행함..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;사전조건 git 저장소 서버와 호스팅서버간 git을 이용할 계정의 ssh 접속이 비번 없이 가능해야함..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ssh 접속 후 sh파일 실행도 가능해야함..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;위 조건은 서버에서 각 계정별로 키를 생성하고 공유하여 접속 시 비번없이 처리되게 하면 됨..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;배포할 서버(git 저장소 서버) 에서 작업&lt;/p&gt;
&lt;p&gt;#사용할 계정으로 전환&lt;/p&gt;
&lt;p&gt;su git&lt;/p&gt;
&lt;p&gt;#키 생성 -&amp;gt; 엔터 -&amp;gt; 엔터 -&amp;gt; 엔터&lt;/p&gt;
&lt;p&gt;ssh-keygen -t rsa&lt;/p&gt;
&lt;p&gt;#키 폴더로 이동&lt;/p&gt;
&lt;p&gt;cd ~/.ssh&lt;/p&gt;
&lt;p&gt;#키 확인&lt;/p&gt;
&lt;p&gt;cat id_rsa.pub&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;해당 키 복사하여 호스팅 서버쪽 ssh 연결할 계정에서 키 추가&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;호스팅 서버에서 작업&lt;/p&gt;
&lt;p&gt;#git 서버에서 접속할 계정으로 전환&lt;/p&gt;
&lt;p&gt;su git&lt;/p&gt;
&lt;p&gt;#키폴더로 이동&lt;/p&gt;
&lt;p&gt;cd ~/.ssh&lt;/p&gt;
&lt;p&gt;#git서버 키 추가&lt;/p&gt;
&lt;p&gt;vim authorized_keys&lt;/p&gt;
&lt;p&gt;#위 파일에 복사한 키 붙혀넣기&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;위 작업 완료 후 git서버에서 호스팅서버로 ssh 접속테스트&lt;/p&gt;
&lt;p&gt;인증부분 yes로 넘어간 후 접속 끊고 다시 접속할때 별다른 체크 없이 서버로 접속되면 첫단계 끝&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;호스팅서버에서 작업&lt;/p&gt;
&lt;p&gt;git서버에서 ssh로 접속할 계정으로 전환&lt;/p&gt;
&lt;p&gt;su git&lt;/p&gt;
&lt;p&gt;#폴더 이동&lt;/p&gt;
&lt;p&gt;cd /data/hosting&lt;/p&gt;
&lt;p&gt;#git 서버 clone&lt;/p&gt;
&lt;p&gt;git clone ssh://계정명@호스트명:포트번호/폴더경로/gitname.git&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;#pull.sh 파일 생성&lt;/p&gt;
&lt;p&gt;cd /data/hosting&lt;/p&gt;
&lt;p&gt;git pull origin master&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;파일 권한 755로 변경 chmod 755 pull.sh&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;파일 실행 테스트 ./pull.sh&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이상없이 pull해오면 git 서버로 이동&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;git서버에서 작업&lt;/p&gt;
&lt;p&gt;#git설정 계정으로 전환&lt;/p&gt;
&lt;p&gt;su git&lt;/p&gt;
&lt;p&gt;#git 저장소 이동&lt;/p&gt;
&lt;p&gt;cd /data/git/git명.git&lt;/p&gt;
&lt;p&gt;#hooks 폴더 이동&lt;/p&gt;
&lt;p&gt;cd hooks&lt;/p&gt;
&lt;p&gt;#post-update 파일 생성&lt;/p&gt;
&lt;p&gt;vim post-update&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;post-update 파일에 ssh접속하여 실행하는 구분 추가&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ssh -p포트번호 계정명@호스트명 &quot;~/pull.sh&quot;||exit&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;echo &quot;변경 확인용 출력&quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;위 ssh 실행 뒤에 폴더 위치가 ~/는 계정폴더에 pull.sh를 만들어둔 상태일때고 호스팅폴더에 만들어뒀으면 호스팅 폴더 경로 찾아가서 실행시켜야함..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;클라이언트에서 push하면 호스팅폴더쪽에서 자동 pull되야함~&lt;/p&gt;</description>
      <category>IDE/GIT</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/127</guid>
      <comments>https://rootjs.tistory.com/127#entry127comment</comments>
      <pubDate>Thu, 4 Mar 2021 13:47:47 +0900</pubDate>
    </item>
    <item>
      <title>[crontab]php url 실행</title>
      <link>https://rootjs.tistory.com/126</link>
      <description>&lt;p&gt;특정 페이지에 주기적으로 접속하거나 체크해야하는 상황이 생겨 작업&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;php파일을 실행해야하는데 폴더호출로 사용할수 있는 구조가 아니라서 url로 호출되게 처리&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2분 단위로 실행하여 서버에 로그 남김&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;OS : 우분투16.04&lt;/p&gt;
&lt;p&gt;crontab -e&lt;/p&gt;
&lt;p&gt;*/2 * * * * /usr/bin/curl -s -o /data 접속주소&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;curl로 한 이유는 wget은 파일을 다운로드 하기에...&lt;/p&gt;</description>
      <category>serverSide/Linux</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/126</guid>
      <comments>https://rootjs.tistory.com/126#entry126comment</comments>
      <pubDate>Fri, 26 Feb 2021 11:42:46 +0900</pubDate>
    </item>
    <item>
      <title>여러 하위 폴더에서 동일한 파일명 수정</title>
      <link>https://rootjs.tistory.com/124</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;find ./ -type f - name '파일명' -exec rename 파일명 변경파일명 {} \;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;하위폴더에서 파일명으로 검색하고 해당 검색된 위치에서 파일명을 변경한다~&lt;/b&gt;&lt;/p&gt;</description>
      <category>serverSide/Linux</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/124</guid>
      <comments>https://rootjs.tistory.com/124#entry124comment</comments>
      <pubDate>Tue, 9 Feb 2021 18:18:46 +0900</pubDate>
    </item>
    <item>
      <title>[IIS8.5]호스팅 파일 복사 후 500  error</title>
      <link>https://rootjs.tistory.com/123</link>
      <description>&lt;p&gt;파일 신규 서버 업로드 후 IIS 설정해서 접속했을때 깨지는 글자가 보이고 asp 파일 외에 다른 파일들이 모두 500에러가 뜰경우 web.config 파일을 삭제하고 접속!&lt;/p&gt;
&lt;p&gt;IIS설정 변경 후 저장하면 web.config 에 내용이 기록되는 경우가 있고 그걸 그대로 복사해서 붙혀넣으면 발생하는 문제&lt;/p&gt;</description>
      <category>serverSide/windows</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/123</guid>
      <comments>https://rootjs.tistory.com/123#entry123comment</comments>
      <pubDate>Mon, 8 Feb 2021 19:14:15 +0900</pubDate>
    </item>
    <item>
      <title>원격연결 시 클립보드 복사 붙혀넣기가 안될때</title>
      <link>https://rootjs.tistory.com/122</link>
      <description>&lt;p&gt;윈도우 서버 2012 기준 작업관리자 &amp;gt; 프로세스 &amp;gt; RDP 클립보드 모니터를 작업 끝내기&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;실행창 &amp;gt; &lt;a href=&quot;http://rdpclip.exe&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;rdpclip.exe&lt;/a&gt; 엔터~&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;내컴에서 서버로 서버에서 내컴으로 복 붙 안될때 확인&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;내컴퓨터도 동일~&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>serverSide/windows</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/122</guid>
      <comments>https://rootjs.tistory.com/122#entry122comment</comments>
      <pubDate>Thu, 28 Jan 2021 18:44:53 +0900</pubDate>
    </item>
    <item>
      <title>[정규식]여러 항목 선택 후 복사 붙혀넣기</title>
      <link>https://rootjs.tistory.com/121</link>
      <description>&lt;p&gt;윈도우 기준 정규식으로 검색 된 여러개 문자열을 한번에 선택되게 하는 명령어&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ctrl + Shift + L 입력하면 전체 다 커서가 들어감&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ctrl + c&amp;nbsp; 복사 후 다른 파일이든 어디든 Ctrl + v 하면 정규식에 매치되는 문자열들 다 복사 후 붙혀넣기 됨&lt;/p&gt;</description>
      <category>IDE/VSCODE</category>
      <author>Root_js</author>
      <guid isPermaLink="true">https://rootjs.tistory.com/121</guid>
      <comments>https://rootjs.tistory.com/121#entry121comment</comments>
      <pubDate>Thu, 28 Jan 2021 18:41:04 +0900</pubDate>
    </item>
  </channel>
</rss>