[우분투 XAMPP-1] 설치, 오류 해결, php, mySQL 연동 여부 확인, Hello World!

jin_sk·2020년 9월 7일
0

XAMPP

목록 보기
1/2
post-thumbnail

설치

XAMPP 링크

  • XAMPP for Linux 오른쪽 선택 후 주소복사

  • 터미널에 주소 넣기

    • wget https://www.apachefriends.org/xampp-files/7.4.9/xampp-linux-x64-7.4.9-0-installer.run

  • ls -l 로 상태 확인

  • XAMPP for Linux 퍼미션 설정

    • -rw-rw-r-- 상태에선 사용할 수 없으니 변환 필요 (read write read write read 상태)

    • sudo chmod 755 xampp-linux-x64-7.4.9-0-installer.run 또는

    • sudo chmod +x xampp-linux-x64-7.4.9-0-installer.run

    • ls -l xampp-linux-x64-7.4.9-0-installer.run 하면 아래와 같이

      • 755 : -rwxr-xr-x 1 jin jin 158164162 8월 20 06:16 xampp-linux-x64-7.4.9-0-installer.run
      • +x : -rwxr-xr-x 1 jin jin 158164162 8월 20 06:16 xampp-linux-x64-7.4.9-0-installer.run

  • 설치
    • sudo ./xampp-linux-x64-7.4.9-0-installer.run (버전을 잘 확인하자....)

  • Finish 를 누르면 아래창이 뜬다

  • Go to ApplicationStart Servers 클릭후

  • Manage Servers 탭 구동 여부를 확인하는데 ProFTPD 빼고 동작하지 않는다면
    에러 부분을 확인

  • 구동 후 localhost에 접속해보면 http://localhost/dashboard/
    아래와 같이 뜬다


시작 명령문

첫번째

  • sudo /opt/lampp/manager-linux-x64.run
    수동으로 진행

두번째

  • 시작 sudo /opt/lampp/lampp start
  • 종료 sudo /opt/lampp/lampp stop

    하면 서버가 커진다

그래서 데스크탑에 추가한 아이콘을 누르면 터미널이 실행되는데 (터미널로 열도록 설정해놨기 때문)

켜진다
여기서 첫번째 방법으로 모두 수동으로 켜도 되고
두번째 방법을쓰면 MySQL Database , Apache Web Server가 켜지는 것을 볼 수 있다


비밀번호 설정

MySQL Database, ProFTPD

  • sudo /opt/lampp/lampp security
    처음에 했을때 안됐는데 다시하니 된다... 왜죠

phpAdmin

  • start 한 다음에 localhost/phpmyadmin
    User accountsUser name : root , Host name : localhostEdit privileges 클릭

    Changes password 클릭 후 비밀번호 설정

  • 설정 후 터미널에서 sudo chmod 777 -R /opt/lampp/phpmyadmin/ 입력
  • opt/lampp/phpmyadmin 폴더의 config.inc.php 파일가서

    이부분을 아래와 같이 변경
  • 변경후 터미널에서 sudo chmod 755 /opt/lampp/phpmyadmin/config.inc.php
  • 재시작 sudo /opt/lampp/lampp restart
  • localhost/phpmyadmin 에 다시 접속 후 사용자 이름 : root, 비밀번호 : admin 에서 설정한 pw 을 입력하면 로그인 완료!


에러와 해결

실행 에러

  • 폴더의 아이콘을 클릭했더니 아래와 같은 에러가 떴다


    실행시킬때는 위의 시작 명령문으로 실행시키면 된다!
    sudo /opt/lampp/manager-linux-x64.run

  • 또는
    sudo nano /usr/share/applications/xampp-control-panel.desktop
    vi파일 열리면 아래 내용 붙여 넣으면 데스크탑 아이콘 생성
    [Desktop Entry]
    Comment=Start and Stop XAMPP
    Name=XAMPP Control Panel
    Exec=sudo /opt/lampp/manager-linux-x64.run
    Icon=/opt/lampp/htdocs/favicon.ico
    Encoding=UTF-8
    Terminal=true
    Name=XAMPP Control Panel
    Comment=Start and Stop XAMPP
    Type=Application

XAMPP MySQL Database, Apache Web Server 실행 오류

  • 미리 설치해놓은 php , apache2, mysql server 를 중지시키지 않고 설치한 탓일까
    MySQL Database, Apache Web Server 가 아무리해도 실행되지 않았다...
    혹시나 해서 sudo chmod +x xampp-linux-x64-7.4.9-0-installer.run 로 다시 설치해봤지만 똑같은 결과

    오류가 났을때는 그냥 정직하게 오류내용만 검색하자...

  • Apache Web Server 해결
    포트 사용 문제로 현재 사용하고 있는 포트 확인

    • 80번 포트 사용 확인 sudo lsof -i :80
      확인해보니 기존에 사용하던것이 중지가 안되어 기존 사용하던것을 kill 해야했다
    • 80번 포트 사용 중지 sudo killall apache2
      하고 다시 start 하니 초록불 ㅠㅠㅠ
  • MySQL Database 해결
    같은 문제가 아닐까 하여 포트 번호 확인 (mysql 은 3306 포트번호를 쓴다고한다)

    • 3306번 포트 사용 확인 sudo lsof -i :3306
      이것 역시 기존 사용하던것이 중지가 안되어 kill
    • 3306번 포트 사용 중지 sudo killall mysqld
  • 해결!!

