diff --git a/.gitignore b/.gitignore index e82ec8aa..8a065cb2 100644 --- a/.gitignore +++ b/.gitignore @@ -202,3 +202,6 @@ $RECYCLE.BIN/ ###### BBEdit ###### *.bbprojectd *.bbproject + +###### VS Code ###### +/.vscode \ No newline at end of file diff --git a/docs/_includes/links/examples.rst b/docs/_includes/links/examples.rst index 121568c1..c211bf0c 100644 --- a/docs/_includes/links/examples.rst +++ b/docs/_includes/links/examples.rst @@ -28,6 +28,12 @@ Official Drupal Documentation +.. |ext_lnk_example_expressionengine_documentation| raw:html + + + Official ExpressionEngine Documentation + + .. |ext_lnk_example_joomla_documentation| raw:: html diff --git a/docs/examples/setup-expressionengine.rst b/docs/examples/setup-expressionengine.rst new file mode 100644 index 00000000..7b828a95 --- /dev/null +++ b/docs/examples/setup-expressionengine.rst @@ -0,0 +1,176 @@ +.. include:: /_includes/all.rst +.. include:: /_includes/snippets/__ANNOUNCEMENTS__.rst + +.. _example_setup_expressionengine: + +********************** +Setup ExpressionEngine +********************** + +This example will use ``curl`` to install ExpressionEngine from within the Devilbox PHP container. + +After completing the below listed steps, you will have a working ExpressionEngine setup ready to be +served via http and https. + +.. seealso:: |ext_lnk_example_expressionengine_documentation| + + +**Table of Contents** + +.. contents:: :local: + + +Overview +======== + +The following configuration will be used: + ++--------------+--------------------------+-------------+------------+-------------------------------------------------+ +| Project name | VirtualHost directory | Database | TLD_SUFFIX | Project URL | ++==============+==========================+=============+============+=================================================+ +| my-ee | /shared/httpd/my-ee | n.a. | loc | http://my-ee.loc |br| https://my-ee.loc | ++--------------+--------------------------+-------------+------------+-------------------------------------------------+ + +.. note:: + * Inside the Devilbox PHP container, projects are always in ``/shared/httpd/``. + * On your host operating system, projects are by default in ``./data/www/`` inside the + Devilbox git directory. This path can be changed via :ref:`env_httpd_datadir`. + + +Walk through +============ + +It will be ready in six simple steps: + +1. Enter the PHP container +2. Create a new VirtualHost directory +3. Download and extract ExpressionEngine +4. Symlink webroot directory +5. Setup DNS record +6. Visit http://my-ee.loc in your browser + + +1. Enter the PHP container +-------------------------- + +All work will be done inside the PHP container as it provides you with all required command line +tools. + +Navigate to the Devilbox git directory and execute ``shell.sh`` (or ``shell.bat`` on Windows) to +enter the running PHP container. + +.. code-block:: bash + + host> ./shell.sh + +.. seealso:: + * :ref:`enter_the_php_container` + * :ref:`work_inside_the_php_container` + * :ref:`available_tools` + + +2. Create new vhost directory +----------------------------- + +The vhost directory defines the name under which your project will be available. |br| +( ``.TLD_SUFFIX`` will be the final URL ). + +.. code-block:: bash + + devilbox@php-7.0.20 in /shared/httpd $ mkdir my-ee + +.. seealso:: :ref:`env_tld_suffix` + + +3. Download and extract ExpressionEngine +------------------------------ + +Navigate into your newly created vhost directory and install ExpressionEngine. + +.. code-block:: bash + + devilbox@php-7.0.20 in /shared/httpd $ cd my-ee + devilbox@php-7.0.20 in /shared/httpd/my-ee $ curl 'https://expressionengine.com/?ACT=243' -H 'Connection: keep-alive' -H 'Pragma: no-cache' -H 'Cache-Control: no-cache' -H 'Upgrade-Insecure-Requests: 1' -H 'DNT: 1' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' -H 'Sec-Fetch-Dest: document' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' -H 'Sec-Fetch-Site: same-origin' -H 'Sec-Fetch-Mode: navigate' -H 'Sec-Fetch-User: ?1' -H 'Referer: https://expressionengine.com/' -H 'Accept-Language: en-US,en;q=0.9' --compressed -o ee.zip + devilbox@php-7.0.20 in /shared/httpd/my-ee $ mkdir ee + devilbox@php-7.0.20 in /shared/httpd/my-ee $ unzip ee.zip -d ee + +How does the directory structure look after installation: + +.. code-block:: bash + + devilbox@php-7.0.20 in /shared/httpd/my-ee $ tree -L 1 + . + ├── ee.zip + └── ee + + 1 directory, 1 file + + +4. Symlink webroot +------------------ + +Symlinking the actual webroot directory to ``htdocs`` is important. The web server expects every +project's document root to be in ``/htdocs/``. This is the path where it will serve +the files. This is also the path where your frameworks entrypoint (usually ``index.php``) should +be found. + +Some frameworks however provide its actual content in nested directories of unknown levels. +This would be impossible to figure out by the web server, so you manually have to symlink it back +to its expected path. + +.. code-block:: bash + + devilbox@php-7.0.20 in /shared/httpd/my-ee $ ln -s ee/ htdocs + +How does the directory structure look after symlinking it: + +.. code-block:: bash + + devilbox@php-7.0.20 in /shared/httpd/my-ee $ tree -L 1 + . + ├── ee.zip + ├── ee + └── htdocs -> ee + + 2 directories, 1 file + +As you can see from the above directory structure, ``htdocs`` is available in its expected +path and points to the frameworks entrypoint. + +.. important:: + When using **Docker Toolbox**, you need to **explicitly allow** the usage of **symlinks**. + See below for instructions: + + * Docker Toolbox and :ref:`howto_docker_toolbox_and_the_devilbox_windows_symlinks` + + +5. DNS record +------------- +If you **have** Auto DNS configured already, you can skip this section, because DNS entries will +be available automatically by the bundled DNS server. + +If you **don't have** Auto DNS configured, you will need to add the following line to your +host operating systems ``/etc/hosts`` file (or ``C:\Windows\System32\drivers\etc`` on Windows): + +.. code-block:: bash + :caption: /etc/hosts + + 127.0.0.1 my-ee.loc + +.. seealso:: + + * :ref:`howto_add_project_hosts_entry_on_mac` + * :ref:`howto_add_project_hosts_entry_on_win` + * :ref:`setup_auto_dns` + + +6. Open your browser +-------------------- + +All set now, you can visit http://my-ee.loc or https://my-ee.loc in your browser. + + +Next steps +========== + +.. include:: /_includes/snippets/examples/next-steps.rst diff --git a/docs/getting-started/create-your-first-project.rst b/docs/getting-started/create-your-first-project.rst index 25cad716..615a4d0d 100644 --- a/docs/getting-started/create-your-first-project.rst +++ b/docs/getting-started/create-your-first-project.rst @@ -200,6 +200,7 @@ their articles: * :ref:`example_setup_codeigniter` * :ref:`example_setup_craftcms` * :ref:`example_setup_drupal` + * :ref:`example_setup_expressionengine` * :ref:`example_setup_joomla` * :ref:`example_setup_laravel` * :ref:`example_setup_magento` diff --git a/docs/index.rst b/docs/index.rst index 044443e1..375ad45f 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -178,6 +178,7 @@ host is ready to be served with your custom domain. examples/setup-contao examples/setup-craftcms examples/setup-drupal + examples/setup-expressionengine examples/setup-joomla examples/setup-laravel examples/setup-magento2 diff --git a/docs/support/faq.rst b/docs/support/faq.rst index 64f809f1..8acc96a1 100644 --- a/docs/support/faq.rst +++ b/docs/support/faq.rst @@ -180,7 +180,12 @@ Does it work with Drupal? Yes, see :ref:`example_setup_drupal` -Does it work with Joomla? +Does it work with ExpressionEngine? +------------------------- + +Yes, see :ref:`example_setup_expressionengine` + +Does it work with ExpressionEngine? ------------------------- Yes, see :ref:`example_setup_joomla`