본문 바로가기
IoT

라즈베리파이

by 언니팬더 2017. 10. 17.

http://kcats.tistory.com/262



lighttpd, php, SQLite


git push 테스트


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cd dir_test/
git init
 
git config --global user.email "OOO@gmail.com"
git config --global user.name "OOO"
 
git add test.txt 
git commit -"test commit"
 
git remote add origin https://github.com/mpanda-kr/raspberry_example
git remote -v
 
git push -u origin master
Username for 'https://github.com'
Password for 'https://mpanda-kr@github.com'
cs


1
2
sudo apt-get update
sudo apt-get upgrade

cs




1
sudo apt-get install lighttpd php5 php5-cgi php5-common php-pear php5-sqlite php5-dev vim
cs

1
sudo vim /etc/lighttpd/lighttpd.conf
cs


1
2
3
4
5
6
7
8
server.modules = (
        "mod_access",
        "mod_alias",
        "mod_compress",
        "mod_redirect",
        "mod_fastcgi", //삽입
#       "mod_rewrite",
)
cs



lighttpd.conf파일의 마지막에 아래와 같은 설정을 추가

1
2
3
4
5
6
fastcgi.server = (
     ".php" => ((
            "bin-path" => "/usr/bin/php5-cgi",
            "socket" => "/tmp/php.socket"    
            ))
)
cs



1
sudo vim /etc/php5/cgi/php.ini
cs  
dd

설정 파일 변경  : date.timezone ="Asia/Seoul" //삽입


Vi, Vim 또는 Gvim 에디터에서 문자열을 "검색"하려면, 즉 문자열 찾기를 하려면, 키보드의 Esc 키를 눌러 명령어 모드로 빠져나온 후
키보드 우측의 슬래쉬(/)키를 누르고, 그 바로 뒤에, 찾을 문자열을 곧 이어서 입력

ex) apple 이라는 문자열을 찾는다면 /apple
그 다음 줄에 있는 apple 이라는 단어를 또 검색하려면 키보드의 소문자 n 타이핑 

역방향으로 즉 거꾸로 거슬러 올라가며 다시 찾으려면 대문자 N 을 입력.


1
2
3
4
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone ="Asia/Seoul" //삽입
cs


1
sudo /etc/init.d/lighttpd restart

cs 

서비스 재시작 


php 테스트

1
sudo vi /var/www/html/info.php
cs
th
1
2
3
<?php
    phpinfo();
?>
cs

소스 입력 


리눅스 웹서버의 기본경로가 /var/www이나 /var/www/html인 것을 참고
127.0.0.1/info.php 접속하여 info 정보가 뜨는지 확인



 SQLite를 테스트

SQLlite는 파일기반 데이터베이스이므로 SQLite 테스트 코드가 있는 폴더에 권한을 변경해줘야 함.



1
2
3
4
cd /var/www/html/
mkdir sqltest
vim sqltest/info.php
 
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
try {    
    // Create file "scandio_test.db" as database    
    $db = new PDO('sqlite:scandio_test.db');   
     // Throw exceptions on error   
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);   
    $sql = <<<SQL
 CREATE TABLE IF NOT EXISTS posts (   
 id INTEGER PRIMARY KEY,   
 message TEXT,    
 created_at INTEGER
)
SQL;   
    $db->exec($sql);     
    $data = array(        
        'Test '.rand(010),        
        'Data: '.uniqid(),        
        'Date: '.date('d.m.Y H:i:s')    
    );     
    $sql = <<<SQL
INSERT INTO posts (message, created_at)
VALUES (:message, :created_at)
SQL;
   
    $stmt = $db->prepare($sql);    
    foreach ($data as $message) {        
        $stmt->bindParam(':message', $message, SQLITE3_TEXT);        
        $stmt->bindParam(':created_at', time());         
        $stmt->execute();
    }     
    $result = $db->query('SELECT * FROM posts'); 
    
    foreach($result as $row) {        
        list($id, $message, $createdAt) = $row;        
        $output  = "Id: $id\n";        
        $output .= "Message: $message\n";        
        $output .= "Created at: ".date('d.m.Y H:i:s', $createdAt)."\n";         
        echo $output;
    }     
    $db->exec("DROP TABLE posts");
} catch(PDOException $e) {
    echo $e->getMessage();
    echo $e->getTraceAsString();
}
?>
 
 
출처: http://kcats.tistory.com/262 [kcats's mindstory]
cs


http://127.0.0.1/sqltest/info.php 출력물


SQLSTATE[HY000]: General error: 1 near "SQL": syntax error#0 /var/www/html/sqltest/info.php(25): PDO->prepare(' CREATE TABLE I...') #1