wordpress-docker-compose
wordpress-docker-compose copied to clipboard
This doesn't work on production.
I'm following your tutorial to deploy Wordpress
using Docker
on a Ubuntu
server.
It's important to mention that I already have two subdomains at this point, one for the Wordpress site and another for the phpMyAdmin site.
However the letsencrypt
certificates seem to not be generated properly. I can access the website via http, but not https, and when I look at the certificate it doesn't look correct. In fact it doesn't seem to have one for my website.
[https://i.stack.imgur.com/38SzG.png](Image of how the "cert looks")
To make everything easier I created a script to run all the steps fast:
#!/bin/bash
web_dir=/srv/www
myusername=root
domain_name=subdomain.domain.com
website_folder=/srv/www/$domain_name
nginx_proxy_repo=https://github.com/kassambara/nginx-multiple-https-websites-on-one-server
nginx_folder=/srv/www/nginx-multiple-https-websites-on-one-server/nginx-proxy
final_nginx_folder=/srv/www/nginx-proxy
echo ---INSTALL REQUIRED COMPONENTS----
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
sudo apt update
apt-cache policy docker-ce
sudo apt install docker-ce docker-compose git
sudo systemctl status docker
echo ---CREATE AND GIVE PERMISSIONS TO WEBSITES DIR----
sudo mkdir -p $web_dir
# 2. set your user as the owner
sudo chown -R $myusername $web_dir
# 3. set the web server as the group owner
sudo chgrp -R www-data $web_dir
# 4. 755 permissions for everything
sudo chmod -R 755 $web_dir
# 5. New files and folders inherit
# group ownership from the parent folder
chmod g+s $web_dir
echo ---INSTALL NGINX PROXY----
git clone $nginx_proxy_repo $web_dir
rm -rf $web_dir/nginx-proxy/nginx.tmpl
curl -s https://raw.githubusercontent.com/jwilder/nginx-proxy/master/nginx.tmpl > $web_dir/nginx-proxy/nginx.tmpl
cd $web_dir
rm -rf your-website-one.com your-website-two.com README.Rmd .gitignore .Rbuildignore .git README.md
echo ---INSTALL WORDPRESS----
cd $web_dir
git clone https://github.com/kassambara/wordpress-docker-compose $domain_name
echo ---CONFIGURE DOCKER COMPOSE FOR ONLINEHOST----
cd $website_folder
mv docker-compose-onlinehost.yml docker-compose.yml
echo ---FINAL TOUCHES----
cd $website_folder
vi ./setup-onlinehost.sh
chmod +x setup-onlinehost.sh && ./setup-onlinehost.sh
vi .env
vi docker-compose.yml
cd $final_nginx_folder
docker network create nginx-proxy
docker-compose up -d
cd $final_nginx_folder
cd vhost.d
echo "client_max_body_size 64M;" > $domain_name
cd $website_folder
docker-compose up -d --build
docker-compose -f docker-compose.yml -f wp-auto-config.yml run --rm wp-auto-config
When the time comes I setup the setup-onlinehost.sh
like this:
project_name="wordpress"
user_name="wordpress"
pass_word="wordpress"
email="[email protected]"
website_title="My Blog"
website_url="https://subdomain.domain.com"
phmyadmin_url="sqlsubdomain.domain.com"
env_file=".env"
compose_file="docker-compose.yml"
Then I remove the redirectnonwww
container from the docker-compose.yml
file since I don't want the redirect non-www to www behavior.
Then after everything is completed, I can access the websites over http
but not over https
. When I try to access it over https
I receive a message about This connection is not private
and the certificate seems to be wrong at this point.
Also If I let continue my browser to visit the website I got to the Nginx 500 Internal Server Error
.
I'm not sure if I'm doing something wrong or if I should be doing something else that is not listed on the tutorial.
Thanks.
I'm following your tutorial to deploy
Wordpress
usingDocker
on aUbuntu
server.It's important to mention that I already have two subdomains at this point, one for the Wordpress site and another for the phpMyAdmin site.
However the
letsencrypt
certificates seem to not be generated properly. I can access the website via http, but not https, and when I look at the certificate it doesn't look correct. In fact it doesn't seem to have one for my website.[https://i.stack.imgur.com/38SzG.png](Image of how the "cert looks")
To make everything easier I created a script to run all the steps fast:
#!/bin/bash web_dir=/srv/www myusername=root domain_name=subdomain.domain.com website_folder=/srv/www/$domain_name nginx_proxy_repo=https://github.com/kassambara/nginx-multiple-https-websites-on-one-server nginx_folder=/srv/www/nginx-multiple-https-websites-on-one-server/nginx-proxy final_nginx_folder=/srv/www/nginx-proxy echo ---INSTALL REQUIRED COMPONENTS---- sudo apt update sudo apt install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" sudo apt update apt-cache policy docker-ce sudo apt install docker-ce docker-compose git sudo systemctl status docker echo ---CREATE AND GIVE PERMISSIONS TO WEBSITES DIR---- sudo mkdir -p $web_dir # 2. set your user as the owner sudo chown -R $myusername $web_dir # 3. set the web server as the group owner sudo chgrp -R www-data $web_dir # 4. 755 permissions for everything sudo chmod -R 755 $web_dir # 5. New files and folders inherit # group ownership from the parent folder chmod g+s $web_dir echo ---INSTALL NGINX PROXY---- git clone $nginx_proxy_repo $web_dir rm -rf $web_dir/nginx-proxy/nginx.tmpl curl -s https://raw.githubusercontent.com/jwilder/nginx-proxy/master/nginx.tmpl > $web_dir/nginx-proxy/nginx.tmpl cd $web_dir rm -rf your-website-one.com your-website-two.com README.Rmd .gitignore .Rbuildignore .git README.md echo ---INSTALL WORDPRESS---- cd $web_dir git clone https://github.com/kassambara/wordpress-docker-compose $domain_name echo ---CONFIGURE DOCKER COMPOSE FOR ONLINEHOST---- cd $website_folder mv docker-compose-onlinehost.yml docker-compose.yml echo ---FINAL TOUCHES---- cd $website_folder vi ./setup-onlinehost.sh chmod +x setup-onlinehost.sh && ./setup-onlinehost.sh vi .env vi docker-compose.yml cd $final_nginx_folder docker network create nginx-proxy docker-compose up -d cd $final_nginx_folder cd vhost.d echo "client_max_body_size 64M;" > $domain_name cd $website_folder docker-compose up -d --build docker-compose -f docker-compose.yml -f wp-auto-config.yml run --rm wp-auto-config
When the time comes I setup the
setup-onlinehost.sh
like this:project_name="wordpress" user_name="wordpress" pass_word="wordpress" email="[email protected]" website_title="My Blog" website_url="https://subdomain.domain.com" phmyadmin_url="sqlsubdomain.domain.com" env_file=".env" compose_file="docker-compose.yml"
Then I remove the
redirectnonwww
container from thedocker-compose.yml
file since I don't want the redirect non-www to www behavior.Then after everything is completed, I can access the websites over
http
but not overhttps
. When I try to access it overhttps
I receive a message aboutThis connection is not private
and the certificate seems to be wrong at this point.Also If I let continue my browser to visit the website I got to the
Nginx 500 Internal Server Error
.I'm not sure if I'm doing something wrong or if I should be doing something else that is not listed on the tutorial.
Thanks.
I am having the same issue.