1
votes

Short description

I try to setup a basic TYPO3 installation using composer on a Debian 10 Server. Following all official instructions I could find, results in an http error 500 without meaningful (to me) content in the server log.

I encountered that problem on a clients server first, so I installed a completely fresh virtual server for debugging purposes and ran into exactly the same issue.

One thing I did, which might point someone in the know towards the solution:

web-devel@typo-test:/var/www/html/typotest/public$ cp index.php test.php

$ vi test.php
-> insert "print(__DIR__);" before call_user_func shows me a current path of 
/var/www/html/typotest/public

which would result in a path of /var/www/html/typotest/public/vendor/autoload.php which doesn't exist.

However, replacing the reference to __DIR__ with "/var/www/html/typotest/" doesn't improve things ...

Same thing with both TYPO3 Releases 9 and 10

I couldn't find any mention of this problem, which amazes me for it being a straightforward approach. I'd be happy about any pointers toward a resolution or at least debugging tips ...


Long Description

-- Debian Gnu/Linux 10 all patches applied, Server IP is 192.168.100.171

-- Apache/PHP/XML/MySQL installed and running

-- Set the prerequisites according to https://docs.typo3.org/m/typo3/guide-installation/master/en-us/In-depth/SystemRequirements/Index.html

-- Prepare DB:

> MariaDB [(none)]> create database typotest;
Query OK, 1 row affected (0.000 sec)


> MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'web-devel'@'localhost' identified by 'XXXXXX';
Query OK, 0 rows affected (0.000 sec)

-- Pointing a browser to the IP results in the display of the default debian index page residing in /var/www/html

-- Created an info.php which displays correctly.

-- I realized, I didn't have the most current composer release. The suggested composer self-update failed so I installed composer according to https://www.digitalocean.com/community/tutorials/how-to-install-and-use-composer-on-debian-10

# php composer-setup.php --install-dir=/usr/local/bin --filename=composer
All settings correct for using Composer
Downloading...

Composer (version 1.10.8) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

-- So, all seems to be well

-- Next step - install TYPO3 according to https://docs.typo3.org/m/typo3/guide-installation/master/en-us/QuickInstall/Composer/Index.html

$ cd /var/www/html

$ /usr/local/bin/composer create-project typo3/cms-base-distribution typotest

$ cd typotest

$ php vendor/bin/typo3cms install:setup \
    --no-interaction \
    --database-user-name=web-devel \
    --database-user-password=XXXXXXX \
    --database-host-name=127.0.0.1 \
    --database-port=3306 \
    --database-name=typotest \
    --use-existing-database \
    --admin-user-name=admin \
    --admin-password=XXXXXXX \
    --site-setup-type=site

-- which works flawlessly:

web-devel@typo-test:/var/www/html$ /usr/local/bin/composer create-project typo3/cms-base-distribution typotest
Creating a "typo3/cms-base-distribution" project at "./typotest"
Installing typo3/cms-base-distribution (v10.4.1)
  - Installing typo3/cms-base-distribution (v10.4.1): Loading from cache
