Merge pull request #283 from cytopia/documentation-fixes

Documentation cleanup
This commit is contained in:
cytopia 2018-06-04 18:24:56 +02:00 committed by GitHub
commit cbdc036422
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
62 changed files with 1449 additions and 1577 deletions

1
.gitignore vendored
View File

@ -80,6 +80,7 @@ docker-compose.override.yml
/docs/_build/
/docs/make.bat
/docs/Makefile
*.rst.todo
# Keep folders
!.keepme

View File

@ -1,3 +1,8 @@
###
### Enable Python support
###
language: python
###
### Enable sudo (required for docker service)
###
@ -15,6 +20,11 @@ services:
### Specify combinations
###
env:
###
### Check Documentation
###
- S1=DOCUMENTATION
###
### The matrix specifies 2 versions to compare against each other.
### As PHP (any version) needs to be able to run with everything,
@ -88,27 +98,37 @@ env:
###
### Build Matrix definition
### Installation
###
#matrix:
# allow_failures:
# - env: S1=PHP V1=hhvm-latest S2=HTTPD V2=apache-2.2
#
install:
# Install dependencies for documentation
- if [ "${S1}" = "DOCUMENTATION" ]; then
pip install sphinx;
pip install sphinx-autobuild;
pip install recommonmark;
pip install sphinx_rtd_theme;
fi
###
### Berfore Install
###
before_install:
# Get newer docker version
- max=100; i=0; while [ $i -lt $max ]; do if sudo apt-get update; then break; else i=$((i+1)); fi done
- max=100; i=0; while [ $i -lt $max ]; do if sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce; then break; else i=$((i+1)); fi done
# Get newer docker-compose version
- max=100; i=0; while [ $i -lt $max ]; do if curl -L --retry 100 --retry-max-time 0 https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > docker-compose; then break; else i=$((i+1)); fi done
- chmod +x docker-compose
- sudo mv -f docker-compose /usr/local/bin
# List versions
- docker version
- docker-compose version
# Install dependencies for docker/docker-compose
- if [ "${S1}" != "DOCUMENTATION" ]; then
max=100; i=0;
while [ $i -lt $max ]; do
if sudo apt-get update; then break; else i=$((i+1)); fi
done;
max=100; i=0;
while [ $i -lt $max ]; do
if sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce; then break; else i=$((i+1)); fi
done;
max=100; i=0;
while [ $i -lt $max ]; do
if curl -L --retry 100 --retry-max-time 0 https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > docker-compose; then break; else i=$((i+1)); fi
done;
chmod +x docker-compose;
sudo mv -f docker-compose /usr/local/bin;
fi
###
@ -130,9 +150,27 @@ before_script:
- sudo service mongodb stop || true
- netstat -tulpn
# Show Python/pip
- if [ "${S1}" = "DOCUMENTATION" ]; then
pip freeze;
pip --version;
python --version;
fi
# Show Docker/Docker Compose
- if [ "${S1}" != "DOCUMENTATION" ]; then
docker --version;
docker-compose --version;
fi
###
### Test
###
script:
- .tests/test_single.sh . "${S1}" "${V1}" "${S2}" "${V2}"
- if [ "${S1}" = "DOCUMENTATION" ]; then
cd docs/;
sphinx-build -a -W -E -j auto -n -v . _build/html/;
else
.tests/test_single.sh . "${S1}" "${V1}" "${S2}" "${V2}";
fi

View File

@ -23,8 +23,13 @@ You can also build the documentation locally before pushing to ensure everything
sudo pip install sphinx sphinx-autobuild
sudo pip install sphinx_rtd_theme
```
#### How to build and error-check
```
cd docs/
sphinx-build -a -E -j auto -n -q . _build/html/
```
#### How to build
#### How to build continuously
```
cd docs/
sphinx-autobuild . _build/html

View File

