맨체스터 사는 개발자

[맨체스터개발자/PHP] 우분투 20.04.1 에 Apache, PHP, MySQL, Laravel(라라벨) 설치 본문

개발/PHP

[맨체스터개발자/PHP] 우분투 20.04.1 에 Apache, PHP, MySQL, Laravel(라라벨) 설치

aaamy91 2021. 5. 20. 06:51

개발할 때 제일 어려운건 개발이 아니라 처음 설치 및 환경 설정이다.

우선 Apache, PHP, MySQL 은 아래 페이지를 참고 했다.

https://opentutorials.org/course/62/5105

 

근데 아무래도 오래 된거라 버전이 좀 안맞는다.

저기서 최신 버전에 맞게 손을 대야 한다.

php5 라고 된 부분에서 5를 빼거나 7로 바꿨다.

 

sudo apt-get update;
sudo apt-get install apache2;
sudo apt-get install libapache2-mod-auth-mysql;
sudo apt-get install mysql-server mysql-client;
sudo apt-get install php-common php libapache2-mod-php;
sudo apt-get install php-mysql;
sudo /etc/init.d/apache2 restart;
sudo /etc/init.d/mysql restart;

그리고 나중에 Laravel 사용을 위해 아래 명령어도 실행 하자

sudo apt-get install php-mbstring
sudo apt-get install php-gd php-xml

괜시리 php -v 이나 mysql --version 인가 mysql -v 으로 제대로 설치 되었는지 확인 해보자. 제대로 설치 되었다면 버전이 나와야 한다.
127.0.0.1 로 가서 페이지가 나오는지도 확인.

​그리고 Laravel 설치를 위해 Composer 를 설치해야 한다.

sudo apt-get install curl
sudo curl -s https://getcomposer.org/installer | php
위에것이 안되면
sudo apt-get install composer

위 명령어를 실행 후 composer 를 쳐보고 설명이 나오면 설치가 완료 된 것이다.

그리고 라라벨을 설치 한다.

composer global require laravel/installer

별 이상이 없다면

composer global about을 실행하여 컴포저의 글로벌 설치 경로를 확인하자

그리고 대부분의 사이트에서 이 상태로

laravel new (프로젝트 명) 예) laravel new blog

를 실행하면 라라벨 프로젝트가 생성 된다는데 나는 laravel: command not found 가 떴다.

이럴 때는 bash 에 경로를 추가 해야 한다.

nano ~/.bashrc 를 입력하면 대충 뭔가 소스 비스무리한게 나오는데 맨 밑으로 가서 아래 줄을 추가 한다.

 

export PATH="~/.config/composer/vendor/bin:$PATH" 

만약 우분투 16 미만이면

export PATH="~/.composer/vendor/bin:$PATH" 

그리고 source ~/.bashrc 를 하고 laravel 을 실행해보면 Command Not Found 대신 Laravel 정보가 나올 것이다.
Laravel new {프로젝트 명} 으로 해도 되고

composer create-project --prefer-dist laravel/laravel {프로젝트 명}
ex)composer create-project --prefer-dist laravel/laravel blog

위와 같이 composer 로 실행할 수도 있다.

그 다음 mysql 유저를 추가 해주자.

sudo mysql 또는 mysql -u root 로 루트계정 접속 후 계정 생성
CREATE USER '유저이름'@'localhost' IDENTIFIED BY '원하는 비밀번호';

mysql 5.7? 버전까지는 비밀번호 설정을 그냥 update 쿼리를 이용해서 했다는데 최신버전에서는 위 쿼리처럼 실행해야 한다.

새로운 계정 설정 후 계정에 권한 부여

 

해당 계정을 특정 DB에만 권한부여 하고 싶은 경우
 > GRANT ALL PRIVILEGES ON 원하는DB.* TO '유저이름'@'localhost';
특정 DB의 특정 테이블만
 > GRANT ALL PRIVILEGES ON 원하는DB.table_name TO '유저이름'@'localhost';
특정 쿼리 권한만
 > GRANT SELECT, INSERT, DELETE ON 원하는DB.* TO '유저이름'@'localhost';

그냥 모든 DB 권한 부여 하고 싶은 경우
 > GRANT ALL PRIVILEGES ON *.* TO '유저이름'@'localhost';

그 뒤에 아까 생성했던 라라벨 프로젝트의 .env 를 열어서 DB 정보를 추가 해준다

아래 화면에서 흰색 박스