Support from Acquia helps fund testing for Drupal Acquia logo

Comments

Damien Tournoud’s picture

Status: Needs review » Reviewed & tested by the community

No discussion here. Nginx is already in the list of recommended web servers on the Drupal requirements page.

RobLoach’s picture

Quick note that it also works just fine with PHP 5.4's build-in web server.

webchick’s picture

Version: 8.x-dev » 7.x-dev
Component: user interface text » documentation
Category: feature » task
Status: Reviewed & tested by the community » Patch (to be ported)
Issue tags: +Needs backport to D7

Committed and pushed to 8.x. Thanks! Seems like we could mark this for 7.x backport as well. Didn't apply cleanly for whatever reason.

mitchell’s picture

Status: Patch (to be ported) » Needs review
FileSize
370 bytes
456 bytes

Thanks webchick. Here's a D7 patch and, out of curiosity, a diff between the D8 and D7 patches.

jhodgdon’s picture

I personally would not have committed the 8.x patch, since we don't normally use "&" in documentation. But if webchick wants to commit the 7.x patch as well I will not stand in the way.

webchick’s picture

Version: 7.x-dev » 8.x-dev

Oops. That'll learn me for committing documentation patches. :D

jhodgdon’s picture

Status: Needs review » Needs work

In that case. :)

likewhoa’s picture

Added two patches, one that changes the sentence on httpd server recommendations and another with removal of (or greater) replaced with >=version. I think the second patch simplifies the meaning of required versions for most users but this could possibly confuse novices users.

jhodgdon’s picture

Status: Needs review » Needs work

Please don't attach D7 patches to a D8 issue -- read:
http://drupal.org/node/1319154#multiple-versions

So... I'm not happy with this wording:
"We recommend Apache 2.0 (or greater) or Nginx 1.1 (or greater), but just about any webserver that supports PHP will do."

Who is this "we"? and what does "just about any webserver" mean? I don't think Drupal really runs all that well/easily on IIS for instance. Stick to our actual recommendations please.

Regarding the "extended" patch, I think the existing wording is clearer (not everyone reading this document is a programmer), and you have also made it inconsistent between sections of the requirements list....

So what we really just need is a patch for Drupal 8 to change & to "and" or maybe the sentence should be Either... or.

likewhoa’s picture

Status: Needs work » Needs review
FileSize
495 bytes

keeping it simple.

mitchell’s picture

FileSize
570 bytes

One other option is to use the same pattern as the databases section.

jhodgdon’s picture

Status: Needs review » Needs work

RE #11 - I like the "same pattern as" idea. Less thinking required to scan. :)

Just needs ":" after the first line (before the list), and please upload with extension "patch". Thanks!

mitchell’s picture

Status: Needs work » Needs review
FileSize
570 bytes

Thanks jhodgdon.

Status: Needs review » Needs work

The last submitted patch, 13-1839336-INSTALL.txt-Nginx.patch, failed testing.

likewhoa’s picture

Status: Needs work » Needs review
FileSize
570 bytes

reroll

jhodgdon’s picture

Status: Needs review » Needs work

OK... I almost love this patch, but... it would say:

"Drupal requires... one of the following recommended web servers".

I could read that as saying "Drupal requires you to use one of these two recommended web servers", which is not strictly accurate -- you can get Drupal to work on other web servers.

The previous wording was essentially:

"Drupal requires... A web server. A and B are recommended"

which I think gets the correct point across better: You need a web server, and we recommend these two.

So can we fix up the wording one more time so that it can't be misinterpreted? Thanks!

likewhoa’s picture

How about one of these to choose from...

  1. Drupal recommends you to use one of these two web servers, but any web server that supports PHP will do. With that said, Drupal has been known to run on many web servers and support for those depends on your hosting provider.
  2. We recommend one of the two web servers, but Drupal is known to run on several more web servers. Please see your hosting provider for support.
  3. One of the following web servers is recommended, but Drupal can run on any number of web servers that support PHP
  4. We recommend Apache or Nginx as two of the most popular and well tested web servers around. You can use any web server that supports PHP but don't expect support from us
  5. Use Nginx because Apache sucks! don't ask why and just do it!
  6. Drupal recommends the use of Apache or Nginx, but any web server that supports PHP should work. See you hosting provider for support with one of these non-recommended web servers.
  7. Apache or Nginx are two of the most recommended web servers for running Drupal, but a PHP supported web server will do. Your hosting provider can let you know if Drupal is supported by their web server if it's not one of the recommended ones below.

