dinist

라즈베리파이 3B+에 Apache 웹서버, PHP 설치하기 본문

라즈베리파이/Apache, PHP 설치

라즈베리파이 3B+에 Apache 웹서버, PHP 설치하기

dinist 2020. 7. 16. 15:36

졸업작품 당시에는 웹서버로 Nginx를 사용했지만 이번에는 Apache로 설치해보기로 한다.

 

Apache 웹서버의 설치

설치만 할거라 과정이 간단하다.

sudo apt-get install apache2를 터미널에 입력하여 설치를 진행한다.

설치가 완료되면 인터넷 브라우저 등으로 접속을확인해보자.

 

브라우저에서 이런화면이 나오면 설치가 잘 된것이다. 니오지 않는다면 문제가 있는것이다.

 

PHP 설치하기

이제 PHP를 설치해보자.

명령창에 sudo apt install php php-mysql php-curl libapache2-mod-php 를 입력하자

 

php-curl : CURL을 위한 모듈
php-mysql : MySQL 연동을 위한 모듈
libapache2-mod-php : apache 와 PHP 간의 연결을 위한 모듈

 

설치가 완료되면 cd /var/www/html 명령으로 웹서버 디렉터리로 이동하고 sudo touch infor.php 명령으로 php정보를 확인할 웹페이지를 만들어준다.

에디터 프로그램으로 infor.php에 다음 내용을 입력한다.

 

<?php
phpinfo();
?>

저장후 웹브라우저로 웹서버주소/infor.php에 접속하여 아래 그림과 같은 화면이 보인다면 설치에 성공한것이다.

 

 

(선택사항) phpMyAdmin 설치

phpMyAdmin의 설치는 선택사항이다. phpMyAdmin으로 MariaDB의 DateBase를 관리할 수 있다.

 

명령창에 sudo apt install phpmyadmin 을 입력한다.

과정을 진행하다보면 이러한 창이 뜬다. 이때 apache2를 선택해서 진행하면 된다.

 

 

phpmyadmin 설정을 데이터베이스에 설정하기 위해 예를 눌러 다음으로 진행한다.

 

MariaDB의 phpMyAdmin계정의 비밀번호를 설정하라고 나온다. 랜덤으로 해도 되고 직접 정해줘도 상관 없다.

나는 직접 지정해줬다.

 

 

설치가 완료되었다.

이제 웹서버주소/phpmyadmin을 웹브라우저에서 입력하면 phpmyadmin에 접속할 수 있다.

 

그런데.....

 

404 Not Found가 반겨준다 뭔가 문제가 있다.

 

이 링크를 참고하여 해결방법을 찾았다. (감사합니다!)

 

출처

https://webnautes.tistory.com/1185

 

Ubuntu 18.04에 LAMP ( Apache2, MySQL , PHP 7) 설치하는 방법

Apache2 웹서버, MySQL 데이터베이스 서버, PHP를 Ubuntu에 설치하는 과정을 소개합니다. LAMP는  운영 체제와 오픈 소스 소프트웨어 스택의 조합으로 Linux, Apache, MySQL, PHP의 첫글자만 가지고 만든 약어��

webnautes.tistory.com

 

/etc/apache2/apache2.conf 파일의 마지막줄에 다음 구문을 추가한다.

 

Include /etc/phpmyadmin/apache.conf

 

vim 에디터 기준으로 sudo vim + /etc/apache2/apache2.conf 명령으로 실행하면 커서가 문서의 맨 마지막줄에서 시작된다. 

혹은 vim 에디터 실행 후 명령모드에서 G를 눌러 맨 마지막줄로 커서가 이동하도록 해도 된다.

 

완료되면 저장 후 sudo service apache2 restart를 해준다.

 

오우 잘 된다!

 

그런데 이번엔 root계정 로그인이 안된다. 알아보니 MySQL 5.7 MariaDB 10.1 이후버전부터 root계정은 터미널에서만 접속이 가능하게 되었다고 한다. 

그러면 새로 계정을 만들어야겠다.

 

create user '아이디'@'%' identified by '비밀번호'; 명령으로 MariaDB의 새로운 계정을 만들어준다.

이후 grant all privileges on *.* to '아이디'@'%'; 명령으로 권한 설정을 해준다. root와 같지는 않지만 root와 버금가는 수준으로 phpmyadmin 이용을 위한 계정을 생성해준다. 이후 계정 목록을 확인해 보면..

 

잘 생성되었다. 이제 새로만든 계정으로 로그인을 해보자

새로 만든 계정으로 로그인도 잘된다. 위에 화면은 phpmyadmin로그인시 오른쪽편에 보이는 내용이다.

 

 

사실 phpmyadmin에 root계정으로 로그인 할 수 있는 방법은 있다. 하지만 권하지 않는다.

 

host가 localhost이고 user가 root인 레코드를 보면 plugin필드의 값이 unix_socket으로 설정되어있다.

저 unix_socket의 값을 없애면 phpmyadmin에서 root계정의 로그인이 가능해진다.

 

phpmyadmin의 root계정 로그인에 대한 검색을 하던 중 우연히 찾게 된 블로그가 있다.

 

https://jhrogue.blogspot.com/2020/02/b-mariadb-root-feat-unixsocket.html

 

[B급 프로그래머] MariaDB에서 root 암호 인증 방식이 먹히지 않는 이유(feat. unix_socket)

"컴퓨터와 책에 대한 블로그입니다."

jhrogue.blogspot.com

unix_socket이라는것에 다루고 있는데 이 unix_socket은 Linux/Unix 계정과 MySQL의 계정이 일치하면 별도의 과정없이 그냥 로그인이 가능해진다. 편리하고 좋은것같다. 그래서 터미널에서 sudo mysql 했을때 그냥 접속이 되길래 이상하다 싶었는데..

 

글을 읽고보니 그냥 원래 설정대로 두는게 좋을것같다.

 

새로 생성한 계정으로 phpmyadmin에 로그인 하고 데이터베이스 생성 및 테이블 생성 데이터 입력 테스트를 해봤다.

잘되는데... 데이터를 조회해보려니까 오류가 난다.

 

데이터 조회는 잘 되지만 데이터 조회시 경고창이 나오고 밑에 에러가 길~게 나온다. 보기 거슬린다.

그래도 문제는 해결하고 넘어가는것이 좋다.

 

문제 해결을 위해 /usr/share/phpmyadmin/libraries/sql.lib.php 파일의 613번 라인으로 이동한다.

sudo vim /usr/share/phpmyadmin/libraries/sql.lib.php 실행 (다른 에디터 프로그램을 사용해도 상관없다 내용만 수정하면 되니까)

ex 명령모드에서 set nu 입력하여 라인번호 표시하도록 한다. (그래야 보기 편하다)

이후 명령모드에서 613입력 후 G(대문자)를 입력하여 613번 라인으로 커서를 이동시키고

 

위 사진과 같이 변경시킨다.

저장 이후 phpmyadmin재접속을 해보면 오류가 표시되지않는다.

 

이렇게 Apache 웹서버와 PHP설치까지 해보았다.