cytopia / devilbox

A modern Docker LAMP stack and MEAN stack for local development
http://devilbox.org
MIT License
4.37k stars 652 forks source link

403 forbidden after update #288

Closed chrizz1001 closed 6 years ago

chrizz1001 commented 6 years ago

after update (from git & containers incl. removing and recreating images) from 0.13 to 0.14 I get an 403 on all hosts (including localhost). also ssl cert is not correct set up now (security page). Can anyone confirm or a hand for debugging?

Please also specify the following info:

chrizz1001 commented 6 years ago

after a long night i fuggured out that the project direcrories dont mount correctly. Also the "localhost" directory is not mounted as /var/www/default/ is empty. Maybe someone have any suggestion how to debug further?

danemorgan commented 6 years ago

I just got hit with this today. Yesterday I was working on websites. This morning everything is a 403 Forbidden.

I updated Devilbox via git and did a docker-compose pull.

When I use shell.sh to ssh into the container, shared/httpd/ is empty

danemorgan commented 6 years ago

I made a new directory, installed devilbox clean and added a project folder. All I get is 403 Forbidden.

chrizz1001 commented 6 years ago

I think it has something to do with folder permissions. In the container I am not able to create a project folder... I need to see when I have time to investigate, because I have to work on other projects atm :/

danemorgan commented 6 years ago

When I use shell.sh to ssh into the container, the /shared/httpd folder is empty. I should be seeing my projects there, shouldn't I?

What's killing me here is I went to bed with everything working and woke up with it all broken.

I'm going to have to just abandon this. I need to be working on my projects.

cytopia commented 6 years ago

@danemorgan do your project directories still exist on your host operating system?

danemorgan commented 6 years ago

Yes. They are all there.

I also created a new devilbox in a differet folder, made one project folder with a simple index.php. When I ssh in to that the project folder isn't there either.

cytopia commented 6 years ago

Is that in a location that Docker itself allows volumes to be mounted? On Windows I think only C:/Users is allowed to be mounted. You have to manually add the rest to the Docker configuration.

Additionally, do your directories provide read access to user, group and others?

danemorgan commented 6 years ago

The original one that I've been using for a couple of months is in C:\Users\danea\Dropbox\devilbox. The new one is in C:\Users\danea\devilbox.

The original is in the same location it was in previously when it was working. I didn't move it between when it worked and when it didn't. Honestly, I don't know what changed, obviously, something changed, but the file locations did not.

Read, Write and Execute are all allowed for System, Administrators and my user account, which is the only user account on the machine.

cytopia commented 6 years ago

Can you check if other PHP docker containers are running. Maybe shell.bat is entering you into a wrong container?

danemorgan commented 6 years ago
λ docker ps
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                                        NAMES
bdd810934d45        cytopia/mariadb-5.5:latest   "/docker-entrypoint.…"   10 minutes ago      Up 10 minutes       0.0.0.0:3306->3306/tcp                       devilbox_mysql_1
75fd12b878e1        devilbox/apache-2.4:0.17     "/docker-entrypoint.…"   10 minutes ago      Up 10 minutes       0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp     devilbox_httpd_1
994076325eff        devilbox/php-fpm:7.0-work    "/docker-entrypoint.…"   10 minutes ago      Up 10 minutes       9000/tcp                                     devilbox_php_1
f795dc440d9c        cytopia/bind:0.15            "/docker-entrypoint.…"   10 minutes ago      Up 10 minutes       0.0.0.0:1053->53/tcp, 0.0.0.0:1053->53/udp   devilbox_bind_1
danemorgan commented 6 years ago
###
###  ---------------------------------------------------
###  D E V I L B O X   R U N - T I M E   S E T T I N G S
###  ---------------------------------------------------
###
###  All the following settings are applied during
###  $ docker-compose up
###
###  No need to rebuild any dockers!
###
###  For custom variables, scroll to the bottom
###

###
### Show all executed commands in each
### docker image during docker-compose up?
###
### 1: Yes
### 0: No
DEBUG_COMPOSE_ENTRYPOINT=1

###
### Log to file or Docker logs.
###
### Logging to file means log files are available under log/
### on your host operating system.
### Logging to Docker logs means log files are streamed to
### stdout and stderr.
###
### 1: Log to Docker logs
### 0: Log to file
###
DOCKER_LOGS=0

###
### Relative or absolute path to the devilbox repository.
### (Used as a prefix for all mount paths)
### There is no need to change this.
###
### The only exception is for OSX users wanting to use NFS
### mounts instead of Filesystem mounts due to degraded performance
### on OSX.
###
### Note: When changing this variable you must re-create the container.
###       Simply remove it, it will be auto-created during the next start:
###
### $ docker-compose rm -f
###
DEVILBOX_PATH=.

###
### At what IP address should the docker services listen
### on the Host computer?
###
### The specified default should be fine for Linux and OSX (127.0.0.1:).
### If you are on windows, you will probably have to change
### it to the IP address of the docker machine.
###
### a.) Leave blank, to listen on all interfaces (no trailing color ':')
###    LOCAL_LISTEN_ADDR=
### b.) If an IP is specified, note the trailing colon ':'
###    LOCAL_LISTEN_ADDR=127.0.0.1:
###
LOCAL_LISTEN_ADDR=

###
### This is the domain suffix your projects will be made available
### with mass-virtual-hosting.
### It is also required for the internal DNS server to be setup.
###
### Note: Only ALPHA ([a-zA-Z]+) characters are supported.
###
### Example:
###   TLD_SUFFIX=loc
### Makes your project available under xxxx.loc
###
### Example:
###   TLD_SUFFIX=local
### Makes your project available under xxxx.local
###
TLD_SUFFIX=com

###
### Optional DNS configuration
### Allows you to add extra DNS records (above the wildcard entry)
### Useful if your host computer run other Docker services that you want to connect to or reach
### from within the Devilbox network by a custom hostname.
###
### Format:
### -------
### Resolve any custom defined hostname to an IP address (useable inside container and host os)
###     EXTRA_HOSTS=<hostname>=<ip>[,<hostname>=<ip>]
###
### Resolve any custom defined hostname to whatever IP address a CNAME resolves to
### (Useable inside the container and host OS).
### Note: CNAME must be resolvable by Google DNS
###     EXTRA_HOSTS=<hostname>=<CNAME>[,<hostname>=<CNAME>]
###
### Examples:
### ---------
### EXTRA_HOSTS=hostname.loc=1.2.3.4
### EXTRA_HOSTS=host.loc=1.2.3.4,host.example.org=3.4.5.6
EXTRA_HOSTS=

###
### Set your user id and group id
###
### This should be changed to the value of your local
### users uid and gid
###
### Type `id` on the terminal to find out your values
###
NEW_UID=197609
NEW_GID=197609

###
### Timezone for all dockers and service config files
###
TIMEZONE=America/Chicago

################################################################################
###
### INTRANET SETTINGS
###
################################################################################

###
### TLD_SUFFIX domains are checked if they are set in the
### host computer /etc/hosts or available via attached DNS server.
### Timeout is done on vhosts.php (intranet) via ajax calls.
### In order to keep performance, set this to a low value.
### DNS checks might not succeed in time on slow machines.
### If DNS is valid, but timeout is expired, set this to a higher value.
###
### DNS_CHECK_TIMEOUT value is how many seconds to time out
### Default is to timeout after 1 second (DNS_CHECK_TIMEOUT=1)
###
DNS_CHECK_TIMEOUT=1

