Amazon Linux AMI 에 설치

# wget https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm
# yum localinstall mysql57-community-release-el6-11.noarch.rpm
# yum remove mysql55 mysql55-common mysql55-libs mysql55-server
# yum install mysql-community-server
# service mysqld restart
# mysql_upgrade -p

Amazon Linux Ami 에 설치환경

Apache 2.4.33

[root@ip-172-31-10-31 html]# httpd -V
Server version: Apache/2.4.33 (Amazon)
Server built:   May 23 2018 19:02:39
Server's Module Magic Number: 20120211:76
Server loaded:  APR 1.5.2, APR-UTIL 1.5.4
Compiled using: APR 1.5.2, APR-UTIL 1.5.4
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="/var/run/httpd/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

MYSQL 5.7.22

[root@ip-172-31-10-31 html]# mysql -V
mysql  Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using  EditLine wrapper

PHP 7.0.30

[root@ip-172-31-10-31 html]# php -v
PHP 7.0.30 (cli) (built: May 10 2018 17:39:13) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.30, Copyright (c) 1999-2017, by Zend Technologies
반응형

'개발 > 리눅스' 카테고리의 다른 글

CentOS7 | vsftpd 설치 오류  (0) 2018.11.19
firstmall plus 설치하기  (0) 2018.07.27
nginx + php71 + php-fpm 설치하기  (0) 2018.06.20
centos 7 yum 깨짐  (0) 2017.12.05
centos 7 커널 최신버전으로 설치하기  (0) 2017.09.18

version 정보

  • nginx : 1.14.0
  • php : 7.1.18

yum install nginx 를 통해서 설치하였으며,

# yum install nginx

[root@centos html]# nginx -v
nginx version: nginx/1.14.0

php71 은 remi repo를 추가해서 아래와 같이 설치했다.

# yum --enablerep=remi-php71 install php-fpm php-common

[root@centos html]# php -v
PHP 7.1.18 (cli) (built: May 24 2018 07:59:58) ( NTS )
Copyright © 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright © 1998-2018 Zend Technologies

설정파일

/etc/php-fpm.d/www.conf 파일

########### file /etc/php-fpm.d/www.conf
user = nginx
group = nginx
;listen은 nginx 설정과 맞춰줘야 한다.
;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php-fpm.sock;
listen.owner = nginx
listen.group = nginx

/etc/nginx/conf.d/default.conf 파일

########### file /etc/nginx/conf.d/default.conf