Who would have know this was going to be such a PITA.

mitchell’s picture

Status: Needs work » Needs review
FileSize
568 bytes

I think ~any web server that supports PHP should work captures the requirement well.

I don't think 'recommended' is a necessary term.

I think multiple lines is a good idea, in case we want to add more known/recommended webservers later.

Patch attached.
--

Note: #10 still fits #9 and #16.

jhodgdon’s picture

I'm OK with the patch here. We don't need to be wordy... Any other opinions? I am not entirely sure "a web server that supports PHP" really captures the essence of what Drupal needs completely, but it's probably good enough.

likewhoa’s picture

@jhodgdon "a web server that supports PHP" is enough because we don't need to get into the "...that supports PHP,Mysql,MariaDB,PosgreSQL,MongoDB etc.." I have personally tested Drupal on Apache,Lighttpd & Nginx and several others. In the end, end users are responsible for setting it up on whatever httpd they desire as long as it supports PHP. The recommended httpd servers are ideal and most novice Drupallers already know about the benefits of Apache or Nginx (Engine X).

jhodgdon’s picture

Assigned: Unassigned » jhodgdon
Status: Needs review » Reviewed & tested by the community

OK then, it sounds like #18 is good to go, thanks! I'll leave it RTBC for a day or two to see if there are any other thoughts, and then get it committed.

jhodgdon’s picture

Version: 8.x-dev » 7.x-dev
Status: Reviewed & tested by the community » Patch (to be ported)

#18 is committed to 8.x. Now back to 7.x. Thanks!

jhodgdon’s picture

Assigned: jhodgdon » Unassigned
likewhoa’s picture

Status: Patch (to be ported) » Needs review
FileSize
530 bytes

Drupal 7.x patch

RobLoach’s picture

Status: Needs review » Reviewed & tested by the community
David_Rothstein’s picture

Status: Reviewed & tested by the community » Needs review

I'm confused here. We've historically "recommended" only Apache over the others, both here and on drupal.org. The drupal.org documentation was only updated to recommend Nginx the exact same day the patch here was committed: http://drupal.org/node/1783056/revisions/view/2435936/2444296

So what's the actual rationale?

It's my understanding that clean URLs and other features require extra work (and probably extra access to the server?) to set up on Nginx. Whereas for Apache we ship with .htaccess. And even for IIS, we ship with web.config.

jhodgdon’s picture

David: The Nginx folks have been pushing for "recommended" status for Nginix for quite some time, and they do provide documentation on how to set it up. That's been in place for some time now. Also, Nginx had already been listed on the main Requirements page for longer (since September). It was only the Web Servers sub-page that got updated on the day of the patch.

I personally have no experience with Nginx so I can't comment on whether we should be recommending it or not, but it has been requested for quite some time. Search either this issue queue or the Documentation project queue for Nginx and I'm sure you'll find several issues.

David_Rothstein’s picture

Nginx is supported, but so is IIS (which is mentioned on that page too). That's not the same as recommended, though.

I looked through the issue queue and all I saw was #1226710: Add Nginx to web server system requirements which closed a while ago. So this issue seems to be the only one talking about "elevating" Nginx over IIS, so to speak.

I'm not saying we should promote IIS particularly (it's not even open source), but to have Nginx recommended on an equal level with Apache... are we sure we're ready to do that?

jhodgdon’s picture

Well, I didn't commit the first patch (I only committed the correction for reformatting), so I will bow out of this argument now. I have no opinion about recommending particular servers, versions, etc. and know nothing about Nginx... I am also unsubscribing and will let David decide on whether to commit the patch for d7 since it is obviously not just a documentation issue. :)

David_Rothstein’s picture

Title: Add Nginx to INSTALL.txt » Add Nginx to INSTALL.txt and recommend it alongside Apache
Version: 7.x-dev » 8.x-dev

I rolled back http://drupal.org/node/1783056/revisions/view/2435936/2444296 for now, since it didn't seem to have any discussion.