###
### Devilbox UI SSL Certificate generation
###
### When using SSL each certificate requires names for which it is responsible:
### Common Name as well as alternative names.
###
### Specify comma separated hostnames below by which you want to access the Devilbox.
### Those hostnames will be included in the SSL certificate for the Devilbox intranet.
### This has nothing to do for SSL certificates for projects, it is just for the intranet
### itself.
###
DEVILBOX_UI_SSL_CN=localhost,*.localhost,devilbox,*.devilbox

###
### Devilbox UI Password protection enable/disable (1/0)
###
### Set DEVILBOX_UI_PROTECT to 1 in order to password protect the
### intranet.
###
### Example:
###   DEVILBOX_UI_PROTECT=1
###   DEVILBOX_UI_PROTECT=0
###
DEVILBOX_UI_PROTECT=0

###
### Devilbox UI Password
###
### When DEVILBOX_UI_PROTECT=1, use the following password
### to log in. The password can always be changed.
### When changing the password, make sure to restart your
### PHP container.
###
### Example:
###   DEVILBOX_UI_PASSWORD=my-very-secure-password
###   DEVILBOX_UI_PASSWORD=Some pass with spaces
###
### The default username is 'devilbox'
###
DEVILBOX_UI_PASSWORD=password

###
### Enable the Devilbox Intranet?
###
### Example:
###   DEVILBOX_UI_ENABLE=1
###   DEVILBOX_UI_ENABLE=0
###
DEVILBOX_UI_ENABLE=1

################################################################################
###
### 1. Choose Images (Version)
###
################################################################################

###
### You can choose any combination of httpd, mysql, postgresql or php.
### Each of them are fully compatible between one another.
###

###
### 1.1 Choose PHP Server Image
###
#PHP_SERVER=5.3
#PHP_SERVER=5.4
#PHP_SERVER=5.5
#PHP_SERVER=5.6
PHP_SERVER=7.0
#PHP_SERVER=7.1
#PHP_SERVER=7.2
#PHP_SERVER=7.3

###
### 1.2 Choose HTTPD Server Image
###
#HTTPD_SERVER=apache-2.2
HTTPD_SERVER=apache-2.4
#HTTPD_SERVER=nginx-stable
#HTTPD_SERVER=nginx-mainline

###
### 1.3 Choose MySQL Server Image
###
#MYSQL_SERVER=mysql-5.5
#MYSQL_SERVER=mysql-5.6
#MYSQL_SERVER=mysql-5.7
#MYSQL_SERVER=mysql-8.0
MYSQL_SERVER=mariadb-5.5
#MYSQL_SERVER=mariadb-10.0
#MYSQL_SERVER=mariadb-10.1
#MYSQL_SERVER=mariadb-10.2
#MYSQL_SERVER=mariadb-10.3
#MYSQL_SERVER=percona-5.5
#MYSQL_SERVER=percona-5.6
#MYSQL_SERVER=percona-5.7

###
### 1.4 Choose PostgreSQL Server Image
###
#PGSQL_SERVER=9.1
#PGSQL_SERVER=9.2
#PGSQL_SERVER=9.3
#PGSQL_SERVER=9.4
#PGSQL_SERVER=9.5
PGSQL_SERVER=9.6
#PGSQL_SERVER=10.0
#PGSQL_SERVER=10.1
#PGSQL_SERVER=10.2
#PGSQL_SERVER=10.3

###
### 1.5 Choose Redis Server Image
###
#REDIS_SERVER=2.8
#REDIS_SERVER=3.0
#REDIS_SERVER=3.2
REDIS_SERVER=4.0

###
### 1.6 Choose Memcached Server Image
###
#MEMCD_SERVER=1.4.21
#MEMCD_SERVER=1.4.22
#MEMCD_SERVER=1.4.23
#MEMCD_SERVER=1.4.24
#MEMCD_SERVER=1.4.25
#MEMCD_SERVER=1.4.26
#MEMCD_SERVER=1.4.27
#MEMCD_SERVER=1.4.28
#MEMCD_SERVER=1.4.29
#MEMCD_SERVER=1.4.30
#MEMCD_SERVER=1.4.31
#MEMCD_SERVER=1.4.32
#MEMCD_SERVER=1.4.33
#MEMCD_SERVER=1.4.34
#MEMCD_SERVER=1.4.35
#MEMCD_SERVER=1.4.36
#MEMCD_SERVER=1.4.37
#MEMCD_SERVER=1.4.38
#MEMCD_SERVER=1.4.39
#MEMCD_SERVER=1.5.0
#MEMCD_SERVER=1.5.1
#MEMCD_SERVER=1.5.2
#MEMCD_SERVER=1.5.3
#MEMCD_SERVER=1.5.4
MEMCD_SERVER=1.5.5
#MEMCD_SERVER=latest

###
### 1.7 Choose Mongo Server Image
###
#MONGO_SERVER=2.8
#MONGO_SERVER=3.0
#MONGO_SERVER=3.2
MONGO_SERVER=3.4
#MONGO_SERVER=3.5
#MONGO_SERVER=3.6
#MONGO_SERVER=3.7

################################################################################
###
### 2. Host Mounts (Your computer)
###
################################################################################

###
### Local filesystem path to www projects.
###
### Note: When changing this variable you must re-create the container.
###       Simply remove it, it will be auto-created during the next start:
###
### $ docker-compose rm -f
###
HOST_PATH_HTTPD_DATADIR=./data/www/csm

###
### Local filesystem path to mysql/mariadb datadir.
###
### This can be an existing mysql data directory or empty.
### If it already is a mysql data directory with content,
### it will be mounted into the docker and used.
###
### If this directory is empty, a new mysql database will be
### created.
###
### Note: Inside this path, a subdirectory with the mysql|mariadb
###       version will be created where the actual data resides.
###       This is to protect databases from being altered by
###       newer or older mysql|mariadb server versions.
###
### Note: When changing this variable you must re-create the container.
###       Simply remove it, it will be auto-created during the next start:
###
### $ docker-compose rm -f
###
HOST_PATH_MYSQL_DATADIR=./data/mysql/csm

###
### Local filesystem path to postgresql datadir.
###
### This can be an existing postgresql data directory or empty.
### If it already is a postgresql data directory with content,
### it will be mounted into the docker and used.
###
### If this directory is empty, a new postgresql database will be
### created.
###
### Note: Inside this path, a subdirectory with the postgresql
###       version will be created where the actual data resides.
###       This is to protect databases from being altered by
###       newer or older postgres server versions.
###
### Note: When changing this variable you must re-create the container.
###       Simply remove it, it will be auto-created during the next start:
###
### $ docker-compose rm -f
###
HOST_PATH_PGSQL_DATADIR=./data/pgsql/csm

###
### Local filesystem path to mongodb datadir.
###
### This can be an existing mongodb data directory or empty.
### If it already is a mongodb data directory with content,
### it will be mounted into the docker and used.
###
### If this directory is empty, a new mongodb database will be
### created.
###
### Note: When changing this variable you must re-create the container.
###       Simply remove it, it will be auto-created during the next start:
###
### $ docker-compose rm -f
###
HOST_PATH_MONGO_DATADIR=./data/mongo/csm

################################################################################
###
### 3. PHP Docker Settings
###
################################################################################

# None
#
# Configure everything about PHP in cfg/php-fpm-X.X/*.ini

################################################################################
###
### 4. HTTPD Docker Settings
###
################################################################################

###
### Expose HTTPD Port to Host
###
HOST_PORT_HTTPD=80
HOST_PORT_HTTPD_SSL=443

###
### Document Root Subdirectory
###
### In your project directory, which subfolder should
### serve your files?
###
### When changing this value, restart the devilbox.
###
HTTPD_DOCROOT_DIR=public_html

