alankent / vagrant-magento2-apache-base

Base Vagrant image for building Magento 2 within
58 stars 29 forks source link

Roadblocked after install (aka: a frontend person tries to install Magento 2) #5

Open brendanfalkowski opened 9 years ago

brendanfalkowski commented 9 years ago

FYI — I'm using Mac OS 10.10.1. I've used Vagrant before with Laravel, but by paying a better man to make it work and teach what to do.

Went through Alan's instructions literally like a child: copy, pasting commands into terminal. Seemed to go through fine downloading repos, downloading VM, getting composer reqs, getting composer updates, and at the end:

[SUCCESS]: Magento installation complete.

Except when visiting http://localhost:8080/ I get:

An error has happened during application run. See debug log for details. Could not write error message to log. Please use developer mode to see the message.

Found this: http://magento.stackexchange.com/questions/13125/how-do-i-set-developer-mode-in-magento2

And original Alan's fix: http://magento-quickies.alanstorm.com/post/58757471044/magento-2-developer-mode

Which leads to this:

exception 'Zend_Cache_Exception' with message 'cache_dir "/var/www/magento2/var/page_cache" is not writable' in /var/www/magento2/vendor/magento/zendframework1/library/Zend/Cache.php:209 Stack trace: #0 /var/www/magento2/vendor/magento/zendframework1/library/Zend/Cache/Backend/File.php(180): Zend_Cache::throwException('cache_dir "/var...') #1 /var/www/magento2/lib/internal/Cm/Cache/Backend/File.php(82): Zend_Cache_Backend_File->setCacheDir('/var/www/magent...') #2 /var/www/magento2/vendor/magento/zendframework1/library/Zend/Cache.php(153): Cm_Cache_Backend_File->__construct(Array) #3 /var/www/magento2/vendor/magento/zendframework1/library/Zend/Cache.php(94): Zend_Cache::_makeBackend('Cm_Cache_Backen...', Array, true, true) #4 /var/www/magento2/lib/internal/Magento/Framework/App/Cache/Frontend/Factory.php(152): Zend_Cache::factory('Magento\Framewo...', 'Cm_Cache_Backen...', Array, Array, true, true, true) #5 /var/www/magento2/lib/internal/Magento/Framework/App/Cache/Frontend/Pool.php(65): Magento\Framework\App\Cache\Frontend\Factory->create(Array) #6 /var/www/magento2/lib/internal/Magento/Framework/App/Cache/Frontend/Pool.php(145): Magento\Framework\App\Cache\Frontend\Pool->_initialize() #7 /var/www/magento2/lib/internal/Magento/Framework/App/Cache/Type/FrontendPool.php(67): Magento\Framework\App\Cache\Frontend\Pool->get('default') #8 /var/www/magento2/lib/internal/Magento/Framework/App/Cache/Type/Config.php(31): Magento\Framework\App\Cache\Type\FrontendPool->get('config') #9 /var/www/magento2/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php(94): Magento\Framework\App\Cache\Type\Config->__construct(Object(Magento\Framework\App\Cache\Type\FrontendPool)) #10 /var/www/magento2/lib/internal/Magento/Framework/ObjectManager/Factory/Dynamic/Developer.php(90): Magento\Framework\ObjectManager\Factory\AbstractFactory->createObject('Magento\Framewo...', Array) #11 /var/www/magento2/lib/internal/Magento/Framework/ObjectManager/ObjectManager.php(68): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create('Magento\Framewo...') #12 /var/www/magento2/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php(233): Magento\Framework\ObjectManager\ObjectManager->get('Magento\Framewo...') #13 /var/www/magento2/lib/internal/Magento/Framework/ObjectManager/Factory/Dynamic/Developer.php(52): Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument(Array, 'Magento\Framewo...', NULL, 'cacheFrontend', 'Magento\Framewo...') #14 /var/www/magento2/lib/internal/Magento/Framework/ObjectManager/Factory/Dynamic/Developer.php(83): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments('Magento\Framewo...', Array, Array) #15 /var/www/magento2/lib/internal/Magento/Framework/ObjectManager/ObjectManager.php(68): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create('Magento\Framewo...') #16 /var/www/magento2/lib/internal/Magento/Framework/App/ObjectManagerFactory.php(154): Magento\Framework\ObjectManager\ObjectManager->get('Magento\Framewo...') #17 /var/www/magento2/lib/internal/Magento/Framework/App/Bootstrap.php(371): Magento\Framework\App\ObjectManagerFactory->create(Array) #18 /var/www/magento2/lib/internal/Magento/Framework/App/Bootstrap.php(218): Magento\Framework\App\Bootstrap->initObjectManager() #19 /var/www/magento2/index.php(37): Magento\Framework\App\Bootstrap->createApplication('Magento\Framewo...') #20 {main}