@ -9,6 +9,20 @@
background-color: #343131;
}
/* Disable annoying scrollbar in code-blocks */
.codeblock,
pre.literal-block,
.rst-content .literal-block,
.rst-content pre.literal-block,
.rst-content div[class^='highlight'],
div[class^='highlight'] {
overflow: hidden !important;
}
/* bg color for code windows */
.highlight {
background-color: #ffffff !important;
}
/*
div.rtd-pro.rtd-pro-footer {
display: none;

View File

@ -17,13 +17,13 @@ Shell commands
.. code-block:: bash
host> command
host> command
2. This one indicates that the command should be executed inside the currently selected PHP container. (When copying commands, do not copy the ``php>`` part).
.. code-block:: bash
php> command
php> command
Checklists

View File

@ -11,9 +11,9 @@ custom configurations.
.. seealso:: If you are rather using Nginx, have a look at: :ref:`nginx_conf`
.. important::
You could actually also create virtual hosts here, but it is recommended to use the
Devilbox Auto-vhost generation feature. If you want to custimize your current virtual hosts
have a look at :ref:`custom_vhost`.
You could actually also create virtual hosts here, but it is recommended to use the
Devilbox Auto-vhost generation feature. If you want to custimize your current virtual hosts
have a look at :ref:`custom_vhost`.
**Table of Contents**
@ -29,10 +29,10 @@ See the directory structure for Apache configuration directories inside ``./cfg/
.. code-block:: bash
host> ls -l path/to/devilbox/cfg/ | grep 'apache'
host> ls -l path/to/devilbox/cfg/ | grep 'apache'
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 apache-2.2/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 apache-2.4/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 apache-2.2/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 apache-2.4/
Customization is achieved by placing a file into ``cfg/apache-X.X/`` (where ``X.X`` stands for
your Apache version). The file must end by ``.conf`` in order to be sourced by the web server.
@ -59,31 +59,30 @@ Apache 2.2.
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to Apache 2.2 config directory
host> cd cfg/apache-2.2
# Navigate to Apache 2.2 config directory
host> cd cfg/apache-2.2
# Create new conf file
host> touch keep_alive.conf
# Create new conf file
host> touch keep_alive.conf
Now add the following content to the file:
.. code-block:: ini
:name: keep_alive.conf
:caption: keep_alive.conf
:caption: keep_alive.conf
KeepAlive On
KeepAliveTimeout 10
MaxKeepAliveRequests 100
KeepAlive On
KeepAliveTimeout 10
MaxKeepAliveRequests 100
In order to apply the changes you need to restart the Devilbox.
.. note::
The above is just an example demonstration, you probably need other values for your setup.
So make sure to understand how to configure Apache, if you are going to change any of those
settings.
The above is just an example demonstration, you probably need other values for your setup.
So make sure to understand how to configure Apache, if you are going to change any of those
settings.
Limit HTTP headers and GET size for Apache 2.4
@ -99,31 +98,30 @@ for Apache 2.4.
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to Apache 2.4 config directory
host> cd cfg/apache-2.4
# Navigate to Apache 2.4 config directory
host> cd cfg/apache-2.4
# Create new conf file
host> touch limits.conf
# Create new conf file
host> touch limits.conf
Now add the following content to the file:
.. code-block:: ini
:name: limits.conf
:caption: limits.conf
:caption: limits.conf
# Limit amount of HTTP headers a client can send to the server
LimitRequestFields 20
LimitRequestFieldSize 4094
# Limit amount of HTTP headers a client can send to the server
LimitRequestFields 20
LimitRequestFieldSize 4094
# URL GET size
LimitRequestLine 2048
# URL GET size
LimitRequestLine 2048
In order to apply the changes you need to restart the Devilbox.
.. note::
The above is just an example demonstration, you probably need other values for your setup.
So make sure to understand how to configure Apache, if you are going to change any of those
settings.
The above is just an example demonstration, you probably need other values for your setup.
So make sure to understand how to configure Apache, if you are going to change any of those
settings.

View File

@ -43,22 +43,21 @@ by ``.sh`` and place it into the ``./bash/`` directory:
.. code-block:: bash
# Navigate to the Devilbox git directory
host> cd path/to/devilbox
# Navigate to the Devilbox git directory
host> cd path/to/devilbox
# Create a new file
host> touch ./bash/aliases.sh
# Create a new file
host> touch ./bash/aliases.sh
# Add some content to the file
host> vi ./bash/aliases.sh
# Add some content to the file
host> vi ./bash/aliases.sh
.. code-block:: bash
:name: ./bash/aliases.sh
:caption: ./bash/aliases.sh
:caption: ./bash/aliases.sh
alias l='ls -a'
alias ll='ls -al'
alias www='cd /shared/httpd'
alias l='ls -a'
alias ll='ls -al'
alias www='cd /shared/httpd'
Custom vim configuration
@ -72,11 +71,11 @@ First of all, place your favorite ``.vimrc`` into the ``./bash/`` directory
.. code-block:: bash
# Navigate to the Devilbox git directory
host> cd path/to/devilbox
# Navigate to the Devilbox git directory
host> cd path/to/devilbox
# Copy your vim config to the ./bash directory
host> cp ~/.vimrc bash/.vimrc
# Copy your vim config to the ./bash directory
host> cp ~/.vimrc bash/.vimrc
Right now, this is not going to do anything and as ``.vimrc`` is not ending by ``.sh`` it is also
ignored by the shell itself. What is now left to do, is make vim itself always use this config file.
@ -87,20 +86,19 @@ that will always use this file:
.. code-block:: bash
# Navigate to the Devilbox git directory
host> cd path/to/devilbox
# Navigate to the Devilbox git directory
host> cd path/to/devilbox
# Create a new file
host> touch ./bash/vim.sh
# Create a new file
host> touch ./bash/vim.sh
# Add your vim alias
host> vi ./bash/vim.sh
# Add your vim alias
host> vi ./bash/vim.sh
.. code-block:: bash
:name: ./bash/vim.sh
:caption: ./bash/vim.sh
:caption: ./bash/vim.sh
alias vim='vim -u /etc/bashrc-devilbox.d/.vimrc
alias vim='vim -u /etc/bashrc-devilbox.d/.vimrc'
Whenever you start ``vim`` inside any PHP container, it will automatically use the provided vim
configuration file.

View File

@ -25,8 +25,8 @@ Copy example file
.. code-block:: bash
host> cd path/to/devilbox
host> cp docker-compose.override.yml-example docker-compose.override.yml
host> cd path/to/devilbox
host> cp docker-compose.override.yml-example docker-compose.override.yml
Create new file from scratch
@ -38,30 +38,27 @@ Create new file from scratch
.. code-block:: bash
# Create an empty file
host> cd path/to/devilbox
host> touch docker-compose.override.yml
# Create an empty file
host> cd path/to/devilbox
host> touch docker-compose.override.yml
# Retrieve the current version
host> grep ^version docker-compose.yml
version: '2.1'
# Retrieve the current version
host> grep ^version docker-compose.yml
version: '2.1'
# Add this version line to docker-compose.override.yml
host> echo "version: '2.1'" > docker-compose.override.yml
# Add this version line to docker-compose.override.yml
host> echo "version: '2.1'" > docker-compose.override.yml
Let's see again how this file should look like now:
.. code-block:: yaml
:name: docker-compose.override.yml
:caption: docker-compose.override.yml
version: '2.1'
:caption: docker-compose.override.yml
version: '2.1'
.. note::
The documentation might be outdated and the version number might already be higher.
Rely on the output of the ``grep`` command.
The documentation might be outdated and the version number might already be higher.
Rely on the output of the ``grep`` command.
Further reading
@ -71,5 +68,5 @@ To dive deeper into this topic and see how to actually add new services or overw
services follow the below listed links:
.. seealso::
* :ref:`add_your_own_docker_image`
* :ref:`overwrite_existing_docker_image`
* :ref:`add_your_own_docker_image`
* :ref:`overwrite_existing_docker_image`

View File

@ -10,4 +10,4 @@ It is very tempting to just change this file in order to add new services to the
However your git directory will become dirty and you will always have to stash your changes before pulling new features from remote. To overcome this Docker Compose offers a default override file (``docker-compose.override.yml``) that let's you specify custom changes as well as completely new services without having to touch the default ``docker-compose.yml``.
.. seealso::
To find out more read :ref:`docker_compose_override_yml`
To find out more read :ref:`docker_compose_override_yml`

View File

@ -62,61 +62,61 @@ The ``./log/`` directory itself will contain subdirectories in the form ``<servi
which will then hold all available log files.
.. note::
Log directories do not exist until you start the Devilbox and will only be created for
the service versions you have enabled in ``.env``.
Log directories do not exist until you start the Devilbox and will only be created for
the service versions you have enabled in ``.env``.
The log directory structure would look something like this:
.. code-block:: bash
host> cd path/to/devilbox
host> tree log
host> cd path/to/devilbox
host> tree log
log/
├── nginx-stable/
│   ├── nginx-stable/
│   ├── defaultlocalhost-access.log
│   ├── defaultlocalhost-error.log
│   ├── <project-name>-access.log # Each project has its own access log
│   ├── <project-name>-error.log # Each project has its own error log
├── mariadb-10.1/
│   ├── error.log
│   ├── query.log
│   ├── slow.log
├── php-fpm-7.1/
│   ├── php-fpm.access
│   ├── php-fpm.error
log/
├── nginx-stable/
│   ├── nginx-stable/
│   ├── defaultlocalhost-access.log
│   ├── defaultlocalhost-error.log
│   ├── <project-name>-access.log # Each project has its own access log
│   ├── <project-name>-error.log # Each project has its own error log
├── mariadb-10.1/
│   ├── error.log
│   ├── query.log
│   ├── slow.log
├── php-fpm-7.1/
│   ├── php-fpm.access
│   ├── php-fpm.error
When you want to read logs sent to Docker logs, you can do so via the following command:
.. code-block:: bash
:emphasize-lines: 2
:emphasize-lines: 2
host> cd path/to/devilbox
host> docker-compose logs
host> cd path/to/devilbox
host> docker-compose logs
When you want to continuously watch the log output (such as ``tail -f``), you need to append ``-f``
to the command.
.. code-block:: bash
:emphasize-lines: 2
:emphasize-lines: 2
host> cd path/to/devilbox
host> docker-compose logs -f
host> cd path/to/devilbox
host> docker-compose logs -f
When you only want to have logs displayed for a single service, you can also append the service
name (works with or without ``-f`` as well):
.. code-block:: bash
:emphasize-lines: 2
:emphasize-lines: 2
host> cd path/to/devilbox
host> docker-compose logs php -f
host> cd path/to/devilbox
host> docker-compose logs php -f
.. important::
Currently this is only implemented for PHP-FPM and HTTPD Docker container.
MySQL will always output its logs to file and all other official Docker container
always output to Docker logs.
Currently this is only implemented for PHP-FPM and HTTPD Docker container.
MySQL will always output its logs to file and all other official Docker container
always output to Docker logs.
DEVILBOX_PATH
@ -226,24 +226,23 @@ this project visible to everyone in your corporate LAN.
+-------------+----------------+---------------------------+
.. warning::
Do not use ``dev`` as a domain suffix (I know, it's tempting).
It has been registered by
`Google <https://icannwiki.org/.dev>`_ and they advertise the
`HSTS header <https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security>`_
which makes your browser redirect every http request to https.
Do not use ``dev`` as a domain suffix (I know, it's tempting).
It has been registered by
`Google <https://icannwiki.org/.dev>`_ and they advertise the
`HSTS header <https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security>`_
which makes your browser redirect every http request to https.
**See also:** `This blog post <https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts>`_
**See also:** `This blog post <https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts>`_
.. warning::
Do not use ``localhost`` as a domain suffix.
There is an RFC draft to make sure all localhost requests, including their sub domains
should be redirected to the systems loopback interface.
Docker has already released a commit preventing the use of ``localhost`` on MacOS.
Do not use ``localhost`` as a domain suffix.
There is an RFC draft to make sure all localhost requests, including their sub domains
should be redirected to the systems loopback interface.
Docker has already released a commit preventing the use of ``localhost`` on MacOS.
**See also:** `RFC Draft <https://tools.ietf.org/html/draft-west-let-localhost-be-localhost-06>`_
and
`Docker Release notes <https://docs.docker.com/docker-for-mac/release-notes/#docker-community-edition-17120-ce-mac46-2018-01-09>`_
**See also:** `RFC Draft <https://tools.ietf.org/html/draft-west-let-localhost-be-localhost-06>`_
and
`Docker Release notes <https://docs.docker.com/docker-for-mac/release-notes/#docker-community-edition-17120-ce-mac46-2018-01-09>`_
.. _env_extra_hosts:
@ -269,13 +268,13 @@ The general structure to add extra hosts looks like this
.. code-block:: bash
# Single host
EXTRA_HOSTS='hostname=1.1.1.1'
EXTRA_HOSTS='hostname=CNAME'
# Single host
EXTRA_HOSTS='hostname=1.1.1.1'
EXTRA_HOSTS='hostname=CNAME'
# Multiple hosts
EXTRA_HOSTS='hostname1=1.1.1.1,hostname2=2.2.2.2'
EXTRA_HOSTS='hostname1=CNAME1,hostname2=CNAME2'
# Multiple hosts
EXTRA_HOSTS='hostname1=1.1.1.1,hostname2=2.2.2.2'
EXTRA_HOSTS='hostname1=CNAME1,hostname2=CNAME2'
* The left side represents the name by which the host will be available by
* The right side represents the IP address by which the new name will resolve to
@ -285,32 +284,32 @@ A few examples for adding extra hosts:
.. code-block:: bash
# 1. One entry:
# The following extra host 'loc' is added and will always point to 192.168.0.7.
# When reverse resolving '192.168.0.7' it will answer with 'tld'.
EXTRA_HOSTS='loc=192.168.0.7'
# 1. One entry:
# The following extra host 'loc' is added and will always point to 192.168.0.7.
# When reverse resolving '192.168.0.7' it will answer with 'tld'.
EXTRA_HOSTS='loc=192.168.0.7'
# 2. One entry:
# The following extra host 'my.host.loc' is added and will always point to 192.168.0.9.
# When reverse resolving '192.168.0.9' it will answer with 'my.host'.
EXTRA_HOSTS='my.host.loc=192.168.0.9'
# 2. One entry:
# The following extra host 'my.host.loc' is added and will always point to 192.168.0.9.
# When reverse resolving '192.168.0.9' it will answer with 'my.host'.
EXTRA_HOSTS='my.host.loc=192.168.0.9'
# 3. Two entries:
# The following extra host 'tld' is added and will always point to 192.168.0.1.
# When reverse resolving '192.168.0.1' it will answer with 'tld'.
# A second extra host 'example.org' is added and always redirects to 192.168.0.2
# When reverse resolving '192.168.0.2' it will answer with 'example.org'.
EXTRA_HOSTS='tld=192.168.0.1,example.org=192.168.0.2'
# 3. Two entries:
# The following extra host 'tld' is added and will always point to 192.168.0.1.
# When reverse resolving '192.168.0.1' it will answer with 'tld'.
# A second extra host 'example.org' is added and always redirects to 192.168.0.2
# When reverse resolving '192.168.0.2' it will answer with 'example.org'.
EXTRA_HOSTS='tld=192.168.0.1,example.org=192.168.0.2'
# 4. Using CNAME's for resolving:
# The following extra host 'my.host' is added and will always point to whatever
# IP example.org resolves to.
# When reverse resolving '192.168.0.1' it will answer with 'my.host'.
EXTRA_HOSTS='my.host=example.org'
# 4. Using CNAME's for resolving:
# The following extra host 'my.host' is added and will always point to whatever
# IP example.org resolves to.
# When reverse resolving '192.168.0.1' it will answer with 'my.host'.
EXTRA_HOSTS='my.host=example.org'
.. seealso::
This resembles the feature of `Docker Compose: extra_hosts <https://docs.docker.com/compose/compose-file/#external_links>`_ to add external links.
This resembles the feature of `Docker Compose: extra_hosts <https://docs.docker.com/compose/compose-file/#external_links>`_ to add external links.
.. seealso:: :ref:`communicating_with_external_hosts`
@ -329,8 +328,8 @@ How do you find out your user id?
.. code-block:: bash
host> id -u
1000
host> id -u
1000
In most cases (on Linux and MacOS), this will be ``1000`` if you are the first and only user on
your system, however it could also be a different value.
@ -363,8 +362,8 @@ How do you find out your group id?
.. code-block:: bash
host> id -g
1000
host> id -g
1000
In most cases (on Linux and MacOS), this will be ``1000`` if you are the first and only user on
your system, however it could also be a different value.
@ -534,7 +533,6 @@ All values are already available in the ``.env`` file and just need to be commen
.. code-block:: bash
:caption: .env
:name: .env
:emphasize-lines: 7
host> grep PHP_SERVER .env
@ -566,7 +564,6 @@ All values are already available in the ``.env`` file and just need to be commen
.. code-block:: bash
:caption: .env
:name: .env
:emphasize-lines: 5
host> grep HTTPD_SERVER .env
@ -594,7 +591,6 @@ All values are already available in the ``.env`` file and just need to be commen
.. code-block:: bash
:caption: .env
:name: .env
:emphasize-lines: 9
host> grep MYSQL_SERVER .env
@ -630,7 +626,6 @@ All values are already available in the ``.env`` file and just need to be commen
.. code-block:: bash
:caption: .env
:name: .env
:emphasize-lines: 8
host> grep PGSQL_SERVER .env
@ -666,7 +661,6 @@ All values are already available in the ``.env`` file and just need to be commen
.. code-block:: bash
:caption: .env
:name: .env
:emphasize-lines: 6
host> grep REDIS_SERVER .env
@ -699,7 +693,6 @@ All values are already available in the ``.env`` file and just need to be commen
.. code-block:: bash
:caption: .env
:name: .env
:emphasize-lines: 24
host> grep MEMCD_SERVER .env
@ -751,7 +744,6 @@ All values are already available in the ``.env`` file and just need to be commen
.. code-block:: bash
:caption: .env
:name: .env
:emphasize-lines: 6
host> grep MONGO_SERVER .env
@ -814,9 +806,8 @@ like this:
.. code-block:: bash
:caption: .env
:name: .env
HOST_PATH_HTTPD_DATADIR=/home/myuser/workspace/web
HOST_PATH_HTTPD_DATADIR=/home/myuser/workspace/web
Mapping
^^^^^^^
@ -862,18 +853,18 @@ The directory structure will look something like this:
.. code-block:: bash
host> ls -l ./data/mysql/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mariadb-10.0/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mariadb-10.1/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mariadb-10.2/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mariadb-10.3/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mysql-5.5/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mysql-5.6/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mysql-5.7/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mysql-8.0/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 percona-5.5/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 percona-5.6/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 percona-5.7/
host> ls -l ./data/mysql/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mariadb-10.0/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mariadb-10.1/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mariadb-10.2/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mariadb-10.3/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mysql-5.5/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mysql-5.6/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mysql-5.7/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mysql-8.0/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 percona-5.5/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 percona-5.6/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 percona-5.7/
.. warning::
:ref:`remove_stopped_container`
@ -908,13 +899,13 @@ The directory structure will look something like this:
.. code-block:: bash
host> ls -l ./data/pgsql/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.1/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.2/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.3/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.4/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.5/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.6/
host> ls -l ./data/pgsql/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.1/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.2/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.3/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.4/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.5/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.6/
.. warning::
:ref:`remove_stopped_container`
@ -949,12 +940,12 @@ The directory structure will look something like this:
.. code-block:: bash
host> ls -l ./data/mongo/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 2.8/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 3.0/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 3.2/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 3.4/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 3.5/
host> ls -l ./data/mongo/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 2.8/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 3.0/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 3.2/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 3.4/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 3.5/
.. warning::
:ref:`remove_stopped_container`
@ -976,13 +967,13 @@ Open a terminal and type the following:
.. code-block:: bash
host> netstat -an | grep 'LISTEN\s'
tcp 0 0 127.0.0.1:53585 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:37715 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:58555 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:48573 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:34591 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN
host> netstat -an | grep 'LISTEN\s'
tcp 0 0 127.0.0.1:53585 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:37715 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:58555 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:48573 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:34591 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN
**How to list used ports on Windows**
@ -990,12 +981,12 @@ Open the command prompt and type the following:
.. code-block:: bash
C:\WINDOWS\system32> netstat -an
Proto Local Address Foreign Address State
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
TCP 0.0.0.0:145 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1875 0.0.0.0:0 LISTENING
C:\WINDOWS\system32> netstat -an
Proto Local Address Foreign Address State
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
TCP 0.0.0.0:145 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1875 0.0.0.0:0 LISTENING
.. warning::
:ref:`docker_toolbox`
@ -1029,7 +1020,7 @@ The port to expose for the web server (Apache or Nginx) for HTTPS (SSL) requests
+--------------------------+-------------------+------------------+
| Name | Allowed values | Default value |
+==========================+===================+==================+
| ``HOST_PORT_HTTPD_SSL`` | ``1`` - ``65535`` | ``443`` |
| ``HOST_PORT_HTTPD_SSL`` | ``1`` - ``65535`` | ``443`` |
+--------------------------+-------------------+------------------+
@ -1139,13 +1130,12 @@ Enable any non-standard PHP modules in a comma separated list.
+------------------------+--------------------------------------+------------------+
.. note::
Currently only ``ioncube`` is available to enable.
Currently only ``ioncube`` is available to enable.
Example:
.. code-block:: bash
:caption: .env
:name: .env
:emphasize-lines: 2
# Enable ionCube
@ -1166,7 +1156,6 @@ Example:
.. code-block:: bash
:caption: .env
:name: .env
:emphasize-lines: 2
# Disable Xdebug, Imagick and Swoole
@ -1184,7 +1173,6 @@ production, for example: ``APPLICATION_ENV``, you can just add this to the ``.en
.. code-block:: bash
:caption: .env
:name: .env
:emphasize-lines: 3
host> grep APPLICATION_ENV .env
@ -1195,7 +1183,6 @@ Within your php application/file you can then access this variable via the ``get
.. code-block:: php
:caption: index.php
:name: index.php
:emphasize-lines: 3
<?php
@ -1257,15 +1244,15 @@ Let's have a look how the directory is actually built up:
.. code-block:: bash
:emphasize-lines: 4
# Project directory
host> ls -l data/www/my-first-project/
total 4
drwxr-xr-x 2 cytopia cytopia 4096 Mar 12 23:05 htdocs/
# Project directory
host> ls -l data/www/my-first-project/
total 4
drwxr-xr-x 2 cytopia cytopia 4096 Mar 12 23:05 htdocs/
# htdocs directory inside your project directory
host> ls -l data/www/my-first-project/htdocs
total 4
-rw-r--r-- 1 cytopia cytopia 87 Mar 12 23:05 index.php
# htdocs directory inside your project directory
host> ls -l data/www/my-first-project/htdocs
total 4
-rw-r--r-- 1 cytopia cytopia 87 Mar 12 23:05 index.php
By calling your proect url, the ``index.php`` file will be served.
@ -1280,16 +1267,16 @@ Let's have a look how the directory is actually built up:
.. code-block:: bash
:emphasize-lines: 5
# Project directory
host> ls -l data/www/my-first-project/
total 4
drwxr-xr-x 2 cytopia cytopia 4096 Mar 12 23:05 cakephp/
lrwxrwxrwx 1 cytopia cytopia 15 Mar 17 09:36 htdocs -> cakephp/webroot/
# Project directory
host> ls -l data/www/my-first-project/
total 4
drwxr-xr-x 2 cytopia cytopia 4096 Mar 12 23:05 cakephp/
lrwxrwxrwx 1 cytopia cytopia 15 Mar 17 09:36 htdocs -> cakephp/webroot/
# htdocs directory inside your project directory
host> ls -l data/www/my-first-project/htdocs
total 4
-rw-r--r-- 1 cytopia cytopia 87 Mar 12 23:05 index.php
# htdocs directory inside your project directory
host> ls -l data/www/my-first-project/htdocs
total 4
-rw-r--r-- 1 cytopia cytopia 87 Mar 12 23:05 index.php
As you can see, the web server is still able to server the files from the ``htdocs`` location,
this time however, ``htdocs`` itself is a symlink pointing to a much deeper and nested location
@ -1320,10 +1307,10 @@ Let's have a look at an imaginary project directory called ``my-first-project``:
.. code-block:: bash
# Project directory
host> ls -l data/www/my-first-project/
total 4
drwxr-xr-x 2 cytopia cytopia 4096 Mar 12 23:05 htdocs/
# Project directory
host> ls -l data/www/my-first-project/
total 4
drwxr-xr-x 2 cytopia cytopia 4096 Mar 12 23:05 htdocs/
Inside this your project directory you will need to create another directory which is called
``.devilbox`` by default. If you change the ``HTTPD_TEMPLATE_DIR`` variable to something else,
@ -1332,13 +1319,13 @@ you will have to create a directory by whatever name you chose for that variable
.. code-block:: bash
:emphasize-lines: 3,6
# Project directory
host> cd data/www/my-first-project/
host> mkdir .devilbox
host> ls -l
total 4
drwxr-xr-x 2 cytopia cytopia 4096 Mar 12 23:05 .devilbox/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 12 23:05 htdocs/
# Project directory
host> cd data/www/my-first-project/
host> mkdir .devilbox
host> ls -l
total 4
drwxr-xr-x 2 cytopia cytopia 4096 Mar 12 23:05 .devilbox/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 12 23:05 htdocs/
Now you need to copy the ``vhost-gen`` templates into the ``.devilbox`` directory. The templates
are available in the Devilbox git directory under ``templates/vhost-gen/``.
@ -1350,11 +1337,11 @@ present.
.. code-block:: bash
:emphasize-lines: 5
# Navigate into the devilbox directory
host> cd path/to/devilbox
# Navigate into the devilbox directory
host> cd path/to/devilbox
# Copy templates to your project directory
host> cp templates/vhost-gen/* data/www/my-first-project/.devilbox/
# Copy templates to your project directory
host> cp templates/vhost-gen/* data/www/my-first-project/.devilbox/
Let's have a look how the directory is actually built up:
@ -1362,35 +1349,35 @@ Let's have a look how the directory is actually built up:
.. code-block:: bash
:emphasize-lines: 4,8
# Project directory
host> ls -l data/www/my-first-project/
total 4
drwxr-xr-x 2 cytopia cytopia 4096 Mar 12 23:05 .devilbox/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 12 23:05 htdocs/
# Project directory
host> ls -l data/www/my-first-project/
total 4
drwxr-xr-x 2 cytopia cytopia 4096 Mar 12 23:05 .devilbox/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 12 23:05 htdocs/
# template directory inside your project directory
host> ls -l data/www/my-first-project/htdocs/.devilbox
total 4
-rw-r--r-- 1 cytopia cytopia 87 Mar 12 23:05 apache22.yml
-rw-r--r-- 1 cytopia cytopia 87 Mar 12 23:05 apache24.yml
-rw-r--r-- 1 cytopia cytopia 87 Mar 12 23:05 nginx.yml
# template directory inside your project directory
host> ls -l data/www/my-first-project/htdocs/.devilbox
total 4
-rw-r--r-- 1 cytopia cytopia 87 Mar 12 23:05 apache22.yml
-rw-r--r-- 1 cytopia cytopia 87 Mar 12 23:05 apache24.yml
-rw-r--r-- 1 cytopia cytopia 87 Mar 12 23:05 nginx.yml
The three files ``apache22.yml``, ``apache24.yml`` and ``nginx.yml`` let you customize your web
servers virtual host to anything from adding rewrite rules, overwriting directory index to even
changing the server name or adding locations to other assets.
.. seealso::
The whole process is based on a project called `vhost-gen <https://github.com/devilbox/vhost-gen>`_.
A virtual host generator for Apache 2.2, Apache 2.4 and any Nginx version.
The whole process is based on a project called `vhost-gen <https://github.com/devilbox/vhost-gen>`_.
A virtual host generator for Apache 2.2, Apache 2.4 and any Nginx version.
.. seealso::
**Customize your virtual host**
When you want to find out more how to actually customize each virtual host to its own need,
read up more on :ref:`custom_vhost`.
**Tutorials**
Also have a look at this tutorial which is a walk-through showing you how to modify
a virtual host and make it serve all files for multiple sub domains (server names):
:ref:`tutorial_adding_sub_domains`
**Customize your virtual host**
When you want to find out more how to actually customize each virtual host to its own need,
read up more on :ref:`custom_vhost`.
**Tutorials**
Also have a look at this tutorial which is a walk-through showing you how to modify
a virtual host and make it serve all files for multiple sub domains (server names):
:ref:`tutorial_adding_sub_domains`
MySQL
@ -1413,7 +1400,7 @@ be able to display information inside the bundled intranet.
+-------------------------+-------------------+---------------------+
.. warning::
Keep this variable in sync with the actual MySQL root password.
Keep this variable in sync with the actual MySQL root password.
MYSQL_GENERAL_LOG
@ -1452,7 +1439,7 @@ connect to PostgreSQL and will not be able to display information inside the bun
+-------------------------+---------------------+---------------------+
.. warning::
Keep this variable in sync with the actual PostgreSQL username.
Keep this variable in sync with the actual PostgreSQL username.
PGSQL_ROOT_PASSWORD
@ -1470,7 +1457,7 @@ connect to PostgreSQL and will not be able to display information inside the bun
+-------------------------+---------------------+---------------------+
.. warning::
Keep this variable in sync with the actual PostgreSQL password.
Keep this variable in sync with the actual PostgreSQL password.
Bind
@ -1497,14 +1484,14 @@ Some examples:
.. code-block:: bash
BIND_DNS_RESOLVER='8.8.8.8'
BIND_DNS_RESOLVER='8.8.8.8,192.168.0.10'
BIND_DNS_RESOLVER='8.8.8.8'
BIND_DNS_RESOLVER='8.8.8.8,192.168.0.10'
.. note::
If you don't trust the Google DNS server, then set it to something else.
If you already have a DNS server inside your LAN and also want your custom DNS (if any)
to be available inside the containers, set the value to its IP address.
If you don't trust the Google DNS server, then set it to something else.
If you already have a DNS server inside your LAN and also want your custom DNS (if any)
to be available inside the containers, set the value to its IP address.
BIND_DNSSEC_VALIDATE
@ -1550,8 +1537,8 @@ This variable controls the DNS TTL in seconds. If empty or removed it will fallb
.. seealso::
* `BIND TTL <http://www.zytrax.com/books/dns/apa/ttl.html>`_
* `BIND SOA <http://www.zytrax.com/books/dns/ch8/soa.html>`_
* `BIND TTL <http://www.zytrax.com/books/dns/apa/ttl.html>`_
* `BIND SOA <http://www.zytrax.com/books/dns/ch8/soa.html>`_
BIND_REFRESH_TIME
^^^^^^^^^^^^^^^^^

View File

@ -10,10 +10,10 @@ MySQL version.
.. important::
When using :ref:`docker_toolbox` on Windows, ``*.cnf`` files must have read-only file
permissions, otherwise they are not sourced by the MySQL server.
When using :ref:`docker_toolbox` on Windows, ``*.cnf`` files must have read-only file
permissions, otherwise they are not sourced by the MySQL server.
Make sure to ``chmod 0444 *.cnf`` after adding your values.
Make sure to ``chmod 0444 *.cnf`` after adding your values.
**Table of Contents**
@ -29,19 +29,19 @@ See the directory structure for MySQL configuration directories inside ``./cfg/`
.. code-block:: bash
host> ls -l path/to/devilbox/cfg/ | grep -E 'mysql|mariadb|percona'
host> ls -l path/to/devilbox/cfg/ | grep -E 'mysql|mariadb|percona'
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mariadb-10.0/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mariadb-10.1/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mariadb-10.2/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mariadb-10.3/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mysql-5.5/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mysql-5.6/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mysql-5.7/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mysql-8.0/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 percona-5.5/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 percona-5.6/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 percona-5.7/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mariadb-10.0/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mariadb-10.1/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mariadb-10.2/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mariadb-10.3/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mysql-5.5/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mysql-5.6/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mysql-5.7/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mysql-8.0/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 percona-5.5/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 percona-5.6/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 percona-5.7/
Customization is achieved by placing a file into ``cfg/mysql-X.X/``, ``cfg/mariadb-X.X/`` or
``cfg/percona-X-X`` (where ``X.X`` stands for your MySQL version).
@ -66,23 +66,22 @@ of MySQL 5.5 to 16 MB.
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to MySQL 5.5 config directory
host> cd cfg/mysql-5.5
# Navigate to MySQL 5.5 config directory
host> cd cfg/mysql-5.5
# Create new cnf file
host> touch key_buffer_size.cnf
# Create new cnf file
host> touch key_buffer_size.cnf
Now add the following content to the file:
.. code-block:: ini
:name: memory_limit.cnf
:caption: memory_limit.cnf
:caption: memory_limit.cnf
[mysqld]
key_buffer_size=16M
[mysqld]
key_buffer_size=16M
In order to apply the changes you need to restart the Devilbox.
You can validate that the changes have taken place by visiting the Devilbox intranet MySQL info page.
@ -99,24 +98,23 @@ of PerconaDB 5.7
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to PerconaDB 5.7 config directory
host> cd cfg/percona-5.7
# Navigate to PerconaDB 5.7 config directory
host> cd cfg/percona-5.7
# Create new ini file
host> touch timeouts.cnf
# Create new ini file
host> touch timeouts.cnf
Now add the following content to the file:
.. code-block:: ini
:name: timeouts.cnf
:caption: timeouts.cnf
:caption: timeouts.cnf
[mysqld]
max_allowed_packet=256M
wait_timeout = 86400
[mysqld]
max_allowed_packet=256M
wait_timeout = 86400
In order to apply the changes you need to restart the Devilbox.
You can validate that the changes have taken place by visiting the Devilbox intranet MySQL info page.

View File

@ -11,9 +11,9 @@ supplying custom configurations.
.. seealso:: If you are rather using Apache, have a look at: :ref:`apache_conf`
.. important::
You could actually also create virtual hosts here, but it is recommended to use the
Devilbox Auto-vhost generation feature. If you want to custimize your current virtual hosts
have a look at :ref:`custom_vhost`.
You could actually also create virtual hosts here, but it is recommended to use the
Devilbox Auto-vhost generation feature. If you want to custimize your current virtual hosts
have a look at :ref:`custom_vhost`.
**Table of Contents**
@ -29,10 +29,10 @@ See the directory structure for Nginx configuration directories inside ``./cfg/`
.. code-block:: bash
host> ls -l path/to/devilbox/cfg/ | grep 'nginx'
host> ls -l path/to/devilbox/cfg/ | grep 'nginx'
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 nginx-mainline/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 nginx-stable/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 nginx-mainline/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 nginx-stable/
Customization is achieved by placing a file into ``cfg/nginx-X/`` (where ``X`` stands for
your Nginx flavoour). The file must end by ``.conf`` in order to be sourced by the web server.
@ -59,31 +59,30 @@ values of Nginx stable.
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to Nginx stable config directory
host> cd cfg/nginx-stable
# Navigate to Nginx stable config directory
host> cd cfg/nginx-stable
# Create new conf file
host> touch keep_alive.conf
# Create new conf file
host> touch keep_alive.conf
Now add the following content to the file:
.. code-block:: ini
:name: keep_alive.conf
:caption: keep_alive.conf
:caption: keep_alive.conf
keepalive 10;
keepalive_timeout 10s;
keepalive_requests 100;
keepalive 10;
keepalive_timeout 10s;
keepalive_requests 100;
In order to apply the changes you need to restart the Devilbox.
.. note::
The above is just an example demonstration, you probably need other values for your setup.
So make sure to understand how to configure Nginx, if you are going to change any of those
settings.
The above is just an example demonstration, you probably need other values for your setup.
So make sure to understand how to configure Nginx, if you are going to change any of those
settings.
Adjust timeout settings for Nginx mainline
@ -98,28 +97,27 @@ and
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to Nginx mainline config directory
host> cd cfg/nginx-mainline
# Navigate to Nginx mainline config directory
host> cd cfg/nginx-mainline
# Create new conf file
host> touch timeouts.conf
# Create new conf file
host> touch timeouts.conf
Now add the following content to the file:
.. code-block:: ini
:name: timeouts.conf
:caption: timeouts.conf
:caption: timeouts.conf
client_body_timeout 60s;
client_header_timeout 60s;
send_timeout 60s;
client_body_timeout 60s;
client_header_timeout 60s;
send_timeout 60s;
In order to apply the changes you need to restart the Devilbox.
.. note::
The above is just an example demonstration, you probably need other values for your setup.
So make sure to understand how to configure Nginx, if you are going to change any of those
settings.
The above is just an example demonstration, you probably need other values for your setup.
So make sure to understand how to configure Nginx, if you are going to change any of those
settings.

View File

@ -22,23 +22,23 @@ These changes affect the PHP-FPM process itself, global as well as pool specific
be set.
.. note::
The default PHP-FPM pool is called ``www`` in case you want to make changes to it.
The default PHP-FPM pool is called ``www`` in case you want to make changes to it.
See the directory structure for PHP-FPM configuration directories inside ``./cfg/`` directory:
.. code-block:: bash
host> ls -l path/to/devilbox/cfg/ | grep 'php-fpm'
host> ls -l path/to/devilbox/cfg/ | grep 'php-fpm'
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-5.3/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-5.4/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-5.5/
drwxr-xr-x 2 cytopia cytopia 4096 Apr 3 22:04 php-fpm-5.6/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-7.0/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-7.1/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-7.2/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-7.3/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-5.3/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-5.4/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-5.5/
drwxr-xr-x 2 cytopia cytopia 4096 Apr 3 22:04 php-fpm-5.6/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-7.0/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-7.1/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-7.2/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-7.3/
Customization is achieved by placing a file into ``cfg/php-fpm-X.X/`` (where ``X.X`` stands for
your PHP version). The file must end by ``.conf`` in order to be sourced by the PHP-FPM server.
@ -50,8 +50,8 @@ This file holds some example values that can be adjusted or commented out.
In order for the changes to be applied, you will have to restart the Devilbox.
.. seealso::
To find out about all available PHP-FPM directives, global or pool specific have a look
at its documentation: https://secure.php.net/manual/en/install.fpm.configuration.php
To find out about all available PHP-FPM directives, global or pool specific have a look
at its documentation: https://secure.php.net/manual/en/install.fpm.configuration.php
Examples
@ -66,23 +66,22 @@ of PHP-FPM 7.1 master process to 100.
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to PHP 7.1 config directory
host> cd cfg/php-fpm-7.1
# Navigate to PHP 7.1 config directory
host> cd cfg/php-fpm-7.1
# Create new conf file
host> touch rlimit.conf
# Create new conf file
host> touch rlimit.conf
Now add the following content to the file:
.. code-block:: ini
:name: rlimit.conf
:caption: rlimit.conf
:caption: rlimit.conf
[global]
rlimit_core = 100
[global]
rlimit_core = 100
.. important:: Note the ``[global]`` section.
@ -103,28 +102,27 @@ of PHP-FPM 5.6 on pool ``www``.
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to PHP 5.6 config directory
host> cd cfg/php-fpm-5.6
# Navigate to PHP 5.6 config directory
host> cd cfg/php-fpm-5.6
# Create new conf file
host> touch www_server.conf
# Create new conf file
host> touch www_server.conf
Now add the following content to the file:
.. code-block:: ini
:name: www_server.conf
:caption: www_server.conf
:caption: www_server.conf
[www]
; Pool config
pm = dynamic
pm.max_children = 10
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 5
[www]
; Pool config
pm = dynamic
pm.max_children = 10
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 5
.. important:: Note the ``[www]`` section.
@ -146,33 +144,32 @@ The following example will disable built-in PHP functions globally and non-overw
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to PHP 7.0 config directory
host> cd cfg/php-fpm-7.0
# Navigate to PHP 7.0 config directory
host> cd cfg/php-fpm-7.0
# Create new conf file
host> touch admin.conf
# Create new conf file
host> touch admin.conf
Now add the following content to the file:
.. code-block:: ini
:name: admin.conf
:caption: admin.conf
:caption: admin.conf
[www]
php_admin_value[disable_functions] = link,symlink,popen,exec,system,shell_exec
[www]
php_admin_value[disable_functions] = link,symlink,popen,exec,system,shell_exec
.. important:: Note the ``[www]`` section.
.. important::
This kind of setting only has affects PHP files served through PHP-FPM, when you run php
on the command line, this setting will be ignored.
This kind of setting only has affects PHP files served through PHP-FPM, when you run php
on the command line, this setting will be ignored.
.. important::
Be aware that none of your projects can use the above disabled functions anymore.
They will simply not exist for PHP 7.0 after that configuration took affect.
Be aware that none of your projects can use the above disabled functions anymore.
They will simply not exist for PHP 7.0 after that configuration took affect.
In order to apply the changes you need to restart the Devilbox.

View File

@ -22,16 +22,16 @@ See the directory structure for PHP configuration directories inside ``./cfg/``
.. code-block:: bash
host> ls -l path/to/devilbox/cfg/ | grep 'php-ini'
host> ls -l path/to/devilbox/cfg/ | grep 'php-ini'
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-5.3/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-5.4/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-5.5/
drwxr-xr-x 2 cytopia cytopia 4096 Apr 3 22:04 php-ini-5.6/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-7.0/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-7.1/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-7.2/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-7.3/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-5.3/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-5.4/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-5.5/
drwxr-xr-x 2 cytopia cytopia 4096 Apr 3 22:04 php-ini-5.6/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-7.0/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-7.1/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-7.2/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-7.3/
Customization is achieved by placing a file into ``cfg/php-ini-X.X/`` (where ``X.X`` stands for
your PHP version). The file must end by ``.ini`` in order to be sourced by the PHP-FPM server.
@ -55,23 +55,22 @@ The following examples shows you how to change the
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to PHP 7.1 config directory
host> cd cfg/php-ini-7.1
# Navigate to PHP 7.1 config directory
host> cd cfg/php-ini-7.1
# Create new ini file
host> touch memory_limit.ini
# Create new ini file
host> touch memory_limit.ini
Now add the following content to the file:
.. code-block:: ini
:name: memory_limit.ini
:caption: memory_limit.ini
:caption: memory_limit.ini
[PHP]
memory_limit = 4096M
[PHP]
memory_limit = 4096M
In order to apply the changes you need to restart the Devilbox.
You can validate that the changes have taken place by visiting the Devilbox intranet phpinfo page.
@ -87,24 +86,23 @@ of PHP 5.6.
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to PHP 5.6 config directory
host> cd cfg/php-ini-5.6
# Navigate to PHP 5.6 config directory
host> cd cfg/php-ini-5.6
# Create new ini file
host> touch timeouts.ini
# Create new ini file
host> touch timeouts.ini
Now add the following content to the file:
.. code-block:: ini
:name: timeouts.ini
:caption: timeouts.ini
:caption: timeouts.ini
[PHP]
max_execution_time = 180
max_input_time = 180
[PHP]
max_execution_time = 180
max_input_time = 180
In order to apply the changes you need to restart the Devilbox.
You can validate that the changes have taken place by visiting the Devilbox intranet phpinfo page.

View File

@ -8,8 +8,8 @@ If you don't want to add DNS records manually for every project, you can also us
DNS server and use it's DNS catch-all feature to have all DNS records automatically available.
.. important::
By default, the DNS server is set to listen on ``1053`` to avoid port collisions during startup.
You need to change it to ``53`` in ``.env`` via :ref:`env_host_port_bind`.
By default, the DNS server is set to listen on ``1053`` to avoid port collisions during startup.
You need to change it to ``53`` in ``.env`` via :ref:`env_host_port_bind`.
**Table of Contents**
@ -34,34 +34,32 @@ Prerequisites
First ensure that :ref:`env_local_listen_addr` is either empty or listening on ``127.0.0.1``.
.. code-block:: bash
:caption: .env
:name: .env
:emphasize-lines: 3
:caption: .env
:emphasize-lines: 3
host> cd path/to/devilbox
host> vi .env
LOCAL_LISTEN_ADDR=
host> cd path/to/devilbox
host> vi .env
LOCAL_LISTEN_ADDR=
Then you need to ensure that :ref:`env_host_port_bind` is set to ``53``.
.. code-block:: bash
:caption: .env
:name: .env
:emphasize-lines: 3
:caption: .env
:emphasize-lines: 3
host> cd path/to/devilbox
host> vi .env
HOST_PORT_BIND=53
host> cd path/to/devilbox
host> vi .env
HOST_PORT_BIND=53
Before starting up the Devilbox, ensure that port ``53`` is not already used on ``127.0.0.1``.
.. code-block:: bash
:emphasize-lines: 2
:emphasize-lines: 2
host> netstat -an | grep -E 'LISTEN\s*$'
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:43477 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:50267 0.0.0.0:* LISTEN
host> netstat -an | grep -E 'LISTEN\s*$'
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:43477 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:50267 0.0.0.0:* LISTEN
If you see port ``53`` already being used as in the above example, ensure to stop any
DNS resolver, otherwise it does not work.
@ -70,9 +68,9 @@ The output should look like this (It is only important that there is no ``:53``.
.. code-block:: bash
host> netstat -an | grep -E 'LISTEN\s*$'
tcp 0 0 127.0.0.1:43477 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:50267 0.0.0.0:* LISTEN
host> netstat -an | grep -E 'LISTEN\s*$'
tcp 0 0 127.0.0.1:43477 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:50267 0.0.0.0:* LISTEN
Linux
@ -91,20 +89,19 @@ are changed, you always want to have an additional entry, which is the one from
Add the following line to to the very beginning to ``/etc/dhcp/dhclient.conf``:
.. code-block:: bash
:caption: /etc/dhcp/dhclient.conf
:name: /etc/dhcp/dhclient.conf
:caption: /etc/dhcp/dhclient.conf
prepend domain-name-servers 127.0.0.1;
prepend domain-name-servers 127.0.0.1;
When you do that for the first time, you need to restart the ``network-manager`` service.
.. code-block:: bash
# Via service command
host> sudo service network-manager restart
# Via service command
host> sudo service network-manager restart
# Or the systemd way
host> sudo systemctl restart network-manager
# Or the systemd way
host> sudo systemctl restart network-manager
This will make sure that whenever your /etc/resolv.conf is deployed, you will have ``127.0.0.1``
as the first entry and also make use of any other DNS server which are deployed via the LAN's DHCP server.
@ -120,33 +117,31 @@ In case you are using systemd-resolved instead of NetworkManager, add the follow
the very beginning to ``/etc/resolv.conf.head``:
.. code-block:: bash
:caption: /etc/resolv.conf.head
:name: /etc/resolv.conf.head
:caption: /etc/resolv.conf.head
nameserver 127.0.0.1
nameserver 127.0.0.1
Prevent NetworkManager from modifying ``/etc/resolv.conf`` and leave everything to
systemd-resolved by adding the following line under the ``[main]`` section of
``/etc/NetworkManager/NetworkManager.conf``
.. code-block:: bash
:caption: /etc/NetworkManager/NetworkManager.conf
:name: /etc/NetworkManager/NetworkManager.conf
:caption: /etc/NetworkManager/NetworkManager.conf
dns=none
dns=none
As a last step you will have to restart ``systemd-resolved``.
.. code-block:: bash
host> sudo systemctl stop systemd-resolved
host> sudo systemctl start systemd-resolved
host> sudo systemctl stop systemd-resolved
host> sudo systemctl start systemd-resolved
Once done, you can verify if the new DNS settings are effective:
.. code-block:: bash
host> systemd-resolve --status
host> systemd-resolve --status
.. seealso:: `Archlinux Wiki: resolv.conf <https://wiki.archlinux.org/index.php/Resolv.conf#Modify_the_dhcpcd_config>`_

View File

@ -1,3 +0,0 @@
****
BIND
****

View File

@ -1,3 +0,0 @@
*****************
Devilbox Intranet
*****************

View File

@ -38,11 +38,11 @@ manually, i.e. they are not overwritten.
.. code-block:: bash
host> cd path/to/devilbox
host> ls -l ca/
-rw-r--r-- 1 cytopia cytopia 1558 May 2 11:12 devilbox-ca.crt
-rw------- 1 cytopia cytopia 1675 May 2 11:12 devilbox-ca.key
-rw-r--r-- 1 cytopia cytopia 17 May 4 08:35 devilbox-ca.srl
host> cd path/to/devilbox
host> ls -l ca/
-rw-r--r-- 1 cytopia cytopia 1558 May 2 11:12 devilbox-ca.crt
-rw------- 1 cytopia cytopia 1675 May 2 11:12 devilbox-ca.key
-rw-r--r-- 1 cytopia cytopia 17 May 4 08:35 devilbox-ca.srl
SSL Certificates
@ -60,8 +60,8 @@ into your browser ones and all current projects and future projects will automat
valid and trusted SSL certificates without any further work.
.. important::
Importing the CA into the browser is also recommended and required for the Devilbox
intranet page to work properly.
Importing the CA into the browser is also recommended and required for the Devilbox
intranet page to work properly.
Import the CA into your browser

View File

@ -1,3 +0,0 @@
*********
Memcached
*********

View File

@ -1,3 +0,0 @@
*******
MongoDB
*******

View File

@ -1,3 +0,0 @@
*****
MySQL
*****

View File

@ -1,5 +0,0 @@
***
PHP
***
Environment variables

View File

@ -1,3 +0,0 @@
*****
Redis
*****

View File

@ -1,57 +0,0 @@
.. _configuration_webserver:
**********
Web server
**********
This page lists a general overview about the bundled web server - its features,
where it comes from, how it is built and what configuration is possible.
**Table of Contents**
.. contents:: :local:
Features
========
Auto-virtual hosts
------------------
File permission problem
------------------------
Custom global configuration
---------------------------
Custom vhost configuration
--------------------------
Information
===========
Dockerfile
----------
Github
------
Dockerhub
---------
Build process
-------------
Configuration
=============
.env file
---------
apache.conf / nginx.conf
------------------------
vhost-gen
---------

View File

@ -23,12 +23,12 @@ listening ports.
.. seealso::
If you intend to use ``vhost-gen`` for your own projects, have a look at its projcet page and
its sister projects:
If you intend to use ``vhost-gen`` for your own projects, have a look at its projcet page and
its sister projects:
* `vhost-gen <https://github.com/devilbox/vhost-gen>`_
* `watcherd <https://github.com/devilbox/watcherd>`_
* `watcherp <https://github.com/devilbox/watcherp>`_
* `vhost-gen <https://github.com/devilbox/vhost-gen>`_
* `watcherd <https://github.com/devilbox/watcherd>`_
* `watcherp <https://github.com/devilbox/watcherp>`_
Where do I find templates
@ -99,7 +99,7 @@ it will change the `Project template path` which you need to create yourself.
For this example we will keep the default value for the sake of simplicity: ``.devilxbox``.
.. note::
The :ref:`env_httpd_template_dir` value is a global setting and will affect all projects.
The :ref:`env_httpd_template_dir` value is a global setting and will affect all projects.
2. Copy webserver template to project template directory
@ -109,23 +109,23 @@ First you need to ensure that the :ref:`env_httpd_template_dir` exists wihin you
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd /home/user/devilbox
# Navigate to the Devilbox directory
host> cd /home/user/devilbox
# Create template directory in your project
host> mkdir ./data/www/project-1/.devilbox
# Create template directory in your project
host> mkdir ./data/www/project-1/.devilbox
Then you can copy the templates.
.. code-block:: bash
host> cp templates/vhost-gen/* ./data/www/project-1/.devilbox
host> cp templates/vhost-gen/* ./data/www/project-1/.devilbox
.. note::
You actually only need to copy the template of your chosen webserver (either Apache 2.2,
Apache 2.4 or Nginx), however it is good practice to copy all templates and also adjust
all templates synchronously. This allows you to change web server versions and still
keep your virtual host settings.
You actually only need to copy the template of your chosen webserver (either Apache 2.2,
Apache 2.4 or Nginx), however it is good practice to copy all templates and also adjust
all templates synchronously. This allows you to change web server versions and still
keep your virtual host settings.
3. Adjust template
^^^^^^^^^^^^^^^^^^
@ -167,42 +167,42 @@ needs to be in place for what webserver version.
+----------------+------------------+
.. note::
Nginx stable and mainline share the same template as their syntax has no special
differences, whereas Apache 2.2 and Apache 2.4 have slight differences in syntax and therefore
require two different templates.
Nginx stable and mainline share the same template as their syntax has no special
differences, whereas Apache 2.2 and Apache 2.4 have slight differences in syntax and therefore
require two different templates.
Ensure yaml files are valid
---------------------------
.. warning::
Pay close attention that you do not use TAB (``\t``) characters for indenting the vhost-gen
yaml files. Some editors might automatically indent using TABs, so ensure they are replaced
with spaces. If TAB characters are present, those files become invalid and won't work.
https://github.com/cytopia/devilbox/issues/142
Pay close attention that you do not use TAB (``\t``) characters for indenting the vhost-gen
yaml files. Some editors might automatically indent using TABs, so ensure they are replaced
with spaces. If TAB characters are present, those files become invalid and won't work.
https://github.com/cytopia/devilbox/issues/142
You can use the bundled ``yamllint`` binary inside the container to validate your config.
You can use the bundled ``yamllint`` binary inside the container to validate your config.
.. code-block:: bash
:emphasize-lines: 13-16
# Navigate to the Devilbox directory
host> cd /home/user/devilbox
# Navigate to the Devilbox directory
host> cd /home/user/devilbox
# Enter the PHP container
host> ./shell.sh
# Enter the PHP container
host> ./shell.sh
# Go to your project's template directory
devilbox@php-7.0.19 in /shared/httpd $ cd project-1/.devilbox
# Go to your project's template directory
devilbox@php-7.0.19 in /shared/httpd $ cd project-1/.devilbox
# Check the syntax of apache22.yml
devilbox@php-7.0.19 in /shared/httpd/project-1/.devilbox $ yamllint apache22.yml
# Check the syntax of apache22.yml
devilbox@php-7.0.19 in /shared/httpd/project-1/.devilbox $ yamllint apache22.yml
108:81 error line too long (90 > 80 characters) (line-length)
139:81 error line too long (100 > 80 characters) (line-length)
140:81 error line too long (84 > 80 characters) (line-length)
142:81 error line too long (137 > 80 characters) (line-length)
108:81 error line too long (90 > 80 characters) (line-length)
139:81 error line too long (100 > 80 characters) (line-length)
140:81 error line too long (84 > 80 characters) (line-length)
142:81 error line too long (137 > 80 characters) (line-length)
Long line errors can safely be ignored.
@ -280,29 +280,29 @@ look like this:
.. code-block:: yaml
vhost: |
<VirtualHost *:80>
ServerName example.com
vhost: |
<VirtualHost *:80>
ServerName example.com
CustomLog "/var/log/apache/access.log" combined
ErrorLog "/var/log/apache/error.log"
CustomLog "/var/log/apache/access.log" combined
ErrorLog "/var/log/apache/error.log"
DocumentRoot "/shared/httpd/project-1/htdocs"
<Directory "/shared/httpd/project-1/htdocs">
DirectoryIndex index.php
DocumentRoot "/shared/httpd/project-1/htdocs"
<Directory "/shared/httpd/project-1/htdocs">
DirectoryIndex index.php
AllowOverride All
Options All
AllowOverride All
Options All
RewriteEngine on
RewriteBase /
RewriteEngine on
RewriteBase /
Order allow,deny
Allow from all
</Directory>
Order allow,deny
Allow from all
</Directory>
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/shared/httpd/project-1/htdocs/$1
</VirtualHost>
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/shared/httpd/project-1/htdocs/$1
</VirtualHost>
2. ``vhost_type:``
^^^^^^^^^^^^^^^^^^
@ -360,34 +360,34 @@ Rename project directory
.. code-block:: bash
# Navigate to the data directory
host> /home/user/devilbox/data/www
# Navigate to the data directory
host> /home/user/devilbox/data/www
# Rename your project to something else
host> mv project-1 project-1.tmp
# Rename your project to something else
host> mv project-1 project-1.tmp
# Rename your project to its original name
host> mv project-1.tmp project-1
# Rename your project to its original name
host> mv project-1.tmp project-1
If you want to understand what is going on right now, check the docker logs for the web server.
.. code-block:: bash
# Navigate to the devilbox directory
host> /home/user/devilbox
# Navigate to the devilbox directory
host> /home/user/devilbox
# Check docker logs
host> docker-compose logs httpd
# Check docker logs
host> docker-compose logs httpd
httpd_1 | vhostgen: [2018-03-18 11:46:52] Adding: project-1.tmp.loc
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] ADD: succeeded: /shared/httpd/project-1.tmp
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] DEL: succeeded: /shared/httpd/project-1
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] TRIGGER succeeded: /usr/local/apache2/bin/httpd -k restart
httpd_1 | vhostgen: [2018-03-18 11:46:52] Adding: project-1.tmp.loc
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] ADD: succeeded: /shared/httpd/project-1.tmp
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] DEL: succeeded: /shared/httpd/project-1
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] TRIGGER succeeded: /usr/local/apache2/bin/httpd -k restart
httpd_1 | vhostgen: [2018-03-18 11:46:52] Adding: project-1loc
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] ADD: succeeded: /shared/httpd/project-1
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] DEL: succeeded: /shared/httpd/project-1.tmp
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] TRIGGER succeeded: /usr/local/apache2/bin/httpd -k restart
httpd_1 | vhostgen: [2018-03-18 11:46:52] Adding: project-1loc
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] ADD: succeeded: /shared/httpd/project-1
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] DEL: succeeded: /shared/httpd/project-1.tmp
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] TRIGGER succeeded: /usr/local/apache2/bin/httpd -k restart
**What happened?**
@ -395,9 +395,9 @@ The directory changes have been noticed and a new virtual host has been created.
your new vhost-gen template has been read and the changes have applied.
.. note::
Renaming a project directory will only affect a single project. In case your change the
value of :ref:`env_httpd_template_dir` it will affect all projects and you would have to
rename all project directories. In this case it is much faster to just restart the Devilbox.
Renaming a project directory will only affect a single project. In case your change the
value of :ref:`env_httpd_template_dir` it will affect all projects and you would have to
rename all project directories. In this case it is much faster to just restart the Devilbox.
Restart the Devilbox
@ -410,6 +410,6 @@ Further readings
================
.. seealso::
Have a look at the following examples which involve customizing vhost-gen templates:
Have a look at the following examples which involve customizing vhost-gen templates:
* :ref:`tutorial_adding_sub_domains`
* :ref:`tutorial_adding_sub_domains`

View File

@ -11,9 +11,9 @@ The server name is constructed by a ``<project-directory>`` and the :ref:`env_tl
requires the same DNS record to be present in order to access it.
.. seealso::
This section gives you an overview about how to create separate DNS records for each project.
It has to be done for each project, however if you want to automate the process, refer
to :ref:`global_configuration_auto_dns`.
This section gives you an overview about how to create separate DNS records for each project.
It has to be done for each project, however if you want to automate the process, refer
to :ref:`global_configuration_auto_dns`.
**Table of Contents**
@ -36,8 +36,8 @@ See the following table for project directories and TLD_SUFFIX.
+-------------------+------------+--------------------------+-----------------------+
.. note::
When you have created the above two projects, you can check the vhost page on the
Devilbox intranet. It will tell you exactly what DNS record to add.
When you have created the above two projects, you can check the vhost page on the
Devilbox intranet. It will tell you exactly what DNS record to add.
.. image:: /_static/img/devilbox-vhosts-dns.png
@ -66,10 +66,10 @@ uses vim to add the two example DNS records.
.. code-block:: bash
host> sudo vim /etc/hosts
host> sudo vim /etc/hosts
127.0.0.1 project-1.loc
127.0.0.1 www.project-1.loc
127.0.0.1 project-1.loc
127.0.0.1 www.project-1.loc
MacOS
@ -80,10 +80,10 @@ uses vim to add the two example DNS records.
.. code-block:: bash
host> sudo vim /etc/hosts
host> sudo vim /etc/hosts
127.0.0.1 project-1.loc
127.0.0.1 www.project-1.loc
127.0.0.1 project-1.loc
127.0.0.1 www.project-1.loc
Windows
@ -94,8 +94,8 @@ and add the following two lines:
.. code-block:: bash
127.0.0.1 project-1.loc
127.0.0.1 www.project-1.loc
127.0.0.1 project-1.loc
127.0.0.1 www.project-1.loc
Docker Toolbox
@ -119,10 +119,10 @@ uses vim to add the two example DNS records.
.. code-block:: bash
host> sudo vim /etc/hosts
host> sudo vim /etc/hosts
192.16.0.1 project-1.loc
192.16.0.1 www.project-1.loc
192.16.0.1 project-1.loc
192.16.0.1 www.project-1.loc
Windows
@ -133,8 +133,8 @@ and add the following two lines:
.. code-block:: bash
192.16.0.1 project-1.loc
192.16.0.1 www.project-1.loc
192.16.0.1 project-1.loc
192.16.0.1 www.project-1.loc
@ -145,14 +145,14 @@ After settings the DNS records, you can use the ``ping`` command to verify if ev
.. code-block:: bash
host> ping -c1 project-1.loc
host> ping -c1 project-1.loc
PING project-1.loc (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.066 ms
PING project-1.loc (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.066 ms
.. code-block:: bash
host> ping -c1 www.project-1.loc
host> ping -c1 www.project-1.loc
PING www.project-1.loc (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.066 ms
PING www.project-1.loc (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.066 ms

View File

@ -49,7 +49,7 @@ It will be ready in eight simple steps:
.. code-block:: bash
host> ./shell.sh
host> ./shell.sh
.. seealso:: :ref:`tutorial_work_inside_the_php_container`
@ -59,7 +59,7 @@ It will be ready in eight simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-cake
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-cake
3. Install CakePHP
@ -67,8 +67,8 @@ It will be ready in eight simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ cd my-cake
devilbox@php-7.0.20 in /shared/httpd/my-cake $ composer create-project --prefer-dist cakephp/app cakephp
devilbox@php-7.0.20 in /shared/httpd $ cd my-cake
devilbox@php-7.0.20 in /shared/httpd/my-cake $ composer create-project --prefer-dist cakephp/app cakephp
4. Symlink webroot
@ -76,7 +76,7 @@ It will be ready in eight simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd/my-cake $ ln -s cakephp/webroot/ htdocs
devilbox@php-7.0.20 in /shared/httpd/my-cake $ ln -s cakephp/webroot/ htdocs
5. Add MySQL Database
@ -84,7 +84,7 @@ It will be ready in eight simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd/my-cake $ mysql -u root -h 127.0.0.1 -p -e 'CREATE DATABASE my_cake;'
devilbox@php-7.0.20 in /shared/httpd/my-cake $ mysql -u root -h 127.0.0.1 -p -e 'CREATE DATABASE my_cake;'
6. Configure database connection
@ -92,34 +92,33 @@ It will be ready in eight simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd/my-cake $ vi cakephp/config/app.php
devilbox@php-7.0.20 in /shared/httpd/my-cake $ vi cakephp/config/app.php
.. code-block:: php
:caption: cakephp/config/app.php
:name: cakephp/config/app.php
:emphasize-lines: 7,14,15,16
<?php
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => '127.0.0.1',
/**
* CakePHP will use the default DB port based on the driver selected
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment
* the following line and set the port accordingly
*/
//'port' => 'non_standard_port_number',
'username' => 'root',
'password' => 'secret',
'database' => 'my_cake',
'encoding' => 'utf8',
'timezone' => 'UTC',
'flags' => [],
'cacheMetadata' => true,
?>
<?php
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => '127.0.0.1',
/**
* CakePHP will use the default DB port based on the driver selected
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment
* the following line and set the port accordingly
*/
//'port' => 'non_standard_port_number',
'username' => 'root',
'password' => 'secret',
'database' => 'my_cake',
'encoding' => 'utf8',
'timezone' => 'UTC',
'flags' => [],
'cacheMetadata' => true,
?>
7. DNS record
@ -131,13 +130,12 @@ following line to your host operating systems ``/etc/hosts`` file
.. code-block:: bash
:caption: /etc/hosts
:name: /etc/hosts
127.0.0.1 my-cake.loc
127.0.0.1 my-cake.loc
.. seealso::
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
8. Open your browser