I think the question is how likely someone can drop Drupal onto a server with Nginx and have it work well, without server level access. For Apache, this is fairly likely, given that we ship with .htaccess, and the required configuration to respect that (and mod_rewrite) is pretty common. For Nginx, I'm less familiar (although have used it) but I think http://drupal.org/node/976392 is likely to require more work on the part of the person installing Drupal.

Depending on the answer to that, we could also move towards something where Apache is "recommended" and Nginx is something like "recommended also, but only for more advanced users"?

mitchell’s picture

Title: Add Nginx to INSTALL.txt and recommend it alongside Apache » Add Nginx to INSTALL.txt
Version: 8.x-dev » 7.x-dev
Status: Needs review » Reviewed & tested by the community

Nginx is supported... That's not the same as recommended, though.

These are no longer correct statements. Drupal requires a web server with PHP support. IMHO, the issue in #28, clearly demonstrates that, in this context, it is equally ambiguous to say that "Drupal supports a webserver" and "Drupal recommends a webserver'.

So this issue seems to be the only one talking about "elevating" Nginx over IIS, so to speak.

This issue only relates to INSTALL.txt. IMHO, 'recommending' a webserver doesn't need an issue. I only changed it because it was simply my interpretation of the community's view that people, in fact, are recommending it. If you want to undo and/or review this change in another issue, that's all possible.

... to have Nginx recommended on an equal level with Apache... are we sure we're ready to do that?

That's not something that is decidable, IMHO. Here, we are, primarily, stating more clearly on which webservers Drupal will work. There is no distinction of 'recommended more than' or 'recommended equally to'. People simply are not recommending IIS.

At this point, since Nginx is widely used, our goal should be compiling good documentation for the current and potential users.
----

Setting #24 to RTBC per #25.

webchick’s picture

Version: 7.x-dev » 8.x-dev
Status: Reviewed & tested by the community » Active

I actually agree with David here, and sorry for being a bit hasty in commit here. "Recommended" has wildly different semantics than "Supported." It implies that Drupal works naturally, without any headaches, that it's well supported by contributed modules and community members, etc. Is that actually the case?

mitchell’s picture

  • works naturally: Absolutely. It's a webserver that supports PHP like any other.
  • without any headaches: I think this mostly depends on the person.
  • it's well supported by contributed modules: I've never had or heard about any problems.
  • it's well supported by community members: From what I see, a lot of people are using it and a lot of people are recommending it.

I think the biggest question people have are about whether or not the installation docs are good enough. I spent some time trying to improve them recently, but I think they could still be a lot better organized. The Nginx docs could include more info which is referenced externally. #1783110: Clean up PHP requirements documentation page is still a big problem, imo.

likewhoa’s picture

The big issue that the core developers are stating is that Apache works out the box,since all it requires is an .htaccess which Drupal ships with, on the other hand Nginx doesn't support .htaccess but does have rewrite functionality but requires systems administration a.k.a root access to /etc/nginx in order to make clean urls work with Drupal.

The major web hosting providers support NGINX but that doesn't mean they have the required configuration which allows clean urls with a Drupal based install. I would assume most don't have this setup so with that being said, I would just let users know that they need to check with their hosting provider if they support "Drupal with NGINX".

This doesn't really help the case of having NGINX as a recommended web server but if you think about it, most people that venture into NGINX are not your average joe and most of them will have root/sudo access.

If NGINX doesn't make it into the recommended section then so be it, but don't revert back to the way things was were it shows Apache as the only recommended web server. NGINX is powerful, secure and fast and it's being used by some of the biggest websites on earth.

mitchell’s picture

Title: Add Nginx to INSTALL.txt » Add Nginx to INSTALL.txt and recommend it alongside Apache

I should have created an issue about the Webserver Requirements separate from this one. Oops.

#31 & #32: I changed the title back, but I think that's going to make this issue harder to follow:

  • the recent change to INSTALL.txt, which is only in 8.x
  • adding recommended to Nginx in the Webserver Requirements

The two issues are not dependent on one another. The INSTALL.txt only has requirements, and I think it makes sense on its own. The (recommended)-ness will now be discussed, I guess..
---

Re (recommended):
The way I look at this is that people are already recommending Nginx, the question is how good are our docs once people sit down to do it? With that in mind, I:

