Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to use Apache Thrift on a regular web server?

I already have a web server that I pay for, and I want to expose some services on it using Thrift and PHP.

My question is: can I run a Thrift server using normal PHP that's hosted on the default port (the same way web pages are hosted) instead of having a separate PHP application that runs on some funky obscure port. This way I wouldn't have to change the server configuration (which is something I'm not able to do even if I wanted to).

Thanks

EDIT: maybe I should clarify a bit more. Once I've defined my service using a .thrift file, is it possible to:

  1. Run the thrift code generator
  2. Take the generated code and put it on my webserver
  3. Create an index.php which says (in pseudocode) "create a new instance of the service, and handle incoming requests"?
like image 945
Will Warren Avatar asked Jan 15 '12 17:01

Will Warren


People also ask

When should I use Apache Thrift?

Apache Thrift allows you to define data types and service interfaces in a simple definition file. Taking that file as input, the compiler generates code to be used to easily build RPC clients and servers that communicate seamlessly across programming languages.

Is Apache Thrift an RPC?

Apache Thrift is a set of code-generation tools that allows developers to build RPC clients and servers by just defining the data types and service interfaces in a simple definition file.


1 Answers

Okay, well I have figured out the answer on my own!

If you use a TPhpStream on the server side, you are able to serve requests coming in as regular http requests.

Many thanks to Rob Wilkerson https://github.com/robwilkerson/Thrift-Client-Server-Example--PHP-.

I also blogged about how to implement a simple example with PHP and Python at http://willwarren.com/2012/01/24/creating-a-public-api-with-apache-thrift/

like image 103
Will Warren Avatar answered Sep 22 '22 16:09

Will Warren