...but I never found out what the problem was. I had to create a new Lightsail instance from a snapshot of my functioning old version, upgrade Ubuntu and PHP, remove all the original Drupal code and upload a tar file from the ddev version.
I seem to have a similar problem inserting/adding images. This worked fine until recently, possible caused by the installation or update of an unknown module. There are no error messages logged. I get the option to select an image but the fields for adding alternate text to display is not there and when I hit Save, I'm advised that I'm missing an image field. "Image Field is Required" and "No file chosen". Drupal 10.3.3
I did create an issue on github but received the same suggestions I found with my goggle searches.
As I am still unable to use composer within the ddev environment, I have reinstalled composer on Ubuntu and have successfully added a module to the drupal 10.2.5 project. I then restarted the ddev environment and successfully launched the site. So, I decided to try it on a new development version of my production site now running on AWS Lightsail. I created a new snapshot for safety sake and dumped the database. Using rsync into a empty directory under my ./WebProjects, I copied the production site drupal code. Inside the new development directory I did a ddev config then ddev start then a ddev import-db, finally ddev launch and my site came up.
As mentioned above I installed the visitors module using composer outside the ddev environment, returned to ddev and did a ddev start and launch. Then enabled the module. All is fine. The tense moment came when I rsynced the development site back to AWS. Fortunately there was no problem there. It's nice not having to mess around with apache configurations.
What still puzzles me is why I was able to create a new Drupal 10.3.2 site in a local directory using ddev composer create
-
project drupal
/
recommended
-
project my_site_name,
then be unable to add new modules because of this problem with
var/www/html.
I have uninstalled all php and turned off apache and my development site functions as expected in ddev, except:
I am unable to update or install modules with composer. It insists on using /var/www/html as my project directory. In this particular case I want it to use either a project directory such ~/WebProjects/D10-test/ or /var/www/D10-test
scott@system76-pc:~/WebProjects/D10-test$ ddev composer create drupal/recommended-project:10.3.2 -yExecuting Composer command: [composer create-project drupal/recommended-project:10.3.2 --no-plugins --no-scripts --no-install /tmp/eSUYeG]
Creating a "drupal/recommended-project:10.3.2" project at "/tmp/eSUYeG"
Installing drupal/recommended-project (10.3.2)
Plugins have been disabled.
Failed to download drupal/recommended-project from dist: /var/www/html/vendor/composer does not exist and could not be created:
Now trying to download from source
I don't know if there is a more appropriate place to ask about this so I'll ask it here. While attempting to update modules (ddev composer require ...) I get permission errors. These errors do not occur when run without the "ddev". Is there an ownership or group requirement that needs to be set?
DDEV does work on my development box for starting up a new drupal project. This tool is brand new to me and I did not realize that it creates a separate and complete environment for each project. What I need to do now is create a project with an existing site. I'm having some issues with importing the mysql database. But then I need to do more research before I ask any questions about that. Thanks...
I've been seeing a lot of mentions of Docker and DDEV in searching for a solution and I have gone so far as to install it on my development machine. Still, I don't see how it will solve my problem. It looks to me that I need to reinstall the AMP part of my LAMP. But then I've yet to understand just what I need to do to use DDEV and how it will fit in with my production site, which is running as an AWS Lightsail site. I've been using rsync to synchronize the two. And, as AWS has chosen to charge more for simple http, my instance there is exclusively https. Consequently composer won't install packages and available updates are not available. I need to do this on my development box.
I'm not a professional coder in fact the last stuff I was paid to work on was Informix 4GL - "green screen" applications. I'm more interested in content which is why I went with Drupal after spending a few years playing with PHP. Needless to say, this type of error is disconcerting particularly because I have no clear idea as to how it happened.
Some additional information on my development box, when I attempted to create a new project, basic "composer create-project drupal/recommended-project:10.0.0 d10_test", this results when I attempt to access it with a browser: Error: Call to a member function setFormClass() on null in system_entity_type_build() (line 1169 of /var/www/d10_test/web/core/modules/system/system.module).
As to the issue of downloading from drupal.org using IPv6, this is still not possible - at least with a site on AWS Lightsail. AWS is raising the cost of having an IPv4 address on instances. Consequently I have recreated a drupal 10 site on an IPv6 exclusive instance. The site works fine except that it does not receive module update notices nor will composer update the project. Fortunately, I have a work-around using rsync to maintain the site from my development box, here at home. Drush works, though...
The problems seems to be that my AWS instance is IPv6 exclusively. If Drupal.org supports only IPv4 then I suppose there is no solution. My live site cannot receive security alerts and composer cannot download modules. My work-around is to maintain this site with rsync from my development box.
There is, in fact a book content type but any node (or most, maybe) can be included in a book. I just not sure its worth the effort of editing all of my content.
Most, if not all, of my content types are found in books. I have occasionally seen references to Taxonomy being a superior system of organizing a site and there are a number of issues I have with my site's current organization, not that taxonomy doesn't bring its own set of gotchas. I don't think that changing content types will help, but thanks for the thought.
AWS is about to increase the cost of Lightsail instances that support both IPv4 and IPv6, essentially the IPv4. They recommend creating a new instance that is only IPv6. I have tried both using a snapshot of my functioning IPv4/IPv6 instance and creating a new instance with ubuntu and installing a LAMP stack manually. My curl is 7.81.0, php 8.2.16 and composer 2.7.2
"Composer could not detect the root package (drupal/recommended-project) version, defaulting to '1.0.0'. See https://getcomposer.org/root-version"
curl error 28 while downloading https://packages.drupal.org/8/packages.json
: Connection timeout after 10004 ms
As I have no difficulty using composer update on the IPv4/IPv6 site I must assume that there is a problem with the missing IPv4 address.
After clearing cache with drush (drush cr) or even with the gui the directories default/files/styles/css and js revert back to www-data ownership from my desired ownership. chown allows me to drush cr again, but ownership changes back again.
Thanks for that headsup on mod rewrite. After spending hours chown, chgrp, and permissions this is what fixed it for me on Drupal 10.1.6
I rebuilt my ./styles directory and the problem went away. There may have been permission issues, I don't know but an rsync from my development system corrected whatever it was.
I understand that the database does not contain the actual image. The files in /sites/default/files and ./styles/ remain the same for both my development and production environments. With my development database, the images are displayed when the page is displayed on the browser, with my production database they are not. Using my production database, the icon indicating that the image cannot be displayed if clicked will bring up the image on a new page - so the path and the image are still there. They are not displayed as a rendered entity on the page.