View File

@ -48,7 +48,7 @@ It will be ready in eight simple steps:
.. code-block:: bash
host> ./shell.sh
host> ./shell.sh
.. seealso:: :ref:`tutorial_work_inside_the_php_container`
@ -58,7 +58,7 @@ It will be ready in eight simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-ci
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-ci
3. Download CodeIgniter
@ -66,13 +66,13 @@ It will be ready in eight simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ cd my-ci
devilbox@php-7.0.20 in /shared/httpd/my-ci $ wget https://github.com/bcit-ci/CodeIgniter/archive/3.1.8.tar.gz
devilbox@php-7.0.20 in /shared/httpd/my-ci $ tar xfvz 3.1.8.tar.gz
devilbox@php-7.0.20 in /shared/httpd/my-ci $ ls -l
total 7488
drwxr-xr-x 5 devilbox devilbox 4096 Mar 22 15:48 CodeIgniter-3.1.8/
-rw-r--r-- 1 devilbox devilbox 2205672 May 21 10:42 3.1.8.tar.gz
devilbox@php-7.0.20 in /shared/httpd $ cd my-ci
devilbox@php-7.0.20 in /shared/httpd/my-ci $ wget https://github.com/bcit-ci/CodeIgniter/archive/3.1.8.tar.gz
devilbox@php-7.0.20 in /shared/httpd/my-ci $ tar xfvz 3.1.8.tar.gz
devilbox@php-7.0.20 in /shared/httpd/my-ci $ ls -l
total 7488
drwxr-xr-x 5 devilbox devilbox 4096 Mar 22 15:48 CodeIgniter-3.1.8/
-rw-r--r-- 1 devilbox devilbox 2205672 May 21 10:42 3.1.8.tar.gz
4. Symlink webroot
@ -80,7 +80,7 @@ It will be ready in eight simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd/my-ci $ ln -s CodeIgniter-3.1.8/ htdocs
devilbox@php-7.0.20 in /shared/httpd/my-ci $ ln -s CodeIgniter-3.1.8/ htdocs
5. Add MySQL Database
@ -88,7 +88,7 @@ It will be ready in eight simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd/my-ci $ mysql -u root -h 127.0.0.1 -p -e 'CREATE DATABASE my_ci;'
devilbox@php-7.0.20 in /shared/httpd/my-ci $ mysql -u root -h 127.0.0.1 -p -e 'CREATE DATABASE my_ci;'
6. Configure database connection
@ -96,35 +96,34 @@ It will be ready in eight simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd/my-ci $ vi htdocs/application/config/database.php
devilbox@php-7.0.20 in /shared/httpd/my-ci $ vi htdocs/application/config/database.php
.. code-block:: php
:caption: htdocs/application/config/database.php
:name: htdocs/application/config/database.php
:emphasize-lines: 4-7
<?php
$db['default'] = array(
'dsn' => '',
'hostname' => '127.0.0.1',
'username' => 'root',
'password' => '',
'database' => 'my_ci',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
<?php
$db['default'] = array(
'dsn' => '',
'hostname' => '127.0.0.1',
'username' => 'root',
'password' => '',
'database' => 'my_ci',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
7. DNS record
@ -136,13 +135,12 @@ following line to your host operating systems ``/etc/hosts`` file
.. code-block:: bash
:caption: /etc/hosts
:name: /etc/hosts
127.0.0.1 my-ci.loc
127.0.0.1 my-ci.loc
.. seealso::
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
8. Open your browser

View File

@ -47,7 +47,7 @@ It will be ready in six simple steps:
.. code-block:: bash
host> ./shell.sh
host> ./shell.sh
.. seealso:: :ref:`tutorial_work_inside_the_php_container`
@ -57,7 +57,7 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-drupal
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-drupal
3. Install Drupal
@ -65,8 +65,8 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ cd my-drupal
devilbox@php-7.0.20 in /shared/httpd/my-drupal $ drush dl drupal
devilbox@php-7.0.20 in /shared/httpd $ cd my-drupal
devilbox@php-7.0.20 in /shared/httpd/my-drupal $ drush dl drupal
4. Symlink webroot
@ -74,7 +74,7 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd/my-drupal $ ln -s drupal-8.3.3/ htdocs
devilbox@php-7.0.20 in /shared/httpd/my-drupal $ ln -s drupal-8.3.3/ htdocs
5. DNS record
@ -86,13 +86,12 @@ following line to your host operating systems ``/etc/hosts`` file
.. code-block:: bash
:caption: /etc/hosts
:name: /etc/hosts
127.0.0.1 my-drupal.loc
127.0.0.1 my-drupal.loc
.. seealso::
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
6. Open your browser
@ -101,4 +100,4 @@ following line to your host operating systems ``/etc/hosts`` file
Open your browser at http://my-drupal.loc and follow the Drupal installation steps.
.. note::
When asked about MySQL hostname, choose ``127.0.0.1``.
When asked about MySQL hostname, choose ``127.0.0.1``.

View File

@ -47,7 +47,7 @@ It will be ready in six simple steps:
.. code-block:: bash
host> ./shell.sh
host> ./shell.sh
.. seealso:: :ref:`tutorial_work_inside_the_php_container`
@ -57,7 +57,7 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-joomla
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-joomla
3. Download and extract Joomla
@ -65,10 +65,10 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ cd my-joomla
devilbox@php-7.0.20 in /shared/httpd/my-joomla $ wget -O joomla.tar.gz https://downloads.joomla.org/cms/joomla3/3-8-0/joomla_3-8-0-stable-full_package-tar-gz?format=gz
devilbox@php-7.0.20 in /shared/httpd $ mkdir joomla
devilbox@php-7.0.20 in /shared/httpd $ tar xvfz joomla.tar.gz -C joomla/
devilbox@php-7.0.20 in /shared/httpd $ cd my-joomla
devilbox@php-7.0.20 in /shared/httpd/my-joomla $ wget -O joomla.tar.gz https://downloads.joomla.org/cms/joomla3/3-8-0/joomla_3-8-0-stable-full_package-tar-gz?format=gz
devilbox@php-7.0.20 in /shared/httpd $ mkdir joomla
devilbox@php-7.0.20 in /shared/httpd $ tar xvfz joomla.tar.gz -C joomla/
4. Symlink webroot
@ -76,7 +76,7 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd/my-joomla $ ln -s joomla/ htdocs
devilbox@php-7.0.20 in /shared/httpd/my-joomla $ ln -s joomla/ htdocs
5. DNS record
@ -88,13 +88,12 @@ following line to your host operating systems ``/etc/hosts`` file
.. code-block:: bash
:caption: /etc/hosts
:name: /etc/hosts
127.0.0.1 my-joomla.loc
127.0.0.1 my-joomla.loc
.. seealso::
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
6. Open your browser

View File

@ -47,7 +47,7 @@ It will be ready in six simple steps:
.. code-block:: bash
host> ./shell.sh
host> ./shell.sh
.. seealso:: :ref:`tutorial_work_inside_the_php_container`
@ -57,7 +57,7 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-laravel
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-laravel
3. Install Laravel
@ -65,8 +65,8 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ cd my-laravel
devilbox@php-7.0.20 in /shared/httpd/my-laravel $ laravel new laravel-project
devilbox@php-7.0.20 in /shared/httpd $ cd my-laravel
devilbox@php-7.0.20 in /shared/httpd/my-laravel $ laravel new laravel-project
4. Symlink webroot
@ -74,7 +74,7 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd/my-laravel $ ln -s laravel-project/public/ htdocs
devilbox@php-7.0.20 in /shared/httpd/my-laravel $ ln -s laravel-project/public/ htdocs
5. DNS record
@ -86,13 +86,12 @@ following line to your host operating systems ``/etc/hosts`` file
.. code-block:: bash
:caption: /etc/hosts
:name: /etc/hosts
127.0.0.1 my-laravel.loc
127.0.0.1 my-laravel.loc
.. seealso::
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
6. Open your browser

View File

@ -47,7 +47,7 @@ It will be ready in six simple steps:
.. code-block:: bash
host> ./shell.sh
host> ./shell.sh
.. seealso:: :ref:`tutorial_work_inside_the_php_container`
@ -57,7 +57,7 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-phalcon
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-phalcon
3. Install Phalcon
@ -65,8 +65,8 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ cd my-phalcon
devilbox@php-7.0.20 in /shared/httpd/my-phalcon $ phalcon project phalconphp
devilbox@php-7.0.20 in /shared/httpd $ cd my-phalcon
devilbox@php-7.0.20 in /shared/httpd/my-phalcon $ phalcon project phalconphp
4. Symlink webroot
@ -74,7 +74,7 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd/my-phalcon $ ln -s phalconphp/public/ htdocs
devilbox@php-7.0.20 in /shared/httpd/my-phalcon $ ln -s phalconphp/public/ htdocs
5. DNS record
@ -86,13 +86,12 @@ following line to your host operating systems ``/etc/hosts`` file
.. code-block:: bash
:caption: /etc/hosts
:name: /etc/hosts
127.0.0.1 my-phalcon.loc
127.0.0.1 my-phalcon.loc
.. seealso::
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
6. Open your browser

View File

@ -49,7 +49,7 @@ It will be ready in six simple steps:
.. code-block:: bash
host> ./shell.sh
host> ./shell.sh
.. seealso:: :ref:`tutorial_work_inside_the_php_container`
@ -59,7 +59,7 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-photon
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-photon
3. Install Photon
@ -72,11 +72,11 @@ itself beforehand.
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ cd my-photon
devilbox@php-7.0.20 in /shared/httpd/my-photon $ photon new blog
...What is your mysql hostname? [localhost] 127.0.0.1
...What is your mysql username? [root]root
...What is your mysql password? []
devilbox@php-7.0.20 in /shared/httpd $ cd my-photon
devilbox@php-7.0.20 in /shared/httpd/my-photon $ photon new blog
...What is your mysql hostname? [localhost] 127.0.0.1
...What is your mysql username? [root]root
...What is your mysql password? []
4. Symlink webroot
@ -84,7 +84,7 @@ itself beforehand.
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd/my-photon $ ln -s blog/public/ htdocs
devilbox@php-7.0.20 in /shared/httpd/my-photon $ ln -s blog/public/ htdocs
5. DNS record
@ -96,13 +96,12 @@ following line to your host operating systems ``/etc/hosts`` file
.. code-block:: bash
:caption: /etc/hosts
:name: /etc/hosts
127.0.0.1 my-photon.loc
127.0.0.1 my-photon.loc
.. seealso::
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
6. Open your browser

View File

@ -48,7 +48,7 @@ It will be ready in seven simple steps:
.. code-block:: bash
host> ./shell.sh
host> ./shell.sh
.. seealso:: :ref:`tutorial_work_inside_the_php_container`
@ -58,7 +58,7 @@ It will be ready in seven simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-symfony
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-symfony
3. Install Symfony
@ -66,8 +66,8 @@ It will be ready in seven simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ cd my-symfony
devilbox@php-7.0.20 in /shared/httpd/my-symfony $ symfony new symfony
devilbox@php-7.0.20 in /shared/httpd $ cd my-symfony
devilbox@php-7.0.20 in /shared/httpd/my-symfony $ symfony new symfony
4. Symlink webroot
@ -75,7 +75,7 @@ It will be ready in seven simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd/my-symfony $ ln -s symfony/web/ htdocs
devilbox@php-7.0.20 in /shared/httpd/my-symfony $ ln -s symfony/web/ htdocs
5. Enable Symfony prod (``app.php``)
@ -83,8 +83,8 @@ It will be ready in seven simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd/my-symfony $ cd symfony/web
devilbox@php-7.0.20 in /shared/httpd/my-symfony/symfony/web $ ln -s app.php index.php
devilbox@php-7.0.20 in /shared/httpd/my-symfony $ cd symfony/web
devilbox@php-7.0.20 in /shared/httpd/my-symfony/symfony/web $ ln -s app.php index.php
6. DNS record
@ -96,13 +96,12 @@ following line to your host operating systems ``/etc/hosts`` file
.. code-block:: bash
:caption: /etc/hosts
:name: /etc/hosts
127.0.0.1 my-symfony.loc
127.0.0.1 my-symfony.loc
.. seealso::
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
7. Open your browser

View File

@ -47,7 +47,7 @@ It will be ready in six simple steps:
.. code-block:: bash
host> ./shell.sh
host> ./shell.sh
.. seealso:: :ref:`tutorial_work_inside_the_php_container`
@ -57,7 +57,7 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-wp
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-wp
3. Download Wordpress via ``git``
@ -65,8 +65,8 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ cd my-wp
devilbox@php-7.0.20 in /shared/httpd/my-wp $ git clone https://github.com/WordPress/WordPress wordpress.git
devilbox@php-7.0.20 in /shared/httpd $ cd my-wp
devilbox@php-7.0.20 in /shared/httpd/my-wp $ git clone https://github.com/WordPress/WordPress wordpress.git
4. Symlink webroot
@ -74,7 +74,7 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd/my-wp $ ln -s wordpress.git/ htdocs
devilbox@php-7.0.20 in /shared/httpd/my-wp $ ln -s wordpress.git/ htdocs
5. DNS record
@ -86,13 +86,12 @@ following line to your host operating systems ``/etc/hosts`` file
.. code-block:: bash
:caption: /etc/hosts
:name: /etc/hosts
127.0.0.1 my-wp.loc
127.0.0.1 my-wp.loc
.. seealso::
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
6. Open your browser

View File

@ -47,7 +47,7 @@ It will be ready in six simple steps:
.. code-block:: bash
host> ./shell.sh
host> ./shell.sh
.. seealso:: :ref:`tutorial_work_inside_the_php_container`
@ -57,7 +57,7 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-yii
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-yii
3. Install Yii2 via ``composer``
@ -65,8 +65,8 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ cd my-yii
devilbox@php-7.0.20 in /shared/httpd/my-yii $ composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic yii2-dev
devilbox@php-7.0.20 in /shared/httpd $ cd my-yii
devilbox@php-7.0.20 in /shared/httpd/my-yii $ composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic yii2-dev
4. Symlink webroot
@ -74,7 +74,7 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd/my-yii $ ln -s yii2-dev/web/ htdocs
devilbox@php-7.0.20 in /shared/httpd/my-yii $ ln -s yii2-dev/web/ htdocs
5. DNS record
@ -86,13 +86,12 @@ following line to your host operating systems ``/etc/hosts`` file
.. code-block:: bash
:caption: /etc/hosts
:name: /etc/hosts
127.0.0.1 my-yii.loc
127.0.0.1 my-yii.loc
.. seealso::
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
6. Open your browser

View File

@ -47,7 +47,7 @@ It will be ready in six simple steps:
.. code-block:: bash
host> ./shell.sh
host> ./shell.sh
.. seealso:: :ref:`tutorial_work_inside_the_php_container`
@ -57,7 +57,7 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-zend
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-zend
3. Install Zend via ``composer``
@ -65,8 +65,8 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ cd my-zend
devilbox@php-7.0.20 in /shared/httpd/my-zend $ composer create-project --prefer-dist zendframework/skeleton-application zend
devilbox@php-7.0.20 in /shared/httpd $ cd my-zend
devilbox@php-7.0.20 in /shared/httpd/my-zend $ composer create-project --prefer-dist zendframework/skeleton-application zend
4. Symlink webroot
@ -74,7 +74,7 @@ It will be ready in six simple steps:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd/my-zend $ ln -s zend/public/ htdocs
devilbox@php-7.0.20 in /shared/httpd/my-zend $ ln -s zend/public/ htdocs
5. DNS record
@ -86,13 +86,12 @@ following line to your host operating systems ``/etc/hosts`` file
.. code-block:: bash
:caption: /etc/hosts
:name: /etc/hosts
127.0.0.1 my-zend.loc
127.0.0.1 my-zend.loc
.. seealso::
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
For in-depth info about adding DNS records on Linux, Windows or MacOS see:
:ref:`project_configuration_dns_records` or :ref:`global_configuration_auto_dns`.
6. Open your browser

View File

@ -36,20 +36,19 @@ All you have to to is to adjust the path of :ref:`env_httpd_datadir` in the ``.e
.. code-block:: bash
# Navigate to Devilbox git directory
host> cd path/to/devilbox
# Navigate to Devilbox git directory
host> cd path/to/devilbox
# Open the .env file with your favourite editor
host> vim .env
# Open the .env file with your favourite editor
host> vim .env
Now Adjust the value of :ref:`env_httpd_datadir`
.. code-block:: bash
:name: .env
:caption: .env
:emphasize-lines: 1
:caption: .env
:emphasize-lines: 1
HOST_PATH_HTTPD_DATADIR=/home/user/workspace/web
HOST_PATH_HTTPD_DATADIR=/home/user/workspace/web
That's it, whenever you start up the Devilbox ``/home/user/workspace/web/`` will be mounted into
the PHP and the web server container into ``/shared/httpd/``.
@ -70,20 +69,19 @@ All you have to to is to adjust the path of :ref:`env_mysql_datadir` in the ``.e
.. code-block:: bash
# Navigate to Devilbox git directory
host> cd path/to/devilbox
# Navigate to Devilbox git directory
host> cd path/to/devilbox
# Open the .env file with your favourite editor
host> vim .env
# Open the .env file with your favourite editor
host> vim .env
Now Adjust the value of :ref:`env_mysql_datadir`
.. code-block:: bash
:name: .env
:caption: .env
:emphasize-lines: 1
:caption: .env
:emphasize-lines: 1
HOST_PATH_MYSQL_DATADIR=/home/user/workspace/db/mysql
HOST_PATH_MYSQL_DATADIR=/home/user/workspace/db/mysql
That's it, whenever you start up the Devilbox ``/home/user/workspace/db/mysql/`` will be mounted
into the MySQL container.
@ -95,20 +93,19 @@ All you have to to is to adjust the path of :ref:`env_pgsql_datadir` in the ``.e
.. code-block:: bash
# Navigate to Devilbox git directory
host> cd path/to/devilbox
# Navigate to Devilbox git directory
host> cd path/to/devilbox
# Open the .env file with your favourite editor
host> vim .env
# Open the .env file with your favourite editor
host> vim .env
Now Adjust the value of :ref:`env_pgsql_datadir`
.. code-block:: bash
:name: .env
:caption: .env
:emphasize-lines: 1
:caption: .env
:emphasize-lines: 1
HOST_PATH_PGSQL_DATADIR=/home/user/workspace/db/pgsql
HOST_PATH_PGSQL_DATADIR=/home/user/workspace/db/pgsql
That's it, whenever you start up the Devilbox ``/home/user/workspace/db/pqsql/`` will be mounted
into the PostgreSQL container.
@ -120,20 +117,19 @@ All you have to to is to adjust the path of :ref:`env_mongo_datadir` in the ``.e
.. code-block:: bash
# Navigate to Devilbox git directory
host> cd path/to/devilbox
# Navigate to Devilbox git directory
host> cd path/to/devilbox
# Open the .env file with your favourite editor
host> vim .env
# Open the .env file with your favourite editor
host> vim .env
Now Adjust the value of :ref:`env_mongo_datadir`
.. code-block:: bash
:name: .env
:caption: .env
:emphasize-lines: 1
:caption: .env
:emphasize-lines: 1
HOST_PATH_MONGO_DATADIR=/home/user/workspace/db/mongo
HOST_PATH_MONGO_DATADIR=/home/user/workspace/db/mongo
That's it, whenever you start up the Devilbox ``/home/user/workspace/db/mongo/`` will be mounted
into the MongoDB container.
@ -189,8 +185,8 @@ This allows you to keep your project configuration unchanged and have the same b
PHP container and on your host operating system.
.. important::
Do not mix up ``localhost`` with ``127.0.0.1``. They behave differently!
Use ``127.0.0.1`` and do not use ``localhost``.
Do not mix up ``localhost`` with ``127.0.0.1``. They behave differently!
Use ``127.0.0.1`` and do not use ``localhost``.
As an example, if you want to access the MySQL database from within the PHP container, you do the
following:
@ -198,24 +194,24 @@ following:
.. code-block:: bash
:emphasize-lines: 8
# Navigate to Devilbox git directory
host> cd path/to/devilbox
# Navigate to Devilbox git directory
host> cd path/to/devilbox
# Enter the PHP container
host> ./shell.sh
# Enter the PHP container
host> ./shell.sh
# Enter the MySQL console
php> mysql -u root -h 127.0.0.1 -p
mysql>
# Enter the MySQL console
php> mysql -u root -h 127.0.0.1 -p
mysql>
The very same command applies to access the MySQL database from your host operating system:
.. code-block:: bash
:emphasize-lines: 2
# Enter the MySQL console
host> mysql -u root -h 127.0.0.1 -p
mysql>
# Enter the MySQL console
host> mysql -u root -h 127.0.0.1 -p
mysql>
So no matter if you use the Devilbox or have another LAMP stack installed locally on your host
operating system, you do not have to change your configuration files if you stick to this tip.
@ -225,13 +221,13 @@ or IP address of the MySQL server to ``127.0.0.1``:
.. code-block:: php
<?php
// MySQL server connection in your project configuration
mysql_host = '127.0.0.1';
mysql_port = '3306';
mysql_user = 'someusername';
mysql_pass = 'somepassword';
?>
<?php
// MySQL server connection in your project configuration
mysql_host = '127.0.0.1';
mysql_port = '3306';
mysql_user = 'someusername';
mysql_pass = 'somepassword';
?>
.. seealso:: :ref:`tutorial_work_inside_the_php_container`

View File

@ -5,13 +5,12 @@ Create your first project
*************************
.. important::
Ensure you have read :ref:`getting_started_directory_overview` to understand what is
going on under the hood.
Ensure you have read :ref:`getting_started_directory_overview` to understand what is
going on under the hood.
.. note::
This section not only applies for one project, it applied for as many projects as you need.
**There is no limit in the number of projects.**
This section not only applies for one project, it applied for as many projects as you need.
**There is no limit in the number of projects.**
**Table of Contents**
@ -35,8 +34,8 @@ Step 2: create a project directory
In your Devilbox git directory, navigate to ``./data/www`` and create a new directory.
.. note::
Choose the directory name wisely, as it will be part of the domain for that project.
For this example we will use ``project-1`` as our project name.
Choose the directory name wisely, as it will be part of the domain for that project.
For this example we will use ``project-1`` as our project name.
.. code-block:: bash
@ -62,7 +61,7 @@ Step 3: create a docroot directory
==================================
.. note::
As desribed in :ref:`getting_started_directory_overview_docroot` the docroot directory name must be ``htdocs`` for now.
As desribed in :ref:`getting_started_directory_overview_docroot` the docroot directory name must be ``htdocs`` for now.
Navigate to your newly created project directory and create a directory named `htdocs` inside it.
@ -88,7 +87,7 @@ By having created the docroot directory, the web server is now able to serve you
The intranet already gives you the exact string that you can simply copy into your ``/etc/hosts`` file on your host operating system to solve this issue.
.. important::
This will only work on **native Docker** for Linux or MacOS. Read up on the next section to also find out how to do that on **Docker Toolbox** and Windows.
This will only work on **native Docker** for Linux or MacOS. Read up on the next section to also find out how to do that on **Docker Toolbox** and Windows.
.. _getting_started_create_your_first_project_dns_entry:
@ -97,9 +96,9 @@ Step 4: create a DNS entry
==========================
.. note::
This step can also be automated via the bundled DNS server to automatically provide catch-all
DNS entries to your host computer, but is outside the scope of this
*getting started tutorial*.
This step can also be automated via the bundled DNS server to automatically provide catch-all
DNS entries to your host computer, but is outside the scope of this
*getting started tutorial*.
Add DNS for Linux and MacOS (native Docker)
-------------------------------------------
@ -109,11 +108,11 @@ you the exact string you need to paste into your ``/etc/hosts`` file on your hos
.. code-block:: bash
# Open your /etc/hosts file with sudo or root privileges
# and add the following DNS entry
host> sudo vi /etc/hosts
# Open your /etc/hosts file with sudo or root privileges
# and add the following DNS entry
host> sudo vi /etc/hosts
127.0.0.1 project-1.loc
127.0.0.1 project-1.loc
Add DNS for Windows (native Docker)
-----------------------------------
@ -125,7 +124,7 @@ Open ``C:\Windows\System32\drivers\etc`` with admistrative privileges and add th
.. code-block:: bash
127.0.0.1 project-1.loc
127.0.0.1 project-1.loc
Add DNS for Docker Toolbox
--------------------------
@ -144,9 +143,9 @@ have to add instead on your host operating system is:
.. code-block:: bash
host> sudo vi /etc/hosts
host> sudo vi /etc/hosts
192.16.0.1 project-1.loc
192.16.0.1 project-1.loc
**Docker Toolbox on Windows**
@ -154,7 +153,7 @@ Open ``C:\Windows\System32\drivers\etc`` with admistrative privileges and add th
.. code-block:: bash
192.16.0.1 project-1.loc
192.16.0.1 project-1.loc
Back to intranet
----------------

View File

@ -12,8 +12,8 @@ The only thing you might need to install on your host operating system is your f
editor to actually start coding.
.. seealso::
If you want to find out what tools are available inside the PHP container, visit the
following section: :ref:`available_tools`.
If you want to find out what tools are available inside the PHP container, visit the
following section: :ref:`available_tools`.
**Table of Contents**
@ -25,7 +25,7 @@ How to enter
============
.. note::
You can only enter the PHP container if it is running.
You can only enter the PHP container if it is running.
Linux and MacOS
@ -51,11 +51,11 @@ Just run it and it will enter you into the PHP container and bring you to ``/sha
.. code-block:: bash
# Execute on the host operating system
C:/Users/user1/devilbox> shell.bat
# Execute on the host operating system
C:/Users/user1/devilbox> shell.bat
# Now you are inside the PHP Linux container
devilbox@php-7.0.19 in /shared/httpd $
# Now you are inside the PHP Linux container
devilbox@php-7.0.19 in /shared/httpd $
How to become root
@ -67,16 +67,16 @@ the password-less ``sudo``.
.. code-block:: bash
# Inside the PHP Linux container as user devilbox
devilbox@php-7.0.19 in /shared/httpd $ sudo su -
# Inside the PHP Linux container as user devilbox
devilbox@php-7.0.19 in /shared/httpd $ sudo su -
# Now you are root and can do anything you want
root@php-7.0.19 in /shared/httpd $
# Now you are root and can do anything you want
root@php-7.0.19 in /shared/httpd $
.. note::
As this action is inside a Docker container, there is no difference between Linux, MacOS or
Windows. Every host operating system is using the same Docker container - equal accross all
platforms.
As this action is inside a Docker container, there is no difference between Linux, MacOS or
Windows. Every host operating system is using the same Docker container - equal accross all
platforms.
Tools

View File

@ -45,9 +45,9 @@ Additionally you will require ``git`` in order to clone the devilbox project.
Docker Toolbox (e.g. for Windows 7 or older Macs) read up on this section.
.. warning::
Docker itself requires super user privileges which is granted to a system wide group
called ``docker``. After having installed Docker on your system, ensure that your local
user is assigned to the ``docker`` group. Check this via ``groups`` or ``id`` command.
Docker itself requires super user privileges which is granted to a system wide group
called ``docker``. After having installed Docker on your system, ensure that your local
user is assigned to the ``docker`` group. Check this via ``groups`` or ``id`` command.
.. seealso::
:ref:`install_docker`
@ -84,10 +84,10 @@ this specific git tag.
.. warning::
Whenever you check out a different version, make sure that your ``.env`` file is up-to-date
with the bundled ``env-example`` file. Different Devilbox releases might require different
settings to be available inside the ``.env`` file. Refer to the next section for how to
create the ``.env`` file.
Whenever you check out a different version, make sure that your ``.env`` file is up-to-date
with the bundled ``env-example`` file. Different Devilbox releases might require different
settings to be available inside the ``.env`` file. Refer to the next section for how to
create the ``.env`` file.
Create ``.env`` file
@ -145,7 +145,6 @@ Open the ``.env`` file with your favorite text editor and adjust those values:
.. code-block:: bash
:caption: .env
:name: .env
:emphasize-lines: 3,4
host> vi .env
@ -154,7 +153,7 @@ Open the ``.env`` file with your favorite text editor and adjust those values:
NEW_GID=1002
.. warning::
Make sure that you use the values provided by ``id -u`` and ``id -g``.
Make sure that you use the values provided by ``id -u`` and ``id -g``.
.. seealso::
:ref:`syncronize_container_permissions`

View File

@ -24,29 +24,29 @@ The log directory structure would look something like this:
.. code-block:: bash
host> cd path/to/devilbox
host> tree log
host> cd path/to/devilbox
host> tree log
log/
├── nginx-stable/
│   ├── nginx-stable/
│   ├── defaultlocalhost-access.log
│   ├── defaultlocalhost-error.log
│   ├── <project-name>-access.log # Each project has its own access log
│   ├── <project-name>-error.log # Each project has its own error log
├── mariadb-10.1/
│   ├── error.log
│   ├── query.log
│   ├── slow.log
├── php-fpm-7.1/
│   ├── php-fpm.access
│   ├── php-fpm.error
log/
├── nginx-stable/
│   ├── nginx-stable/
│   ├── defaultlocalhost-access.log
│   ├── defaultlocalhost-error.log
│   ├── <project-name>-access.log # Each project has its own access log
│   ├── <project-name>-error.log # Each project has its own error log
├── mariadb-10.1/
│   ├── error.log
│   ├── query.log
│   ├── slow.log
├── php-fpm-7.1/
│   ├── php-fpm.access
│   ├── php-fpm.error
Use your favorite tools to view log files such as ``tail``, ``less``, ``more``, ``cat`` or others.
.. important::
Currently logs are only mounted for PHP, HTTPD and MYSQL container.
All other services will log to Docker logs.
Currently logs are only mounted for PHP, HTTPD and MYSQL container.
All other services will log to Docker logs.
Docker logs
@ -59,31 +59,31 @@ When using this approach, you need to use the ``docker-compose logs`` command to
files from within the Devilbox git directory.
.. code-block:: bash
:emphasize-lines: 2
:emphasize-lines: 2
host> cd path/to/devilbox
host> docker-compose logs
host> cd path/to/devilbox
host> docker-compose logs
When you want to continuously watch the log output (such as ``tail -f``), you need to append ``-f``
to the command.
.. code-block:: bash
:emphasize-lines: 2
:emphasize-lines: 2
host> cd path/to/devilbox
host> docker-compose logs -f
host> cd path/to/devilbox
host> docker-compose logs -f
When you only want to have logs displayed for a single service, you can also append the service
name (works with or without ``-f`` as well):
.. code-block:: bash
:emphasize-lines: 2
:emphasize-lines: 2
host> cd path/to/devilbox
host> docker-compose logs php -f
host> cd path/to/devilbox
host> docker-compose logs php -f
.. important::
This currently does not work for the MySQL container, which will always log to file.
This currently does not work for the MySQL container, which will always log to file.
Checklist

View File

@ -109,10 +109,10 @@ If you share your projects over a LAN, but do not want anybody to view the Devil
you can also password protect it.
.. seealso::
In order to do so, have a look at the following ``.env`` variables:
In order to do so, have a look at the following ``.env`` variables:
* :ref:`env_devilbox_ui_protect`
* :ref:`env_devilbox_ui_password`
* :ref:`env_devilbox_ui_protect`
* :ref:`env_devilbox_ui_password`
Disable the intranet
@ -123,9 +123,9 @@ This is achieved internally by removing the default virtual host which serves th
When the intranet is disabled, there is no way to access it.
.. seealso::
In order to do so, have a look at the following ``.env`` variable:
In order to do so, have a look at the following ``.env`` variable:
* :ref:`env_devilbox_ui_enable`
* :ref:`env_devilbox_ui_enable`
Checklist

View File

@ -128,14 +128,14 @@ You first need to find out the image name and then also the currently used image
host> grep 'image:' docker-compose.yml
image: cytopia/bind:0.11
image: devilbox/php-fpm:${PHP_SERVER:-7.0}-work
image: devilbox/${HTTPD_SERVER:-nginx-stable}:0.13
image: cytopia/${MYSQL_SERVER:-mariadb-10.1}:latest
image: postgres:${PGSQL_SERVER:-9.6}
image: redis:${REDIS_SERVER:-3.2}
image: memcached:${MEMCD_SERVER:-latest}
image: mongo:${MONGO_SERVER:-latest}
image: cytopia/bind:0.11
image: devilbox/php-fpm:${PHP_SERVER:-7.0}-work
image: devilbox/${HTTPD_SERVER:-nginx-stable}:0.13
image: cytopia/${MYSQL_SERVER:-mariadb-10.1}:latest
image: postgres:${PGSQL_SERVER:-9.6}
image: redis:${REDIS_SERVER:-3.2}
image: memcached:${MEMCD_SERVER:-latest}
image: mongo:${MONGO_SERVER:-latest}
After having found the possible candidates, you will still have to find the corresponding value
inside the ``..env`` file. Let's do it for the PHP image:

View File

@ -50,12 +50,6 @@ host is ready to be served with your custom domain.
:caption: Maintenance
:maxdepth: 2
maintenance/install
maintenance/update
maintenance/uninstall
maintenance/start-the-devilbox
maintenance/add-service-to-running-devilbox
maintenance/remove-service-from-running-devilbox
maintenance/backup-and-restore-mysql
maintenance/backup-and-restore-pgsql
maintenance/backup-and-restore-mongo
@ -69,16 +63,10 @@ host is ready to be served with your custom domain.
tutorials/add-your-own-docker-image
tutorials/overwrite-existing-docker-image
tutorials/adding-subdomains
tutorials/configure-database-in-your-project
tutorials/change-document-root
tutorials/change-container-versions
tutorials/work-inside-the-container
tutorials/enable-xdebug
tutorials/customize-vhost
tutorials/custom-apache-modules
tutorials/custom-environment-variables
tutorials/password-protect-intranet
tutorials/disable-intranet
tutorials/static-code-analysis
@ -105,7 +93,6 @@ host is ready to be served with your custom domain.
:maxdepth: 2
configuration-project/dns-records
configuration-project/domain
configuration-project/custom-vhost
@ -148,9 +135,6 @@ host is ready to be served with your custom domain.
:caption: Advanced
:maxdepth: 2
advanced/technical
advanced/hacking
.. toctree::
:caption: Support
@ -158,6 +142,5 @@ host is ready to be served with your custom domain.
support/faq
support/troubleshooting
support/contributing
support/blogs-videos-and-use-cases
support/artwork

View File

@ -74,6 +74,7 @@ If you do not port-forward it to your host machines localhost, you will have to
DNS entries that are described in this documentation to go to ``127.0.0.1`` to the IP address of
your virtual machine.
.. _docker_toolbox_auto_dns:
Auto-DNS
--------

View File

@ -29,14 +29,14 @@ each PHP container and reay to use. To backup all databases follow the below lis
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Enter the PHP container
host> ./shell.sh
# Enter the PHP container
host> ./shell.sh
# Run mongodump
devilbox@php-7.1.6 in /shared/httpd $ mongodump --out /shared/backups/mongo
# Run mongodump
devilbox@php-7.1.6 in /shared/httpd $ mongodump --out /shared/backups/mongo
To find out more about the configuration and options of mongodump, visit its project page under:
https://docs.mongodb.com/manual/reference/program/mongodump.
@ -53,14 +53,14 @@ each PHP container and ready to use. To restore all MongoDB databases follow the
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Enter the PHP container
host> ./shell.sh
# Enter the PHP container
host> ./shell.sh
# Start the restore/import from /shared/backups/mongo
devilbox@php-7.1.6 in /shared/httpd $ mongorestore /shared/backups/mongo
# Start the restore/import from /shared/backups/mongo
devilbox@php-7.1.6 in /shared/httpd $ mongorestore /shared/backups/mongo
To find out more about the configuration and options of mongorestore, visit its project page under:
https://docs.mongodb.com/manual/reference/program/mongorestore/.

View File

@ -23,7 +23,7 @@ Backup
There are many different options to backup your MySQL database including some for the command line
and some for using the Web interface. The recommended and fastest method is to use
``mysqldump-secure``, as it will also add info files (*.info) to each database recording checksums,
``mysqldump-secure``, as it will also add info files (\*.info) to each database recording checksums,
dump date, dump options as well as the server version it came from.
@ -39,26 +39,26 @@ To have your backups in place is just three commands away:
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Enter the PHP container
host> ./shell.sh
# Enter the PHP container
host> ./shell.sh
# Run mysqldump-secure
devilbox@php-7.1.6 in /shared/httpd $ mysqldump-secure
# Run mysqldump-secure
devilbox@php-7.1.6 in /shared/httpd $ mysqldump-secure
[INFO] (OPT): Logging enabled
[INFO] (OPT): MySQL SSL connection disabled
[INFO] (OPT): Compression enabled
[INFO] (OPT): Encryption disabled
[INFO] (OPT): Deletion disabled
[INFO] (OPT): Nagios log disabled
[INFO] (OPT): Info files enabled
[INFO] (SQL): 1/3 Skipping: information_schema (DB is ignored)
[INFO] (SQL): 2/3 Dumping: mysql (0.66 MB) 1 sec (0.13 MB)
[INFO] (SQL): 3/3 Skipping: performance_schema (DB is ignored)
[OK] Finished successfully
[INFO] (OPT): Logging enabled
[INFO] (OPT): MySQL SSL connection disabled
[INFO] (OPT): Compression enabled
[INFO] (OPT): Encryption disabled
[INFO] (OPT): Deletion disabled
[INFO] (OPT): Nagios log disabled
[INFO] (OPT): Info files enabled
[INFO] (SQL): 1/3 Skipping: information_schema (DB is ignored)
[INFO] (SQL): 2/3 Dumping: mysql (0.66 MB) 1 sec (0.13 MB)
[INFO] (SQL): 3/3 Skipping: performance_schema (DB is ignored)
[OK] Finished successfully
List backups
^^^^^^^^^^^^
@ -67,31 +67,31 @@ Let's see where to find the backups inside the PHP container:
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Enter the PHP container
host> ./shell.sh
# Enter the PHP container
host> ./shell.sh
# Show directory output
devilbox@php-7.1.6 in /shared/httpd $ ls -l /shared/backups/mysql/
# Show directory output
devilbox@php-7.1.6 in /shared/httpd $ ls -l /shared/backups/mysql/
-rw-r--r-- 1 devilbox 136751 Jun 17 13:31 2017-06-17_13-31__mysql.sql.gz
-rw-r--r-- 1 devilbox 2269 Jun 17 13:31 2017-06-17_13-31__mysql.sql.gz.info
-rw-r--r-- 1 devilbox 136751 Jun 17 13:31 2017-06-17_13-31__mysql.sql.gz
-rw-r--r-- 1 devilbox 2269 Jun 17 13:31 2017-06-17_13-31__mysql.sql.gz.info
Let's do the same again and see where to find the backups in the Devilbox git directory
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Show directory output
host> ls -l backups/mysql/
# Show directory output
host> ls -l backups/mysql/
-rw-r--r-- 1 cytopia 136751 Jun 17 13:31 2017-06-17_13-31__mysql.sql.gz
-rw-r--r-- 1 cytopia 2269 Jun 17 13:31 2017-06-17_13-31__mysql.sql.gz.info
-rw-r--r-- 1 cytopia 136751 Jun 17 13:31 2017-06-17_13-31__mysql.sql.gz
-rw-r--r-- 1 cytopia 2269 Jun 17 13:31 2017-06-17_13-31__mysql.sql.gz.info
``*.info`` files
^^^^^^^^^^^^^^^^
@ -101,86 +101,85 @@ occured during backups. Let's have a look at one of them:
.. code-block:: bash
host> cat ./backups/mysql/2017-06-17_13-31__mysql.sql.gz.info
host> cat ./backups/mysql/2017-06-17_13-31__mysql.sql.gz.info
.. code-block:: ini
:name: 2017-06-17_13-31__mysql.sql.gz.info
:caption: 2017-06-17_13-31__mysql.sql.gz.info
:caption: 2017-06-17_13-31__mysql.sql.gz.info
; mysqldump-secure backup record
; Do not alter this file!
; Creation of this file can be turned off via config file.
; mysqldump-secure backup record
; Do not alter this file!
; Creation of this file can be turned off via config file.
; ============================================================
; = Local system information
; ============================================================
[mysqldump-secure]
version = /usr/local/bin/mysqldump-secure (0.16.3)
vdate = 2016-08-18
config = /etc/mysqldump-secure.conf
; ============================================================
; = Local system information
; ============================================================
[mysqldump-secure]
version = /usr/local/bin/mysqldump-secure (0.16.3)
vdate = 2016-08-18
config = /etc/mysqldump-secure.conf
[system]
uname = Linux 4.4.0-79-generic
hostname =
user = devilbox
group = devilbox
[system]
uname = Linux 4.4.0-79-generic
hostname =
user = devilbox
group = devilbox
[tools]
mysqldump = /usr/bin/mysqldump (10.14 Distrib 5.5.52-MariaDB) [for Linux (x86_64)]
mysql = /usr/bin/mysql (15.1 Distrib 5.5.52-MariaDB) [for Linux (x86_64) using readline 5.1]
compressor = /usr/bin/gzip (gzip 1.5)
encryptor = Not used
[tools]
mysqldump = /usr/bin/mysqldump (10.14 Distrib 5.5.52-MariaDB) [for Linux (x86_64)]
mysql = /usr/bin/mysql (15.1 Distrib 5.5.52-MariaDB) [for Linux (x86_64) using readline 5.1]
compressor = /usr/bin/gzip (gzip 1.5)
encryptor = Not used
; ============================================================
; = Database / File information
; ============================================================
[database]
db_name = mysql
db_size = 687326 Bytes (0.66 MB)
tbl_cnt = 30
; ============================================================
; = Database / File information
; ============================================================
[database]
db_name = mysql
db_size = 687326 Bytes (0.66 MB)
tbl_cnt = 30
[file]
file_path = /shared/backups/mysql
file_name = 2017-06-17_13-31__mysql.sql.gz
file_size = 136751 Bytes (0.13 MB)
file_chmod = 0644
file_owner = devilbox
file_group = devilbox
file_mtime = 1497699116 (2017-06-17 13:31:56 CEST [+0200])
file_md5 = 8d1a6c38f81c691bc4b490e7024a4f72
file_sha = 11fb85282ea866dfc69d29dc02a0418bebfea30e7e566c3c588a50987aceac2f
[file]
file_path = /shared/backups/mysql
file_name = 2017-06-17_13-31__mysql.sql.gz
file_size = 136751 Bytes (0.13 MB)
file_chmod = 0644
file_owner = devilbox
file_group = devilbox
file_mtime = 1497699116 (2017-06-17 13:31:56 CEST [+0200])
file_md5 = 8d1a6c38f81c691bc4b490e7024a4f72
file_sha = 11fb85282ea866dfc69d29dc02a0418bebfea30e7e566c3c588a50987aceac2f
; ============================================================
; = Dump procedure information
; ============================================================
[mysqldump]
encrypted = 0
compressed = 1
arguments = --opt --default-character-set=utf8 --events --triggers --routines --hex-blob --complete-insert --extended-insert --compress --lock-tables --skip-quick
duration = 1 sec
; ============================================================
; = Dump procedure information
; ============================================================
[mysqldump]
encrypted = 0
compressed = 1
arguments = --opt --default-character-set=utf8 --events --triggers --routines --hex-blob --complete-insert --extended-insert --compress --lock-tables --skip-quick
duration = 1 sec
[compression]
compressor = gzip
arguments = -9 --stdout
[compression]
compressor = gzip
arguments = -9 --stdout
[encryption]
encryptor =
algorithm =
pubkey =
[encryption]
encryptor =
algorithm =
pubkey =
; ============================================================
; = Server information
; ============================================================
[connection]
protocol = mysql via TCP/IP
secured = No SSL
arguments = --defaults-file=/etc/mysqldump-secure.cnf
; ============================================================
; = Server information
; ============================================================
[connection]
protocol = mysql via TCP/IP
secured = No SSL
arguments = --defaults-file=/etc/mysqldump-secure.cnf
[server]
hostname = 001b3750b549
port = 3306
replica = master
version = MariaDB 10.1.23-MariaDB MariaDB Server
[server]
hostname = 001b3750b549
port = 3306
replica = master
version = MariaDB 10.1.23-MariaDB MariaDB Server
mysqldump
@ -192,14 +191,14 @@ example which shows you how to do that from within the PHP container:
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Enter the PHP container
host> ./shell.sh
# Enter the PHP container
host> ./shell.sh
# Start the backup
devilbox@php-7.1.6 in /shared/httpd $ mysqldump -h mysql -u root -p my_db_name > /shared/backups/mysql/my_db_name.sql
# Start the backup
devilbox@php-7.1.6 in /shared/httpd $ mysqldump -h mysql -u root -p my_db_name > /shared/backups/mysql/my_db_name.sql
To find out more about the configuration and options of mysqldump, visit its project page under:
https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
@ -238,14 +237,14 @@ binary. Here are a few examples for different file types:
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Enter the PHP container
host> ./shell.sh
# Enter the PHP container
host> ./shell.sh
# Start the import
devilbox@php-7.1.6 in /shared/httpd $ mysql -h mysql -u root -p my_db_name < /shared/backups/mysql/my_db_name.sql
# Start the import
devilbox@php-7.1.6 in /shared/httpd $ mysql -h mysql -u root -p my_db_name < /shared/backups/mysql/my_db_name.sql
@ -254,14 +253,14 @@ binary. Here are a few examples for different file types:
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Enter the PHP container
host> ./shell.sh
# Enter the PHP container
host> ./shell.sh
# Start the import
devilbox@php-7.1.6 in /shared/httpd $ zcat /shared/backups/mysql/my_db_name.sql.gz | mysql -h mysql -u root -p my_db_name
# Start the import
devilbox@php-7.1.6 in /shared/httpd $ zcat /shared/backups/mysql/my_db_name.sql.gz | mysql -h mysql -u root -p my_db_name
``*.sql.tar.gz`` file
@ -269,14 +268,14 @@ binary. Here are a few examples for different file types:
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Enter the PHP container
host> ./shell.sh
# Enter the PHP container
host> ./shell.sh
# Start the import
devilbox@php-7.1.6 in /shared/httpd $ tar xzOf /shared/backups/mysql/my_db_name.sql.tar.gz | mysql -h mysql -u root -p my_db_name
# Start the import
devilbox@php-7.1.6 in /shared/httpd $ tar xzOf /shared/backups/mysql/my_db_name.sql.tar.gz | mysql -h mysql -u root -p my_db_name
phpMyAdmin

View File

@ -30,14 +30,14 @@ listed example:
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Enter the PHP container
host> ./shell.sh
# Enter the PHP container
host> ./shell.sh
# Run pg_dump
devilbox@php-7.1.6 in /shared/httpd $ pg_dump -h pgsql -U postgres -W my_db_name > /shared/backups/pgsql/my_db_name.sql
# Run pg_dump
devilbox@php-7.1.6 in /shared/httpd $ pg_dump -h pgsql -U postgres -W my_db_name > /shared/backups/pgsql/my_db_name.sql
To find out more about the configuration and options of pg_dump, visit its project page under:
https://www.postgresql.org/docs/current/static/backup-dump.html.
@ -67,42 +67,42 @@ Here are a few examples for different file types:
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Enter the PHP container
host> ./shell.sh
# Enter the PHP container
host> ./shell.sh
# Start the import
devilbox@php-7.1.6 in /shared/httpd $ psql -h pgsql -U postgres -W my_db_name < /shared/backups/pgsql/my_db_name.sql
# Start the import
devilbox@php-7.1.6 in /shared/httpd $ psql -h pgsql -U postgres -W my_db_name < /shared/backups/pgsql/my_db_name.sql
``*.sql.gz`` file
^^^^^^^^^^^^^^^^^^
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Enter the PHP container
host> ./shell.sh
# Enter the PHP container
host> ./shell.sh
# Start the import
devilbox@php-7.1.6 in /shared/httpd $ zcat /shared/backups/pgsql/my_db_name.sql.gz | psql -h pgsql -U postgres -W my_db_name
# Start the import
devilbox@php-7.1.6 in /shared/httpd $ zcat /shared/backups/pgsql/my_db_name.sql.gz | psql -h pgsql -U postgres -W my_db_name
``*.sql.tar.gz`` file
^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Navigate to the Devilbox directory
host> cd path/to/devilbox
# Enter the PHP container
host> ./shell.sh
# Enter the PHP container
host> ./shell.sh
# Start the import
devilbox@php-7.1.6 in /shared/httpd $ tar xzOf /shared/backups/pgsql/my_db_name.sql.tar.gz | psql -h pgsql -U postgres -W my_db_name
# Start the import
devilbox@php-7.1.6 in /shared/httpd $ tar xzOf /shared/backups/pgsql/my_db_name.sql.tar.gz | psql -h pgsql -U postgres -W my_db_name
Adminer

View File

@ -84,11 +84,11 @@ The PHP container is your workhorse and these are your tools:
+----------------------+-----------------------------------------------------------------------------------+
.. note::
If you are in need of other tools, open up an issue at
`Github <https://github.com/cytopia/devilbox/issues>`_ and ask for it,
this can usually be implemented very quickly.
If you are in need of other tools, open up an issue at
`Github <https://github.com/cytopia/devilbox/issues>`_ and ask for it,
this can usually be implemented very quickly.
.. seealso::
If you ever feel those tools are out-dated, simply update your Docker images.
Docker images are built every night to ensure latest tools and security patches:
:ref:`getting_started_update_the_docker_images`
If you ever feel those tools are out-dated, simply update your Docker images.
Docker images are built every night to ensure latest tools and security patches:
:ref:`getting_started_update_the_docker_images`

View File

@ -86,5 +86,5 @@ When the PHP-FPM process finally starts up it actually runs with your local syst
sure permissions will be in sync from now on.
.. note::
To tackle this on the PHP-FPM side is only half a solution to the problem. The same applies to a web server Docker container when you offer **file uploads**. They will be uploaded and created by the web servers uid/gid. Therefore the web server itself must also provide the same kind of solution.
To tackle this on the PHP-FPM side is only half a solution to the problem. The same applies to a web server Docker container when you offer **file uploads**. They will be uploaded and created by the web servers uid/gid. Therefore the web server itself must also provide the same kind of solution.

View File

@ -84,16 +84,16 @@ Available PHP modules can be seen at the PHP Docker image repository.
Configuration
=============
Can I load custom PHP modules without rebuilding the Docker image?
------------------------------------------------------------------
Yes, see :ref:`custom_php_modules`
Can I load custom Apache modules without rebuilding the Docker image?
---------------------------------------------------------------------
Yes, see :ref:`custom_apache_modules`
.. Can I load custom PHP modules without rebuilding the Docker image?
.. ------------------------------------------------------------------
..
.. Yes, see :ref:`custom_php_modules`
..
..
.. Can I load custom Apache modules without rebuilding the Docker image?
.. ---------------------------------------------------------------------
..
.. Yes, see :ref:`custom_apache_modules`
Can I change the MySQL root password?
@ -122,7 +122,7 @@ Yes, the ``.env`` variable :ref:`env_tld_suffix` can be changed to whatever doma
you want. See :ref:`env_tld_suffix`.
.. warning::
Be aware not to use ``dev`` or ``localhost``. See :ref:`env_tld_suffix` for more details.
Be aware not to use ``dev`` or ``localhost``. See :ref:`env_tld_suffix` for more details.
Can I just start PHP and MySQL instead of all container?

View File

@ -29,12 +29,12 @@ In order to remove the container do the following:
.. code-block:: bash
host> cd path/to/devilbox
host> docker-compose stop
host> cd path/to/devilbox
host> docker-compose stop
# Remove the stopped container (IMPORTANT!)
# After the removal it will be re-created during next run
host> docker-compose rm -f
# Remove the stopped container (IMPORTANT!)
# After the removal it will be re-created during next run
host> docker-compose rm -f
.. seealso:: :ref:`remove_stopped_container`
@ -51,15 +51,15 @@ to read-only by applying the following ``chmod`` command.
.. code-block:: bash
# Nagivate to devilbox git directory
host> cd path/to/devilbox
# Nagivate to devilbox git directory
host> cd path/to/devilbox
# Navigate to the MySQL config directory (e.g.: MySQL 5.5)
host> cd cfg/mysql-5.5
# Navigate to the MySQL config directory (e.g.: MySQL 5.5)
host> cd cfg/mysql-5.5
# Make cnf files read only
host> chmod 0444 *.cnf
# Make cnf files read only
host> chmod 0444 *.cnf
.. seealso::
* :ref:`my_cnf`
* https://github.com/cytopia/devilbox/issues/212
* :ref:`my_cnf`
* https://github.com/cytopia/devilbox/issues/212

View File

@ -44,77 +44,75 @@ Open ``docker-compose.override.yml`` with your favourite editor and paste the fo
into it.
.. code-block:: yaml
:caption: docker-compose.override.yml
:name: docker-compose.override.yml
:emphasize-lines: 4,5,8
:caption: docker-compose.override.yml
:emphasize-lines: 4,5,8
version: '2.1'
services:
# Your custom Docker image here:
<name>:
image: <image-name>:<image-version>
networks:
app_net:
ipv4_address: <unused-ip-address>
# For ease of use always automatically start these:
depends_on:
- bind
- php
- httpd
# End of custom Docker image
version: '2.1'
services:
# Your custom Docker image here:
<name>:
image: <image-name>:<image-version>
networks:
app_net:
ipv4_address: <unused-ip-address>
# For ease of use always automatically start these:
depends_on:
- bind
- php
- httpd
# End of custom Docker image
.. note::
* ``<name>`` has to be replaced with any name of your choice
* ``<image-name>`` has to be replaced with the name of the Docker image
* ``<image-version>`` has to be replaced with the tag of the Docker image
* ``<unused-ip-address>`` has to be replaced with an unused IP address
* ``<name>`` has to be replaced with any name of your choice
* ``<image-name>`` has to be replaced with the name of the Docker image
* ``<image-version>`` has to be replaced with the tag of the Docker image
* ``<unused-ip-address>`` has to be replaced with an unused IP address
Two new services
^^^^^^^^^^^^^^^^
.. code-block:: yaml
:caption: docker-compose.override.yml
:name: docker-compose.override.yml
:emphasize-lines: 4,5,8,16,17,20
:caption: docker-compose.override.yml
:emphasize-lines: 4,5,8,16,17,20
version: '2.1'
services:
# Your first custom Docker image here:
<name1>:
image: <image1-name>:<image1-version>
networks:
app_net:
ipv4_address: <unused-ip-address1>
# For ease of use always automatically start these:
depends_on:
- bind
- php
- httpd
# End of first custom Docker image
# Your second custom Docker image here:
<name2>:
image: <image2-name>:<image2-version>
networks:
app_net:
ipv4_address: <unused-ip-address2>
# For ease of use always automatically start these:
depends_on:
- bind
- php
- httpd
# End of second custom Docker image
version: '2.1'
services:
# Your first custom Docker image here:
<name1>:
image: <image1-name>:<image1-version>
networks:
app_net:
ipv4_address: <unused-ip-address1>
# For ease of use always automatically start these:
depends_on:
- bind
- php
- httpd
# End of first custom Docker image
# Your second custom Docker image here:
<name2>:
image: <image2-name>:<image2-version>
networks:
app_net:
ipv4_address: <unused-ip-address2>
# For ease of use always automatically start these:
depends_on:
- bind
- php
- httpd
# End of second custom Docker image
.. note::
* ``<name1>`` has to be replaced with any name of your choice
* ``<image1-name>`` has to be replaced with the name of the Docker image
* ``<image1-version>`` has to be replaced with the tag of the Docker image
* ``<unused-ip-address1>`` has to be replaced with an unused IP address
* ``<name1>`` has to be replaced with any name of your choice
* ``<image1-name>`` has to be replaced with the name of the Docker image
* ``<image1-version>`` has to be replaced with the tag of the Docker image
* ``<unused-ip-address1>`` has to be replaced with an unused IP address
.. note::
* ``<name2>`` has to be replaced with any name of your choice
* ``<image2-name>`` has to be replaced with the name of the Docker image
* ``<image2-version>`` has to be replaced with the tag of the Docker image
* ``<unused-ip-address2>`` has to be replaced with an unused IP address
* ``<name2>`` has to be replaced with any name of your choice
* ``<image2-name>`` has to be replaced with the name of the Docker image
* ``<image2-version>`` has to be replaced with the tag of the Docker image
* ``<unused-ip-address2>`` has to be replaced with an unused IP address
CockroachDB example
@ -131,25 +129,24 @@ Docker image:
Now add the information to ``docker-compose.override.yml``:
.. code-block:: yaml
:caption: docker-compose.override.yml
:name: docker-compose.override.yml
:emphasize-lines: 4-5,9
:caption: docker-compose.override.yml
:emphasize-lines: 4-5,9
version: '2.1'
services:
# Your custom Docker image here:
cockroach:
image: cockroachdb/cockroach:latest
command: start --insecure
networks:
app_net:
ipv4_address: 172.16.238.200
# For ease of use always automatically start these:
depends_on:
- bind
- php
- httpd
# End of custom Docker image
version: '2.1'
services:
# Your custom Docker image here:
cockroach:
image: cockroachdb/cockroach:latest
command: start --insecure
networks:
app_net:
ipv4_address: 172.16.238.200
# For ease of use always automatically start these:
depends_on:
- bind
- php
- httpd
# End of custom Docker image
@ -162,18 +159,18 @@ name you have chosen.
.. code-block:: bash
host> docker-compose up <name>
host> docker-compose up <name>
In the example of Cockroach DB the command would look like this
.. code-block:: bash
host> docker-compose up cockroach
host> docker-compose up cockroach
Further reading
===============
.. seealso::
* :ref:`docker_compose_override_yml`
* :ref:`overwrite_existing_docker_image`
* :ref:`docker_compose_override_yml`
* :ref:`overwrite_existing_docker_image`

View File

@ -59,32 +59,31 @@ default generation process via templates. Those templates can be added to each p
you the option to customize the virtual host of this specific project.
.. note::
:ref:`custom_vhost`
Ensure you have read and understand how to customize your virtual host with ``vhost-gen``.
:ref:`env_httpd_template_dir`
Ensure you know what this variable does inside your ``.env`` file.
:ref:`custom_vhost`
Ensure you have read and understand how to customize your virtual host with ``vhost-gen``.
:ref:`env_httpd_template_dir`
Ensure you know what this variable does inside your ``.env`` file.
.. important::
When adjusting vhost-gen templates for a project you have to do **one** of the following:
When adjusting vhost-gen templates for a project you have to do **one** of the following:
* Restart the devilbox
* Or rename your project directory to some other name and then rename it back to its original
name.
* Restart the devilbox
* Or rename your project directory to some other name and then rename it back to its original name.
More information here: :ref:`custom_vhost_apply_vhost_gen_changes`
More information here: :ref:`custom_vhost_apply_vhost_gen_changes`
.. warning::
Pay close attention that you do not use TAB (``\t``) characters for indenting the vhost-gen
yaml files. Some editors might automatically indent using TABs, so ensure they are replaced
with spaces. If TAB characters are present, those files become invalid and won't work.
https://github.com/cytopia/devilbox/issues/142
Pay close attention that you do not use TAB (``\t``) characters for indenting the vhost-gen
yaml files. Some editors might automatically indent using TABs, so ensure they are replaced
with spaces. If TAB characters are present, those files become invalid and won't work.
https://github.com/cytopia/devilbox/issues/142
You can use the bundled ``yamllint`` binary inside the container to validate your config.
You can use the bundled ``yamllint`` binary inside the container to validate your config.
**See also:**
**See also:**
* :ref:`tutorial_work_inside_the_php_container`
* :ref:`available_tools`
* :ref:`tutorial_work_inside_the_php_container`
* :ref:`available_tools`
Prerequisite
@ -110,14 +109,14 @@ Ensure that the default ``vhost-gen`` templates have been copied to your project
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd ./home/user/devilbox
# Navigate to the Devilbox directory
host> cd ./home/user/devilbox
# Create template directory in your project
host> mkdir ./data/www/project-1/.devilbox
# Create template directory in your project
host> mkdir ./data/www/project-1/.devilbox
# Copy vhost-gen templates
host> cp templates/vhost-gen/* ./data/www/project-1/.devilbox
# Copy vhost-gen templates
host> cp templates/vhost-gen/* ./data/www/project-1/.devilbox
By having done all prerequisite, your project should be available under http://my-project-1.loc
@ -153,7 +152,6 @@ here).
.. code-block:: yaml
:caption: /home/user/devilbox/data/www/project-1/.devilbox/apache22.yml
:name: apache22.yml
:emphasize-lines: 3
vhost: |
@ -177,7 +175,6 @@ All you will have to do, is to add another ``ServerName`` directive:
.. code-block:: yaml
:caption: /home/user/devilbox/data/www/project-1/.devilbox/apache22.yml
:name: apache22.yml
:emphasize-lines: 3,4
vhost: |
@ -232,7 +229,6 @@ here).
.. code-block:: yaml
:caption: /home/user/devilbox/data/www/project-1/.devilbox/apache22.yml
:name: apache22.yml
:emphasize-lines: 3
vhost: |
@ -256,7 +252,6 @@ All you will have to do, is to add another ``ServerName`` directive which does c
.. code-block:: yaml
:caption: /home/user/devilbox/data/www/project-1/.devilbox/apache22.yml
:name: apache22.yml
:emphasize-lines: 3,4
vhost: |
@ -325,7 +320,6 @@ here).
.. code-block:: yaml
:caption: /home/user/devilbox/data/www/project-1/.devilbox/nginx.yml
:name: nginx.yml
:emphasize-lines: 4
vhost: |
@ -350,7 +344,6 @@ All you will have to do, is to extend the ``server_name`` directive:
.. code-block:: yaml
:caption: /home/user/devilbox/data/www/project-1/.devilbox/nginx.yml
:name: nginx.yml
:emphasize-lines: 4
vhost: |
@ -407,7 +400,6 @@ here).
.. code-block:: yaml
:caption: /home/user/devilbox/data/www/project-1/.devilbox/nginx.yml
:name: nginx.yml
:emphasize-lines: 4
vhost: |
@ -432,7 +424,6 @@ All you will have to do, is to extend the ``server_name`` directive with a catch
.. code-block:: yaml
:caption: /home/user/devilbox/data/www/project-1/.devilbox/nginx.yml
:name: nginx.yml
:emphasize-lines: 4
vhost: |
@ -475,34 +466,34 @@ Let's cover the second step
.. code-block:: bash
# Navigate to the data directory
host> /home/user/devilbox/data/www
# Navigate to the data directory
host> /home/user/devilbox/data/www
# Rename your project to something else
host> mv project-1 project-1.tmp
# Rename your project to something else
host> mv project-1 project-1.tmp
# Rename your project to its original name
host> mv project-1.tmp project-1
# Rename your project to its original name
host> mv project-1.tmp project-1
If you want to understand what is going on right now, check the docker logs for the web server.
.. code-block:: bash
# Navigate to the devilbox directory
host> /home/user/devilbox
# Navigate to the devilbox directory
host> /home/user/devilbox
# Check docker logs
host> docker-compose logs httpd
# Check docker logs
host> docker-compose logs httpd
httpd_1 | vhostgen: [2018-03-18 11:46:52] Adding: project-1.tmp.loc
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] ADD: succeeded: /shared/httpd/project-1.tmp
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] DEL: succeeded: /shared/httpd/project-1
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] TRIGGER succeeded: /usr/local/apache2/bin/httpd -k restart
httpd_1 | vhostgen: [2018-03-18 11:46:52] Adding: project-1.tmp.loc
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] ADD: succeeded: /shared/httpd/project-1.tmp
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] DEL: succeeded: /shared/httpd/project-1
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] TRIGGER succeeded: /usr/local/apache2/bin/httpd -k restart
httpd_1 | vhostgen: [2018-03-18 11:46:52] Adding: project-1loc
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] ADD: succeeded: /shared/httpd/project-1
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] DEL: succeeded: /shared/httpd/project-1.tmp
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] TRIGGER succeeded: /usr/local/apache2/bin/httpd -k restart
httpd_1 | vhostgen: [2018-03-18 11:46:52] Adding: project-1loc
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] ADD: succeeded: /shared/httpd/project-1
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] DEL: succeeded: /shared/httpd/project-1.tmp
httpd_1 | watcherd: [2018-03-18 11:46:52] [OK] TRIGGER succeeded: /usr/local/apache2/bin/httpd -k restart
**What happened?**

View File

@ -21,11 +21,11 @@ Shut down the Devilbox in case it is still running:
.. code-block:: bash
# Navigate to the Devilbox directory
host> /home/user/devilbox
# Navigate to the Devilbox directory
host> /home/user/devilbox
# Stop all container
host> docker-compose stop
# Stop all container
host> docker-compose stop
Edit the ``.env`` file
@ -36,18 +36,17 @@ It will look something like this:
.. code-block:: bash
:name: .env
:caption: .env
:emphasize-lines: 5
#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
#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
As you can see, all available values are already there, but commented. Only one is uncommented.
In this example it is ``7.1``, which is the PHP version that will be started, once the Devilbox
@ -59,18 +58,17 @@ To change this, simply uncomment your version of choice and save this file. Do n
In order to enable PHP 5.5, you would change the ``.env`` file like this:
.. code-block:: bash
:name: .env
:caption: .env
:emphasize-lines: 2
#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
#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
Start the Devilbox
@ -80,11 +78,11 @@ Now save the file and you can start the Devilbox again.
.. code-block:: bash
# Navigate to the Devilbox directory
host> /home/user/devilbox
# Navigate to the Devilbox directory
host> /home/user/devilbox
# Stop all container
host> docker-compose up php httpd bind
# Stop all container
host> docker-compose up php httpd bind
.. seealso:: :ref:`start_the_devilbox`
@ -97,18 +95,17 @@ If two versions are uncommented, always the last one takes precedence.
Consider this ``.env`` file:
.. code-block:: bash
:name: .env
:caption: .env
:emphasize-lines: 2,4
#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
#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
Both, PHP 5.4 and PHP 7.0 are uncommented, however, when you start the Devilbox, it will use
PHP 7.0 as this value overwrites any previous ones.
@ -124,7 +121,7 @@ The variable names of all available services with changable versions are in the
``<SERVICE>_SERVER``. Just look through the :ref:`env_file`.
.. seealso::
The following variables control service versions:
The following variables control service versions:
:ref:`env_php_server`, :ref:`env_httpd_server`, :ref:`env_mysql_server`, :ref:`env_pgsql_server`, :ref:`env_redis_server`, :ref:`env_memcd_server`, :ref:`env_mongo_server`

View File

@ -106,26 +106,23 @@ If you are running Linux as your host operating system you would use the IP addr
computer which was identified as ``172.16.238.1``.
.. code-block:: bash
:name: .env
:caption: .env
:caption: .env
EXTRA_HOSTS=mywebserver.loc=172.16.238.1
EXTRA_HOSTS=mywebserver.loc=172.16.238.1
or
.. code-block:: bash
:name: .env
:caption: .env
:caption: .env
EXTRA_HOSTS=mywebserver.loc=docker.for.lin.host.internal
EXTRA_HOSTS=mywebserver.loc=docker.for.lin.host.internal
or
.. code-block:: bash
:name: .env
:caption: .env
:caption: .env
EXTRA_HOSTS=mywebserver.loc=docker.for.lin.localhost
EXTRA_HOSTS=mywebserver.loc=docker.for.lin.localhost
Mapping on MacOS
@ -135,10 +132,9 @@ If you are running MacOS as your host operating system you would use one of the
(depending on your Docker version).
.. code-block:: bash
:name: .env
:caption: .env
:caption: .env
EXTRA_HOSTS=mywebserver.loc=host.docker.internal
EXTRA_HOSTS=mywebserver.loc=host.docker.internal
The CNAME ``host.docker.internal`` will be resolved to an IP address during startup and ``mywebserver.loc``
's DNS record will point to that IP address.
@ -151,10 +147,9 @@ If you are running Windows as your host operating system you would use one of th
(depending on your Docker version).
.. code-block:: bash
:name: .env
:caption: .env
:caption: .env
EXTRA_HOSTS=mywebserver.loc=docker.for.win.host.internal
EXTRA_HOSTS=mywebserver.loc=docker.for.win.host.internal
The CNAME ``docker.for.win.host.internal`` will be resolved to an IP address during startup and ``mywebserver.loc``
's DNS record will point to that IP address.
@ -171,5 +166,5 @@ Further reading
===============
.. seealso::
* :ref:`env_extra_hosts`
* :ref:`global_configuration_auto_dns`
* :ref:`env_extra_hosts`
* :ref:`global_configuration_auto_dns`

View File

@ -24,7 +24,6 @@ would add the following to the ``.env`` file:
.. code-block:: bash
:caption: .env
:name: .env
:emphasize-lines: 1
APPLICATION_ENV=production
@ -32,8 +31,8 @@ would add the following to the ``.env`` file:
You need to restart the Devilbox for the changes to take effect.
.. note::
There is already a proposed section inside the ``.env`` file at the very bottom
to add you custom variables to differentiate them from the Devilbox required variables.
There is already a proposed section inside the ``.env`` file at the very bottom
to add you custom variables to differentiate them from the Devilbox required variables.
Use custom environment variables
@ -44,7 +43,6 @@ You can use the PHP's built-in function ``getenv`` to obtain the value:
.. code-block:: php
:caption: index.php
:name: index.php
:emphasize-lines: 3
<?php

View File

@ -7,8 +7,8 @@ Enable Xdebug
This tutorial shows you how to enable and use Xdebug with the Devilbox.
.. seealso::
If you are unsure of how to add custom ``*.ini`` files to the Devilbox,
have a look at this section first: :ref:`php_ini`
If you are unsure of how to add custom ``*.ini`` files to the Devilbox,
have a look at this section first: :ref:`php_ini`
**Table of Contents**
@ -34,16 +34,15 @@ Additionally to the specific configurations for each operating system and Docker
probably also want to add the following to your ini file:
.. code-block:: ini
:name: xdebug.ini
:caption: xdebug.ini
:caption: xdebug.ini
xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_port=9000
xdebug.remote_autostart=1
xdebug.idekey="PHPSTORM"
xdebug.remote_log=/var/log/php/xdebug.log
xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_port=9000
xdebug.remote_autostart=1
xdebug.idekey="PHPSTORM"
xdebug.remote_log=/var/log/php/xdebug.log
.. seealso:: https://xdebug.org/docs/all_settings
@ -94,20 +93,19 @@ Keep the exact path of ``/var/log/php/xdebug.log``. You will then have the log f
in the Devilbox log directory of the PHP version for which you have configured Xdebug.
.. important::
You can set the value of ``xdebug.idekey`` to whatever you like, however it is important
to remember what value you have set. Throughout the examples in this tutorial it is assumed,
that the value is ``PHPSTORM``.
You can set the value of ``xdebug.idekey`` to whatever you like, however it is important
to remember what value you have set. Throughout the examples in this tutorial it is assumed,
that the value is ``PHPSTORM``.
Linux
-----
.. code-block:: ini
:name: xdebug.ini
:caption: xdebug.ini
:emphasize-lines: 1
:caption: xdebug.ini
:emphasize-lines: 1
xdebug.remote_connect_back=1
xdebug.remote_connect_back=1
MacOS (Docker for Mac)
@ -116,32 +114,29 @@ MacOS (Docker for Mac)
Docker 18.03.0-ce+ and Docker compose 1.20.1+
.. code-block:: ini
:name: xdebug.ini
:caption: xdebug.ini
:emphasize-lines: 1
:caption: xdebug.ini
:emphasize-lines: 1
xdebug.remote_host=host.docker.internal
xdebug.remote_connect_back=0
xdebug.remote_host=host.docker.internal
xdebug.remote_connect_back=0
Docker 17.12.0-ce+ and Docker compose 1.18.0+
.. code-block:: ini
:name: xdebug.ini
:caption: xdebug.ini
:emphasize-lines: 1
:caption: xdebug.ini
:emphasize-lines: 1
xdebug.remote_host=docker.for.mac.host.internal
xdebug.remote_connect_back=0
xdebug.remote_host=docker.for.mac.host.internal
xdebug.remote_connect_back=0
Docker 17.06.0-ce+ and Docker compose 1.14.0+
.. code-block:: ini
:name: xdebug.ini
:caption: xdebug.ini
:emphasize-lines: 1
:caption: xdebug.ini
:emphasize-lines: 1
xdebug.remote_host=docker.for.mac.localhost
xdebug.remote_connect_back=0
xdebug.remote_host=docker.for.mac.localhost
xdebug.remote_connect_back=0
If you have older versions, upgrade.
@ -150,8 +145,8 @@ MacOS (Docker Toolbox)
----------------------
.. warning::
This is a legacy solution, upgrade to Docker for Mac
https://docs.docker.com/toolbox
This is a legacy solution, upgrade to Docker for Mac
https://docs.docker.com/toolbox
Windows (Docker for Windows)
@ -160,22 +155,20 @@ Windows (Docker for Windows)
Docker 18.03.0-ce+ and Docker compose 1.20.1+
.. code-block:: ini
:name: xdebug.ini
:caption: xdebug.ini
:emphasize-lines: 1
:caption: xdebug.ini
:emphasize-lines: 1
xdebug.remote_host=docker.for.win.host.internal
xdebug.remote_connect_back=0
xdebug.remote_host=docker.for.win.host.internal
xdebug.remote_connect_back=0
Docker 17.06.0-ce+ and Docker compose 1.14.0+
.. code-block:: ini
:name: xdebug.ini
:caption: xdebug.ini
:emphasize-lines: 1
:caption: xdebug.ini
:emphasize-lines: 1
xdebug.remote_host=docker.for.win.host.localhost
xdebug.remote_connect_back=0
xdebug.remote_host=docker.for.win.host.localhost
xdebug.remote_connect_back=0
If you have older versions, upgrade.
@ -184,8 +177,8 @@ Windows (Docker Toolbox)
------------------------
.. warning::
This is a legacy solution, upgrade to Docker for Windows
https://docs.docker.com/toolbox
This is a legacy solution, upgrade to Docker for Windows
https://docs.docker.com/toolbox
Configure your IDE
@ -206,8 +199,8 @@ setting up your IDE config.
The path inside the PHP Docker container is always ``/shared/httpd``.
.. important::
Even though your path in ``.env`` for :ref:`env_httpd_datadir` might be relative (e.g. ``./data/www``),
you need to get the actualy absolute path of it, when setting up your IDE.
Even though your path in ``.env`` for :ref:`env_httpd_datadir` might be relative (e.g. ``./data/www``),
you need to get the actualy absolute path of it, when setting up your IDE.
IDE key
^^^^^^^
@ -230,27 +223,25 @@ Atom
For Atom, you need to provide a different ``xdebug.idekey`` in your php.ini file ``xdebug.ini``:
.. code-block:: ini
:name: xdebug.ini
:caption: xdebug.ini
:caption: xdebug.ini
xdebug.idekey=xdebug.atom
xdebug.idekey=xdebug.atom
Linux
^^^^^^
.. code-block:: json
:name: launch.json
:caption: launch.json
:emphasize-lines: 6
.. code-block:: js
:caption: launch.json
:emphasize-lines: 6
"php-debug":
{
ServerPort: 9000
PathMaps: [
"remotepath;localpath"
"/shared/httpd;/home/cytopia/repo/devilbox/data/www"
]
}
"php-debug":
{
ServerPort: 9000
PathMaps: [
"remotepath;localpath"
"/shared/httpd;/home/cytopia/repo/devilbox/data/www"
]
}
MacOS (Docker for Mac)
^^^^^^^^^^^^^^^^^^^^^^
@ -315,19 +306,18 @@ Sublime Text 3
Linux
^^^^^^
.. code-block:: json
:name: Xdebug-sublime-settings
:caption: Xdebug-sublime-settings
:emphasize-lines: 3,6
:caption: Xdebug-sublime-settings
:emphasize-lines: 3,6
{
"path_mapping": {
"/shared/httpd" : "/home/cytopia/repo/devilbox/data/www"
},
"url": "",
"ide_key": "PHPSTORM",
"host": "0.0.0.0",
"port": 9000
}
{
"path_mapping": {
"/shared/httpd" : "/home/cytopia/repo/devilbox/data/www"
},
"url": "",
"ide_key": "PHPSTORM",
"host": "0.0.0.0",
"port": 9000
}
MacOS (Docker for Mac)
@ -356,30 +346,29 @@ Visual Studio Code
Linux
^^^^^^
.. code-block:: json
:name: launch.json
:caption: launch.json
:emphasize-lines: 9,10
:caption: launch.json
:emphasize-lines: 9,10
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xbebug",
"type": "php",
"request": "launch",
"port": 9000,
"serverSourceRoot": "/shared/httpd",
"localSourceRoot": "/home/cytopia/repo/devilbox/data/www"
}, {
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xbebug",
"type": "php",
"request": "launch",
"port": 9000,
"serverSourceRoot": "/shared/httpd",
"localSourceRoot": "/home/cytopia/repo/devilbox/data/www"
}, {
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
MacOS (Docker for Mac)

View File

@ -49,66 +49,63 @@ First you simply copy the while definition of the bind service from ``docker-com
``docker-compose.override.yml``:
.. code-block:: yaml
:name: docker-compose.override.yml
:caption: docker-compose.override.yml
:caption: docker-compose.override.yml
version: '2.1'
services:
bind:
image: cytopia/bind:0.11
restart: always
ports:
# [local-machine:]local-port:docker-port
- "${LOCAL_LISTEN_ADDR}${HOST_PORT_BIND:-1053}:53"
- "${LOCAL_LISTEN_ADDR}${HOST_PORT_BIND:-1053}:53/udp"
version: '2.1'
services:
bind:
image: cytopia/bind:0.11
restart: always
ports:
# [local-machine:]local-port:docker-port
- "${LOCAL_LISTEN_ADDR}${HOST_PORT_BIND:-1053}:53"
- "${LOCAL_LISTEN_ADDR}${HOST_PORT_BIND:-1053}:53/udp"
environment:
##
## Debug?
##
- DEBUG_ENTRYPOINT=${DEBUG_COMPOSE_ENTRYPOINT}
- DOCKER_LOGS=1
environment:
##
## Debug?
##
- DEBUG_ENTRYPOINT=${DEBUG_COMPOSE_ENTRYPOINT}
- DOCKER_LOGS=1
##
## Bind settings
##
- WILDCARD_ADDRESS=172.16.238.11
- DNS_FORWARDER=${BIND_DNS_RESOLVER:-8.8.8.8,8.8.4.4}
##
## Bind settings
##
- WILDCARD_ADDRESS=172.16.238.11
- DNS_FORWARDER=${BIND_DNS_RESOLVER:-8.8.8.8,8.8.4.4}
dns:
- 127.0.0.1
dns:
- 127.0.0.1
networks:
app_net:
ipv4_address: 172.16.238.100
networks:
app_net:
ipv4_address: 172.16.238.100
The second step is to remove everything that you do not need to overwrite:
.. code-block:: yaml
:name: docker-compose.override.yml
:caption: docker-compose.override.yml
:caption: docker-compose.override.yml
version: '2.1'
services:
bind:
image: cytopia/bind:0.11
version: '2.1'
services:
bind:
image: cytopia/bind:0.11
The last step is to actually adjust the value you want to change for the bind service:
.. code-block:: yaml
:name: docker-compose.override.yml
:caption: docker-compose.override.yml
:emphasize-lines: 4
:caption: docker-compose.override.yml
:emphasize-lines: 4
version: '2.1'
services:
bind:
image: someother/bind:latest
version: '2.1'
services:
bind:
image: someother/bind:latest
Further reading
===============
.. seealso::
* :ref:`docker_compose_override_yml`
* :ref:`add_your_own_docker_image`
* :ref:`docker_compose_override_yml`
* :ref:`add_your_own_docker_image`

View File

@ -8,8 +8,8 @@ This tutorial gives you a general overview how to do static code analysis from w
container.
.. seealso::
* :ref:`available_tools`
* :ref:`tutorial_work_inside_the_php_container`
* :ref:`available_tools`
* :ref:`tutorial_work_inside_the_php_container`
**Table of Contents**
@ -40,34 +40,34 @@ Some of the bundled tools even allow for automatic fixing.
.. code-block:: bash
# 1. Enter your PHP container
host> ./bash
# 1. Enter your PHP container
host> ./bash
# 2. Go to your project folder
devilbox@php-7.0.20 $ cd /shared/httpd/my-project
# 2. Go to your project folder
devilbox@php-7.0.20 $ cd /shared/httpd/my-project
# 3. Run the tools
devilbox@php-7.0.20 $ git-conflicts --path=.
devilbox@php-7.0.20 $ git-ignored --path=.
devilbox@php-7.0.20 $ file-cr --path=.
devilbox@php-7.0.20 $ file-crlf --path=.
devilbox@php-7.0.20 $ file-empty --path=.
# 3. Run the tools
devilbox@php-7.0.20 $ git-conflicts --path=.
devilbox@php-7.0.20 $ git-ignored --path=.
devilbox@php-7.0.20 $ file-cr --path=.
devilbox@php-7.0.20 $ file-crlf --path=.
devilbox@php-7.0.20 $ file-empty --path=.
# 4. Run tools with more options
devilbox@php-7.0.20 $ syntax-php --path=. --extension=php
devilbox@php-7.0.20 $ syntax-php --path=. --shebang=php
# 4. Run tools with more options
devilbox@php-7.0.20 $ syntax-php --path=. --extension=php
devilbox@php-7.0.20 $ syntax-php --path=. --shebang=php
# 5. Various syntax checks
devilbox@php-7.0.20 $ syntax-bash --path=. --text --extension=sh
devilbox@php-7.0.20 $ syntax-css --path=. --text --extension=css
devilbox@php-7.0.20 $ syntax-js --path=. --text --extension=js
devilbox@php-7.0.20 $ syntax-json --path=. --text --extension=json
devilbox@php-7.0.20 $ syntax-markdown --path=. --text --extension=md
devilbox@php-7.0.20 $ syntax-perl --path=. --text --extension=pl
devilbox@php-7.0.20 $ syntax-php --path=. --text --extension=php
devilbox@php-7.0.20 $ syntax-python --path=. --text --extension=python
devilbox@php-7.0.20 $ syntax-ruby --path=. --text --extension=rb
devilbox@php-7.0.20 $ syntax-scss --path=. --text --extension=scss
# 5. Various syntax checks
devilbox@php-7.0.20 $ syntax-bash --path=. --text --extension=sh
devilbox@php-7.0.20 $ syntax-css --path=. --text --extension=css
devilbox@php-7.0.20 $ syntax-js --path=. --text --extension=js
devilbox@php-7.0.20 $ syntax-json --path=. --text --extension=json
devilbox@php-7.0.20 $ syntax-markdown --path=. --text --extension=md
devilbox@php-7.0.20 $ syntax-perl --path=. --text --extension=pl
devilbox@php-7.0.20 $ syntax-php --path=. --text --extension=php
devilbox@php-7.0.20 $ syntax-python --path=. --text --extension=python
devilbox@php-7.0.20 $ syntax-ruby --path=. --text --extension=rb
devilbox@php-7.0.20 $ syntax-scss --path=. --text --extension=scss
PHPCS
@ -79,14 +79,14 @@ PHPCS is a code style analyser for PHP.
.. code-block:: bash
# 1. Enter your PHP container
host> ./bash
# 1. Enter your PHP container
host> ./bash
# 2. Go to your project folder
devilbox@php-7.0.20 $ cd /shared/httpd/my-project
# 2. Go to your project folder
devilbox@php-7.0.20 $ cd /shared/httpd/my-project
# 3. Run it
devilbox@php-7.0.20 $ phpcs .
# 3. Run it
devilbox@php-7.0.20 $ phpcs .
ESLint
@ -98,11 +98,11 @@ ESLint is a Javascript static source code analyzer.
.. code-block:: bash
# 1. Enter your PHP container
host> ./bash
# 1. Enter your PHP container
host> ./bash
# 2. Go to your project folder
devilbox@php-7.0.20 $ cd /shared/httpd/my-project
# 2. Go to your project folder
devilbox@php-7.0.20 $ cd /shared/httpd/my-project
# 3. Run it
devilbox@php-7.0.20 $ eslint .
# 3. Run it
devilbox@php-7.0.20 $ eslint .

View File

@ -34,14 +34,14 @@ Entering from Linux or MacOS: ``shell.sh``
.. code-block:: bash
# Navigate to the Devilbox directory
host> cd /path/to/devilbox
# Navigate to the Devilbox directory
host> cd /path/to/devilbox
# Run provided script
host> ./shell.sh
# Run provided script
host> ./shell.sh
# Now you are inside the PHP Linux container
devilbox@php-7.0.19 in /shared/httpd $
# Now you are inside the PHP Linux container
devilbox@php-7.0.19 in /shared/httpd $
Entering from Windows: ``shell.bat``
@ -49,14 +49,14 @@ Entering from Windows: ``shell.bat``
.. code-block:: bash
# Navigate to the Devilbox directory
C:/> cd C:/Users/user1/devilbox
# Navigate to the Devilbox directory
C:/> cd C:/Users/user1/devilbox
# Run provided script
C:/Users/user1/devilbox> shell.bat
# Run provided script
C:/Users/user1/devilbox> shell.bat
# Now you are inside the PHP Linux container
devilbox@php-7.0.19 in /shared/httpd $
# Now you are inside the PHP Linux container
devilbox@php-7.0.19 in /shared/httpd $
Inside the container
@ -77,8 +77,8 @@ The uid and gid mappings are controlled via two ``.env`` variables called :ref:`
.. seealso::
If you want to find out more about synronized container permissions read up here:
:ref:`syncronize_container_permissions`
If you want to find out more about synronized container permissions read up here:
:ref:`syncronize_container_permissions`
``root`` user
@ -92,19 +92,19 @@ By default ``sudo`` is configured to be used without passwords, so you can simpl
.. code-block:: bash
# As user devilbox inside the container
devilbox@php-7.0.19 in /shared/httpd $ sudo su -
# As user devilbox inside the container
devilbox@php-7.0.19 in /shared/httpd $ sudo su -
# You are now the root user
root@php-7.0.19 in /shared/httpd $
# You are now the root user
root@php-7.0.19 in /shared/httpd $
You can also use ``sudo`` to run commands with root privileges without having to become root first.
.. code-block:: bash
# As user devilbox inside the container
devilbox@php-7.0.19 in /shared/httpd $ sudo apt update
devilbox@php-7.0.19 in /shared/httpd $ sudo apt install nmap
# As user devilbox inside the container
devilbox@php-7.0.19 in /shared/httpd $ sudo apt update
devilbox@php-7.0.19 in /shared/httpd $ sudo apt install nmap
Leave the container
@ -115,11 +115,11 @@ and you are out.
.. code-block:: bash
# As user devilbox inside the container
devilbox@php-7.0.19 in /shared/httpd $ exit
# As user devilbox inside the container
devilbox@php-7.0.19 in /shared/httpd $ exit
# You are now back on your host operating system
host>
# You are now back on your host operating system
host>
Host to Container mappings
@ -199,28 +199,28 @@ An example to access the MySQL database from either host or within the PHP conta
.. code-block:: bash
# Access MySQL from your host operating system
host> mysql -h 127.0.0.1
# Access MySQL from your host operating system
host> mysql -h 127.0.0.1
# Access MySQL from within the PHP container
devilbox@php-7.0.19 in /shared/httpd $ mysql -h 127.0.0.1
# Access MySQL from within the PHP container
devilbox@php-7.0.19 in /shared/httpd $ mysql -h 127.0.0.1
.. important::
Do not use ``localhost`` to access the services, it does not map to ``127.0.0.1`` on
all cases.
Do not use ``localhost`` to access the services, it does not map to ``127.0.0.1`` on
all cases.
So when setting up a configuration file from your PHP project you would for example use
``127.0.0.`` as the host for your MySQL database connection:
.. code-block:: php
<?php
// MySQL server connection
mysql_host = '127.0.0.1';
mysql_port = '3306';
mysql_user = 'someusername';
mysql_pass = 'somepassword';
?>
<?php
// MySQL server connection
mysql_host = '127.0.0.1';
mysql_port = '3306';
mysql_user = 'someusername';
mysql_pass = 'somepassword';
?>
Imagine your PHP framework ships a command line tool to run database migration. You could run
it from your host operating system or from within the PHP container. It would work from both
@ -230,8 +230,8 @@ You could also even switch between the Devilbox and a locally installed LAMP sta
and still use the same configuration.
.. warning::
The mapping of ``127.0.0.1`` to your host operating system does not work with
:ref:`docker_toolbox`.
The mapping of ``127.0.0.1`` to your host operating system does not work with
:ref:`docker_toolbox`.
Port mappings
@ -269,8 +269,8 @@ The PHP container is hooked up by default to the bundled DNS server and makes us
:ref:`global_configuration_auto_dns`.
.. seealso::
You can achieve the same on your host operating system by explicitly enabling auto-dns.
See also: :ref:`global_configuration_auto_dns`.
You can achieve the same on your host operating system by explicitly enabling auto-dns.
See also: :ref:`global_configuration_auto_dns`.
Checklist