server {
    listen   80;
    server_name  your_server_ip;

    # note that these lines are originally from the "location /" block
    # root 설정이 없으면 404 에러가 날수 있다.
    root   /usr/share/nginx/html; 
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        #fastcgi_pass 는 아래 두개 중 아무거나 사용해도 좋으나 php-fpm.d/www.conf 설정과 맞춰줘야 한다.
        #fastcgi_pass 127.0.0.1:9000;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        #/scripts 이름으로 인해서 오류가 생길 수 있다.
	    #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

에러상황 #1

사이트에 접속은 되는데 404 error 또는 파일을 찾을 수 없는 상황

[error] 7469#7469: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 192.168.0.114, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:",

해결방법

/etc/nginx/conf.d/default.conf 설정파일에서 아래와 같이 root 폴더 설정을 한다.

server {
	root /usr/share/nginx/html;
	index
}

에러상황 #2

*1 connect() to unix:/var/run/php-fpm/php-fpm.sock failed (13: Permission denied) while connecting to upstream,

php-fpm.sock 의 그룹:사용자 권한 문제
아래와 같은 명령어로 해결할 수 있다.

# chown nginx:nginx /var/run/php-fpm/php-fpm.sock

다른 분들 고생 안했으면 좋겠다.

...

반응형

'개발 > 리눅스' 카테고리의 다른 글

firstmall plus 설치하기  (0) 2018.07.27
Amazon Linux AMI에 mysql57 설치  (0) 2018.07.24
centos 7 yum 깨짐  (0) 2017.12.05
centos 7 커널 최신버전으로 설치하기  (0) 2017.09.18
리눅스 daemon 항목들 정리  (0) 2016.08.09

코드이그니터 무한 스크롤 적용하기

Codeigniter 무한 스크롤 적용기

자바에서 ajax 를 이용해서 무한 스크롤등을 적용했었는데, Codeigniter의 MVC 패턴을 이용해서 똑같이 적용할 수 있습니다.

일단 홈페이지의 구성은 http://localhost/sold 가 메인 페이지로 만들어져 있습니다.

Route 설정

CI(CodeIgniter)에서 제일 조심해야 되는 부분입니다.

$route['page'] = 'sold/page';
$route['page/(:any)'] = 'sold/page/$1';
$route['default_controller'] = 'sold';

Controller

콘트롤러로 주소를 받아올 것이다.

public function page() {
    # ?pagenum=값 post로 pagenum 값을 받아온다
    $page = $this->input->post('pagenum');
    $data['clien'] = $this->sold_model->get_page(intval($page));
    $this->load->view('sold/page',$data);
}

Model

다음은 모돌을 설정할 차례다.

public function get_page($page_number)
{
    $item_per_page = 10;
    $position = ($page_number * $item_per_page) - $item_per_page;
    $sql = "SELECT * FROM clien ORDER by date DESC LIMIT ?,?";
    $query = $this->db->query($sql,array($position, $position+$item_per_page));
    return $query->result_array();
}

Ajax

다음은 HTML 페이지에서 Ajax를 통해 불러와야 합니다.
우선적으로 JQuery 를 불러옵니다. 저는 높은 버전을 좋아하므로, 3.1.0버전을 불러왔습니다. 낮은 버전을 불러와도 상관없습니다.

<script src="https://code.jquery.com/jquery-3.1.0.min.js" integrity="sha256-cCueBR6CsyA4/9szpPfrX3s49M9vUU5BgtiJj06wt/s=" crossorigin="anonymous"></script>

다음은 ajax 를 통해 결과값을 출력하는 위치 입니다.

<div class="wrapper">
    <ul id="results"><!-- 결과가 출력되는 곳 -->
    </ul>
    <div class="loading-info"><img src="views/assets/image/bigLoader.gif"/></div>
</div>

이제 HTML 의 하단에

<script type="text/javascript">
    var track_page = 1; //track user scroll as page number, right now page number is 1
    var loading  = false; //prevents multiple loads

    load_contents(track_page); //initial content load

    $(window).scroll(function() { //detect page scroll
        if($(window).scrollTop() + $(window).height() >= $(document).height()) { //if user scrolled to bottom of the page
            track_page++; //page number increment
            load_contents(track_page); //load content
        }
    });
    //Ajax load function
    function load_contents(track_page){
        if(loading == false){
            loading = true;  //set loading flag on
            $('.loading-info').show(); //show loading animation
            $.post( 'page', {'pagenum': track_page}, function(data){
                loading = false; //set loading flag off once the content is loaded
                if(data.trim().length == 0){
                    //notify user if nothing to load
                    $('.loading-info').html("No more records!");
                    return;
                }
                $('.loading-info').hide(); //hide loading animation once data is received
                $("#results").append(data); //append data into #results element

            }).fail(function(xhr, ajaxOptions, thrownError) { //any errors?
                alert(thrownError); //alert with HTTP error
            })
        }
    }
</script>
반응형

PHP7 설치하기

소스 추가하기

$ sudo nano /etc/apt/source.list

아래와 같은 항목을 추가합니다.

deb http://repozytorium.mati75.eu/raspbian jessie-backports main contrib non-free
#deb-src http://repozytorium.mati75.eu/raspbian jessie-backports main contrib non-free

추가하고 난 뒤에 키를 등록합니다.

$ sudo gpg --keyserver pgpkeys.mit.edu --recv-key CCD91D6111A06851
$ sudo gpg --armor --export CCD91D6111A06851 | sudo apt-key add -

기존에 설치되어 있는 php5 삭제하기

$ sudo apt-get remove php5-common

php7 fpm 설치하기

$sudo apt-get install php7.0-fpm

fpm 을 설치하면 php7.0 기본파일들도 자동으로 설치가 됩니다.

php7-mysql

$ sudo apt-get install php7.0-mysql

Nginx 사이트의 소켓을 업데이트 해야 합니다.

PHP 5 PHP 7
/var/run/php5-fpm.sock /var/run/php/php7.0-fpm.sock

$ sudo vi /etc/nginx/sites-available/default

을 열어서 아래와 같이 unix 소켓 부분을 수정합니다.

설정이 끝났으면, nginx 서버를 재시작합니다.

$ sudo service nginx restart

설치 확인

설정이 잘 되었는지 한번 확인해 봅시다.

$ php -v
PHP 7.0.7-3~bpo8+1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
$ sudo nano /usr/share/nginx/html/info.php

를 입력해서

<?php
phpinfo()
?> 

내용을 추가한 후에 ctrl+o 저장을 한후 ctrl+x를 눌러 나옵니다.
이제 서버에 들어가봅시다

이제 서버에 들어가봅시다

https://서버주소/info.php

아래같이 화면이 나오면 제대로 설정이 된 것입니다.

반응형

+ Recent posts