apachedockercomposer-phpsymlinkakeneo

Composer Akeneo installation Could not open input file composer.phar


I am trying to install a PIM named Akeneo. The system requirements are all checked: https://docs.akeneo.com/2.3/install_pim/manual/system_requirements/system_requirements.html

I am on Apache2 / Ubuntu 16.04

My /var/www/ directory all belongs to www-data:www-data ( ran chown -R www-data:www-data to install )

Error message from server : “Could not open input file: composer.phar”

Googled about it , got many results, and looked on the forums on stakoverflow, found answers from 2010 to 2018. I think I have maybe found out that the problem could be linked with the file "composer.phar", the way symlinks work on apache2, and composer installed globally or "inside individual project(s)".

Following 2 tutorials, I had to install composer to continue the install for that PIM.

My server says:

Composer (version 1.10.10) successfully installed to: /usr/local/bin/composer

If I navigate to cd ~ and run ls I see there is "composer.phar" and "composer-setup.php" here.

I am confused because the Akeno tutorial says:

After extracting the file, change into the Akeneo directory and run the commands below:

cd /var/www/html/akeneo/pim-community-standard

sudo php -d memory_limit=3G ../composer.phar install --optimize-autoloader --prefer-dist

sudo php bin/console cache:clear --no-warmup --env=prod

...

I don't understand the composer.phar install part . There are no composer.phar file inside any directories : not in /var/www/html/akeneo/ and not in /var/www/html/akeneo/pim-community-standard

Was it supposed to generate a composer.phar file there ? Should it find composer.phar one level above ( ../composer.phar ) ? I doubled checked the Akeneo PIM files , and the original .rar archive has no composer.phar file. Or, is it something to do with a symlink that accesses the global "composer.phar" which was with the global install ? Regarding symlinks, there are some in the "vendor" fodler of the PIM, and runing ls -l -a gives :

lrwxrwxrwx  1 www-data www-data   28 Feb  5  2020 doctrine -> ../doctrine/orm/bin/doctrine
lrwxrwxrwx  1 www-data www-data   34 Feb  5  2020 doctrine-dbal -> ../doctrine/dbal/bin/doctrine-dbal
lrwxrwxrwx  1 www-data www-data   46 Feb  5  2020 doctrine-migrations -> ../doctrine/migrations/bin/doctrine-migrations
lrwxrwxrwx  1 www-data www-data   56 Feb  5  2020 requirements-checker -> ../symfony/requirements-checker/bin/requirements-checker
lrwxrwxrwx  1 www-data www-data   51 Feb  5  2020 var-dump-server -> ../symfony/var-dumper/Resources/bin/var-dump-server

There is a composer.json and composer.lock file inside /var/www/html/akeneo/pim-community-standard . So confused because the turorial says to be inside pim-community-standard directory and run this : php -d memory_limit=3G ../composer.phar install --optimize-autoloader --prefer-dist

I hope I can resume the install without breaking anything. Some posts give the solution of updating composer, or installing composer-phar, inside the project. I am honestly totally lost.

( I don't know if I should bring that up, but is docker needed (not talked about in tutorial - but I see a folder with "docker" in it and I know that composer and docker can work together sometimes )


Solution

  • I moved the composer.phar file into the app directory. Now the install advanced. It's not a technical issue a misconfiguration or anything like that.

    It's a lack of information about Composer on the Akeneo site but it's probably assumed that users should have knowledge about Composer allready.

    Solution for me : moving the "composer.phar" file (from 'home' for me ) to the /var/www/project/ (.. the correct level directory).

    So for my case it was a global / local install issue , which is still unclear, and I will have to look deeper how to properly install composer. Not sure if my current setup will not cause any issue later since it's like I installed it globally at first then moved only one file.

    Also, command "composer" is not returning anything. I do have the composer file in /usr/bin/ though. This is very strange.