Created project in /var/www/html/typotest
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 87 installs, 0 updates, 0 removals
  - Installing typo3/cms-composer-installers (v3.0.1): Loading from cache
  - Installing typo3/class-alias-loader (v1.1.3): Loading from cache
  - Installing helhum/config-loader (v0.12.2): Loading from cache
  - Installing symfony/polyfill-php80 (v1.17.1): Loading from cache
  - Installing symfony/process (v4.4.10): Loading from cache
  - Installing symfony/polyfill-mbstring (v1.17.1): Loading from cache
  - Installing symfony/polyfill-ctype (v1.17.1): Loading from cache
  - Installing psr/container (1.0.0): Loading from cache
  - Installing symfony/service-contracts (v1.1.8): Loading from cache
  - Installing psr/cache (1.0.1): Loading from cache
  - Installing symfony/polyfill-php73 (v1.17.1): Loading from cache
  - Installing symfony/console (v4.4.10): Loading from cache
  - Installing doctrine/lexer (1.2.1): Loading from cache
  - Installing doctrine/annotations (1.10.3): Loading from cache
  - Installing typo3fluid/fluid (2.6.9): Loading from cache
  - Installing typo3/phar-stream-wrapper (v3.1.5): Loading from cache
  - Installing typo3/cms-cli (2.0.0): Loading from cache
  - Installing symfony/yaml (v4.4.10): Loading from cache
  - Installing symfony/routing (v4.4.10): Loading from cache
  - Installing symfony/polyfill-php72 (v1.17.0): Loading from cache
  - Installing symfony/polyfill-intl-idn (v1.17.1): Loading from cache
  - Installing symfony/polyfill-intl-icu (v1.17.1): Loading from cache
  - Installing symfony/intl (v4.4.10): Loading from cache
  - Installing symfony/mime (v4.4.10): Loading from cache
  - Installing psr/event-dispatcher (1.0.0): Loading from cache
  - Installing symfony/event-dispatcher-contracts (v1.1.7): Loading from cache
  - Installing symfony/event-dispatcher (v4.4.10): Loading from cache
  - Installing psr/log (1.1.3): Loading from cache
  - Installing egulias/email-validator (2.1.18): Loading from cache
  - Installing symfony/mailer (v4.4.10): Loading from cache
  - Installing symfony/http-foundation (v4.4.10): Loading from cache
  - Installing symfony/finder (v4.4.10): Loading from cache
  - Installing symfony/var-exporter (v4.4.10): Loading from cache
  - Installing symfony/cache-contracts (v1.1.7): Loading from cache
  - Installing symfony/cache (v4.4.10): Loading from cache
  - Installing symfony/expression-language (v4.4.10): Loading from cache
  - Installing symfony/dependency-injection (v4.4.10): Loading from cache
  - Installing symfony/filesystem (v4.4.10): Loading from cache
  - Installing symfony/config (v4.4.10): Loading from cache
  - Installing psr/http-message (1.0.1): Loading from cache
  - Installing psr/http-server-handler (1.0.1): Loading from cache
  - Installing psr/http-server-middleware (1.0.1): Loading from cache
  - Installing psr/http-factory (1.0.1): Loading from cache
  - Installing psr/http-client (1.0.0): Loading from cache
  - Installing nikic/php-parser (v4.5.0): Loading from cache
  - Installing ralouphie/getallheaders (3.0.3): Loading from cache
  - Installing guzzlehttp/psr7 (1.6.1): Loading from cache
  - Installing guzzlehttp/promises (v1.3.1): Loading from cache
  - Installing guzzlehttp/guzzle (6.5.5): Loading from cache
  - Installing doctrine/instantiator (1.3.1): Loading from cache
  - Installing doctrine/event-manager (1.1.0): Loading from cache
  - Installing doctrine/cache (1.10.1): Loading from cache
  - Installing doctrine/dbal (2.10.2): Loading from cache
  - Installing cogpowered/finediff (0.3.1): Loading from cache
  - Installing typo3/cms-core (v10.4.4): Loading from cache
  - Installing symfony/inflector (v4.4.10): Loading from cache
  - Installing symfony/property-info (v4.4.10): Loading from cache
  - Installing symfony/property-access (v4.4.10): Loading from cache
  - Installing phpdocumentor/reflection-common (2.2.0): Loading from cache
  - Installing phpdocumentor/type-resolver (1.3.0): Loading from cache
  - Installing webmozart/assert (1.9.0): Loading from cache
  - Installing phpdocumentor/reflection-docblock (5.1.0): Loading from cache
  - Installing typo3/cms-extbase (v10.4.4): Loading from cache
  - Installing typo3/cms-fluid (v10.4.4): Loading from cache
  - Installing typo3/cms-install (v10.4.4): Loading from cache
  - Installing typo3/cms-frontend (v10.4.4): Loading from cache
  - Installing typo3/cms-extensionmanager (v10.4.4): Loading from cache
  - Installing typo3/cms-recordlist (v10.4.4): Loading from cache
  - Installing typo3/cms-backend (v10.4.4): Loading from cache
  - Installing helhum/typo3-console (v6.3.2): Loading from cache
  - Installing typo3/cms-about (v10.4.4): Loading from cache
  - Installing typo3/cms-viewpage (v10.4.4): Loading from cache
  - Installing typo3/cms-tstemplate (v10.4.4): Loading from cache
  - Installing typo3/cms-t3editor (v10.4.4): Loading from cache
  - Installing typo3/cms-sys-note (v10.4.4): Loading from cache
  - Installing typo3/cms-setup (v10.4.4): Loading from cache
  - Installing typo3/cms-seo (v10.4.4): Loading from cache
  - Installing typo3/cms-rte-ckeditor (v10.4.4): Loading from cache
  - Installing typo3/cms-info (v10.4.4): Loading from cache
  - Installing typo3/cms-impexp (v10.4.4): Loading from cache
  - Installing typo3/cms-form (v10.4.4): Loading from cache
  - Installing typo3/cms-fluid-styled-content (v10.4.4): Loading from cache
  - Installing typo3/cms-filelist (v10.4.4): Loading from cache
  - Installing typo3/cms-felogin (v10.4.4): Loading from cache
  - Installing typo3/cms-dashboard (v10.4.4): Loading from cache
  - Installing typo3/cms-beuser (v10.4.4): Loading from cache
  - Installing typo3/cms-belog (v10.4.4): Loading from cache
