Hướng dẫn cài Framework CppCMS để làm Website viết bằng C++

Chào toàn thể thành viên của DNH,

Lan man về bản thân mình 1 chút cho dài dòng

Mình vốn là dev bên mảng PHP (cũng 5 năm từ lúc mới chập chững biết tới định nghĩa của 2 chữ lập trình) đi làm cũng đc gần 2 năm (sau khi trượt đại học và cũng không có cơ hội học ở trường lớp nào).

Từ lúc hứng viết cái App nhỏ trên Windows để nghịch thì mình có xài C++ (MFC) để làm và cũng từ đó thành C++Con (Fan) của nó luôn. Thế là quyết định vọc và làm mọi thứ bằng C++ (dù Main Job là PHP).

PHP mình học theo kiểu không hiểu chỗ nào thì search Internet cái đó, không sách vở cũng chả có kiến thức nguồn, thành ra sang C++ khá là khoai vì đi từ ngôn ngữ bậc cao xuống bậc thấp nó như kiểu sốc kiến thức.

Phạm vi vọc của mình từ lúc tìm hiểu C++ thì được mở rộng ra mảng game (Cocos2d-x), Cross platform App (đang tự viết cái GUI mà khoai quá)

Bữa thấy trên mạng có cái Framework CppCMS viết trên C++ nên hứng vọc cài luôn cho nóng.
Framework này được viết cách đây cũng vài năm tuy nhiên đến hiện tại vẫn được phát triển trên Github.

Trang chủ: http://cppcms.com/
Github: https://github.com/artyom-beilis/cppcms

Chuẩn bị:

  • Linux/MacOS (Trong bài mình sử dụng Ubuntu 16.04)
    // Đối với Windows thì mình chưa test nên cũng không biết rõ cách cài :smile:

Hướng dẫn cài đặt CppCMS và tạo trang “Hello World”:

Tải CppCMS về máy và giải nén:
Link: https://github.com/artyom-beilis/cppcms/archive/master.zip

Mở Terminal và gõ lệnh theo thứ tự:

cd cppcms-master
mkdir build
cd build
cmake ..
make # Chờ nó hơi lâu 1 chút (~3 phút gì đó)
sudo make install # Phải chạy bằng supper user nhé

Tạo trang để in dòng Hello World

  • Tạo file hello.cpp (ở ngay root của thư mục cppcms-master) với nội dung:
#include <cppcms/application.h>
#include <cppcms/applications_pool.h>
#include <cppcms/service.h>
#include <cppcms/http_response.h>
#include <iostream>

class hello : public cppcms::application {
public:
  hello(cppcms::service &srv) : cppcms::application(srv)
  {
  }
  virtual void main(std::string url);
};
void hello::main(std::string /*url*/)
{
  response().out() <<
  "<html>\n"
  "<body>\n"
  "  <h1>Hello World</h1>\n"
  "</body>\n"
  "</html>\n";
}
int main(int argc, char ** argv)
{
  try {
    cppcms::service srv(argc,argv);
    srv.applications_pool().mount(
    cppcms::applications_factory<hello>()
    );
    srv.run();
  }
  catch(std::exception const &e) {
    std::cerr << e.what() << std::endl;
  }
}

Chạy lệnh sau trên Terminal để build hello.cpp:

c++ hello.cpp -lcppcms -o hello

Tạo file config.js để cấu hình server:

{
    "service" : {
        "api" : "http",
        "port" : 8080
    },
    "http" : {
        "script_names" : [ "/hello" ]
    }
}  

Chạy server:

./hello -c config.js

// Đoạn này nếu bạn nào bị lỗi:

./hello: error while loading shared libraries: libcppcms.so.1: cannot open shared object file: No such file or directory

thì mở terminal gõ lệnh sau:

cd build # Trỏ đến thư mục vừa mới make install
sudo cp libcppcms.so /usr/lib/libcppcms.so.1

rồi gõ lại lệnh ./hello -c config.js

Mở trình duyệt gõ link:

Vậy là xong rồi.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?