12.04에서 16.04로 업그레이드 한 이후에 커널을 4버전으로 업그레이드했다.

이후에 apt upgrade할 때면 수시로 /boot 가 용량이 부족하다고 에러.

다른 업데이트도 방해해서 귀찬다.


커널 업데이트가 떴다 하면 /boot 안에 있는 내용을 다른 곳에 옮기고 업그레이드 완료 후에 다시 옮겨서 이전버전을 purge하는 눈물나는 삽질 ㅠ.ㅜ

cd를 구해서 부팅한 다음에 gparted로 boot 파티션을 늘리라는 포스팅들이 대부분인데...


귀...찬...다...




한참 다른 방법 검색하다보니 /boot 를 sda1으로 옮겨버리는 방법이 있다.


1. 설치되어 있는 커널들을 찾아서 오래된 커널들은 지워준다.


sudo dpkg --list | grep linux


sudo apt purge linux-headers-4.15.0-33 linux-headers-4.15.0-33-generic linux-image-4.15.0-33-generic linux-image-extra-4.15.0-33-generic linux-signed-image-4.15.0-33-generic

4.15.0-33 은 리스트에 표시된 지울 버전으로 변경한다.



2. /boot 를 sda1에 복사


sudo cp -a /boot /boot-tmp

sudo umount /boot

sudo rmdir /boot && mv /boot-tmp /boot



3. fstab 수정


sudo vi /etc/fstab


/boot 파티션을 주석 처리한다.



4. grub 업데이트


sudo update-grub


완료되면 잘되길 기원하면서 경건한 마음으로 reboot 해본다 ;;;

어딘가 남아있을 기존 boot 파티션은 머릿속에서 지워버리기로 한다.


개발환경 : Ubuntu 18.04 Desktop



1. Laradock 설치


https://laradock.io/


Quick Overview에는 mysql을 설치하라고 되어 있으나 8.0.4 이후 버전 이슈로 인해 mariadb로 설치한다.

http://yypbd.tistory.com/1784


여러 개의 프로젝트를 하나의 Laradock으로 구동하는 방법으로 설정한다.


내 작업경로는 ~/project/php/



a) laradock 다운로드


git clone https://github.com/laradock/laradock.git



b) .env 파일이 없다면 env-example 파일을 복사해서 .env 파일 생성


cp env-example .env



c) mariadb를 이용할 것이므로

.env 파일에서 PMA_DB_ENGINE 항목을 찾아서 mariadb로 변경


d) db 설정 변경

필요하다면 .env 파일에서 MARIADB 항목을 찾아서 생성할 db, user, password등을 변경한다.

여기에서는 default 설정을 그대로 이용하기로 한다.




2. Laravel 설치


~/project/php/ 경로에 작업할 Laravel 프로젝트를 생성한다.

여기서는 laradock의 예제와 같이 project-1, project-2 을 만들어본다.


composer, php-mbstring, php-xml을 설치해야 할 수도 있다.

docker와 별개로 laravel을 다운받기 위해 필요하다.

내 경우는 php 7.0이 설치되어 있어서 php7.0-mbstring, php7.0-xml, php7.0-mysql을 설치했다.


sudo apt install php7.0-mbstring php7.0-xml php7.0-mysql


composer create-project --prefer-dist laravel/laravel project-1

composer create-project --prefer-dist laravel/laravel project-2




3. hosts 수정


브라우저에서 아래의 url로 테스트하기 위함이다.

http://project-1.test

http://project-2.test


a) hosts 파일 수정


sudo vi /etc/hosts


127.0.0.1  project-1.test
127.0.0.1  project-2.test


위 내용을 추가한다.

저장 완료하고 hosts 적용


sudo /etc/init.d/networking restart



b) 접속 확인

127.0.0.1로 ping이 가는지 확인해본다.


ping project-1.test

ping project-2.test





4. nginx 설정 수정


프로젝트 경로와 테스트 호스트를 연결한다.


laradock/nginx/sites/ 에서 laravel.conf.example을 복사해서 project-1.conf, project-2.conf 파일을 생성한다.


cp laravel.conf.example project-1.conf

cp laravel.conf.example project-2.conf


각각의 conf 파일을 열어서


server_name project-1.test;

root /var/www/project-1/public;

server_name project-2.test;
root /var/www/project-2/public;


와 같이 수정한다.




5. docker 실행


a) docker 설치


