Closed geerlingguy closed 4 years ago
So had a bit of an outage after deploying the new d8.jeffgeerling.com
site...
The first problem was I had forgotten to add ssl_enabled: false
to the vhost configuration I use to determine whether or not HTTPS config is added to the server in Nginx:
- server_name_canonical: d8.jeffgeerling.com
drupal_docroot: /home/geerlingguy/domains/drupal8
ssl_enabled: false
So after I deployed that fix (so the broken SSL config that was trying to load a dhparam.pem
file that existed but couldn't be loaded twice by Nginx for some reason, causing an error like: nginx: [emerg] BIO_new_file("/path/to/dhparam.pem") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/path/to/dhparam.pem','r')
), I started getting a different error:
nginx: [emerg] host not found in upstream "d8.jeffgeerling.com" in /etc/nginx/sites-enabled/d8.jeffgeerling.com.conf:46
To fix that, I added an alias to the local hosts file (/etc/hosts
) since the DNS was not pointed at this server (I'm just using it for testing):
127.0.0.1 d8.jeffgeerling.com
Now I'm getting a 404 but all my other Nginx sites are working properly, so I'm over that hump :) — a 404 I can deal with!
I added a task to make sure all the Nginx hosts are listed in the hosts file, in case DNS has issues:
- name: Ensure all the vhost hosts are listed in /etc/hosts
lineinfile:
dest: /etc/hosts
regexp: '.*{{ item.server_name_canonical }}$'
line: "{{ ansible_default_ipv4.address }} {{ item.server_name_canonical }}"
state: present
with_items: "{{ mm_nginx_vhosts }}"
The 404 is because in D8, my codebase has a web
folder where the docroot exists, so I had to update the docroot setting:
drupal_docroot: /home/geerlingguy/domains/drupal8/web
And now I'm also realizing I have to do a composer install
since the codebase doesn't include the composer dependencies :D
So I've added:
- name: Ensure Drupal 8 codebase is present and updated.
git:
repo: https://github.com/geerlingguy/jeffgeerling-com.git
version: master
dest: /home/geerlingguy/domains/drupal8
accept_hostkey: true
become: true
become_user: geerlingguy
register: drupal8_codebase
- name: Make sure all Drupal 8 composer dependencies are installed.
composer:
command: install
working_dir: /home/geerlingguy/domains/drupal8
when: drupal8_codebase is changed
Now I'm getting The provided host name is not valid for this server.
so I have to add some trusted host settings :)
Well now I'm getting a weird error:
RuntimeException: Zend Diactoros must be installed to use the DiactorosFactory. in Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory->__construct() (line 37 of /home/geerlingguy/domains/drupal8/vendor/symfony/psr-http-message-bridge/Factory/DiactorosFactory.php).
Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory->__construct()
ReflectionClass->newInstanceArgs(Array) (Line: 1176)
Symfony\Component\DependencyInjection\ContainerBuilder->createService(Object, Array, 1, 'psr7.http_message_factory') (Line: 634)
Symfony\Component\DependencyInjection\ContainerBuilder->doGet('psr7.http_message_factory', 1, Array, 1) (Line: 1281)
Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices(Object, Array, 1) (Line: 1238)
Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices(Array, Array, 1) (Line: 1149)
Symfony\Component\DependencyInjection\ContainerBuilder->createService(Object, Array, 1, 'controller_resolver') (Line: 634)
Symfony\Component\DependencyInjection\ContainerBuilder->doGet('controller_resolver', 1, Array, 1) (Line: 1281)
Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices(Object, Array, 1) (Line: 1238)
Symfony\Component\DependencyInjection\ContainerBuilder->doResolveServices(Array, Array, 1) (Line: 1149)
Symfony\Component\DependencyInjection\ContainerBuilder->createService(Object, Array, 1, 'renderer') (Line: 634)
Symfony\Component\DependencyInjection\ContainerBuilder->doGet('renderer', 1) (Line: 588)
Symfony\Component\DependencyInjection\ContainerBuilder->get('renderer') (Line: 89)
Drupal\Core\TempStore\Element\BreakLockLink::create(Object, Array, 'break_lock_link', Array) (Line: 21)
Drupal\Core\Plugin\Factory\ContainerFactory->createInstance('break_lock_link', Array) (Line: 83)
Drupal\Component\Plugin\PluginManagerBase->createInstance('break_lock_link', Array) (Line: 141)
Drupal\Core\Render\ElementInfoManager->createInstance('break_lock_link') (Line: 111)
Drupal\Core\Render\ElementInfoManager->buildInfo('seven') (Line: 77)
Drupal\Core\Render\ElementInfoManager->getInfo('form') (Line: 812)
Drupal\Core\Form\FormBuilder->prepareForm('install_select_language_form', Array, Object) (Line: 278)
Drupal\Core\Form\FormBuilder->buildForm('Drupal\Core\Installer\Form\SelectLanguageForm', Object) (Line: 955)
install_get_form('Drupal\Core\Installer\Form\SelectLanguageForm', Array) (Line: 1375)
install_select_language(Array) (Line: 702)
install_run_task(Array, Array) (Line: 577)
install_run_tasks(Array, NULL) (Line: 117)
install_drupal(Object) (Line: 44)
And trying to run Drush commands, I also get:
In DiactorosFactory.php line 37:
Zend Diactoros must be installed to use the DiactorosFactory.
Moved that into a new issue: https://github.com/geerlingguy/jeffgeerling-com/issues/85
New agenda #86.
See previous agenda: #63
d8.jeffgeerling.com
instance on existing serverVideo link: https://www.youtube.com/watch?v=SxR4N9inlYA