엘~그 (ELGG)

Elgg(엘그) 는 SNS(Social Network Service) 오픈 소스 솔루션 이다. 서버에 설치하여 가동하기 쉽고 다양한 플러그인들과 스킨들을 Elgg의 커뮤니티 사이트를 통해 손쉽게 설치할 수 있다. Elgg 엔진을 사용하면 트위터나 페이스북 같은 서비스를 손쉽게 제공할 수 있다. 누가 와줄지는 각자 고민하시고..

설치

받아서 압축을 풀고, 실행하면, DB 설정화면이 나온다. 차근차근 따라가면된다. 자료폴더는 반드시 외부에서 접근이 불가능한 별도 폴더에 작성하라고 한다. 호스팅서비스를 빌려하는 경우는 이것이 가능할지 의문인데, 이럴 경우는 .htaccess 설정..설정이라도 잘 해줘야한다.

NGINX rewrite

Nginx (엔진엑스) rewrite 규칙 1)

1.9

https://github.com/Elgg/Elgg/issues/5929

    location ~ (^\.|/\.) {
        return 403;
    }

    location /cache {
        rewrite ^/cache\/(.*)$ /engine/handlers/cache_handler.php?request=$1&$query_string;
    }

    location /export {
        rewrite ^/export\/([A-Za-z]+)\/([0-9]+)\/?$ /engine/handlers/export_handler.php?view=$1&guid=$2;
        rewrite ^/export\/([A-Za-z]+)\/([0-9]+)\/([A-Za-z]+)\/([A-Za-z0-9\_]+)\/$ /engine/handlers/export_handler.php?view=$1&guid=$2&type=$3&idname=$4;
    }

    location = /rewrite.php {
        rewrite ^(.*)$ /install.php;
    }

    location / {
        try_files $uri $uri/ /index.php?__elgg_uri=$uri&$query_string;
    }

        include common.conf;

1.8

server {
    listen        80;
    server_name    elgg.domain.com;
    root        /var/www-nginx/elgg/htdocs/;

    error_log    /var/log/nginx/error.log;
    access_log    /var/log/nginx/access.log;

    index         index.php index.html;
    fastcgi_index index.php;

    client_max_body_size      8M;
    client_body_buffer_size 256K;

    rewrite ^/pg\/([A-Za-z0-9\_\-]+)$ /engine/handlers/page_handler.php?handler=$1&$args;
    rewrite ^/pg\/([A-Za-z0-9\_\-]+)\/(.*)$ /engine/handlers/page_handler.php?handler=$1&page=$2&$args;
    rewrite ^/tag\/(.+)\/?$ /engine/handlers/page_handler.php?handler=search&page=$1;
    rewrite ^/action\/([A-Za-z0-9\_\-\/]+)$ /engine/handlers/action_handler.php?action=$1&$args;
    rewrite ^/cache\/(.*)$ /engine/handlers/cache_handler.php?request=$1&$args;
    rewrite ^/services\/api\/([A-Za-z0-9\_\-]+)\/(.*)$ /engine/handlers/service_handler.php?handler=$1&request=$2&$args;
    rewrite ^/export\/([A-Za-z]+)\/([0-9]+)\/?$ /engine/handlers/export_handler.php?view=$1&guid=$2;
    rewrite ^/export\/([A-Za-z]+)\/([0-9]+)\/([A-Za-z]+)\/([A-Za-z0-9\_]+)\/$ /engine/handlers/export_handler.php?view=$1&guid=$2&type=$3&idname=$4;
    rewrite /xml-rpc.php /engine/handlers/xml-rpc_handler.php;
    rewrite /mt/mt-xmlrpc.cgi /engine/handlers/xml-rpc_handler.php;
    rewrite ^/rewrite.php$ /install.php;
    if (!-d $request_filename){
        set $rule_11 1$rule_11;
    }
    if (!-f $request_filename){
        set $rule_11 2$rule_11;
    }
    if ($rule_11 = "21"){
        rewrite ^/([A-Za-z0-9\_\-]+)$ /engine/handlers/page_handler.php?handler=$1;
    }
    if (!-d $request_filename){
        set $rule_12 1$rule_12;
    }
    if (!-f $request_filename){
        set $rule_12 2$rule_12;
    }
    if ($rule_12 = "21"){
        rewrite ^/([A-Za-z0-9\_\-]+)\/(.*)$ /engine/handlers/page_handler.php?handler=$1&page=$2;
    }

    location ~ \.php$ {
        include fastcgi_params;

        # Assuming php-fastcgi running on localhost port 9000
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        fastcgi_connect_timeout 60;
        fastcgi_send_timeout 180;
        fastcgi_read_timeout 180;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
        fastcgi_intercept_errors on;
    }

    # Do not put CSS there or it will break simplecache
    location ~* \.(bmp|js|gif|ico|jpg|jpeg|png)$ {
        expires max;
        # log_not_found off;
    }

}

플러긴

그냥 mod 폴더에 집어 넣고, 설정에서 활성화(Activate)하면 된다. 테마도 플러긴으로 취급되므로 같다.

테마

그냥 mod 폴더에 집어 넣고, 설정에서 활성화(Activate)하면 된다. 테마도 플러긴으로 취급되므로 같다.

설명서