Open marble opened 2 years ago
Not sure why you are asking the same question again here, I've posted you the solution here https://github.com/TYPO3/get.typo3.org/issues/291#issuecomment-1063303335
Here the order of the commands is just wrong. Please stick to my example instead.
Now to your current problem here.
&& echo '{}' >composer.json \
&& ddev composer config "extra.typo3/cms.web-dir" ${PUBLIC_FOLDER} \
&& ddev composer config "extra.typo3/cms.root-dir" ${PUBLIC_FOLDER} \
&& ddev composer create "typo3/cms-base-distribution:^10.4" \
These lines will:
In https://github.com/TYPO3/get.typo3.org/issues/291 I am reporting that THE TEXT on the download page of get.typo3.org is ambiguous. IMHO that should be addressed. To the least, just make clear, that people don't change the value but use the lines EXACTLY as they are.
Why I'm asking here "again"? It's not again, it's something different. Here I'm asking about technical background that I want to learn and just get to work. You were kind enough over there to give some technical help. However, whatever I tried, I didn't get it working. And I reported that back in https://github.com/TYPO3/get.typo3.org/issues/291#issuecomment-1063842939 , "Still problematic", "Problem" So I think it's fair to continue asking.
I want to have a clear understanding of:
public
- then I'll just accept that and we can stop here. However, in that case it should really be a default value and should not appear as an option in the script at all.Here is another try with a different order.
PROJECT=~/ddevprojects/dummy-project/dummy PUBLIC_FOLDER=public_html # http://dummy.ddev.site:8071 # http://dummy.ddev.site:44371 ## Remove the project, in case it exists true \ && [[ ! -z "${PROJECT}" ]] \ && ddev poweroff \ && cd ${PROJECT} \ && ddev delete --omit-snapshot --yes \ && cd .. \ && rm -rf ${PROJECT} ## Create project true \ && [[ ! -z "${PROJECT}" ]] \ && mkdir -p ${PROJECT} \ && cd ${PROJECT} \ && ddev config \ --create-docroot \ --docroot=${PUBLIC_FOLDER} \ --http-port=8071 \ --https-port=44371 \ --php-version="7.4" \ --project-type=typo3 \ --xdebug-enabled=false \ && ddev composer create "typo3/cms-base-distribution:^10.4" --no-install \ && ddev composer config "extra.typo3/cms.web-dir" ${PUBLIC_FOLDER} \ && ddev composer install \ && ddev typo3cms install:setup
docroot!=public
?About 80% of the TYPO3 projects I'm working on since around 4 years do have a custom web-dir (not "public") so, the first question is "yes". Also with DDEV, however, I'm not using a bash script as you do. In addition, the option "web-dir" stems from the composer plugin https://github.com/TYPO3/CmsComposerInstallers - the Base Distribution is actually just a simple wrapper around a few TYPO3 Core packages.
composer create "typo3/cms-base-distribution:^10.4" --no-install bennitest
cd bennitest
composer config "extra.typo3/cms.web-dir" public_html
composer install
ddev config
> I define Docroot Location (current directory): public_html
ddev start
The folder structure looks good so far.
thank you @bmack , your 'bennitest' example is great for me: it works, it's educative and gives me a lot of freedom, personally I will use variations of your example. With my bash-like scripts I only want to document exactly what I'm doing.
The very first installation method we - highly - recommend on the Get TYPO3 download page is this one:
ddev config --project-type=typo3 --docroot=public --create-docroot ddev composer create "typo3/cms-base-distribution:^11.5" ddev typo3cms install:setup ddev launch
This looks like a great start, but IMHO it is not. It is to fragile. It suggests, that you can specify a docroot other than public
. But you CANNOT, or it'll break. It'll also break as soon as you have somethe like ddev create ... --no-install
and so on. It is just too fragile. There seems to be a conflict between ddev create
and the implicite composer create-project
.
IMHO something should be done about this on get.typo3.org!
composer
The point of the installation method at get.typo3.org seems to be that it ONLY uses DDEV and Docker, no local Composer. Now, after having invested so much time into this, I had the ambition to find a way that works and to see whether I have understood things correctly.
And this is what is now working for me::
PROJECT_FOLDER_NAME=bennitest PROJECT=~/ddevprojects/${PROJECT_FOLDER_NAME}-project/${PROJECT_FOLDER_NAME} PUBLIC_FOLDER=public_html PORT_DIGITS=73 # http://dummy.ddev.site:8073 # http://dummy.ddev.site:44373 ## Remove the project, in case it exists true \ && [[ ! -z "${PROJECT}" ]] \ && ddev poweroff \ && cd ${PROJECT} \ && ddev delete --omit-snapshot --yes \ && cd .. \ && rm -rf ${PROJECT} ## Create project true \ && [[ ! -z "${PROJECT}" ]] \ && mkdir -p ${PROJECT} \ && cd ${PROJECT} \ && ddev config \ --auto \ --create-docroot \ --docroot=${PUBLIC_FOLDER} \ --project-name=${PROJECT_FOLDER_NAME} \ --http-port=80${PORT_DIGITS} \ --https-port=443${PORT_DIGITS} \ --php-version="7.4" \ --project-type=typo3 \ --xdebug-enabled=false \ && ddev start \ && ddev exec 'composer create-project "typo3/cms-base-distribution:^10.4" --no-install' \ && ddev exec 'mv cms-base-distribution/* .' \ && ddev exec 'mv cms-base-distribution/.git* .' \ && ddev exec 'rmdir cms-base-distribution' \ && ddev composer config "extra.typo3/cms.web-dir" ${PUBLIC_FOLDER} \ && ddev composer install \ && ddev exec "touch ${PUBLIC_FOLDER}/FIRST_INSTALL" \ && ddev launch
And this is what I get as a result of this:
I'm taken to the install tool website. I like that better than doing the site installation with the TYPO3 Console.
ddev create
and composer create-project
. Problem: Somewhere on the way AdditionConfiguration.php goes missing ...
Intro
I hope I'm reporting this problem at the proper location. This is Ubuntu 20.04.4, ddev version v1.18.2, Composer version 2.2.6 2022-02-04 17:00:38
Task, intention
Do a composer based installation with DDEV as recommended first place at get.typo3.org
Problem
I've been desperately trying to find a procedure that allows a custom name for the docroot folder. No success. If I stick with the default name
public
it works. If I try withpublic_html
it doesn't.How to reproduce
I'm using these steps, top down, as far as I can get:
Question(s)
public_html
as docroot folder?