So then I went back here: http://magento.stackexchange.com/a/14337/312

And ran this:

chmod -R a+wX var
chmod -R a+wX app/etc
chmod -R a+wX pub

But got this:

Warning: file_put_contents(/var/www/magento2/var/cache//mage-tags/mage---aaf_MAGE): failed to open stream: Permission denied in /var/www/magento2/lib/internal/Cm/Cache/Backend/File.php on line 661
#0 [internal function]: Magento\Framework\App\ErrorHandler->handler(2, 'file_put_conten...', '/var/www/magent...', 661, Array)
#1 /var/www/magento2/lib/internal/Cm/Cache/Backend/File.php(661): file_put_contents('/var/www/magent...', 'aaf_APP_475C6FE...', 10)
#2 /var/www/magento2/lib/internal/Cm/Cache/Backend/File.php(174): Cm_Cache_Backend_File->_updateIdsTags(Array, Array, 'merge')
#3 /var/www/magento2/vendor/magento/zendframework1/library/Zend/Cache/Core.php(390): Cm_Cache_Backend_File->save('a:2:{i:0;a:7:{s...', 'aaf_APP_475C6FE...', Array, false)
#4 /var/www/magento2/lib/internal/Magento/Framework/Cache/Core.php(72): Zend_Cache_Core->save('a:2:{i:0;a:7:{s...', 'APP_475C6FE6395...', Array, false, 8)
#5 /var/www/magento2/lib/internal/Magento/Framework/Cache/Frontend/Adapter/Zend.php(46): Magento\Framework\Cache\Core->save('a:2:{i:0;a:7:{s...', 'APP_475C6FE6395...', Array, false)
#6 /var/www/magento2/lib/internal/Magento/Framework/Cache/Frontend/Decorator/Bare.php(62): Magento\Framework\Cache\Frontend\Adapter\Zend->save('a:2:{i:0;a:7:{s...', 'app_475c6fe6395...', Array, false)
#7 /var/www/magento2/lib/internal/Magento/Framework/Cache/Frontend/Decorator/TagScope.php(48): Magento\Framework\Cache\Frontend\Decorator\Bare->save('a:2:{i:0;a:7:{s...', 'app_475c6fe6395...', Array, false)
#8 /var/www/magento2/lib/internal/Magento/Framework/Cache/Frontend/Decorator/Bare.php(62): Magento\Framework\Cache\Frontend\Decorator\TagScope->save('a:2:{i:0;a:7:{s...', 'app_475c6fe6395...', Array, false)
#9 /var/www/magento2/lib/internal/Magento/Framework/App/Cache/Type/AccessProxy.php(84): Magento\Framework\Cache\Frontend\Decorator\Bare->save('a:2:{i:0;a:7:{s...', 'app_475c6fe6395...', Array, false)
#10 /var/www/magento2/lib/internal/Magento/Framework/Cache/Frontend/Decorator/Bare.php(62): Magento\Framework\App\Cache\Type\AccessProxy->save('a:2:{i:0;a:7:{s...', 'app_475c6fe6395...', Array, false)
#11 /var/www/magento2/lib/internal/Magento/Framework/Cache/Frontend/Decorator/TagScope.php(48): Magento\Framework\Cache\Frontend\Decorator\Bare->save('a:2:{i:0;a:7:{s...', 'app_475c6fe6395...', Array, false)
#12 /var/www/magento2/lib/internal/Magento/Framework/Data/Collection/Db/FetchStrategy/Cache.php(72): Magento\Framework\Cache\Frontend\Decorator\TagScope->save('a:2:{i:0;a:7:{s...', 'app_475c6fe6395...', Array, false)
#13 /var/www/magento2/lib/internal/Magento/Framework/Data/Collection/Db.php(738): Magento\Framework\Data\Collection\Db\FetchStrategy\Cache->fetchAll(Object(Magento\Framework\DB\Select), Array)
#14 /var/www/magento2/lib/internal/Magento/Framework/Data/Collection/Db.php(635): Magento\Framework\Data\Collection\Db->_fetchAll(Object(Magento\Framework\DB\Select))
#15 /var/www/magento2/lib/internal/Magento/Framework/Data/Collection/Db.php(551): Magento\Framework\Data\Collection\Db->getData()
#16 /var/www/magento2/lib/internal/Magento/Framework/Data/Collection/Db.php(536): Magento\Framework\Data\Collection\Db->loadWithFilter(false, false)
#17 /var/www/magento2/app/code/Magento/Store/Model/Resource/Store/Collection.php(163): Magento\Framework\Data\Collection\Db->load(false, false)
#18 /var/www/magento2/lib/internal/Magento/Framework/Data/Collection.php(829): Magento\Store\Model\Resource\Store\Collection->load()
#19 /var/www/magento2/app/code/Magento/Store/Model/Storage/Db.php(203): Magento\Framework\Data\Collection->count()
#20 /var/www/magento2/app/code/Magento/Store/Model/Storage/Db.php(458): Magento\Store\Model\Storage\Db->_initStores()
#21 /var/www/magento2/app/code/Magento/Store/Model/StorageFactory.php(138): Magento\Store\Model\Storage\Db->reinitStores()
#22 /var/www/magento2/app/code/Magento/Store/Model/StorageFactory.php(113): Magento\Store\Model\StorageFactory->_reinitStores(Object(Magento\Store\Model\Storage\Db), Array)
#23 /var/www/magento2/app/code/Magento/Store/Model/StoreManager.php(120): Magento\Store\Model\StorageFactory->get(Array)
#24 /var/www/magento2/app/code/Magento/Store/Model/StoreManager.php(186): Magento\Store\Model\StoreManager->_getStorage()
#25 /var/www/magento2/app/code/Magento/Store/App/Request/PathInfoProcessor.php(34): Magento\Store\Model\StoreManager->getStores(false, true)
#26 /var/www/magento2/var/generation/Magento/Store/App/Request/PathInfoProcessor/Proxy.php(95): Magento\Store\App\Request\PathInfoProcessor->process(Object(Magento\Framework\App\Request\Http), '/')
#27 /var/www/magento2/lib/internal/Magento/Framework/App/Request/Http.php(165): Magento\Store\App\Request\PathInfoProcessor\Proxy->process(Object(Magento\Framework\App\Request\Http), '/')
#28 /var/www/magento2/vendor/magento/zendframework1/library/Zend/Controller/Request/Http.php(662): Magento\Framework\App\Request\Http->setPathInfo()
#29 /var/www/magento2/lib/internal/Magento/Framework/App/Request/Http.php(266): Zend_Controller_Request_Http->getPathInfo()
#30 /var/www/magento2/lib/internal/Magento/Framework/App/Http.php(109): Magento\Framework\App\Request\Http->getFrontName()
#31 /var/www/magento2/lib/internal/Magento/Framework/App/Bootstrap.php(244): Magento\Framework\App\Http->launch()
#32 /var/www/magento2/index.php(38): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http))
#33 {main}

Then I remembered how to fix permissions problems:

chmod -R 777 *

But that didn't seem to have any effect.

So now I'm going to try this one: https://github.com/ryanstreet/magento2-vagrant

alankent commented 9 years ago

Thanks Brendan. Bizarre! So much for perfectly repeatable environments! I will give it another run following my instructions. It could be because it grabs the latest build something has changed - so not vagrant playing up but rather the build instructions have changed and my scripts have not kept up

I am just playing with sample data in a Docker container. Nice and repeatable right? First home page fetch it came up with errors about unable to create directories. (Doing an 'ls' afterwards showed the directory existed.) Reloading page and it worked. A bit weird.

brendanfalkowski commented 9 years ago

Possibly related to me having Vagrant 1.5.3. Got further along here after updating: https://github.com/ryanstreet/magento2-vagrant/issues/1

But still not to a working environment.

alankent commented 9 years ago

I have had at least one person use it on a Mac - they did not report any problems (other than feeling slow). I just tried again under Windows. I had to reload the home page 3 times for it all to come up, but it did eventually come up properly.

It feels like there is a potential race condition generating all the cached files on the first request. Because multiple threads are running at once (for different page assets), there could be something non-deterministic going on there.

Oh, just noticed it was possibly the Vagrant version number. Pass! I dabble, but am not a Vagrant expert. I am running Vagrant 1.7.1.

brendanfalkowski commented 9 years ago

Using Vagrant 1.7.2 now, did a vagrant destroy and vagrant up but stuck it's stuck on this now:

Can't create directory /var/www/magento2/var/generation/Magento/Framework/App/PageCache/Identifier/.
#0 /var/www/magento2/lib/internal/Magento/Framework/Code/Generator/Autoloader.php(34): Magento\Framework\Code\Generator->generateClass('Magento\Framewo...')
#1 [internal function]: Magento\Framework\Code\Generator\Autoloader->load('Magento\Framewo...')
#2 [internal function]: spl_autoload_call('Magento\Framewo...')
#3 /var/www/magento2/lib/internal/Magento/Framework/Code/Reader/ClassReader.php(18): ReflectionClass->__construct('Magento\Framewo...')
#4 /var/www/magento2/lib/internal/Magento/Framework/ObjectManager/Definition/Runtime.php(43): Magento\Framework\Code\Reader\ClassReader->getConstructor('Magento\Framewo...')
#5 /var/www/magento2/lib/internal/Magento/Framework/ObjectManager/Factory/Dynamic/Developer.php(72): Magento\Framework\ObjectManager\Definition\Runtime->getParameters('Magento\Framewo...')
#6 /var/www/magento2/lib/internal/Magento/Framework/ObjectManager/ObjectManager.php(68): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create('Magento\Framewo...')
#7 /var/www/magento2/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php(233): Magento\Framework\ObjectManager\ObjectManager->get('Magento\Framewo...')
#8 /var/www/magento2/lib/internal/Magento/Framework/ObjectManager/Factory/Dynamic/Developer.php(52): Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument(Array, 'Magento\Framewo...', NULL, 'identifier', 'Magento\Framewo...')
#9 /var/www/magento2/lib/internal/Magento/Framework/ObjectManager/Factory/Dynamic/Developer.php(83): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments('Magento\Framewo...', Array, Array)
#10 /var/www/magento2/lib/internal/Magento/Framework/ObjectManager/ObjectManager.php(68): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create('Magento\Framewo...')
#11 /var/www/magento2/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php(233): Magento\Framework\ObjectManager\ObjectManager->get('Magento\Framewo...')
#12 /var/www/magento2/lib/internal/Magento/Framework/ObjectManager/Factory/Dynamic/Developer.php(52): Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument(Array, 'Magento\Framewo...', NULL, 'kernel', 'Magento\PageCac...')
#13 /var/www/magento2/lib/internal/Magento/Framework/ObjectManager/Factory/Dynamic/Developer.php(83): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments('Magento\PageCac...', Array, Array)
#14 /var/www/magento2/lib/internal/Magento/Framework/ObjectManager/ObjectManager.php(68): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create('Magento\PageCac...')
#15 /var/www/magento2/lib/internal/Magento/Framework/Interception/PluginList/PluginList.php(213): Magento\Framework\ObjectManager\ObjectManager->get('Magento\PageCac...')
#16 /var/www/magento2/var/generation/Magento/Framework/App/FrontController/Interceptor.php(93): Magento\Framework\Interception\PluginList\PluginList->getPlugin('Magento\Framewo...', 'front-controlle...')
#17 /var/www/magento2/var/generation/Magento/Framework/App/FrontController/Interceptor.php(119): Magento\Framework\App\FrontController\Interceptor->___callPlugins('dispatch', Array, Array)
#18 /var/www/magento2/lib/internal/Magento/Framework/App/Http.php(114): Magento\Framework\App\FrontController\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#19 /var/www/magento2/lib/internal/Magento/Framework/App/Bootstrap.php(244): Magento\Framework\App\Http->launch()
#20 /var/www/magento2/index.php(38): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http))
#21 {main}
buskamuza commented 9 years ago

I had file system permissions issue on Windows (using "smb" type of sync folder) and came to the solution that file owner should be defined in Vagrantfile

config.vm.synced_folder '../../magento2', '/var/www/magento2', owner: "www-data", group: "www-data", type: "smb"

Maybe it is needed for Mac/Linux as well. Or maybe some other mount commands are required.