자주 사용되는 명령어를 생각날 때마다 정리하기로 한다.

 

ls

ls

 

list의 약자로 디렉터리 내의 파일과 폴더 목록을 나열하는 데 사용된다.

 

기본 사용법인 ls는 현재 디렉터리의 파일과 폴더 목록을 나열한다.

 

다른 디렉터리의 목록을 보려면

 

ls /path/to/directory

 

ls 뒤에 확인하고자 하는 경로를 입력한다.

 

옵션

ls -l

파일의 권한, 소유자, 크기, 수정 시간 등 상세 정보와 함께 목록을 표시한다.

 

ls -a

숨겨진 파일(점으로 시작하는 파일)도 포함하여 모든 파일을 나열한다.

 

ls -lh

파일 크기를 사람이 읽기 쉬운 형식으로 표시한다.

 

ls -R

하위 디렉터리까지 재귀적으로 목록을 나열한다.

 

ls -lt

수정 시간을 기준으로 파일을 정렬 (최근 수정된 파일 우선)

 

ls -lS

파일 크기를 기준으로 정렬 (큰 파일이 우선)

 

ls -lr

역순으로 정렬

 

ls -d */

디렉터리 자체만 표시 (디렉터리 내의 파일 목록은 표시되지 않음)

 

ls -1

한 줄에 하나의 파일만 표시

기본적으로 여러 열로 표시되지만, -1 옵션을 사용하면 한 줄에 하나씩 표시

 

man ls

이 외의 옵션들에 대한 매뉴얼을 확인할 수 있다.

728x90
반응형

이번에는 test.php 파일을 만들어서 잘 동작하는지 테스트해본다.

 

먼저 리눅스에서 텍스트 파일을 사용하기 위해서 텍스트 편집기가 필요한데 일반적으로 vim이나 nano를 사용한다.

 

vim이 좀 더 복잡하지만 기능이 많고 nano가 더 단순하면서 간단하게 쓰는 도구라고 하는데 

 

일단 서버에 깔려있는 건 vim이라서 그대로 vim을 쓰기로 한다.

 

vim 버전확인

vim --version

 

파일을 생성하기 위해서는 경로가 필요한데 생각해 보니 아직 리눅스 서버의 폴더 구조를 모른다.

 

일단 폴더가 뭐가 있는지 확인해 본다.

 

ls /

 

ls 명령어는 자주 사용되는 것 중 하나로 list를 의미한다.

 

리눅스의 ls는 디렉터리 내의 파일과 폴더 목록을 나열하는 데 사용되며 / 를 통해서 루트 디렉터리에서 목록을 나열해 본다.

 

 

- bin : 시스템 부팅 및 작업에 필수적인 명령어들이 위치한다. 

- dev : 하드웨어 장치와 관련된 파일들이 들어 있다.

- home : 일반 사용자 계정의 홈 디렉터리가 위치한다. 각 사용자의 개인 디렉토리

- lib64 : 64비트 시스템 및 프로그램에 필요한 라이브러리  위치

- mnt : 일반적으로 임시로 다른 파일 시스템을 마운트 하는 디렉터리

- proc : 가상 파일 시스템으로, 시스템 상태나 프로세스 정보를 제공

- run : 시스템의 현재 실행 중인 프로세스와 관련된 정보가 저장

- srv : 서버가 제공하는 서비스에 관련된 데이터를 저장 (웹 서버, FTP 서버 등)

- tmp : 임시 파일들이 저장되는 경로, 시스템이 재부팅되면 지워진다.

- var : 로그 파일, 캐시 파일, 스풀 파일 등 변동하는 데이터가 저장되는 경로

- boot : 커널 파일 및 부트로더 관련 파일이 있다.

- etc : 시스템 설정 파일들이 모여 있는 경로이며 네트워크 설정, 사용자 설정 등이 포함된다.

- lib : 32비트 프로그램 실행에 필요한 필수적인 라이브러리 파일

- media : usb 드라이브나 cd/dvd 등 이동식 미디어 장치가 마운트 되는 곳

- opt : 추가적인 소프트웨어 패키지들이 설치되는 디렉터리

- root : 시스템의 루트 사용자 홈 디렉토리

- sbin : 시스템 관리자용 명령어들이 위치하는 경로

- sys : 시스템 관련 정보를 제공하는 가상 파일 시스템

- usr : 사용자 프로그램과 관련된 파일들이 위치로 프로그램, 라이브러리, 문서 등이 포함

 

Apache 웹 서버의 경우 보통 /var/www/html/ 경로에서 파일을 처리한다고 하는데 먼저 이 경로에서 파일을 만들고 테스트했을 파일을 못 찾는 문제가 있었다.

 

 

어떤 문제인지 찾아보면서 Apache 설치와 실행 상태, 찾으려는 파일의 디렉터리 권한도 변경해보고 했지만 해결이 안 되었다.

 

그리고 Apache 로그를 조회해 보았는데 경로에 문제가 있었다는 걸 알게 되었다.

 

$sudo tail -f /var/log/httpd/error_log

 

