<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>라즈베리 Archives - JIN&#039;s BOT</title>
	<atom:link href="https://jinsbot.com/tag/%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC/feed/" rel="self" type="application/rss+xml" />
	<link>https://jinsbot.com/tag/라즈베리/</link>
	<description>Coding + Engineering</description>
	<lastBuildDate>Fri, 10 Jun 2022 16:35:11 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.2</generator>
<site xmlns="com-wordpress:feed-additions:1">158124120</site>	<item>
		<title>wordpress , PI 를 위한 Docker 환경 구축</title>
		<link>https://jinsbot.com/pi-docker-wordpress/</link>
					<comments>https://jinsbot.com/pi-docker-wordpress/#respond</comments>
		
		<dc:creator><![CDATA[geniuskpj]]></dc:creator>
		<pubDate>Fri, 03 Jun 2022 14:25:07 +0000</pubDate>
				<category><![CDATA[Embedded]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[Raspberry]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[라즈베리]]></category>
		<category><![CDATA[워드프레스]]></category>
		<guid isPermaLink="false">http://222.117.132.157/?p=385</guid>

					<description><![CDATA[<p>개요 Raspberry PI 3에서 만들었던 wordpress 를 Raspberry PI 4로 이전하는 중이다. 당시 주류였던 APM (Apache + PHP + Mysql)으로 구축했었으나 그대로 이전하기는 골치아팠다. 그래서 개인 클라우드 구축에 잘 활용중인 Docker로 환경을 구축하게 되었다. Docker환경에서 wordpress 사이트 구축 Docker는 약간의 성능(10~20%)을 희생하고 셋업,디버깅의 편의성을 극대화 해준다. 환경 구축을 위한 여러가지 방법이 있지만 docker-compose를 가장 추천한다. [&#8230;]</p>
<p>The post <a href="https://jinsbot.com/pi-docker-wordpress/">wordpress , PI 를 위한 Docker 환경 구축</a> appeared first on <a href="https://jinsbot.com">JIN&#039;s BOT</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">개요</h2>



<p>Raspberry PI 3에서 만들었던 wordpress 를 Raspberry PI 4로 이전하는 중이다.</p>



<p>당시 주류였던 APM (Apache + PHP + Mysql)으로 구축했었으나 그대로 이전하기는 골치아팠다.</p>



<p>그래서 개인 클라우드 구축에 잘 활용중인 <a href="https://namu.wiki/w/Docker" target="_blank" rel="noreferrer noopener">Docker</a>로 환경을 구축하게 되었다.</p>



<p></p>



<h2 class="wp-block-heading">Docker환경에서 wordpress 사이트 구축</h2>



<p>Docker는 약간의 성능(10~20%)을 희생하고 셋업,디버깅의 편의성을 극대화 해준다.</p>



<p>환경 구축을 위한 여러가지 방법이 있지만 docker-compose를 가장 추천한다.</p>



<p>docker-compose는 apt를 통해 간단하게 설치할 수 있고 스크립트를 통해 docker를 제어하게 해준다.</p>



<p>이번에 사용된 docker-compose.yml을 다음과 같다.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="yaml" data-enlighter-theme="dracula" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">version: "3.6"
    
services:
  wordpress:
    container_name: wordpress
    depends_on:
      - db
    image: wordpress
    volumes:
      - wordpress_data:/var/www/html
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
    ports:
     - "80:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: **
      WORDPRESS_DB_NAME: wordpress
      
  db:
    container_name: mysql
    image: jsurf/rpi-mariadb
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: ****
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: **      

volumes:
  db_data: {}
  wordpress_data: {}</pre>



<p><strong>셋업 환경: Raspberry PI 4 (Raspbian Buster)</strong></p>



<p>Docker 이미지들은  Linux에서 호환성이 좋지만 Raspbian은 version에 따라 호환되지 않는 경우도 많다.</p>



<p>또한 yml에서는 python과 마찬가지로 공백으로 구조체를 구분하기때문에 오류가 발생할 시 이를 잘 수정해보길 바란다.</p>



<p>위 파일에서 사용된 간단한 키워드에 대해 설명하겠다.</p>



<pre class="wp-block-code"><code lang="yaml" class="language-yaml">container_name: docker ps에서 보이는 container의 이름을 지정
image: '/'를 기준으로 앞부분은 architecture나 구분자(저자)를 의미하고 ':'뒤에 태그(종류)를 지정
volumes: 컨테이너의 내용을 특정 로컬 폴더에 저장, volume에 저장되지 않은 내용은 재시작시 삭제됨
environment: 환경변수, image별로 사전에 정의되어야 하는 변수는 다름</code></pre>



<p>images 예시) arm64v8/wordpress:6-php7.4-apache</p>



<p>일반적인 경우 docker에서 적절한 architecture를 선정해주지만 호환성을 위해 별도(arm32v7 ) 지정해야할 수 있다.</p>



<p>사용자에 따라 원하는 환경이 다를 수 있는데 docker에서는 이를 tag로 구분한다.</p>



<p>위에서 6은 wordpress 6을 의미하며 이외에도 fpm, alpine 등의 키워드를 추가할 수 있다.</p>



<p>volumes는 하단에서 어떤 volume을 만들 것인지 정의해 줘야 하며 그 이름은 service 이름으로 해주어도 상관없다.</p>



<p>&#8216;/&#8217;를 사용하는 절대 경로를 사용할 수도 있고  위처럼 키워드를 사용할 수도 있는데</p>



<p>키워드를 사용한 경우 &#8216;/var/lib/docker/volumes/컨테이너이름_키워드/_data/&#8217;에 저장된다.</p>



<p>docker-compose에서 핵심적인 요소는 어떤 image를 사용하느냐이고 되도록이면 공식 image를 추천한다.</p>



<p>wordpress 공식 이미지는 Raspbian Buster를 지원하지만 mariadb는 그렇지 않다.</p>



<p>&#8216;linuxserver/mariadb&#8217;,&#8217;yobasystems/alpine-mariadb&#8217; 등 다양한 mariadb image가 존재하지만 buster에서 제대로 동작하지 않는다.</p>



<p>&#8216;<strong>jsurf/rpi-mariadb</strong>&#8216;는 PI에서 가장 많이 쓰이는 mariadb 이미지 중 하나이며 buster에서도 정상 동작한다.</p>



<p>한가지 더 주의할 점은 잘못된 이미지를 사용하더라도 실제 구동시에는 정상동작하는것처럼 보인다.</p>



<p>그러므로 docker ps를 통해서 정상동작 여부를 확인해야한다.</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="http://222.117.132.157/wp-content/uploads/2022/06/image.png" alt="wordpress 를 구동하고 docker ps로 확인한 결과" class="wp-image-440" width="474" height="67" title="" srcset="https://jinsbot.com/wp-content/uploads/2022/06/image.png 474w, https://jinsbot.com/wp-content/uploads/2022/06/image-300x42.png 300w" sizes="(max-width: 474px) 100vw, 474px" /></figure>



<p>보통 command에 docker-entrypoint 이외의 값이 뜨면 구동과정에서 문제가 발생한 것이다.</p>



<p></p>



<p>uploads.ini는 docker-compose.yml과 같은 폴더에 존재하며 다음 값이 담겨져 있다.</p>



<pre class="wp-block-code"><code lang="php" class="language-php">file_uploads = On
memory_limit = 500M
upload_max_filesize = 500M
post_max_size = 500M
max_execution_time = 600</code></pre>



<p>기본적으로 wordpress는 업로드 파일 사이즈를 제한하기때문에  그 설정을 변경하기 위한 것이다.</p>



<p>이 설정은 워드프레스와는 다른 위치에 저장되기때문에 volumes에 별도로 정의되어야한다.</p>



<p></p>



<h2 class="wp-block-heading">요약</h2>



<ul class="wp-block-list"><li>Docker는 셋업 및 유지보수를 용이하게 만들어줌</li><li>Raspberry PI에서는 mariadb image를 적절하게 골라야함</li><li>docker ps를 통해 정상동작 여부를 확인해야함</li></ul>
<p>The post <a href="https://jinsbot.com/pi-docker-wordpress/">wordpress , PI 를 위한 Docker 환경 구축</a> appeared first on <a href="https://jinsbot.com">JIN&#039;s BOT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jinsbot.com/pi-docker-wordpress/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">385</post-id>	</item>
	</channel>
</rss>
