What is it
It’s a micro web server that features php and web service extension
Build
Dependencies: Poco c++ libraries
For linux:
1 2 3 4 5 | ~/bashttp $ rm -rf build/ ~/bashttp $ mkdir -p build/debug ~/bashttp $ cd build/debug/ ~/bashttp $ cmake ../.. -DCMAKE_BUILD_TYPE=Debug ~/bashttp $ make |
For windows use cmake-gui from http://www.cmake.org/.
How to run
To run it
1 2 | ~/bashttp $ bashttp 8888 doc_root bashttp listening on 127.0.0.1:8888 |
Where 8888 is the port and ‘doc_root’ is the document root directory
To stop it simply press ctr+c
Configuration and test files
doc_root: document root directory
doc_root/index.html: html test page
doc_root/index.php: php test page
mime.conf: mime configuration. Must be in execution directory.
/etc/alternatives/php-cgi: php binary for linux
php.cgi.exe: php binary for windows. Must be in execution directory.
😈 Execute shell from browser 😈
Write a new web service
Example of service that would be called as ‘http://server/newservice’:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class NewService : public MiniWebService { public: virtual void exec(const Poco::Net::HTTPServerRequest& request, std::map<std::string, std::string> &query, Poco::Net::HTTPServerResponse& response, Poco::Net::StreamSocket& sock, Poco::Net::HTTPServerSession& session) { std::ostream& ostr = response.send(); ostr << "it works."; ostr.flush(); } static std::string name() { return "newservice"; } }; |
Where:
- name() method returns the web service identifier as seen in url
- exec(…) implements the web service.
Add it to server before start it
1 2 | std::shared_ptr svc(new NewService()); server.addService(NewService::name(), svc); |