###
### Per vHost Config Subdirectory
###
### In your project directory, which subfolder should
### hold apache, nginx templates for a customized vhost?
###
### When changing this value, restart the devilbox.
###
HTTPD_TEMPLATE_DIR=.devilbox

################################################################################
###
### 5. MySQL Docker Settings
###
################################################################################

###
### MySQL root user password
###
### If $HOST_PATH_MYSQL_DATADIR already contains an existing
### mysql datadir, enter the password for the existing mysql database
###
### If $HOST_PATH_MYSQL_DATADIR is empty, choose a new password that
### will be applied
###
MYSQL_ROOT_PASSWORD=password

###
### Custom MySQL Runtime Settings
###
MYSQL_GENERAL_LOG=0

###
### Expose MySQL Port to Host
###
HOST_PORT_MYSQL=3306

################################################################################
###
### 6. PostgreSQL Docker Settings
###
################################################################################

###
### PostgreSQL 'root' user name (usually postgres)
###
PGSQL_ROOT_USER=postgres

###
### PostgreSQL 'root' user password
###
PGSQL_ROOT_PASSWORD=

###
### Expose PostgreSQL Port to Host
###
HOST_PORT_PGSQL=5432

################################################################################
###
### 7. Redis Docker Settings
###
################################################################################

###
### Expose Redis Port to Host
###
HOST_PORT_REDIS=6379

################################################################################
###
### 8. Memcached Docker Settings
###
################################################################################

###
### Expose Memcached Port to Host
###
HOST_PORT_MEMCD=11211

################################################################################
###
### 9. MongoDB Docker Settings
###
################################################################################

###
### Expose MongoDB Port to Host
###
HOST_PORT_MONGO=27017

################################################################################
###
### 10. Bind Docker Settings
###
################################################################################

###
### Expose Bind Port to Host
###
HOST_PORT_BIND=1053

###
### Add comma separated DNS server from which you want to receive DNS
### You can also add DNS servers from your LAN (if any are available)
###
BIND_DNS_RESOLVER=8.8.8.8,8.8.4.4

###
### Validate DNSSEC
###
### Values:
###  no:    DNSSEC validation is disabled
###  yes:   DNSSEC validation is enabled, but a trust anchor must be manually configured.
###  auto:  DNSSEC validation is enabled, and a default trust anchor for root zone is used.
###
BIND_DNSSEC_VALIDATE=no

###
### Bind timing options (time in seconds)
###
### Leave empty for defaults.
### Only change when you know what you are doing.
###
BIND_TTL_TIME=
BIND_REFRESH_TIME=
BIND_RETRY_TIME=
BIND_EXPIRY_TIME=
BIND_MAX_CACHE_TIME=

###
### Show DNS Queries in Docker logs output?
###
### 1: Yes
### 0: No
BIND_LOG_DNS_QUERIES=0

################################################################################
###
### 11. Custom variables
###
################################################################################

###
### Any variable defined in this file will be available
### as environment variables to your PHP/HHV Docker container.
###
### This might be useful to set application environment and retrieve
### them via: <?php getenv('MY_APPLICATION_ENV'); ?>
###

###
### Example:
### <?php echo getenv('Foo'); ?> would produce: 'some value'
###
#Foo=some value
cytopia commented 6 years ago

Can you try with Apache 2.2 or Nginx to see if the problem is web server related.

Btw, how did you find out these uid/gid?:

NEW_UID=197609
NEW_GID=197609
danemorgan commented 6 years ago

I tried both Apache 2.2 and Nginx with the same result for both.

For the UID/GID, I used

C:\Users\danea\Dropbox\devilbox (master -> origin)
λ id -u
197609

C:\Users\danea\Dropbox\devilbox (master -> origin)
λ id -g
197609

Also

C:\Users\danea\Dropbox\devilbox (master -> origin)
λ id
uid=197609(DM) gid=197609 groups=197609
cytopia commented 6 years ago

@danemorgan what terminal are you using under windows that provides unix commands? Or are you using Docker Toolbox on Windows?

cytopia commented 6 years ago

For the issue, please try the following:

docker-compose stop
docker-compose kill
docker-compose rm -f

And only start the base set of containers

docker-compose up httpd php bind

As well as the information from php and httpd server:

docker inspect <ID_OF_HTTPD_CONTAINER>
docker inspect <ID_OF_PHP_CONTAINER>
danemorgan commented 6 years ago

I'm using CMDER

http://cmder.net/

danemorgan commented 6 years ago

Now it's not even starting. I haven't changed anything since when it was staring and giving me 403 errors, and now, but now it is outputting the following and stalling out. It's been hung at this point for about 20 minutes.

C:\Users\danea\Dropbox\devilbox (master -> origin)
λ docker-compose stop
WARNING: The PHP_MODULES_ENABLE variable is not set. Defaulting to a blank string.
WARNING: The PHP_MODULES_DISABLE variable is not set. Defaulting to a blank string.

C:\Users\danea\Dropbox\devilbox (master -> origin)
λ docker-compose kill
WARNING: The PHP_MODULES_ENABLE variable is not set. Defaulting to a blank string.
WARNING: The PHP_MODULES_DISABLE variable is not set. Defaulting to a blank string.

C:\Users\danea\Dropbox\devilbox (master -> origin)
λ docker-compose rm -f
WARNING: The PHP_MODULES_ENABLE variable is not set. Defaulting to a blank string.
WARNING: The PHP_MODULES_DISABLE variable is not set. Defaulting to a blank string.
Going to remove devilbox_httpd_1, devilbox_php_1, devilbox_bind_1
Removing devilbox_httpd_1 ... done
Removing devilbox_php_1   ... done
Removing devilbox_bind_1  ... done