Apache works out the box

In my experiences, they both require the same amount of work out of the box: configuring the vhost for clean urls.

The major web hosting providers support NGINX...

Most managed hosting providers take away the need for users to ever think about the webserver, the database server, the operating system, etc. Installation is completely automated through a control panel.

David_Rothstein’s picture

How about just throwing down the gauntlet and being bold, something like:

  • Apache (recommended for easiest setup)
  • Nginx (recommended for best performance)
  • IIS

I'm sure it's not 100% true, but maybe close enough for a recommendation?

I added IIS because I think if we start listing them in INSTALL.txt we should make the list consistent with the docs page. (Before this issue, they were consistent and both listed Apache as the "recommendation". That's why I think the docs page and INSTALL.txt are related.)

likewhoa’s picture

@David_Rothstein lets get rid of this recommended wording and just keep #24 as it stands since it only just list the two most popular used web servers on production sites for Drupal. We can include the rest like IIS etc on the official documentation pages in more detail.

Most people will get the point that Apache is recommended since it's the most popular web server around and those that don't know about NGINX will at least know it can run on Drupal.

jhodgdon’s picture

Issue summary: View changes
Status: Active » Closed (cannot reproduce)

This was already done on another issue.

David_Rothstein’s picture

Version: 8.0.x-dev » 7.x-dev
Status: Closed (cannot reproduce) » Needs review

This was the issue :)

It still feels to me like we have a bit of a discrepancy between INSTALL.txt and the drupal.org documentation, but it's also been a while and at least we link to the documentation from INSTALL.txt. Putting this up for review for Drupal 7 for now.

David_Rothstein’s picture

Patch in #24 does still apply, by the way.

jhodgdon’s picture

Status: Needs review » Reviewed & tested by the community

OK, the patch in #24 looks fine to me for D7. About what we have in D8.

David_Rothstein’s picture

Status: Reviewed & tested by the community » Needs work