/var/www/html/ 가 아닌 /home/bakcoding/html/ 에서 test.php 파일을 찾고 있어서 Not Found 에러가 뜬 것

 

서버 환경이나 세팅에 따라서 달라지는 부분인가 보다.

 

처음부터 에러 로그를 찾았다면 더 빨리 해결됐을 문제였다.

 

이제 정확한 경로를 알게 됐으니 다시 파일 생성으로 돌아간다.

 

vim을 사용해서 파일을 생성해 보기로 한다.

 

$sudo vim /home/username/html/index.php

 

sudo는 Super Do로 이걸 붙이면 관리자 권한으로 실행과 마찬가지로 볼 수 있다.

 

권한에 따라 sudo 없이 vim만 실행하면 파일을 열어볼 수 만 있으므로 sudo를 붙여서 명령어를 실행해 준다.

 

위 명령어를 실행하면 파일이 있는 경우 해당 파일이 열리고 없으면 새로 생성되면서 콘솔창이 vim 창으로 바뀐다.

 

 

이 상태에서는 특정 키워드를 입력하면 동작으로 이어지게 되는데 먼저 파일을 작성할 때는 명령어 입력 상태에서 i를 입력하면 된다.

 

그리고 php 내용을 채워주는데 간단하게 db에 연결하고 성공과 실패 시 리턴 그리고 테이블에 값도 넣어보도록 한다.

 

<?php
// MySQL Connection
$servername = "localhost";
$username = "userid";
$password = "password";
$dbname = "testdb";

//conn
$conn = new mysqli($servername, $username, $password, $dbname);

//conn check
if ($conn->connect_error){
        die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";

// data insert test
$sql = "INSERT INTO users (username, email) VALUES ('testuser', 'test@example.com')";
if ($conn->query($sql) === TRUE){
        echo "New record created successfully";
} else{
        echo "Error: " . $sql . "<br>" . $conn->error;      
}
$conn->close();
?>

 

이렇게만 해놓고 

 

이제 http://내 서버 주소/test.php를 주소창에 입력했을 때 아무 문제가 없다면 성공했다는 텍스트가 뜨고 db에 값이 제대로 들어가 있는지 보면 된다.

 

 

 

php 테스트 일단은 문제가 없는 것으로 보인다.

728x90
반응형

'Develop > Server' 카테고리의 다른 글

vim 명령어  (0) 2025.03.01
리눅스 명령어 - ls  (0) 2025.03.01
[NHN Cloud Hosting - Linux] mysql 테스트  (0) 2025.03.01
[NHN Cloud Hosting - Linux] SSH로 서버 접속  (0) 2025.03.01
SSH와 RDP  (0) 2025.03.01

 

이번에는 mysql에 로그인하고 테스트해본다.

제품 설명

 

내가 결제한 서버의 설명을 보면 DB는 MySQL 8.0이라고 표기되어있다.

 

먼저 mysql이 잘 설치되어 있는지와 버전도 일치하는지 확인해 본다.

 

$mysql --version

 

 

문제가 없어 보이니 이제 서버 신청 시 입력했던 DB 계정으로 로그인해본다.

 

$mysql -u 'userid' -p

 

userid에 db 계정을 입력하고 엔터를 치면 패스워드를 입력하는 단계로 넘어가고 패스워드까지 문제없이 입력하고 나면 명령어 창이 mysql>로 바뀌고 mysql 명령어를 입력할 수 있는 상태로 된다.

 

테스트 용으로 데이터베이스를 하나 만들어 본다.

 

CREATE DATABASE testdb;

 

명령어를 입력하니 권한이 없다는 에러가 발생한다.

 

일단 mysql 콘솔창을 나간다. 이때 명령어 창에 quit 또는 exit을 입력하면 나올 수 있다.

 

이번엔 root 계정으로 로그인한 다음 내 계정에 권한을 주기로 한다.

GRANT ALL PRIVILEGES ON *.* TO 'userid'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

 

권한을 준 다음 즉시 변경 사항이 반영되도록 한다.

 

그리고 다시 내 계정으로 로그인 후 testdb를 생성하고 잘 생성됐는지 목록도 뽑아 본다.

 

SHOW DATABASES;

 

이번엔 해당 데이터베이스에 테이블도 만들어 본다.

 

USE testdb;
CREATE TABLE users (
	id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL
);

 

 

 

생성된 테이블을 목록에 뽑아 본다.

 

SHOW TABLES;

 

생성한 users 테이블이 잘 보이는 게 확인된다.

 

테이블의 자세한 정보도 확인한다.

 

DESCRIBE users;

 

 

입력한 대로 잘 만들어졌다.

728x90
반응형

'Develop > Server' 카테고리의 다른 글

리눅스 명령어 - ls  (0) 2025.03.01
[NHN Cloud Hosting - Linux] php 테스트  (1) 2025.03.01
[NHN Cloud Hosting - Linux] SSH로 서버 접속  (0) 2025.03.01
SSH와 RDP  (0) 2025.03.01
NHN 리눅스 서버 개설  (0) 2025.03.01

+ Recent posts