반응형



참고 싸이트 (https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-14-04)


우분투 14.04 에서 LAMP 를 설치해 봅니다.


1. 아파치 설치하기


sudo apt-get update
sudo apt-get install apache2


정상적으로 아파치가 설치되면 브라우저에서 확인 해봅니다.

http://your_server_IP_address
예)http://192.168.1.111

Ubuntu 14.04 Apache default


확인 하고나서 정상적으로 위의 페이지가 보인다면 아파치 설치는 성공입니다.

외부 아이피 설정이의나, 확인 방법은 다음에 다루기로 하고, 다음 단계로 진행합니다.


2. MySQL 설치하기


sudo apt-get install mysql-server php5-mysql


위의 명령어 실행 후 root user 암호 설정이 중간에 나옵니다. 설정해 주시면 됩니다.

설치가 완료 되면, 어디에 데이터를 넣어야 할지 알려줘야 합니다. 디렉토리 스트럭처 설치 명령어 입니다.


sudo mysql_install_db


이후, 보안 설치를 해줍니다.


sudo mysql_secure_installation


처음엔 NO 를 하여 root-user 암호 설정을 피합니다. 그 뒤론 엔터를 눌러 자동 설정을 진행합니다.


3. PHP 설치


sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt


위의 명령어를 실행하여 php 를 설치합니다. 그리고 나서 아래 아파치 설정 파일을 열어 줍니다.


sudo nano /etc/apache2/mods-enabled/dir.conf


<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>


열어보면 php 파일이 뒤에 있을텐데, 그 파일 이름을 맨 앞에 지정해 줍니다.


<IfModule mod_dir.c>
    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>


그리고 저장 하면 됩니다. Ctrl-X

저장 후 아파치 재시작 해줍니다.


sudo service apache2 restart


4. PHP 테스트 하기


설치가 완료 된 후 php 설치가 잘 되었는지 확인해 봅니다.


sudo nano /var/www/html/info.php


명령어를 치면 빈 파일이 만들어집니다. 이름은 info.php 파일입니다. 빈파일 안에 아래 php 명령어를 넣어 줍니다.


<?php
phpinfo();
?>


그런 뒤 브라우저에서 확인해 봅니다.


http://your_server_IP_address/info.php


화면이 잘 나오면 성공입니다.


Ubuntu 14.04 default PHP info


성공적으로 우분투 14.04 에서 LAMP 설정을 해봤습니다.


반응형
반응형


참고 : http://stackoverflow.com/questions/9282091/best-way-to-make-a-hashtag-system


해쉬태그 저장에 대한 내용을 검색하다 비교적 간단히 데이터 관련 설명 내용이 있어 공유합니다.



반응형
반응형

Select * from comments


1. Model : data_model.php


<?php


class Data_model extends CI_Model 

{

/* 스트링으로 바로 집어 넣는 방법

function getall()

{

$q = $this->db->query("SELECT * FROM comments");

if($q->num_rows() >0)

{

foreach($q->result() as $row)

{

$data[] = $row;

}

return $data;

}

}

*/

/* 액티브 레코드 사용 

function getAll()

{

$q = $this->db->get('comments');

if($q->num_rows()>0)

{

foreach ($q->result() as $row)

{

$data[] = $row;

}

return $data;

}


}

*/


/*

function getAll()

{

$this->db->select('title, contents');

$q= $this->db->get('comments');

if($q->num_rows()>0)

{

foreach ($q->result() as $row)

{

$data[] = $row;

}

return $data;

}

}

*/

/* 조건 붙어서 Select 하는 방법

function getAll(){

$sql = "SELECT title, author, contents FROM comments WHERE id=? OR author = ?";

$q = $this->db->query($sql, array(4, 'mike whoevers'));

if($q->num_rows()>0)

{

foreach ($q->result() as $row)

{

$data[] = $row;

}

return $data;

}

}

*/


       //

function getAll(){

$this->db->select('title, contents');

$this->db->from('comments');

$this->db->where('id', 5);

$q = $this->db->get();

if($q->num_rows()>0)

{

foreach ($q->result() as $row)

{

$data[] = $row;

}

return $data;

}


}


}


?>


2. Controller : test.php


<?php

class Test extends CI_Controller {


public function index()

{

$this->load->model('data_model');

$data['rows'] = $this->data_model->getAll();

$this->load->view('home', $data);

}

}

?>


3. View : home.php


<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="utf-8">

<title>Test Home </title>


</head>

<body>


<div id="container">

<p>I'm testing this page</p>



<?php foreach ($rows as $r)

{

echo '<h1>'.$r->title.'</h1>';

echo '<div>'.$r->contents.'</div>';

}

?> 



</div>


</body>

</html>


DB 에서 comments 라는 테이블에 있는 데이터들을 가지고 오는 예제입니다. CodeIgniter 동영상 강의 보면서 첫 자료 공유합니다. 


반응형

'초짜 IT보이 서바이벌 스토리 > cakePHP' 카테고리의 다른 글

ubuntu 14.04 LAMP 설치하기  (0) 2014.07.24
#hashtag 데이터 관리하기  (0) 2014.07.01
#LastCamping site built with #cakePHP 1.3  (0) 2011.09.26
cakePHP redirect  (0) 2011.06.17
CakePHP 루트 지정하기  (0) 2011.06.17
반응형
http://www.lastcamping.com built with cakePHP 1.3, mySQL