helhum/config-loader suggests installing ext-yaml (For improved performance when parsing yaml files you should use the PECL YAML Parser php extension)
symfony/console suggests installing symfony/lock
symfony/polyfill-intl-idn suggests installing ext-intl (For best performance)
symfony/polyfill-intl-icu suggests installing ext-intl (For best performance)
symfony/intl suggests installing ext-intl (to use the component with locales other than "en")
symfony/event-dispatcher suggests installing symfony/http-kernel
egulias/email-validator suggests installing ext-intl (PHP Internationalization Libraries are required to use the SpoofChecking validation)
symfony/dependency-injection suggests installing symfony/proxy-manager-bridge (Generate service proxies to lazy load them)
guzzlehttp/psr7 suggests installing zendframework/zend-httphandlerrunner (Emit PSR-7 responses)
doctrine/cache suggests installing alcaeus/mongo-php-adapter (Required to use legacy MongoDB driver)
typo3/cms-core suggests installing ext-gd (GDlib/Freetype is required for building images with text (GIFBUILDER) and can also be used to scale images)
typo3/cms-core suggests installing ext-intl (TYPO3 with unicode-based filesystems)
typo3/cms-core suggests installing ext-zip
symfony/property-info suggests installing symfony/doctrine-bridge (To use Doctrine metadata)
symfony/property-info suggests installing symfony/serializer (To use Serializer metadata)
typo3/cms-extbase suggests installing typo3/cms-scheduler (Additional scheduler tasks)
typo3/cms-frontend suggests installing typo3/cms-adminpanel (Provides additional information and functionality for backend users in the frontend.)
Writing lock file
Generating autoload files
Generating class alias map file
> typo3cms install:fixfolderstructure
The following directory structure has been fixed:
Directory /public/typo3temp successfully created.
Fixed permission on /public/typo3temp.
File /public/typo3temp/index.html successfully created.
Set content to /public/typo3temp/index.html
Fixed permission on /public/typo3temp/index.html.
Directory /public/typo3temp/assets successfully created.
Fixed permission on /public/typo3temp/assets.
Directory /public/typo3temp/assets/compressed successfully created.
Fixed permission on /public/typo3temp/assets/compressed.
Directory /public/typo3temp/assets/css successfully created.
Fixed permission on /public/typo3temp/assets/css.
Directory /public/typo3temp/assets/js successfully created.
Fixed permission on /public/typo3temp/assets/js.
Directory /public/typo3temp/assets/images successfully created.
Fixed permission on /public/typo3temp/assets/images.
Directory /public/typo3temp/assets/_processed_ successfully created.
Fixed permission on /public/typo3temp/assets/_processed_.
Directory /public/typo3conf successfully created.
Fixed permission on /public/typo3conf.
Directory /public/typo3conf/ext successfully created.
Fixed permission on /public/typo3conf/ext.
Directory /public/fileadmin successfully created.
Fixed permission on /public/fileadmin.
Directory /public/fileadmin/_temp_ successfully created.
Fixed permission on /public/fileadmin/_temp_.
File /public/fileadmin/_temp_/.htaccess successfully created.
Set content to /public/fileadmin/_temp_/.htaccess
Fixed permission on /public/fileadmin/_temp_/.htaccess.
File /public/fileadmin/_temp_/index.html successfully created.
Set content to /public/fileadmin/_temp_/index.html
Fixed permission on /public/fileadmin/_temp_/index.html.
Directory /public/fileadmin/user_upload successfully created.
Fixed permission on /public/fileadmin/user_upload.
Directory /public/fileadmin/user_upload/_temp_ successfully created.
Fixed permission on /public/fileadmin/user_upload/_temp_.
File /public/fileadmin/user_upload/_temp_/index.html successfully created.
Set content to /public/fileadmin/user_upload/_temp_/index.html
Fixed permission on /public/fileadmin/user_upload/_temp_/index.html.
Directory /public/fileadmin/user_upload/_temp_/importexport successfully created.
Fixed permission on /public/fileadmin/user_upload/_temp_/importexport.
File /public/fileadmin/user_upload/_temp_/importexport/.htaccess successfully created.
Set content to /public/fileadmin/user_upload/_temp_/importexport/.htaccess
Fixed permission on /public/fileadmin/user_upload/_temp_/importexport/.htaccess.
File /public/fileadmin/user_upload/_temp_/importexport/index.html successfully created.
Set content to /public/fileadmin/user_upload/_temp_/importexport/index.html
Fixed permission on /public/fileadmin/user_upload/_temp_/importexport/index.html.
File /public/fileadmin/user_upload/index.html successfully created.
Set content to /public/fileadmin/user_upload/index.html
Fixed permission on /public/fileadmin/user_upload/index.html.
File /var/.htaccess successfully created.
Set content to /var/.htaccess
Fixed permission on /var/.htaccess.
Directory /var/charset successfully created.
Fixed permission on /var/charset.
Directory /var/labels successfully created.
Fixed permission on /var/labels.
Directory /var/lock successfully created.
Fixed permission on /var/lock.
> typo3cms install:generatepackagestates
The following extensions have been added to the generated PackageStates.php file: core, extbase, fluid, frontend, fluid_styled_content, filelist, impexp, form, install, recordlist, backend, setup, rte_ckeditor, about, belog, beuser, dashboard, extensionmanager, felogin, info, seo, sys_note, t3editor, tstemplate, viewpage
31 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

