Jump to content
zilli

HTTP server agnostic

Recommended Posts

Hello all,

Currently PW makes use/reference to the Apache HTTP server. However, we do have several other choices out there, and depending the use-case or the developer taste, Apache may not be the chosen one. So, why can’t we make PW HTTP server agnostic? It would be nice to see PW going neutral on this topic.

Please share your thoughts.

Cheers,

Daniel

Share this post


Link to post
Share on other sites

Just like MySQL is the database of choice apache is still the widest spread http server. Nginx is quite rapidly rising in popularity, but in my impression it's mostly used by node environments or for complex server / routing setups. While there are already topics here about nginx settings to run processwire, the people running such complex setups should be able to make nginx do the same things like the apache .htaccess rules or even just place the apache behind nginx. If I get the facts right here then only ProCache is deeply dependent on an apache setup. 

While these should be the reasons why there aren't other options by now, a nginx configuration would be a nice addition to the core. Supporting another http server should be an easier thing than supporting other db's which are also on the wishlist.

  • Like 2

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By gebeer
      Hello all,
      wasn't sure where to put this, so it goes in General section.
      Ryan shows a hook that we can use to mirror files on demand from live server to development environment to be up to date with the files on the server without having to download complete site/assets/files folder.
      I just implemented this but had problems getting files to load from a site in development that is secured with user/password via htaccess.
      First I tried to use WireHttp setHeader method for basic authentication like this
      function mirrorFilesfromLiveServer(HookEvent $event) { $config = $event->wire('config'); $file = $event->return; if ($event->method == 'url') { // convert url to disk path $file = $config->paths->root . substr($file, strlen($config->urls->root)); } if (!file_exists($file)) { // download file from source if it doesn't exist here $src = 'http://mydomain.com/site/assets/files/'; $url = str_replace($config->paths->files, $src, $file); $http = new WireHttp(); // basic authentication $u = 'myuser'; $pw = 'mypassword'; $http->setHeader('Authorization: Basic', base64_encode("$u:$pw")); $http->download($url, $file); } } But, unfortunately this didn't work.
      So now I am using curl to do the download. My hook function now looks like this
      function mirrorFilesfromLiveServer(HookEvent $event) { $config = $event->wire('config'); $file = $event->return; if ($event->method == 'url') { // convert url to disk path $file = $config->paths->root . substr($file, strlen($config->urls->root)); } if (!file_exists($file)) { // download file from source if it doesn't exist here $src = 'http://mydomain.com/site/assets/files/'; $fp = fopen($file, 'w+'); // init file pointer $url = str_replace($config->paths->files, $src, $file); $u = 'myuser'; $pw = 'mypassword'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_TIMEOUT, 50); // crazy high timeout just in case there are very large files curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERPWD, "$u:$pw"); // authentication curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); // authentication curl_setopt($ch, CURLOPT_FILE, $fp); // give curl the file pointer so that it can write to it curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $data = curl_exec($ch); curl_close($ch); } } Now I can load files and images from the htaccess protected development server 🙂
      If anyone knows how to get this to work with WireHttp, please let me know. Thank you.
    • By chrizz
      hey there,
      I was wondering what the best approach looks like to access the input (entity) body from a POST or PUT request. I didn't find anything in the docs if $input supports these. If anyone has dealt with this problem in the past I'd be happy to hear about your solutions
      Thanks & cheers!
    • By rolisx
      Hi Guys,
      Just finished a website locally and wanted to upload it on the webserver of my customer. I got a server 500 error. Now, the guidelines of the hoster (world4you.com) does not allow "Options" in the htaccess-file. So, when I uncomment these:
      Options -Indexes
      Options +FollowSymLinks
      the site is visible, but the content won't show and no links are available. Not sure if I need the Symlinks-part but I guess I need a workaround for the Index-part. Can anybody help here? I need the website up and running asap....
      Thanks!
      Roli
    • By jploch
      Hi folks!
      For a website Iam working on I need to (pre)load a huge amount of images (100-500) from a folder in assets (wich I upload via FTP).
      To preload them I want to add them to the DOM inside a container, that I hide with css.
      This images will be use for a frame by frame animation (that animates with scrolling) so they should be loaded parallel and if the user clicks a cancel button, the loading should be canceled. (My website is using ajax to load pages with different animations, and the loading of the second animation waits till the loading of the first animation is loaded completly, wich I want to prevent). 

      I want to use ajax to do this, so I can cancel the loading with xhr.abort();
      Here is my code:
      var folder = '{$config->urls->assets}sequenzen/test/'; xhr = $.ajax({ url : folder, success: function (data) { $(data).find("a").attr("href", function (i, val) { if( val.match(/\.(jpe?g|png|gif)$/) ) { $(".preloader").append( "<img src='"+ folder + val +"'>" ); } }); } }); this will give me a 403 forbidden error.
      After some research I found out that I have to put a .htaccess in my assets folder.
      I also tried putting it in the sub folder "test", where the files are, but Iam still getting the error.

      Is there anything else Iam missing? Is there a configuration in PW i have to change to do that?
    • By suntrop
      The last days two new sites went online and both got a SSL certificate installed.
      But one has a HTTP problem, although both are configured the same (seem to be). When I run 
      curl -I -L https://www.example.com/
      (http://bit.ly/2pOdjGj)
      it gets redirected to itself again and again. I had a HTTPS redirect in my .htaaccess but have removed it. The home template was configured to use only HTTPS but is now configured to accept both. If I change that to HTTP only, I get and error.
      The origin must come from PW, because all files not processed by PW don't have the redirect problem.
      I had a look at the /site/assets/cache/ folder but don't know what to delete. And there is a cache table in the DB as well. Don't know either if I can just delete its entries.
      Apache 2.4.18 
      PHP 7.0.11
      PW 3.0.42
      No dedicated cache installed, no cache activated in PW
×
×
  • Create New...