지난 마지막 프로젝트에서 cakePHP 1.3 으로 만든 싸이트 입니다.

디자인이나 기획은 라스트 캠핑 커뮤니케이션에서 해주셨고, 그걸 토대로 싸이트 전체를 cakePHP 1.3  으로 올려봤습니다.


cakePHP 를 사용하면서 참 편하다 라는 느낌도 받았지만, 동시에

예전 ruby on rails 와 비교해 보면서 아직 갈길이 먼 프레임워크 구나 라는 느낌도 받았습니다. 

하지만 곧 2.0 출시를 앞둔 cakePHP.. 많은 기능들과 좀더 개발자 편의를 많이 보안하여 올라올 예정이라고 하는데요..

기회가 되면 또 cakePHP 를 이용한 프로젝트를 한번 해 보고 싶네요 :) 

(update) 2011-11-30

베타에서 정식 오픈을 했네요. 축하드립니다. :)

너무나 이쁘게 디자인도 바http://www.lastcamping.com뀌어져 올라왔습니다.

역시 베타 오픈 하며 여러가지 테스트를 통해 새로 올라온 디자인 넘 이쁜거 같습니다.


 
반응형
반응형

저장을 하거나, 어떠한 action 이 후에 페이지 redirect 를 하는 경우가 대부분입니다. 
cakePHP 에서 redirect 는 다음과 같이 사용이 됩니다.

redirect(mixed $url, integer $status, boolean $exit);

참조( http://book.cakephp.org/view/982/redirect)
 




사용자가 성공적으로 주문이 완료가 되었을 경우엔 "감사" 하다는 action 으로 redirect 를 하게 되며, 실패가 났을 경우에 "확인" 이라는 action 으로 redirect 되는 예 입니다.
 
  1. function placeOrder() {
  2. //Logic for finalizing order goes here
  3. if($success) {
  4. $this->redirect(array('controller' => 'orders', 'action' => 'thanks'));
  5. } else {
  6. $this->redirect(array('controller' => 'orders', 'action' => 'confirm'));
  7. }
  8. }

URL 을 지정 할 수도 있으며, 

Copy to Clipboard
  1. $this->redirect('/orders/thanks');
  2. $this->redirect('http://www.example.com');

action 에서 데이터도 보낼 수 있습니다.

Copy to Clipboard
  1. $this->redirect(array('action' => 'edit', $id));


다음 예제는 요청 보낸 페이지의 URL 로 되 돌려 보내는 예 입니다.

Copy to Clipboard
  1. $this->redirect($this->referer());
반응형
반응형

기본적으로 cakephp 는 웹싸이트의 root 에 대해서는 PagesController 를 사용합니다. 그리고 home 이라는 이름으로 view 가 렌더링 되지요. 하지만 라우팅을 바꿔 보도록 하겠습니다.









/app/config/route.php 를 열어보면 아래와 같은 코드가 보입니다. 

Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home')); 



root 에 연결이 되었을 때 pages 컨트롤러로 가서 뷰 렌더링 하는 부분인데요, 이 라인을 다음과 같이 바꿔줍니다.

Router::connect('/', array('controller' => 'posts', 'action' => 'index'));



그렇게 되면 root (http://www.싸이트주소) 에 연결이 되면 
PostsController 에 index() 액션에서 지정한 view 를 렌더링 됩니다.

출처 : (
http://book.cakephp.org/compare/1541/Routes/cakephp/cakephp1x)
반응형
반응형
간단한 예제 입니다.
웹에서 검색하여 짜집기 한 소스입니다.


<?php

$xml_data= @file_get_contents("http://www.google.com/ig/api?hl=ko&weather=seoul"); 
$xml_data = iconv("EUC-KR","UTF-8", $xml_data); 
$xml = simplexml_load_string($xml_data); 
$information = $xml->xpath("/xml_api_reply/weather/forecast_information");
$current = $xml->xpath("/xml_api_reply/weather/current_conditions");
$forecast_list = $xml->xpath("/xml_api_reply/weather/forecast_conditions");
?>

<head>
    <title>Google Weather API</title>
</head>
<html> 
<body>
    <h1><?php echo $information[0]->city['data']; ?></h1>
    <h2>Today's weather</h2>
    <div class="weather">
        <img src="<?php echo 'http://www.google.com' . $current[0]->icon['data']?>" alt="weather"?>
        <span class="condition">
        <?php echo $current[0]->temp_f['data'] ?>&deg; F,
        <?php echo $current[0]->condition['data'] ?>
        </span>
    </div>
    <h2>Forecast</h2>
    <?php foreach ($forecast_list as $forecast) : ?>
    <div class="weather">
        <img src="<?php echo 'http://www.google.com' . $forecast->icon['data']?>" alt="weather"?>
        <div><?php echo $forecast->day_of_week['data']; ?></div>
        <span class="condition">
            <?php echo $forecast->low['data'] ?>&deg; F - <?php echo $forecast->high['data'] ?>&deg; F,
            <?php echo $forecast->condition['data'] ?>
        </span>
    </div>
    <?php endforeach ?>
</body>
</html> 

반응형

+ Recent posts