권한 오류-1

  • 권한 확인 ls -ld /opt/lampp/htdocs/
  • 이동 cd /opt/lampp/htdocs/
  • 생성 테스트 cat > index.html , mkdir test
  • 권한 확인 ls -ld /opt/lampp/htdocs
  • 권한 변경(모든 권한 - 비추) sudo chmod -R 777 /opt/lampp/htdocs
  • 폴더 생성 mkdir /opt/lampp/htdocs/test
  • 권한 확인 ls -ld /opt/lampp/htdocs/test
  • 로컬에 연결된 사용자만 쓸 수 있게 권한 변경 sudo chmod -R 755 /opt/lampp/htdocs
  • 사용자 이름 whoami 그룹 id 확인 id -gn
  • 소유권 변경 (root 권한 가져오기) sudo chown –R [사용자 이름]:[그룹 이름] /opt/lampp/ htdocs
    sudo chown -R jin:jin /opt/lampp/htdocs 하면 사용자가 바뀐다
  • 자유롭게 추가 및 수정 가능!

권한 오류-2

  • 소유주를 변경하면 해결 가능할 것으로 보인다 (권한 오류-1 참고)
root@sk-gram:/opt/lampp/htdocs/test# code .
You are trying to start vscode as a super user which is not recommended. 
If you really want to, you must specify an alternate user data directory using the --user-data-dir argument.


php, mySQL 연동 확인하기

성공적으로 잘 돌아가는지 확인 하기 위해 연동여부를 확인해본다
htdocs 폴더test 폴더 에 생성

php 연동 확인

  • php_test.php
<?php
  echo '<p>Hello PHP</p>';
  echo "PHP 파서의 버전은 :" . phpversion();
  phpinfo();
?>
  • 결과

mySQL 연동 확인

  • test.php
<?php
echo "MySql 연결 테스트<br>";
 
$db = mysqli_connect("localhost", "root", "비밀번호", "생성한 DB 이름");
 
if($db){
    echo "connect : 성공<br>";
}
else{
    echo "disconnect : 실패<br>";
}
 
$result = mysqli_query($db, 'SELECT VERSION() as VERSION');
$data = mysqli_fetch_assoc($result);
echo $data['VERSION'];
?>
  • 결과

  • 오류

    • 맨처음 비밀번호 틀렸을 때
      Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in /opt/lampp/htdocs/test/test.php on line 4
      phpmyadmin 의 비밀번호가 생각나지 않아 mySQL 비밀번호를 강제로 바꿨으나 바꾼 비밀번호를 넣어도 적용되지 않았다.
      phpmyadmin 의 비밀번호를 알아낸 후 mySQL 비밀번호도 다시 phpmyadmin 비밀번호로 변경하니 오류 해결
    • DB 생성하지 않았을 때
      Warning: mysqli_connect(): (HY000/1049): Unknown database 'world' in /opt/lampp/htdocs/test/test.php on line 4
      DB를 생성하지 않아 생긴 실수...
      • phpmyadmin 에서 database 생성하기
        • database 이름 입력 : myDB
          저 아래의 Drop이 위코드에서 자주 들었던 Drop DB 인가 보다...
        • 테이블을 따로 생성하라고 했으나 일단은 하지 않음
        • 어떻게되는지 한번 보기나 하자

Hello, World! 띄워보기

  • 험난한 과정을 거치고 Hello, World를 띄워보도록 하자...
  • 이미 만들어 놓은 test 폴더index.php 파일 생성
    <?php echo "Hello, World!";?> 입력 후 저장
  • localhost 서버에 잘 나오는지 확인!!!
    http://localhost/test/index.php (폴더이름/파일이름)

    수정 사항이 있으면 수정 후 새로고침 하면 반영된다

mySQL 에러

  • 갑자기 mySQL 에러 발생
    /opt/lampp/bin/mysql.server: 264: kill: No such process


    service mysql status

    다시 시작해도 안되었다

    그냥 재시작하면 됐었을텐데 모르고 sudo killall mysqld 해버렸더니 mariaDB 까지 삭제해버렸다.
    sudo service mysql stop , sudo /opt/lampp/xampp start 해도 실패
    캡쳐를 못하고, 구글뒤져가면서 별별 방법 다 써 보았으나 실패...
    삽질의 기록

    정말 별별방법 다썼으나 실패.................재설치하자는 마음으로
    sudo ./xampp-linux-x64-7.4.9-0-installer.run
    다시 설치하니 됐다... 함부로 sudo killall 하지 말자

1개의 댓글

comment-user-thumbnail
2022년 11월 21일

안녕하세요. 며칠 하다가 우연히 포스트 보고 여쭤보려고 연락드렸어요. nodejs 와 mysql 연동할 때 node에서 database 만들고 table만드는데, localhost:3000사용해서 하고 있는데 실행시키면 database와는 연결이 되었다고 나오는데, localhost:3000/createdb 할 경우 안 만들어지더라고요. ㅠㅠ 이래저래 엄청 찾아봤는데 해결 못 하고 있어서 이렇게 여쭤봐요.

답글 달기