Snipe-IT Upgrade from 4.6.7 to 4.7.5 not working.
-
Ubuntu Server 18.04 LTS with all the latest updates (as of today).
I tried running
php upgrade.php
and got:Welcome to the Snipe-IT upgrader. Please note that this script will not download the latest Snipe-IT files for you unless you have git installed. It simply runs the standard composer and artisan commands needed to finalize the upgrade after. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! If you have any encrypted custom fields, BE SURE TO run the recrypter if upgrading from v3 to v4. !! See the Snipe-IT documentation for help: !! https://snipe-it.readme.io/docs/upgrading-to-v4 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -------------------------------------------------------- STEP 1: Backing up database: -------------------------------------------------------- -- Starting backup... Dumping database snipeit_data... Backup failed because The dump process failed with exitcode 2 : Misuse of shell builtins : sh: 1: cannot create /var/www/snipe-it/storage/laravel-backups/temp//snipeit_data.sql: Directory nonexistent . Backup failed because: The stream or file "/var/www/snipe-it/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied. In StreamHandler.php line 107: The stream or file "/var/www/snipe-it/storage/logs/laravel.log" could not be opened: f ailed to open stream: Permission denied -------------------------------------------------------- STEP 2: Putting application into maintenance mode: -------------------------------------------------------- -- In StreamHandler.php line 107: The stream or file "/var/www/snipe-it/storage/logs/laravel.log" could not be opened: f ailed to open stream: Permission denied -------------------------------------------------------- STEP 3: Pulling latest from Git (master branch): -------------------------------------------------------- Git is installed. fatal: Unable to create '/var/www/snipe-it/.git/index.lock': Permission denied fatal: Unable to create '/var/www/snipe-it/.git/index.lock': Permission denied Cannot save the current index state error: cannot open .git/FETCH_HEAD: Permission denied -- -- -- -------------------------------------------------------- Step 4: Cleaning up old cached files: -------------------------------------------------------- -- No bootstrap/cache/compiled.php, so nothing to delete. -- Deleting bootstrap/cache/services.php. It it no longer used. -- No bootstrap/cache/config.php, so nothing to delete. -- Configuration cache cleared! -- Cache cleared successfully. -- Route cache cleared! -- Compiled views cleared! -------------------------------------------------------- Step 5: Updating composer dependencies: (This may take an moment.) -------------------------------------------------------- -- We couldn't find a local composer.phar - trying globally. Cannot create cache directory /home/jcoombes/.composer/cache/repo/https---repo.packagist.org/, or directory is not writable. Proceeding without cache Cannot create cache directory /home/jcoombes/.composer/cache/files/, or directory is not writable. Proceeding without cache Generating optimized autoload files ^C
You can see I killed it at the end there. So I moved onto trying to update manually, so I started by running
php artisan snipeit:backup
and got:Starting backup... Dumping database snipeit_data... Backup failed because The dump process failed with exitcode 2 : Misuse of shell builtins : sh: 1: cannot create /var/www/snipe-it/storage/laravel-backups/temp//snipeit_data.sql: Directory nonexistent . Backup failed because: The stream or file "/var/www/snipe-it/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied. In StreamHandler.php line 107: The stream or file "/var/www/snipe-it/storage/logs/laravel.log" could not be opened: f ailed to open stream: Permission denied
So I am reasonably sure that this is a permissions issue, though I cannot for the life of me think how those got screwed up, and I am absolutely not sure what they should be set to.
Can anyone help me with this?
Here is the ls output for the folder:
ls -alh total 1016K drwxr-xr-x 16 www-data www-data 4.0K Jan 15 2019 . drwxr-xr-x 4 root root 4.0K Nov 1 2018 .. -rw-r--r-- 1 www-data www-data 44K Nov 1 2018 .all-contributorsrc drwxr-xr-x 17 www-data www-data 4.0K Nov 1 2018 app -rw-r--r-- 1 www-data www-data 1.7K Nov 1 2018 artisan drwxr-xr-x 3 www-data www-data 4.0K Nov 1 2018 bootstrap -rw-r--r-- 1 www-data www-data 875 Nov 1 2018 bower.json -rw-r--r-- 1 www-data www-data 9.0K Nov 1 2018 c3.php -rw-r--r-- 1 www-data www-data 373 Nov 1 2018 codeception.yml -rw-r--r-- 1 www-data www-data 3.2K Nov 1 2018 CODE_OF_CONDUCT.md -rw-r--r-- 1 www-data www-data 2.3K Nov 1 2018 composer.json -rw-r--r-- 1 www-data www-data 227K Nov 1 2018 composer.lock drwxr-xr-x 2 www-data www-data 4.0K Jan 15 2019 config -rw-r--r-- 1 www-data www-data 317 Nov 1 2018 CONTRIBUTING.md -rw-r--r-- 1 www-data www-data 90 Nov 1 2018 crowdin.yml drwxr-xr-x 5 www-data www-data 4.0K Nov 1 2018 database drwxr-xr-x 2 www-data www-data 4.0K Nov 1 2018 docker -rw-r--r-- 1 www-data www-data 3.2K Nov 1 2018 Dockerfile -rw-r--r-- 1 www-data www-data 67 Nov 1 2018 .dockerignore -rw-r--r-- 1 www-data www-data 2.8K Nov 1 2018 .env -rw-r--r-- 1 root root 2.9K Jan 15 2019 .env.example -rw-r--r-- 1 www-data www-data 1.8K Nov 1 2018 .env.testing -rw-r--r-- 1 www-data www-data 1.8K Nov 1 2018 .env.testing-ci -rw-r--r-- 1 www-data www-data 536 Nov 1 2018 .env.tests -rw-r--r-- 1 www-data www-data 491 Nov 1 2018 .env.unit-tests -rw-r--r-- 1 www-data www-data 1.7K Nov 1 2018 gh-changelog.php drwxr-xr-x 8 www-data www-data 4.0K Jan 15 2019 .git -rwxr-xr-x 1 www-data www-data 11 Nov 1 2018 .gitattributes drwxr-xr-x 3 www-data www-data 4.0K Nov 1 2018 .github -rwxr-xr-x 1 www-data www-data 1.1K Nov 1 2018 .gitignore -rw-r--r-- 1 www-data www-data 251 Nov 1 2018 .htaccess -rw-r--r-- 1 www-data www-data 956 Nov 1 2018 index.html -rwxr-xr-x 1 www-data www-data 371 Nov 1 2018 install.sh -rwxr-xr-x 1 www-data www-data 34K Nov 1 2018 LICENSE -rw-r--r-- 1 www-data www-data 441K Nov 1 2018 npm-shrinkwrap.json -rw-r--r-- 1 www-data www-data 1.8K Nov 1 2018 package.json -rw-r--r-- 1 www-data www-data 1.1K Nov 1 2018 phpunit.xml drwxr-xr-x 8 www-data www-data 4.0K Jan 15 2019 public -rw-r--r-- 1 www-data www-data 45K Nov 1 2018 README.md drwxr-xr-x 6 www-data www-data 4.0K Nov 1 2018 resources drwxr-xr-x 3 www-data www-data 4.0K Nov 1 2018 routes drwxr-xr-x 2 www-data www-data 4.0K Nov 1 2018 sample_csvs -rw-r--r-- 1 www-data www-data 567 Nov 1 2018 server.php -rwxr-xr-x 1 www-data www-data 22K Nov 1 2018 snipeit.sh drwxrwxr-x 7 www-data www-data 4.0K Nov 1 2018 storage drwxr-xr-x 10 www-data www-data 4.0K Nov 1 2018 tests -rw-r--r-- 1 root root 2.8K Jan 15 2019 .travis.yml -rw-r--r-- 1 www-data www-data 6.1K Nov 1 2018 upgrade.php -rw-r--r-- 1 www-data www-data 3.4K Nov 1 2018 Vagrantfile drwxr-xr-x 51 www-data www-data 4.0K Nov 1 2018 vendor -rw-r--r-- 1 www-data www-data 2.1K Nov 1 2018 webpack.mix.js
EDIT: I just changed the permissions on everything in the /var/www/snipe-it folder to 755, and made sure that everything is owned by www-data and the group is www-data. I am still getting all these permission errors when trying to upgrade.
-
sudo -u www-data php upgrade.php
-
@black3dynamite said in Snipe-IT Upgrade from 4.6.7 to 4.7.5 not working.:
sudo -u www-data php upgrade.php
That makes sense, and seems to have solved the backup issue and some of the permission errors, but now I am getting this:
Welcome to the Snipe-IT upgrader. Please note that this script will not download the latest Snipe-IT files for you unless you have git installed. It simply runs the standard composer and artisan commands needed to finalize the upgrade after. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! If you have any encrypted custom fields, BE SURE TO run the recrypter if upgrading from v3 to v4. !! See the Snipe-IT documentation for help: !! https://snipe-it.readme.io/docs/upgrading-to-v4 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -------------------------------------------------------- STEP 1: Backing up database: -------------------------------------------------------- -- Starting backup... Dumping database snipeit_data... Determining files to backup... Zipped 79 files... Copying 2019-07-30-145900.zip (size: 806.26 KB) to disk named local... Successfully copied .zip file to disk named local. Backup completed! -------------------------------------------------------- STEP 2: Putting application into maintenance mode: -------------------------------------------------------- -- Application is now in maintenance mode. -------------------------------------------------------- STEP 3: Pulling latest from Git (master branch): -------------------------------------------------------- Git is installed. Already on 'master' error: cannot open .git/FETCH_HEAD: Permission denied -- No local changes to save -- Your branch is up to date with 'origin/master'. -- -------------------------------------------------------- Step 4: Cleaning up old cached files: -------------------------------------------------------- -- No bootstrap/cache/compiled.php, so nothing to delete. -- Deleting bootstrap/cache/services.php. It it no longer used. -- Deleting bootstrap/cache/config.php. It it no longer used. -- Configuration cache cleared! -- Cache cleared successfully. -- Route cache cleared! -- Compiled views cleared! -------------------------------------------------------- Step 5: Updating composer dependencies: (This may take an moment.) -------------------------------------------------------- -- We couldn't find a local composer.phar - trying globally. Cannot create cache directory /home/jcoombes/.composer/cache/repo/https---repo.packagist.org/, or directory is not writable. Proceeding without cache Cannot create cache directory /home/jcoombes/.composer/cache/files/, or directory is not writable. Proceeding without cache Generating optimized autoload files Cannot create cache directory /home/jcoombes/.composer/cache/repo/https---repo.packagist.org/, or directory is not writable. Proceeding without cache Cannot create cache directory /home/jcoombes/.composer/cache/files/, or directory is not writable. Proceeding without cache Loading composer repositories with package information Installing dependencies from lock file Nothing to install or update Generating optimized autoload files -------------------------------------------------------- Step 6: Migrating database: -------------------------------------------------------- -- Nothing to migrate. -------------------------------------------------------- Step 7: Checking for OAuth keys: -------------------------------------------------------- - OAuth keys detected. Skipping passport install. -------------------------------------------------------- Step 8: Caching routes and config: -------------------------------------------------------- -- Configuration cache cleared! Configuration cached successfully! -- Route cache cleared! Routes cached successfully! -------------------------------------------------------- Step 9: Taking application out of maintenance mode: -------------------------------------------------------- -- Application is now live. -------------------------------------------------------- FINISHED! Clear your browser cookies and re-login to use : your upgraded Snipe-IT. --------------------------------------------------------
-
@jrc said in Snipe-IT Upgrade from 4.6.7 to 4.7.5 not working.:
That makes sense, and seems to have solved the backup issue and some of the permission errors, but now I am getting this:
That looks normal.
-
I'll take you word for that. The end result is it is not upgrading anything. I am still on 4.6.7 when it is done.
To be clear, you are saying that this is normal?
-------------------------------------------------------- STEP 3: Pulling latest from Git (master branch): -------------------------------------------------------- Git is installed. Already on 'master' error: cannot open .git/FETCH_HEAD: Permission denied -- No local changes to save -- Your branch is up to date with 'origin/master'.
And this:
-------------------------------------------------------- Step 5: Updating composer dependencies: (This may take an moment.) -------------------------------------------------------- -- We couldn't find a local composer.phar - trying globally. Cannot create cache directory /home/jcoombes/.composer/cache/repo/https---repo.packagist.org/, or directory is not writable. Proceeding without cache Cannot create cache directory /home/jcoombes/.composer/cache/files/, or directory is not writable. Proceeding without cache Generating optimized autoload files Cannot create cache directory /home/jcoombes/.composer/cache/repo/https---repo.packagist.org/, or directory is not writable. Proceeding without cache Cannot create cache directory /home/jcoombes/.composer/cache/files/, or directory is not writable. Proceeding without cache Loading composer repositories with package information Installing dependencies from lock file Nothing to install or update Generating optimized autoload files
-
@jrc said in Snipe-IT Upgrade from 4.6.7 to 4.7.5 not working.:
error: cannot open .git/FETCH_HEAD: Permission denied
missed that.
DId you chown that folder too?
ls -lash
-
For some reason the FETCH_HEAD file was owned by root, and several other things in the .git folder, so I changed them all to www-data:www-data.
It is running now, and updating a bunch of things. Hopefully that will do it.
-
It finished, but with these errors:
Step 4: Cleaning up old cached files: -------------------------------------------------------- -- No bootstrap/cache/compiled.php, so nothing to delete. -- Deleting bootstrap/cache/services.php. It it no longer used. -- Deleting bootstrap/cache/config.php. It it no longer used. -- In ProviderRepository.php line 208: Class 'PragmaRX\Google2FALaravel\ServiceProvider' not found -- In ProviderRepository.php line 208: Class 'PragmaRX\Google2FALaravel\ServiceProvider' not found -- In ProviderRepository.php line 208: Class 'PragmaRX\Google2FALaravel\ServiceProvider' not found -- In ProviderRepository.php line 208: Class 'PragmaRX\Google2FALaravel\ServiceProvider' not found
And
-------------------------------------------------------- Step 5: Updating composer dependencies: (This may take an moment.) -------------------------------------------------------- -- We couldn't find a local composer.phar - trying globally. Cannot create cache directory /home/jcoombes/.composer/cache/repo/https---repo.packagist.org/, or directory is not writable. Proceeding without cache Cannot create cache directory /home/jcoombes/.composer/cache/files/, or directory is not writable. Proceeding without cache <snip> Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover In ProviderRepository.php line 208: Class 'PragmaRX\Google2FALaravel\ServiceProvider' not found <snip> Package manifest generated successfully.
But other than that it appears to have worked out just fine.
Are there any security concerns with the .git files now being owned by www-data with 755 permissions?
-
So for anyone else who may stumble across this, here is the concise solution that worked for me.
sudo chown -R www-data:www-data ./storage
sudo chmod -R 755 ./storage
This sets the owner and permissions for all the files in the storage folder for Snipe-IT.Then run
sudo -u www-data php upgrade.php
This still spat out a few errors, but they seem to be inconsequential, and everything is updated.
-
@jrc said in Snipe-IT Upgrade from 4.6.7 to 4.7.5 not working.:
Cannot create cache directory /home/jcoombes/.composer/cache/repo/https---repo.packagist.org/, or directory is not writable. Proceeding without cache
Cannot create cache directory /home/jcoombes/.composer/cache/files/, or directory is not writable. Proceeding without cacheThis is normal. You are running something as the apache user and it has no access to your home directory.