https://docs.docker.com/install/linux/docker-ce/ubuntu/#prerequisites



b) docker-compose 설치


https://docs.docker.com/compose/install/#install-compose



c) docker 실행


~/project/php/laradock/ 에서


sudo docker-compose up -d nginx mariadb phpmyadmin redis workspace


docker나 docker-compose의 버전이 낮다면 설치가 제대로 안될 수가 있다.
a)의 문서 보고 가급적 최신 버전으로 설치한다.


6. phpmyadmin 접속 확인

웹브라우저를 열어서 http://localhost:8080  으로 접속해본다.


server : mariadb

username : root

password : root



7. project-1 설정


~/project/php/project-1 에서 작업



cp .env.example .env

vi .env


laradock의 설정을 변경하지 않았으면 기본으로 default database가 생성되나 이 데이터베이스를 이용해본다.

.env 파일을 열어서 아래의 내용과 같이 추가하거나 수정한다.


APP_URL=http://project-1.test


DB_HOST=mariadb

DB_DATABASE=default

DB_USERNAME=default

DB_PASSWORD=secret


REDIS_HOST=redis


QUEUE_HOST=beanstalkd


8. 사이트접속 확인


웹브라우저를 열어서


http://project-1.test/


사이트가 접속이 되는지 확인한다.

키설정을 하지 않았으니 당연히 오류가 발생할 것이다.


php artisan key:generate

env DB_HOST=127.0.0.1 php artisan migrate



다시 접속해서 laravel 초기 페이지가 제대로 열리는지 확인해본다.



Laravel 개발환경 구축하려고 Laradock을 설치했다.

작업환경은 Ubuntu 18.04.




Laradock의 Quick Overview에 있는 내용대로 적용.

docker-compose로 docker 실행하고 Laravel 받아서 설치 완료.


Model 추가해서 db 작업되는 것 확인하고 User 추가해서 로그인하려는데 오류 발생.

SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client



구글링해보니 MySQL 8버전에서 기본인증 부분이 변경되었다고 한다.


https://mysqlserverteam.com/mysql-8-0-4-new-default-authentication-plugin-caching_sha2_password/

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-4.html


Laradock 설정에서 mysql이 latest로 되어 있어서 8.0.12버전이 설치되었다.





해결방안


1. mysql 8.0.12 버전의 인증 방법을 예전 인증방법으로 변경한다.

https://github.com/laradock/laradock/issues/1392


2. mysql을 예전 버전으로 downgrade


3. mariadb로 변경




'Programming > PHP' 카테고리의 다른 글

Laradock으로 Laravel 개발환경 구축하기  (0) 2018.10.18

오래 사용한 N40L 서버에 설치한 Ubuntu 12.04 Server가 지원기간이 만료되었다 해서 업그레이드 하기로 결심.

안되면 밀어버리자란 마음으로 cron으로 돌려놓은 백업파일들 한번 살펴보고 업그레이드를 시작했다.


do-release-upgrade 명령으로 14.04를 거쳐서 16.04로 쭉 업그레이드.

다행히도 별 다른 오류는 없이 16.04로 설치는 끝났다.


하지만 예상했던대로 이런저런 오류가 발생...



1. apt update 시 GPG apt-key 오류 발생

1) 커널이 3.5버전인지라 4.x대로 업그레이드

https://wiki.ubuntu.com/Kernel/LTSEnablementStack

sudo apt-get install --install-recommends linux-generic-hwe-16.04


커널 업그레이드 하고 재부팅.

apt update하니 오류 메시지가 바꼈다.


2) GPG 키 다운로드


우선 Ubuntu


sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 40976EAF437D05B5

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 3B4FE6ACC0B21F32


다음은 gitlab

curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null




2. mysql 서버


Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

메시지 발생


간단하게 재설치로 해결함

sudo apt-get --reinstall install mysql-server




3. python


기존에 ppa로 설치했던 버전 삭제 후 재설치

virtualenvwrapper 설치하고

.bashrc .zshrc에 실행 경로 지정

 

export WORKON_HOME=~/py-envs

source /usr/local/bin/virtualenvwrapper.sh

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3



우선 이정도에서 서버가 진정한 것 같으니 다른 오류가 발생하는지는 더 살펴보도록 하자.


'Programming > Ubuntu' 카테고리의 다른 글

Ubuntu boot 파티션 용량 부족시  (0) 2018.10.18

+ Recent posts