then

web-devel@typo-test:/var/www/html$ php typotest/vendor/bin/typo3cms install:setup    

Welcome to the TYPO3 Console installer!

➤ Prepare installation


✔ Check environment and create folders
➤ Set up database connection
Database connection type (default: "mysqli"):
  [mysqli    ] MySQL connection
  [pdo_sqlite] SQLite connection
  [pdo_pgsql ] PostgreSQL connection
  [mssql     ] MSSQL connection
 > mysqli
User name for database server (default: ""): web-devel
User password for database server (default: ""):
Host name of database server (default: "127.0.0.1"):
TCP Port of database server (default: "3306"):
Unix Socket to connect to (default: ""):
✔ Ok
➤ Select database
Use already existing database? (y/N): y
Name of the database (required): typotest
✔ Ok
➤ Set up database
Username of to be created administrative user account (required): admin
Password of to be created administrative user account (required):
Name of the TYPO3 site (default: "New TYPO3 Console site"): Test Site
✔ Ok
➤ Set up configuration
Specify the site setup type (default: "no"):
  [no  ] Do nothing
  [site] Create root page
 > site
Specify the site base url (default: "/"):
✔ Ok
➤ Set up web server configuration
Specify the web server you want to write configuration for (default: "none"):
  [none  ] Do not write any configuration files
  [apache] Create Apache .htaccess file
  [iis   ] Create Microsoft-IIS web.config file
 > apache
