Skip to content

Instantly share code, notes, and snippets.

@md5

md5/00_README.md

Last active Sep 26, 2020
Embed
What would you like to do?
Demonstration Docker config for Wordpress on PHP-FPM behind Nginx

Proof of concept setup for Wordpress running under PHP-FPM with an Nginx frontend

Usage

Build a copy of this image:

git clone git://github.com/d9206eacb5a0ff5d6be0.git docker-nginx-fpm
cd docker-nginx-fpm
docker build -t nginx-fpm .

Launch an instance of wordpress:fpm just as you'd launch wordpress:

docker run -d --link some-mysql:mysql --name wordpress-fpm wordpress:fpm

Launch an instance of this image to front wordpress:fpm and serve static assets:

docker run -d --link wordpress-fpm:fpm --volumes-from wordpress-fpm -p 80:80 nginx-fpm
FROM nginx:1.7
COPY wordpress-fpm.conf /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_pass fpm:9000;
fastcgi_index index.php;
}
}
@starikovs

This comment has been minimized.

Copy link

@starikovs starikovs commented Jul 16, 2015

Thanks for this gist, it helped me a lot.
BTW, it's also possible to simply start a container with a custom config file for nginx without building an image from Dockerfile:

docker run -d -v /some/wordpress-fpm.conf:/etc/nginx/conf.d/default.conf:ro --link wordpress-fpm:fpm --volumes-from wordpress-fpm -p 80:80 nginx

@md5

This comment has been minimized.

Copy link
Owner Author

@md5 md5 commented Aug 4, 2015

Thanks @starikovs. I just saw this comment for whatever reason.

@teward

This comment has been minimized.

Copy link

@teward teward commented Sep 25, 2015

This needs revised. It will fail in the current config because fpm:9000 won't resolve. fpm needs an upstream block to define it as a named upstream, such as:

upstream fpm {
    server [SERVERPATH];
}

Refer to http://nginx.org/en/docs/http/ngx_http_upstream_module.html

@mohamnag

This comment has been minimized.

Copy link

@mohamnag mohamnag commented Nov 4, 2015

I'm using this setup and only thing I'm getting back from nginx is 404. not a profi in nginx so cant say what exactly the problem is but this is the line that nginx throws at logs:

192.168.99.1 - - [04/Nov/2015:10:41:00 +0000] "GET / HTTP/1.1" 404 570 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36" "-"
@rohit3184

This comment has been minimized.

Copy link

@rohit3184 rohit3184 commented Dec 21, 2015

how can i configure nginx server to run wordpress in a docker container.I dont want to run nginx server in docker container.

@md5

This comment has been minimized.

Copy link
Owner Author

@md5 md5 commented Jan 13, 2016

@teward When this was written, it was intended for the case where the fpm container was provided with --link. In that case, fpm would indeed resolve based on the entries that Docker places in /etc/hosts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.