C:\Users\danea\Dropbox\devilbox (master -> origin)
λ docker-compose up bind httpd php
WARNING: The PHP_MODULES_ENABLE variable is not set. Defaulting to a blank string.
WARNING: The PHP_MODULES_DISABLE variable is not set. Defaulting to a blank string.
Creating devilbox_bind_1 ... done
Creating devilbox_php_1  ... done
Creating devilbox_httpd_1 ... done
Attaching to devilbox_bind_1, devilbox_php_1, devilbox_httpd_1
bind_1   | [INFO] Debug level: 1
bind_1   | [INFO] BIND logging: disabled explicitly
bind_1   | [INFO] Using default DNS TTL time: 3600 sec
bind_1   | [INFO] Using default DNS Refresh time: 1200 sec
bind_1   | [INFO] Using default DNS Retry time: 180 sec
bind_1   | [INFO] Using default DNS Expiry time: 1209600 sec
bind_1   | [INFO] Using default DNS Max Cache time: 10800 sec
bind_1   | [INFO] Adding wildcard DNS: *.com -> 172.16.238.11
bind_1   | [INFO] Not adding any extra hosts
bind_1   | [INFO] DNSSEC Validation: no
bind_1   | [INFO] Adding custom DNS forwarder: 8.8.8.8,8.8.4.4
bind_1   | [INFO] Starting BIND 9.11.3
php_1    | [INFO] Debug level: 1
php_1    | [INFO] Changing user 'devilbox' uid to: 1000
httpd_1  | [INFO] Debug level: 1
httpd_1  | [INFO] Runtime debug: 1
httpd_1  | [INFO] Changing user 'daemon' uid to: 1000
php_1    | usermod: no changes
php_1    | [INFO] Changing group 'devilbox' gid to: 1000
php_1    | [INFO] Setting container timezone to: America/Chicago
php_1    | [INFO] Setting PHP: timezone=America/Chicago
php_1    | [INFO] Docker date set to: Fri Jul  6 09:25:55 CDT 2018
php_1    | [INFO] $DOCKER_LOGS set to 0. Logging to files under: /var/log/php
php_1    | [INFO] Make sure to mount this directory in order to view logs
php_1    | [INFO] $ENABLE_MAIL set to 1. Enabling postfix catch-all
httpd_1  | [INFO] Changing group 'daemon' gid to: 1000
httpd_1  | [INFO] Setting container timezone to: America/Chicago
httpd_1  | [INFO] Docker date set to: Fri Jul  6 09:25:56 CDT 2018
httpd_1  | [INFO] $DOCKER_LOGS disabled. Logging errors and access to log files inside container.
httpd_1  | [INFO] PHP-FPM: Enabled
httpd_1  | [INFO] PHP-FPM: Server address: php
httpd_1  | [INFO] PHP-FPM: Server port: 9000
httpd_1  | [INFO] Main vhost: Enabled
httpd_1  | [INFO] Main vhost: Setting SSL type to: http and https
httpd_1  | [INFO] Main vhost: Enable automatic generation of SSL certificates
httpd_1  | [INFO] Main vhost: SSL CN: localhost,*.localhost,devilbox,*.devilbox
httpd_1  | [INFO] $MAIN_VHOST_DOCROOT not specified. Keeping default: htdocs
httpd_1  | [INFO] $MAIN_VHOST_TPL not specified. Keeping default: cfg
httpd_1  | [INFO] Main vhost: Enabling httpd status page
httpd_1  | [INFO] Main vhost: Changing status page alias to: /devilbox-httpd-status
httpd_1  | [INFO] Mass vhost: Enabled
httpd_1  | [INFO] Mass vhost: Setting SSL type to: http and https
httpd_1  | [INFO] Mass vhost: Enable automatic generation of SSL certificates
httpd_1  | [INFO] Mass vhost: changing tld to: .com
httpd_1  | [INFO] Mass vhost: changing document root to: public_html
httpd_1  | [INFO] Mass vhost: changing template dir to: .devilbox
httpd_1  | vhostgen: [2018-07-06 09:25:56] Adding: localhost
httpd_1  | $ openssl req -newkey rsa:2048 -nodes -extensions v3_req -keyout /etc/httpd/cert/main/localhost.key -subj '/C=DE/ST=Berlin/L=Berlin/O=Devilbox/OU=Devilbox/CN=localhost/emailAddress=admin@localhost' -out /etc/httpd/cert/main/localhost.csr
httpd_1  | $ openssl x509 -req -extensions v3_req -extfile <(printf '[ req ]\nreq_extensions = v3_req\n[ v3_req ]\nsubjectAltName=DNS.1:localhost,DNS.2:localhost,DNS.2:*.localhost,DNS.2:devilbox,DNS.2:*.devilbox\n') -days 3650 -in /etc/httpd/cert/main/localhost.csr -CA /ca/devilbox-ca.crt -CAkey /ca/devilbox-ca.key -CAcreateserial -out /etc/httpd/cert/main/localhost.crt
httpd_1  | Certificate:
httpd_1  |     Data:
httpd_1  |         Version: 3 (0x2)
httpd_1  |         Serial Number:
httpd_1  |             9c:00:00:dd:20:06:5e:95
httpd_1  |     Signature Algorithm: sha256WithRSAEncryption
httpd_1  |         Issuer: C=DE, ST=Berlin, L=Berlin, O=Devilbox, OU=Devilbox, CN=Devilbox Root CA/emailAddress=cytopia@devilbox.org/dnQualifier=aSjsXpz/2+5GSZ2rpAiw/HYvcQc=
httpd_1  |         Validity
httpd_1  |             Not Before: Jul  6 14:25:56 2018 GMT
httpd_1  |             Not After : Jul  3 14:25:56 2028 GMT
httpd_1  |         Subject: C=DE, ST=Berlin, L=Berlin, O=Devilbox, OU=Devilbox, CN=localhost/emailAddress=admin@localhost
httpd_1  |         Subject Public Key Info:
httpd_1  |             Public Key Algorithm: rsaEncryption
httpd_1  |                 Public-Key: (2048 bit)
httpd_1  |                 Modulus:
httpd_1  |                     00:be:a7:5e:bb:ed:3c:4a:c2:af:82:0e:f2:10:55:
httpd_1  |                     da:ae:c5:f4:27:c4:92:bd:53:99:a5:fb:8b:bf:74:
httpd_1  |                     18:24:a4:38:5a:a6:c3:c6:80:7b:2e:67:22:96:ee:
httpd_1  |                     07:64:f8:b7:85:1f:42:dd:04:82:7c:74:1d:e8:7a:
httpd_1  |                     a6:66:7a:19:bf:36:60:d9:ee:28:41:e8:03:31:22:
httpd_1  |                     3b:9c:6e:e6:0c:63:f8:33:40:48:98:f0:7c:9d:27:
httpd_1  |                     68:26:5f:fa:f1:71:c3:10:2c:38:3d:be:87:0a:bc:
httpd_1  |                     4c:91:f2:0e:ac:09:fe:72:4f:f0:d6:23:37:30:35:
httpd_1  |                     45:63:a9:2a:53:c6:9c:95:54:66:b5:98:f3:16:ca:
httpd_1  |                     df:91:fa:b6:53:5c:f4:ae:4d:d6:99:44:5f:d2:5f:
httpd_1  |                     70:d3:5a:a1:13:bf:4f:36:94:93:b9:0d:b6:a4:9e:
httpd_1  |                     a9:52:69:79:ff:bb:1a:14:51:e8:10:80:14:68:5c:
httpd_1  |                     25:33:dc:ec:88:7b:18:57:e1:e1:c2:f1:b3:ed:85:
httpd_1  |                     85:2b:49:c1:ae:d8:5a:03:4e:2b:bd:17:2f:46:0e:
httpd_1  |                     8a:26:83:bf:05:04:8b:09:f7:08:4d:74:a9:e0:d1:
httpd_1  |                     46:9c:a6:9e:86:9a:53:d5:d6:0e:e5:c2:c0:6f:75:
httpd_1  |                     2e:18:da:60:d7:e4:49:e5:13:b4:c4:a6:b3:78:74:
httpd_1  |                     75:69
httpd_1  |                 Exponent: 65537 (0x10001)
httpd_1  |         X509v3 extensions:
httpd_1  |             X509v3 Subject Alternative Name:
httpd_1  |                 DNS:localhost, DNS:localhost, DNS:*.localhost, DNS:devilbox, DNS:*.devilbox
httpd_1  |     Signature Algorithm: sha256WithRSAEncryption
httpd_1  |          55:01:81:31:47:ef:08:6f:ec:14:5f:89:81:02:8c:86:4f:ef:
httpd_1  |          59:5f:3b:38:65:4b:af:dd:50:38:11:a7:ae:75:ce:4e:1f:1f:
httpd_1  |          5e:55:71:61:a0:fc:b6:51:49:1a:13:7f:d2:e2:8b:a7:4b:76:
httpd_1  |          9e:c2:61:9c:d9:42:ec:7d:7d:56:a9:a1:ab:0d:4d:c8:b6:17:
httpd_1  |          b7:ab:75:75:2f:43:00:9b:5f:a7:9c:06:0e:42:bb:0b:ee:01:
httpd_1  |          e9:92:c8:de:d8:84:59:7e:3b:93:91:ca:9c:f1:84:69:1d:f7:
httpd_1  |          f5:0d:7b:3a:9c:6a:ad:af:44:b8:fb:2c:c5:31:6a:4a:bd:73:
httpd_1  |          95:29:02:4b:01:27:9a:81:51:48:93:f0:98:c0:26:18:92:b8:
httpd_1  |          45:d9:85:b8:5a:a9:54:cb:14:b2:15:50:62:f5:5e:25:e4:9e:
httpd_1  |          8a:ae:db:eb:dd:48:bf:97:a2:6e:d6:a2:18:ff:07:f8:d8:fb:
httpd_1  |          1b:34:85:ef:04:cb:27:55:af:8a:af:9a:c1:50:ee:b5:11:d7:
httpd_1  |          37:ed:7f:ab:e8:f7:62:2b:30:b1:40:ea:47:36:9f:ce:ed:ef:
httpd_1  |          b3:6f:4e:18:e1:f3:ff:7b:3c:cd:61:ef:80:0d:a8:6c:73:fd:
httpd_1  |          37:ce:10:e9:7f:2a:b8:a7:63:d5:5a:ac:1e:e8:90:55:c9:65:
httpd_1  |          24:b5:04:85
httpd_1  | /etc/httpd/cert/main/localhost.crt: OK
httpd_1  | [INFO] Starting supervisord: 3.0
httpd_1  | 2018-07-06 09:25:56,679 CRIT Set uid to user 0
httpd_1  | 2018-07-06 09:25:56,681 INFO supervisord started with pid 1
php_1    | [INFO] Forwarding mysql:3306 to 127.0.0.1:3306 inside this docker.
php_1    | [INFO] Forwarding pgsql:5432 to 127.0.0.1:5432 inside this docker.
httpd_1  | 2018-07-06 09:25:57,683 INFO spawned: 'httpd' with pid 191
httpd_1  | 2018-07-06 09:25:57,685 INFO spawned: 'watcherd' with pid 192
httpd_1  | AH00112: Warning: DocumentRoot [/var/www/default/htdocs/] does not exist
httpd_1  | AH00112: Warning: DocumentRoot [/var/www/default/htdocs/] does not exist
httpd_1  | AH00112: Warning: DocumentRoot [/var/www/default/htdocs/] does not exist
httpd_1  | AH00112: Warning: DocumentRoot [/var/www/default/htdocs/] does not exist
httpd_1  | [Fri Jul 06 09:25:57.720834 2018] [mpm_event:notice] [pid 191:tid 140274322118528] AH00489: Apache/2.4.33 (Unix) OpenSSL/1.0.2l configured -- resuming normal operations
httpd_1  | [Fri Jul 06 09:25:57.720933 2018] [core:notice] [pid 191:tid 140274322118528] AH00094: Command line: 'httpd -D FOREGROUND'
php_1    | [INFO] Forwarding redis:6379 to 127.0.0.1:6379 inside this docker.
php_1    | [INFO] Forwarding memcd:11211 to 127.0.0.1:11211 inside this docker.
php_1    | [INFO] Forwarding mongo:27017 to 127.0.0.1:27017 inside this docker.
php_1    | [INFO] Enabling 'socat-3306-mysql-3306' to be started by supervisord
php_1    | [INFO] Enabling 'socat-5432-pgsql-5432' to be started by supervisord
php_1    | [INFO] Enabling 'socat-6379-redis-6379' to be started by supervisord
php_1    | [INFO] Enabling 'socat-11211-memcd-11211' to be started by supervisord
php_1    | [INFO] Enabling 'socat-27017-mongo-27017' to be started by supervisord
php_1    | [INFO] Enabling 'rsyslogd' to be started by supervisord
php_1    | [INFO] Enabling 'postfix' to be started by supervisord
php_1    | [INFO] Enabling 'php-fpm' to be started by supervisord
php_1    | [INFO] $ENABLE_MODULES set, but empty. Not enabling any PHP modules.
php_1    | [WARN] Enabling PHP Module: '' does not exist
php_1    | [INFO] $DISABLE_MODULES set, but empty. Not disabling any PHP modules.
php_1    | [INFO] $MYSQL_BACKUP_USER set for mysqldump-secure. Changing to 'root'
php_1    | [INFO] $MYSQL_BACKUP_PASS set for mysqldump-secure. Changing to '******'
php_1    | [INFO] $MYSQL_BACKUP_HOST set for mysqldump-secure. Changing to 'mysql'
php_1    | Updating certificates in /etc/ssl/certs...
httpd_1  | 2018-07-06 09:25:58,723 INFO success: httpd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
httpd_1  | 2018-07-06 09:25:58,723 INFO success: watcherd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
php_1    | 1 added, 0 removed; done.
php_1    | Running hooks in /etc/ca-certificates/update.d...
php_1    | done.
php_1    | [INFO] Starting supervisord
php_1    | 2018-07-06 09:25:59,807 CRIT Set uid to user 0
php_1    | 2018-07-06 09:25:59,807 INFO Included extra file "/etc/supervisor/conf.d/php-fpm.conf" during parsing
php_1    | 2018-07-06 09:25:59,807 INFO Included extra file "/etc/supervisor/conf.d/postfix.conf" during parsing
php_1    | 2018-07-06 09:25:59,807 INFO Included extra file "/etc/supervisor/conf.d/rsyslogd.conf" during parsing
php_1    | 2018-07-06 09:25:59,807 INFO Included extra file "/etc/supervisor/conf.d/socat-11211-memcd-11211.conf" during parsing
php_1    | 2018-07-06 09:25:59,807 INFO Included extra file "/etc/supervisor/conf.d/socat-27017-mongo-27017.conf" during parsing
php_1    | 2018-07-06 09:25:59,808 INFO Included extra file "/etc/supervisor/conf.d/socat-3306-mysql-3306.conf" during parsing
php_1    | 2018-07-06 09:25:59,808 INFO Included extra file "/etc/supervisor/conf.d/socat-5432-pgsql-5432.conf" during parsing
php_1    | 2018-07-06 09:25:59,808 INFO Included extra file "/etc/supervisor/conf.d/socat-6379-redis-6379.conf" during parsing
php_1    | 2018-07-06 09:25:59,809 INFO supervisord started with pid 1
httpd_1  | watcherd: [2018-07-06 09:26:00] Starting daemon.
httpd_1  | watcherd: [2018-07-06 09:26:00] Using bash loop to watch for changes.
php_1    | 2018-07-06 09:26:00,811 INFO spawned: 'rsyslogd' with pid 1917
php_1    | 2018-07-06 09:26:00,813 INFO spawned: 'socat-3306-mysql-3306' with pid 1918
php_1    | 2018-07-06 09:26:00,814 INFO spawned: 'socat-6379-redis-6379' with pid 1919
php_1    | 2018-07-06 09:26:00,816 INFO spawned: 'postfix' with pid 1920
php_1    | 2018-07-06 09:26:00,817 INFO spawned: 'socat-27017-mongo-27017' with pid 1922
php_1    | 2018-07-06 09:26:00,818 INFO spawned: 'php-fpm' with pid 1924
php_1    | 2018-07-06 09:26:00,819 INFO spawned: 'socat-11211-memcd-11211' with pid 1925
php_1    | 2018-07-06 09:26:00,821 INFO spawned: 'socat-5432-pgsql-5432' with pid 1926
php_1    | rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
php_1    | rsyslogd: activation of module imklog failed [v8.24.0 try http://www.rsyslog.com/e/2145 ]
php_1    | 2018-07-06 09:26:01,876 INFO success: rsyslogd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
php_1    | 2018-07-06 09:26:01,876 INFO success: socat-3306-mysql-3306 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
php_1    | 2018-07-06 09:26:01,876 INFO success: socat-6379-redis-6379 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
php_1    | 2018-07-06 09:26:01,876 INFO success: postfix entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
php_1    | 2018-07-06 09:26:01,877 INFO success: socat-27017-mongo-27017 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
php_1    | 2018-07-06 09:26:01,877 INFO success: php-fpm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
php_1    | 2018-07-06 09:26:01,877 INFO success: socat-11211-memcd-11211 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
php_1    | 2018-07-06 09:26:01,877 INFO success: socat-5432-pgsql-5432 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
cytopia commented 6 years ago

Please review .env and env-example

There was a change a few weeks ago that reverted enable and disable intranet. I guess now everybody has it disabled by default.

Do a diff on that file.

danemorgan commented 6 years ago

I'll check. I diff it every time I update, and I didn't update between these attempts.

danemorgan commented 6 years ago

I don't find any differences in the diff other than my changes to variables.

###
###  ---------------------------------------------------
###  D E V I L B O X   R U N - T I M E   S E T T I N G S
###  ---------------------------------------------------
###
###  All the following settings are applied during
###  $ docker-compose up
###
###  No need to rebuild any dockers!
###
###  For custom variables, scroll to the bottom
###

###
### Show all executed commands in each
### docker image during docker-compose up?
###
### 1: Yes
### 0: No
DEBUG_COMPOSE_ENTRYPOINT=1

###
### Log to file or Docker logs.
###
### Logging to file means log files are available under log/
### on your host operating system.
### Logging to Docker logs means log files are streamed to
### stdout and stderr.
###
### 1: Log to Docker logs
### 0: Log to file
###
DOCKER_LOGS=0

###
### Relative or absolute path to the devilbox repository.
### (Used as a prefix for all mount paths)
### There is no need to change this.
###
### The only exception is for OSX users wanting to use NFS
### mounts instead of Filesystem mounts due to degraded performance
### on OSX.
###
### Note: When changing this variable you must re-create the container.
###       Simply remove it, it will be auto-created during the next start:
###
### $ docker-compose rm -f
###
DEVILBOX_PATH=.

###
### At what IP address should the docker services listen
### on the Host computer?
###
### The specified default should be fine for Linux and OSX (127.0.0.1:).
### If you are on windows, you will probably have to change
### it to the IP address of the docker machine.
###
### a.) Leave blank, to listen on all interfaces (no trailing color ':')
###    LOCAL_LISTEN_ADDR=
### b.) If an IP is specified, note the trailing colon ':'
###    LOCAL_LISTEN_ADDR=127.0.0.1:
###
LOCAL_LISTEN_ADDR=

###
### This is the domain suffix your projects will be made available
### with mass-virtual-hosting.
### It is also required for the internal DNS server to be setup.
###
### Note: Only ALPHA ([a-zA-Z]+) characters are supported.
###
### Example:
###   TLD_SUFFIX=loc
### Makes your project available under xxxx.loc
###
### Example:
###   TLD_SUFFIX=local
### Makes your project available under xxxx.local
###
TLD_SUFFIX=com

###
### Optional DNS configuration
### Allows you to add extra DNS records (above the wildcard entry)
### Useful if your host computer run other Docker services that you want to connect to or reach
### from within the Devilbox network by a custom hostname.
###
### Format:
### -------
### Resolve any custom defined hostname to an IP address (useable inside container and host os)
###     EXTRA_HOSTS=<hostname>=<ip>[,<hostname>=<ip>]
###
### Resolve any custom defined hostname to whatever IP address a CNAME resolves to
### (Useable inside the container and host OS).
### Note: CNAME must be resolvable by Google DNS
###     EXTRA_HOSTS=<hostname>=<CNAME>[,<hostname>=<CNAME>]
###
### Examples:
### ---------
### EXTRA_HOSTS=hostname.loc=1.2.3.4
### EXTRA_HOSTS=host.loc=1.2.3.4,host.example.org=3.4.5.6
EXTRA_HOSTS=

###
### Set your user id and group id
###
### This should be changed to the value of your local
### users uid and gid
###
### Type `id` on the terminal to find out your values
###
NEW_UID=197609
NEW_GID=197609

###
### Timezone for all dockers and service config files
###
TIMEZONE=America/Chicago

################################################################################
###
### INTRANET SETTINGS
###
################################################################################

###
### TLD_SUFFIX domains are checked if they are set in the
### host computer /etc/hosts or available via attached DNS server.
### Timeout is done on vhosts.php (intranet) via ajax calls.
### In order to keep performance, set this to a low value.
### DNS checks might not succeed in time on slow machines.
### If DNS is valid, but timeout is expired, set this to a higher value.
###
### DNS_CHECK_TIMEOUT value is how many seconds to time out
### Default is to timeout after 1 second (DNS_CHECK_TIMEOUT=1)
###
DNS_CHECK_TIMEOUT=1

###
### Devilbox UI SSL Certificate generation
###
### When using SSL each certificate requires names for which it is responsible:
### Common Name as well as alternative names.
###
### Specify comma separated hostnames below by which you want to access the Devilbox.
### Those hostnames will be included in the SSL certificate for the Devilbox intranet.
### This has nothing to do for SSL certificates for projects, it is just for the intranet
### itself.
###
DEVILBOX_UI_SSL_CN=localhost,*.localhost,devilbox,*.devilbox

###
### Devilbox UI Password protection enable/disable (1/0)
###
### Set DEVILBOX_UI_PROTECT to 1 in order to password protect the
### intranet.
###
### Example:
###   DEVILBOX_UI_PROTECT=1
###   DEVILBOX_UI_PROTECT=0
###
DEVILBOX_UI_PROTECT=0

###
### Devilbox UI Password
###
### When DEVILBOX_UI_PROTECT=1, use the following password
### to log in. The password can always be changed.
### When changing the password, make sure to restart your
### PHP container.
###
### Example:
###   DEVILBOX_UI_PASSWORD=my-very-secure-password
###   DEVILBOX_UI_PASSWORD=Some pass with spaces
###
### The default username is 'devilbox'
###
DEVILBOX_UI_PASSWORD=password

###
### Enable the Devilbox Intranet?
###
### Example:
###   DEVILBOX_UI_ENABLE=1
###   DEVILBOX_UI_ENABLE=0
###
DEVILBOX_UI_ENABLE=1

################################################################################
###
### 1. Choose Images (Version)
###
################################################################################

###
### You can choose any combination of httpd, mysql, postgresql or php.
### Each of them are fully compatible between one another.
###

###
### 1.1 Choose PHP Server Image
###
#PHP_SERVER=5.3
#PHP_SERVER=5.4
#PHP_SERVER=5.5
#PHP_SERVER=5.6
PHP_SERVER=7.0
#PHP_SERVER=7.1
#PHP_SERVER=7.2
#PHP_SERVER=7.3

###
### 1.2 Choose HTTPD Server Image
###
#HTTPD_SERVER=apache-2.2
HTTPD_SERVER=apache-2.4
#HTTPD_SERVER=nginx-stable
#HTTPD_SERVER=nginx-mainline

###
### 1.3 Choose MySQL Server Image
###
#MYSQL_SERVER=mysql-5.5
#MYSQL_SERVER=mysql-5.6
#MYSQL_SERVER=mysql-5.7
#MYSQL_SERVER=mysql-8.0
MYSQL_SERVER=mariadb-5.5
#MYSQL_SERVER=mariadb-10.0
#MYSQL_SERVER=mariadb-10.1
#MYSQL_SERVER=mariadb-10.2
#MYSQL_SERVER=mariadb-10.3
#MYSQL_SERVER=percona-5.5
#MYSQL_SERVER=percona-5.6
#MYSQL_SERVER=percona-5.7

###
### 1.4 Choose PostgreSQL Server Image
###
#PGSQL_SERVER=9.1
#PGSQL_SERVER=9.2
#PGSQL_SERVER=9.3
#PGSQL_SERVER=9.4
#PGSQL_SERVER=9.5
PGSQL_SERVER=9.6
#PGSQL_SERVER=10.0
#PGSQL_SERVER=10.1
#PGSQL_SERVER=10.2
#PGSQL_SERVER=10.3

###
### 1.5 Choose Redis Server Image
###
#REDIS_SERVER=2.8
#REDIS_SERVER=3.0
#REDIS_SERVER=3.2
REDIS_SERVER=4.0

###
### 1.6 Choose Memcached Server Image
###
#MEMCD_SERVER=1.4.21
#MEMCD_SERVER=1.4.22
#MEMCD_SERVER=1.4.23
#MEMCD_SERVER=1.4.24
#MEMCD_SERVER=1.4.25
#MEMCD_SERVER=1.4.26
#MEMCD_SERVER=1.4.27
#MEMCD_SERVER=1.4.28
#MEMCD_SERVER=1.4.29
#MEMCD_SERVER=1.4.30
#MEMCD_SERVER=1.4.31
#MEMCD_SERVER=1.4.32
#MEMCD_SERVER=1.4.33
#MEMCD_SERVER=1.4.34
#MEMCD_SERVER=1.4.35
#MEMCD_SERVER=1.4.36
#MEMCD_SERVER=1.4.37
#MEMCD_SERVER=1.4.38
#MEMCD_SERVER=1.4.39
#MEMCD_SERVER=1.5.0
#MEMCD_SERVER=1.5.1
#MEMCD_SERVER=1.5.2
#MEMCD_SERVER=1.5.3
#MEMCD_SERVER=1.5.4
MEMCD_SERVER=1.5.5
#MEMCD_SERVER=latest

###
### 1.7 Choose Mongo Server Image
###
#MONGO_SERVER=2.8
#MONGO_SERVER=3.0
#MONGO_SERVER=3.2
MONGO_SERVER=3.4
#MONGO_SERVER=3.5
#MONGO_SERVER=3.6
#MONGO_SERVER=3.7

################################################################################
###
### 2. Host Mounts (Your computer)
###
################################################################################

###
### Local filesystem path to www projects.
###
### Note: When changing this variable you must re-create the container.
###       Simply remove it, it will be auto-created during the next start:
###
### $ docker-compose rm -f
###
HOST_PATH_HTTPD_DATADIR=./data/www/csm

###
### Local filesystem path to mysql/mariadb datadir.
###
### This can be an existing mysql data directory or empty.
### If it already is a mysql data directory with content,
### it will be mounted into the docker and used.
###
### If this directory is empty, a new mysql database will be
### created.
###
### Note: Inside this path, a subdirectory with the mysql|mariadb
###       version will be created where the actual data resides.
###       This is to protect databases from being altered by
###       newer or older mysql|mariadb server versions.
###
### Note: When changing this variable you must re-create the container.
###       Simply remove it, it will be auto-created during the next start:
###
### $ docker-compose rm -f
###
HOST_PATH_MYSQL_DATADIR=./data/mysql/csm

###
### Local filesystem path to postgresql datadir.
###
### This can be an existing postgresql data directory or empty.
### If it already is a postgresql data directory with content,
### it will be mounted into the docker and used.
###
### If this directory is empty, a new postgresql database will be
### created.
###
### Note: Inside this path, a subdirectory with the postgresql
###       version will be created where the actual data resides.
###       This is to protect databases from being altered by
###       newer or older postgres server versions.
###
### Note: When changing this variable you must re-create the container.
###       Simply remove it, it will be auto-created during the next start:
###
### $ docker-compose rm -f
###
HOST_PATH_PGSQL_DATADIR=./data/pgsql/csm

###
### Local filesystem path to mongodb datadir.
###
### This can be an existing mongodb data directory or empty.
### If it already is a mongodb data directory with content,
### it will be mounted into the docker and used.
###
### If this directory is empty, a new mongodb database will be
### created.
###
### Note: When changing this variable you must re-create the container.
###       Simply remove it, it will be auto-created during the next start:
###
### $ docker-compose rm -f
###
HOST_PATH_MONGO_DATADIR=./data/mongo/csm

################################################################################
###
### 3. PHP Docker Settings
###
################################################################################

###
### Enable certain PHP modules which are not enabled by default
###
### Currently the only module that can be enabled is 'ioncube'
###
### PHP_MODULES_ENABLE=ioncube
###
PHP_MODULES_ENABLE=

###
### Disable any PHP modules that you don't require
###
### Specify a comma separated list without spaces of modules to disable
###
### PHP_MODULES_DISABLE=xdebug,imagick,swoole
###
PHP_MODULES_DISABLE=

###
### Configure everything else about PHP in
### * cfg/php-ini-X.X/*.ini
### * cfg/php-fpm-X.X/*.conf

################################################################################
###
### 4. HTTPD Docker Settings
###
################################################################################

###
### Expose HTTPD Port to Host
###
HOST_PORT_HTTPD=80
HOST_PORT_HTTPD_SSL=443

###
### Document Root Subdirectory
###
### In your project directory, which subfolder should
### serve your files?
###
### When changing this value, restart the devilbox.
###
HTTPD_DOCROOT_DIR=public_html

###
### Per vHost Config Subdirectory
###
### In your project directory, which subfolder should
### hold apache, nginx templates for a customized vhost?
###
### When changing this value, restart the devilbox.
###
HTTPD_TEMPLATE_DIR=.devilbox

################################################################################
###
### 5. MySQL Docker Settings
###
################################################################################

###
### MySQL root user password
###
### If $HOST_PATH_MYSQL_DATADIR already contains an existing
### mysql datadir, enter the password for the existing mysql database
###
### If $HOST_PATH_MYSQL_DATADIR is empty, choose a new password that
### will be applied
###
MYSQL_ROOT_PASSWORD=mysql

###
### Custom MySQL Runtime Settings
###
MYSQL_GENERAL_LOG=0

###
### Expose MySQL Port to Host
###
HOST_PORT_MYSQL=3306

################################################################################
###
### 6. PostgreSQL Docker Settings
###
################################################################################

###
### PostgreSQL 'root' user name (usually postgres)
###
PGSQL_ROOT_USER=postgres

###
### PostgreSQL 'root' user password
###
PGSQL_ROOT_PASSWORD=

###
### Expose PostgreSQL Port to Host
###
HOST_PORT_PGSQL=5432

################################################################################
###
### 7. Redis Docker Settings
###
################################################################################

###
### Expose Redis Port to Host
###
HOST_PORT_REDIS=6379

################################################################################
###
### 8. Memcached Docker Settings
###
################################################################################

###
### Expose Memcached Port to Host
###
HOST_PORT_MEMCD=11211

################################################################################
###
### 9. MongoDB Docker Settings
###
################################################################################

###
### Expose MongoDB Port to Host
###
HOST_PORT_MONGO=27017

################################################################################
###
### 10. Bind Docker Settings
###
################################################################################

###
### Expose Bind Port to Host
###
HOST_PORT_BIND=1053

###
### Add comma separated DNS server from which you want to receive DNS
### You can also add DNS servers from your LAN (if any are available)
###
BIND_DNS_RESOLVER=8.8.8.8,8.8.4.4

###
### Validate DNSSEC
###
### Values:
###  no:    DNSSEC validation is disabled
###  yes:   DNSSEC validation is enabled, but a trust anchor must be manually configured.
###  auto:  DNSSEC validation is enabled, and a default trust anchor for root zone is used.
###
BIND_DNSSEC_VALIDATE=no

###
### Bind timing options (time in seconds)
###
### Leave empty for defaults.
### Only change when you know what you are doing.
###
BIND_TTL_TIME=
BIND_REFRESH_TIME=
BIND_RETRY_TIME=
BIND_EXPIRY_TIME=
BIND_MAX_CACHE_TIME=

###
### Show DNS Queries in Docker logs output?
###
### 1: Yes
### 0: No
BIND_LOG_DNS_QUERIES=0

################################################################################
###
### 11. Custom variables
###
################################################################################

###
### Any variable defined in this file will be available
### as environment variables to your PHP/HHV Docker container.
###
### This might be useful to set application environment and retrieve
### them via: <?php getenv('MY_APPLICATION_ENV'); ?>
###

###
### Example:
### <?php echo getenv('Foo'); ?> would produce: 'some value'
###
#Foo=some value
cytopia commented 6 years ago

It came to my mind because your output a few comments above complained about the following missing variables from .env

WARNING: The PHP_MODULES_ENABLE variable is not set. Defaulting to a blank string.
WARNING: The PHP_MODULES_DISABLE variable is not set. Defaulting to a blank string.

Nevertheless, I organized a windows machine now. If the above doesn't fix it. Please let me know all steps and I will try to reproduce it

danemorgan commented 6 years ago

But those variables are empty in the current environment example that I have right now. I'm on the master branch. I've been getting that complaint since a few updates back. I'm not sure what to put in those and it didn't seem to break anything so I ignored it.

###
### Enable certain PHP modules which are not enabled by default
###
### Currently the only module that can be enabled is 'ioncube'
###
### PHP_MODULES_ENABLE=ioncube
###
PHP_MODULES_ENABLE=

###
### Disable any PHP modules that you don't require
###
### Specify a comma separated list without spaces of modules to disable
###
### PHP_MODULES_DISABLE=xdebug,imagick,swoole
###
PHP_MODULES_DISABLE=
danemorgan commented 6 years ago

As far as steps. All I have right now is enter docker-compose up httpd php bind and get a long string of log entries and then hang.

cytopia commented 6 years ago

No I actually see the problem. watcherd is somehow stuck and not continuing.

httpd_1  | watcherd: [2018-07-06 09:26:00] Using bash loop to watch for changes.

So can you paste the tree output of your projects directory to see if there's anything special in terms of filenames that might prevent it to loop.

Also are you on Docker Toolbox or Native Windows Docker?

danemorgan commented 6 years ago

My tree is huge. I have several WordPress installations on it. Is there something, in particular, I should look for?

I am using Docker Community Edition Version 18.03.1-ce-win65 (17513) Channel: stable 93354b3

danemorgan commented 6 years ago

Maybe dropbox is locking something?

I'll reboot and see if that helps.

danemorgan commented 6 years ago

I made a new devilbox with the tree below and I still get the same result. Are you sure it isn't something to do with this?

| rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
php_1    | rsyslogd: activation of module imklog failed [v8.24.0 try http://www.rsyslog.com/e/2145 ]

Here is the tree from the new box.

λ tree
Folder PATH listing for volume SSD
Volume serial number is 000001B1 BE3A:136B
C:.
└───www
    └───dev.cacherz
        └───public_html
cytopia commented 6 years ago

| rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted. php_1 | rsyslogd: activation of module imklog failed [v8.24.0 try http://www.rsyslog.com/e/2145 ]

This is fine and expected inside Docker.

In order to repdroduce, I still nee to know:

Also are you on Docker Toolbox or Native Windows Docker?

danemorgan commented 6 years ago

I've said a couple of times that I am using Docker for Windows Community edition.

Docker Community Edition Version 18.03.1-ce-win65 (17513) Channel: stable 93354b3

https://store.docker.com/editions/community/docker-ce-desktop-windows

danemorgan commented 6 years ago

2018-07-06_18h55_45

cytopia commented 6 years ago

What I can see from your docker logs:

httpd_1  | AH00112: Warning: DocumentRoot [/var/www/default/htdocs/] does not exist
httpd_1  | AH00112: Warning: DocumentRoot [/var/www/default/htdocs/] does not exist
httpd_1  | AH00112: Warning: DocumentRoot [/var/www/default/htdocs/] does not exist
httpd_1  | AH00112: Warning: DocumentRoot [/var/www/default/htdocs/] does not exist

is that the directory (and probably no directory at all) is not being mounted into the Docker container.

  1. Here's an article that describes how to allow volumes to be mounted in Windows Docker: https://rominirani.com/docker-on-windows-mounting-host-directories-d96f3f056a2c
  2. Here's an huge thread about volumes not mounted on windows: https://forums.docker.com/t/volume-mounts-in-windows-does-not-work/10693
cytopia commented 6 years ago

@danemorgan can you:

  1. stop all containers
  2. make sure they are all stopped
  3. Check out this PR: https://github.com/cytopia/devilbox/pull/309
  4. Reboot
  5. Try again
cytopia commented 6 years ago

@danemorgan @chrizz1001 PR has been merged to master (https://github.com/cytopia/devilbox/pull/309), can you report back if this fixes your issue

danemorgan commented 6 years ago

I reset my Credentials with Docker and now it is working again.

I note that I have a couple of portable drives that I connect and dis connect from this computer at different times and I wonder if I need to reset my credentials each time I change the drive configurations.

When I initially went in it was not showing two of the drives, but when I reset the credentials they showed up.

The only volume I am sharing is a permanent volume, but this almost feels like if the configuration changes, even if it doesn't affect the volume I amd sharing for Docker, it invalidates the credentials?

cytopia commented 6 years ago

@danemorgan

This is something you might want to discuss on Docker Forums itself.

So just to sum it up:

Resetting the Credentials fixes this issue? If so, then I have at least something to add to the troubleshooting section.

danemorgan commented 6 years ago

Yes, basically, when you asked me to try the new commit, I tried it and the issue was still there. I still had empty folder when I shelled in and did an ls.

I then went reading through the forum posts you had pointed out previously which discussed some of the problems that a lot of us have when initially setting up Docker for Windows, in that we cannot get it to share our drives. It took me nearly a week of reading numerous trouble tickets, forum threads, and blog posts and trying many procedures to get my c: drive shared with Docker, to begin with before I even got to install and run Devilbox.

While reading this section I was looking at different settings to make sure they had not changed and I noticed that a couple of my drives were not displayed. That seemed odd, so I decided to try resetting my Windows credentials with Docker, and the drives showed up, but c: was no longer shared, none of them were shared. so I reset and reshared my c: drive, then fired up my Devilbox and it worked exactly as expected.

I'm not sure where or what to tell the Docker people. I know it may not be fair to you, but my only interest in Docker is in it powering my Devilbox. I understand very, very little about it, and everything I have done with it has been according to the instructions in the Devilbox manual.

I am very much NOT a server guy, I just want a local server that I can know as little as possible about to work on WordPress themes and plugins locally and push my work out through GIT. I'm doing it with Devilbox because so far it's the most approachable way to do this for me with an actual Linux environment that closely approximates the servers I run the real sites on.

cytopia commented 6 years ago

@danemorgan thanks for the in-depth explanation.

cytopia commented 6 years ago

@danemorgan I have added the documentation: https://devilbox.readthedocs.io/en/latest/support/troubleshooting.html#sudden-unexplained-problems-on-windows