Well, I am OK with this change (and by listing Apache first but not officially recommending it, it's actually kind of the same thing we do for MySQL in the database section).

However, it is not clear to me what version we should be recommending.

#24 says this:

+  - Nginx 1.1 (or greater) (http://www.nginx.com/).

But https://www.drupal.org/requirements/webserver currently says this:

Drupal will work on Nginx legacy versions (0.7.x, 0.8.x, 1.0.x, 1.2.x), stable 1.4.x versions, and mainline 1.5.x versions hosted on UNIX/Linux, OS X, or Windows.

Not only are those different; the second even leaves out the 1.1 branch entirely.

So I'm not sure what version we actually should be putting here. Anyone have any ideas?

likewhoa’s picture

We according to http://nginx.org/en/download.html perhaps we should put "1.8.1 (or greater)" but so that anyone that might only have access to an old outdated version then supporting >=1.0 should be fine.

jhodgdon’s picture

Version: 7.x-dev » 8.0.x-dev

It appears that we should move this back to 8.0.x and also fix the INSTALL.txt there with a better recommendeation for Nginx, because it also currently says:

  - Nginx 1.1 (or greater) (http://nginx.com/).

If someone can find the issue where this file was previously updated on 8.x, that might be helpful too, so we could comment on that issue and point people here for more discussion, and/or see what the logic was there.

David_Rothstein’s picture

git log -S Nginx core/INSTALL.txt still says this issue is the one that updated it. Here's the commit:

commit 3337298bc170ad59ecddb4daf0c791d2b22c060d
Author: webchick <webchick@24967.no-reply.drupal.org>
Date:   Tue Nov 13 20:27:07 2012 -0800

    Issue #1839336 by mitchell: Add Nginx to INSTALL.txt.

diff --git a/core/INSTALL.txt b/core/INSTALL.txt
index b282d2c..32e8ff6 100644
--- a/core/INSTALL.txt
+++ b/core/INSTALL.txt
@@ -14,7 +14,7 @@ REQUIREMENTS AND NOTES
 
 Drupal requires:
 
-- A web server. Apache (version 2.0 or greater) is recommended.
+- A web server. Apache 2.0 (or greater) & Nginx 1.1 (or greater) are recommended.
 - PHP 5.3.5 (or greater) (http://www.php.net/).
 - One of the following databases:
   - MySQL 5.0.15 (or greater) (http://www.mysql.com/).

I'm unhiding the patch also, since I got confused when I couldn't find it here :)

However I don't see any discussion above about why Nginx 1.1 was chosen.

likewhoa’s picture

@David_Rothstein at the time of the patch nginx 1.1 was available. nginx 1.1.0 was released on 2011-08-01 but since then it was probably removed from mirrors at the time of the patch. nginx 1.2.5 became stable so I can see why 1.1.x was recommended.

Version: 8.0.x-dev » 8.1.x-dev

Drupal 8.0.6 was released on April 6 and is the final bugfix release for the Drupal 8.0.x series. Drupal 8.0.x will not receive any further development aside from security fixes. Drupal 8.1.0-rc1 is now available and sites should prepare to update to 8.1.0.

Bug reports should be targeted against the 8.1.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.2.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

  • webchick committed 3337298 on 8.3.x
    Issue #1839336 by mitchell: Add Nginx to INSTALL.txt.
    
  • jhodgdon committed 4f452de on 8.3.x
    Issue #1839336 by mitchell, likewhoa: Formatting of web server...

  • webchick committed 3337298 on 8.3.x
    Issue #1839336 by mitchell: Add Nginx to INSTALL.txt.
    
  • jhodgdon committed 4f452de on 8.3.x
    Issue #1839336 by mitchell, likewhoa: Formatting of web server...

Version: 8.1.x-dev » 8.2.x-dev

Drupal 8.1.9 was released on September 7 and is the final bugfix release for the Drupal 8.1.x series. Drupal 8.1.x will not receive any further development aside from security fixes. Drupal 8.2.0-rc1 is now available and sites should prepare to upgrade to 8.2.0.

Bug reports should be targeted against the 8.2.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.3.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

  • webchick committed 3337298 on 8.4.x
    Issue #1839336 by mitchell: Add Nginx to INSTALL.txt.
    
  • jhodgdon committed 4f452de on 8.4.x
    Issue #1839336 by mitchell, likewhoa: Formatting of web server...

  • webchick committed 3337298 on 8.4.x
    Issue #1839336 by mitchell: Add Nginx to INSTALL.txt.
    
  • jhodgdon committed 4f452de on 8.4.x
    Issue #1839336 by mitchell, likewhoa: Formatting of web server...

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.6 was released on February 1, 2017 and is the final full bugfix release for the Drupal 8.2.x series. Drupal 8.2.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.3.0 on April 5, 2017. (Drupal 8.3.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.3.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.3.x-dev » 8.4.x-dev

Drupal 8.3.6 was released on August 2, 2017 and is the final full bugfix release for the Drupal 8.3.x series. Drupal 8.3.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.4.0 on October 4, 2017. (Drupal 8.4.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.4.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.4 was released on January 3, 2018 and is the final full bugfix release for the Drupal 8.4.x series. Drupal 8.4.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.5.0 on March 7, 2018. (Drupal 8.5.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.5.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.6 was released on August 1, 2018 and is the final bugfix release for the Drupal 8.5.x series. Drupal 8.5.x will not receive any further development aside from security fixes. Sites should prepare to update to 8.6.0 on September 5, 2018. (Drupal 8.6.0-rc1 is available for testing.)

Bug reports should be targeted against the 8.6.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.8.x-dev

Drupal 8.6.x will not receive any further development aside from security fixes. Bug reports should be targeted against the 8.8.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.9.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.7 was released on June 3, 2020 and is the final full bugfix release for the Drupal 8.8.x series. Drupal 8.8.x will not receive any further development aside from security fixes. Sites should prepare to update to Drupal 8.9.0 or Drupal 9.0.0 for ongoing support.

Bug reports should be targeted against the 8.9.x-dev branch from now on, and new development or disruptive changes should be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

quietone’s picture

Version: 8.9.x-dev » 7.x-dev
Issue tags: -Needs backport to D7
Related issues: +#2371587: Review install.txt

This was fixed in #2371587: Review install.txt for Drupal 8+. Moving to Drupal 7 queue where this applicable.

quietone’s picture

Issue tags: +Bug Smash Initiative

Adding tag