✔ Ok
✔ Set up extensions

Successfully installed TYPO3 CMS!

Pointing my browser at http://192.168.100.171/typotest/public/ results in an Error 500 with this error in the apache-log-file:

[Sun Jun 28 12:21:35.232020 2020] [php7:error] [pid 10894] [client 192.168.100.143:53326] 
PHP Fatal error:  Uncaught ArgumentCountError: Too few arguments to function TYPO3\\CMS\\Core\\Imaging\\IconFactory::__construct(), 0 passed in /var/www/html/typotest/public/typo3/sysext/core/Classes/Utility/GeneralUtility.php 
on line 3423 and exactly 2 expected in /var/www/html/typotest/public/typo3/sysext/core/Classes/Imaging/IconFactory.php:71\nStack trace:\n#0 /var/www/html/typotest/public/typo3/sysext/core/Classes/Utility/GeneralUtility.php(3423):
 TYPO3\\CMS\\Core\\Imaging\\IconFactory->__construct()\n#1 /var/www/html/typotest/public/typo3/sysext/core/Classes/TimeTracker/TimeTracker.php(242): 
TYPO3\\CMS\\Core\\Utility\\GeneralUtility::makeInstance('TYPO3\\\\CMS\\\\Core\\\\...')\n#2 /var/www/html/typotest/public/typo3/sysext/core/Classes/Error/ErrorHandler.php(162): 
TYPO3\\CMS\\Core\\TimeTracker\\TimeTracker->setTSlogMessage('Core: Error han...', 2)\n#3 [internal function]: 
TYPO3\\CMS\\Core\\Error\\ErrorHandler->handleError(2, 'fopen(/var/www/...', '/var/www/html/t...', 193, Array)\n#4
 /var/www/html/typotest/public/typo3/sysext/core/Classes/Log/Writer/Fi in /var/www/html/typotest/public/typo3/sysext/core/Classes/Imaging/IconFactory.php on line 71, referer: 
http://192.168.100.171/typotest/

Which doesn't make a lot of sense in the context ...

I tried the same with TYPO3 releases 9 and 10 - same result! At this point TYPO3's var/log is empty.

1
Update: just tried the same on a fresh install of CentOS 8 - same behaviour ...Tom
Have you tried cleaning the cache via the install tool? We recently got a 500 error after switching to a new version of composer and helhum/typo3-console. That created a folder in "/var/cache/code" called "di" once we delted that, it works. Haven't had time to figure out if it's because of composer or console version.Rikels
Thanks! Tried that but to no avail. I don't think it's even getting so far. I can rename the entire var-folder without any change in behaviour ...Tom
2nd Update: Doing a chmod -R 750 typotest seems to 'resolve' this issue. Looks like composer were setting some permissions wrong. We could confirm this behaviour on another (hosted) server. I can't believe nobody has come across this before?Tom

1 Answers

2
votes

Solved: I did a combination of:

chown -R web-devel.www-data typotest
chmod -R g+s typotest

and I had to set the php-fpm instance to run as web-devel. This seems to do the trick. Would be nice if this could be evaluated and added to the setup instructions ...