1. Check server logs to see where/why the error occurs.
2.
You can temporary activate display of all errors by adding the next lines in your sites/default/settings.php
file:
// Show all errors.
$config['system.logging']['error_level'] = 'verbose';
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
My understanding (others here know more and should correct me if get it wrong) is that a global flag applies system wide (or at least to multiple packages) and a local flag applies only to a specific package. So -v for verbose is built into the Unix command line and will apply to all (or almost all) packages while something like cache-clear is a Drush command and works only within Drush.
Another way these terms are used is for installs rather than commands. One can install Composer globally on a server or locally within one project on that server. If it is installed globally it can be used with all projects on that server. If it is installed locally within a project, it can only be used for that project.
The Drupal Slack channel, which I find tends to provide me with more help than the forums here. (Note - I still use the forums here.)
https://www.drupal.org/join-slack → to request an invitation
Perhaps here:
...In settings.php. You might have to add mytestsite as a trusted host.
Some communities have active users groups where one can find (and provide) support.
- Verify that install.php was present and in the correct place in the codebase with the correct permisions?
- Verify that htaccess was present, correctly configured, and with the correct permissions?
Beyond that, I don't have any thoughts.
Common causes of 500 error are file location or permissions (e.g., server cannot find or access install.php) or incorrectly configured htaccess, but...
Still don't know:
-
How did code base get on server? Did you use composer to do it (
composer create-project drupal/recommended-project my_site_name_dir) or did you upload a tar.gz and then exgtract the codebase?
- Do you have an empty database?
Did you review and follow either of these sets of directions?
https://www.drupal.org/docs/getting-started/installing-drupal →
https://www.drupal.org/docs/user_guide/en/installation-chapter.html →
...would help identify the issue. What steps during install? What database and version, what php version? I don't understand what you mean by both using composer and downloading tar.gz? Do you mean you tried two different approaches or tired using both composer and a tarball?
DDEV has a pretty active support community ( > 1600 members) on Discord. Randy Fay who maintains DDEV is active there. DDEV has debugging tools.
I'd urge you to post your problem on Discord. If it is actually a DDEV problem, that is your best source of help. They are also excellent at helpibng you isolate problems originating outside the DDEV realm and pointing to solutions.
DDEV on Discord: https://discord.gg/5wjP76mBJD
Note: I am using 6.0.5, but that option was not something I could select when starting the issue.
Is there an open source alternative available? Building one myself is far beyond my capabilities...
TIA
I'm looking forward to a version that fixes this error. I'm using CleanTalk 9.3.0 on Drupal 10.1.6.
Turns out my initial speculation was correct - it was related to a problem with ownership/permission on directories and files. Once I correct this, both the absence of icons in the ckedtor configuration process and the absence of wysiwyg tool bars when adding content were no longer problems.
It was quite a process figuring it out: using a different computer and using two different browsers with no etensions meant not a browser problem. Creating a new local ddev site with no content and no added modules worked fine on my local ddev site but not when I uploaded it to production. Creating a brand new site on a sandbox domain on my host using the tar GUI gave me an install that worked fine. Comparing htaccess, codebase (Beyond Compare is wonderful) showed no differences. However, directories and files had major differences. So on my local install (after backing up codebase and database) I ran these two in terminal:
- $ find . -type d -exec chmod g+w {} \;
- $ find . -type f -exec chmod 664 {} \;
...and then used rsynch to push the codebase to production. Voila, ckeditor works.
I still do not know/understand:
- How the permissions got changed on my local install in the first place. The timeline says it happened when I clones my 9.5 production site locally and u;grade to 10.6.1. I had some issues with the MacOS tar not playing nicely with the host's GNU based tar and had to switch to gtar on my Mac. I wonder if, in that process, I inadvertently changed the permissions. Or if something in ddev changed it?
- What directories/files I should (and shouldn't) change and to what. There are way too many to do this manually.
I am not sure if this is the same issue or a separate issue. I upgraded 2 sites from Drupal 9.5.11 to 10.1.6 and got a warning related to Token 1.13:
Warning: Undefined array key “name” in Drupal\token\Token->prepareMultisort() (line 89 of modules/contrib/token/src/Token.php. Here is the full warnibng:
Drupal\token\Token->prepareMultisort(Array) (Line: 60)
Drupal\token\Token->getInfo() (Line: 94)
token_get_token_problems() (Line: 16)
token_requirements('runtime')
call_user_func_array(Object, Array) (Line: 409)
Drupal\Core\Extension\ModuleHandler->Drupal\Core\Extension\{closure}(Object, 'token') (Line: 388)
Drupal\Core\Extension\ModuleHandler->invokeAllWith('requirements', Object) (Line: 416)
Drupal\Core\Extension\ModuleHandler->invokeAll('requirements', Array) (Line: 109)
Drupal\system\SystemManager->listRequirements() (Line: 53)
Drupal\system\Controller\SystemInfoController->status()
call_user_func_array(Array, Array) (Line: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 592)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 124)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) (Line: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 181)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 58)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 704)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
It goes away if I revert to Token 1.12
- I upgraded my sites from 9.5 to 10.16 to see if that would help. It did not.
- I created a brand new site locally with ddev, no old content or users and no added modules. ckeditor5 works fine locally but not when I push to production - as above. I think this rules out css or js or module conflict.
- The page not found error suggests to me (with my limited knowledge) that either the reference to the page is wrong or the access permission is wrong - but I do not know how to check that.
Here are the browser console errors if that would be useful.
Browser Console Mode
Parent process only(Fast)Multiprocess(Slower)
<empty string> 2
TypeError: this._getNotificationElm(...) is null
_removeCheckboxListener
resource://autofill/FormAutofillPrompter.sys.mjs:418 →
eventCallback
resource://autofill/FormAutofillPrompter.sys.mjs:605 →
PopupNotifications_fireCallback
resource://gre/modules/PopupNotifications.sys.mjs:1710 →
notifications
resource://gre/modules/PopupNotifications.sys.mjs:718 →
PopupNotifications_locationChange
resource://gre/modules/PopupNotifications.sys.mjs:686 →
onLocationChange
chrome://browser/content/browser.js:5909 →
callListeners
chrome://browser/content/tabbrowser.js:928 →
_callProgressListeners
chrome://browser/content/tabbrowser.js:948 →
_callProgressListeners
chrome://browser/content/tabbrowser.js:6486 →
onLocationChange
chrome://browser/content/tabbrowser.js:6962 →
PopupNotifications.sys.mjs:1713:15 →
PopupNotifications_fireCallback
resource://gre/modules/PopupNotifications.sys.mjs:1713 →
notifications
resource://gre/modules/PopupNotifications.sys.mjs:718 →
PopupNotifications_locationChange
resource://gre/modules/PopupNotifications.sys.mjs:686 →
onLocationChange
chrome://browser/content/browser.js:5909 →
callListeners
chrome://browser/content/tabbrowser.js:928 →
_callProgressListeners
chrome://browser/content/tabbrowser.js:948 →
_callProgressListeners
chrome://browser/content/tabbrowser.js:6486 →
onLocationChange
chrome://browser/content/tabbrowser.js:6962 →
<empty string> 2
Value must either: .allowed_extensions.0 must () => { let array = Array.from(choices, forceString); let n = array.length - 1; array[n] = `or ${array[n]}`; return `must either [${array.join(“, “)}]`; }, or contain the required “data” property
NativeManifests.sys.mjs:118 →
_tryPath
resource://gre/modules/NativeManifests.sys.mjs:118 →
AsyncFunctionNext self-hosted:852ExtensionError: No such native application com.extension.av.communication
ExtensionUtils.sys.mjs:48:5 →
ExtensionError
resource://gre/modules/ExtensionUtils.sys.mjs:48 →
startupPromise
resource://gre/modules/NativeMessaging.sys.mjs:72 →
Value must either: .allowed_extensions.0 must () => { let array = Array.from(choices, forceString); let n = array.length - 1; array[n] = `or ${array[n]}`; return `must either [${array.join(“, “)}]`; }, or contain the required “data” property NativeManifests.sys.mjs:118 →
When I try to configure Full HTML and pick CKEditor5 (the only other option is none) I get a warning that it will not work with Internet Explorer (which I am not using) and I get this in red:
Text editor: You must configure the selected text editor.
But I see no way to configure the text editor - in fact, I think that is what I am trying to do…
Clearing cache did not help. Disabling css and js aggregation made the site unusable.
The problem: I was suddenly unable to extract on my host any tar.gz files that I had created on my Mac. It turns out there is an explanation and several solutions. I share this here to save others the frustration I experienced.
Explanation: the host had upgraded my VPS server from Debian to Ubuntu, after which the tar BSD-based tar function on the Mac no longer played well with the GNU-based tar function on the host, related to various unknown extended keywords generated on the Mac.
Solutions:
(1) Easiest is to install and use gtar on the Mac. (I used Homebrew to do this.)
(2) Prepend the tar create command on the Mac with an environment variable: <COPYFILE_DISABLE=1 tar -cvzf file_name.tar.gz file_name && echo success>
(3) Extract the tar.gz on the host with a warning flag: <tar -xvzf file_name.tar.gz --warning=no-unknown-keyword && echo success>
All three of these worked well for me, though I cannot guarantee they will work with all varieties and flavors of host software.
If your settings.php has this:
$settings['file_private_path'] = $app_root . '/../private';
Then you have to create the private directory at the same level as /web. The privatge directory and the files it contains are not visible to visitors to the site, for security reasons. The structure of your project is:
project
/web (this is the directory where your actual public facing website lives)
/themes
/sites
/profiles
/modules
(and more)
/tmp
/private (for security reasons this is outside your web root which is /web)
/config
Yes, you need an .htaccess file in your /private directory. Drupal will usually create that after you create the directory and update the database.
And files or directories that site visitors need to access (like pdfs they should see or be able to download) live UNDER your webroot (/web) in:
/web
/sites
/default
/files
rfay does a fantastic job supporting ddev and helping folks solve problems through the DDEV discord channel. If you haven't solved this, I'd ask there.