Installation directory issues

Just starting the install process and I am running into an error message that I can not resolve and does not seem accurate. It is stating that the storage directory does not exist and that the ffmpeg.exe is not executable despite being set at 777 as well as the directory housing it. Please advise. I'd like to get started with this ASAP.

storage Not exists Writable

plugins/ffmpeg/ffmpeg.exe Not executable Executable

  • 1031
  • More
Replies (8)
    • Hello @IVA !

      Could you please specify what package of UNA and what hosting do you use?

      The storage folder you may create by youself. The ffmpeg permission may be connected with the limited rights hosting plan.

      • UNA PACKAGE: UNA-v.14.0.0

        HOSTING: The Grow Big package from SiteGround. I can't post links or I'd share the link here

        • I did want to mention that I installed it into a subdirectory. Could that be causing the issue?

          • If you need to set the correct permissions for UNA CMS, run this command:

            #!/bin/bash
            # Move into the 'una' directory
            cd una
            
            # Change the owner of all files and folders to 'www-data' (the default web server user)
            sudo chown -R www-data:www-data .
            
            # Set permissions for all directories to 755:
            # 7 = read (4) + write (2) + execute (1) for the owner
            # 5 = read (4) + execute (1) for the group
            # 5 = read (4) + execute (1) for others
            sudo find ./ -type d -exec chmod 755 {} \;
            
            # Set permissions for all files to 644:
            # 6 = read (4) + write (2) for the owner
            # 4 = read (4) for the group
            # 4 = read (4) for others
            sudo find ./ -type f -exec chmod 644 {} \;
            
            # Give execute permission to ffmpeg.exe (because it’s an executable file)
            sudo chmod +x ./plugins/ffmpeg/ffmpeg.exe
            
            # Show confirmation message
            echo "Permissions successfully set."
            

            If that doesn’t work, try this more permissive version:

            #!/bin/bash
            # Move into the 'una' directory
            cd una
            
            # Change the owner of all files and folders to 'www-data'
            sudo chown -R www-data:www-data .
            
            # Set permissions for all directories to 775:
            # 7 = read (4) + write (2) + execute (1) for the owner
            # 7 = read (4) + write (2) + execute (1) for the group
            # 5 = read (4) + execute (1) for others
            sudo find . -type d -exec chmod 775 {} \;
            
            # Set permissions for all files to 644:
            # 6 = read (4) + write (2) for the owner
            # 4 = read (4) for the group
            # 4 = read (4) for others
            sudo find . -type f -exec chmod 644 {} \;
            
            # Give execute permission to ffmpeg.exe
            sudo chmod +x ./plugins/ffmpeg/ffmpeg.exe
            
            # Show confirmation message
            echo "Permissions successfully set."
            

            Explanation of the permission numbers:

            In Linux, file permissions are represented by a three-digit number:

            • The first digit is for the owner
            • The second digit is for the group
            • The third digit is for others (everyone else)

            Each digit is a combination of:

            • 4 = read permission
            • 2 = write permission
            • 1 = execute permission

            You add them together to get the desired permissions.

            Examples:

            • 7 = 4 (read) + 2 (write) + 1 (execute) = read, write, execute
            • 6 = 4 (read) + 2 (write) = read, write
            • 5 = 4 (read) + 1 (execute) = read, execute
            • 4 = read only

            Permissions we’re using:

            • 755 for directories:
            • Owner can read/write/execute
            • Group can read/execute
            • Others can read/execute
            • Why? So the web server can access directories, and users can navigate them, but only the owner can write to them.
            • 775 for directories (alternative if group write is needed):
            • Owner and group can read/write/execute
            • Others can read/execute
            • This is slightly more open for collaborative setups.
            • 644 for files:
            • Owner can read/write
            • Group and others can only read
            • Prevents unauthorized users from modifying files while allowing the web server to read them.
            • +x for executables like ffmpeg.exe:
            • Makes the file executable for the owner, group, and others
            • Required for scripts or binaries that need to run.

            ⚠️ Why not use 777?

            • 777 = read/write/execute for everyone (owner, group, others)
            • It’s insecure because anyone can modify or delete your files.
            • Okay for local testing, but a terrible idea for live public servers.

            Cheap servers for testing UNA:

            If you want something affordable to test UNA, check Hetzner Cloud:

            https://www.hetzner.com/cloud/

            Their cloud servers are fast, reliable, and cheap.

            ⚠️ Do not use shared hosting packages if they don’t give you sudo or root access, which is required for UNA.

            • That worked. Thanks for your help getting this set up!

              • I didn't understand. How did you solve the problem?

                • This solution you provided allowed me to complete the install:

                  #!/bin/bash
                  # Move into the 'una' directory
                  cd una
                  
                  # Change the owner of all files and folders to 'www-data' (the default web server user)
                  sudo chown -R www-data:www-data .
                  
                  # Set permissions for all directories to 755:
                  # 7 = read (4) + write (2) + execute (1) for the owner
                  # 5 = read (4) + execute (1) for the group
                  # 5 = read (4) + execute (1) for others
                  sudo find ./ -type d -exec chmod 755 {} \;
                  
                  # Set permissions for all files to 644:
                  # 6 = read (4) + write (2) for the owner
                  # 4 = read (4) for the group
                  # 4 = read (4) for others
                  sudo find ./ -type f -exec chmod 644 {} \;
                  
                  # Give execute permission to ffmpeg.exe (because it’s an executable file)
                  sudo chmod +x ./plugins/ffmpeg/ffmpeg.exe
                  
                  # Show confirmation message
                  echo "Permissions successfully set."
                  

                  Thanks for your help with this. I've got it connected to a database and have begun building it out now.

                  • I'm glad I could help you. Save as a file if you need further help to restore UNA permissions set_permissions.sh

                    #!/bin/bash
                    # Filename: set_permissions.sh
                    
                    # Move into the 'una' directory
                    cd una || { echo "Directory 'una' not found!"; exit 1; }
                    
                    # Change the owner of all files and folders to 'www-data'
                    sudo chown -R www-data:www-data .
                    
                    # Set permissions for all directories to 755:
                    # 7 = read (4) + write (2) + execute (1) for the owner
                    # 5 = read (4) + execute (1) for the group
                    # 5 = read (4) + execute (1) for others
                    sudo find ./ -type d -exec chmod 755 {} \;
                    
                    # Set permissions for all files to 644:
                    # 6 = read (4) + write (2) for the owner
                    # 4 = read (4) for the group
                    # 4 = read (4) for others
                    sudo find ./ -type f -exec chmod 644 {} \;
                    
                    # Give execute permission to ffmpeg.exe (since it's an executable)
                    sudo chmod +x ./plugins/ffmpeg/ffmpeg.exe
                    
                    # Go back to the previous directory
                    cd ..
                    
                    # Set this script's owner to 'root' and permissions to 755
                    # If you want, replace 'root' below with your SSH username
                    sudo chown root:root set_permissions.sh
                    sudo chmod +x set_permissions.sh
                    
                    # Display confirmation message
                    echo "Permissions successfully set. Script permissions preserved."
                    

                    How to use:

                    Option 1: Using nano

                    1. Create the file:
                    nano set_permissions.sh
                    
                    1. Paste the code from above.
                    2. Save and close:
                    • Press CTRL+O, then Enter to save.
                    • Press CTRL+X to exit.

                    Option 2: Using vim

                    1. Create the file:
                    vim set_permissions.sh
                    
                    1. Press i to enter Insert mode.
                    2. Paste the code from above.
                    3. Save and close:
                    • Press ESC
                    • Type :wq
                    • Press Enter

                    Final steps:

                    • Make the script executable:
                    sudo chmod +x set_permissions.sh
                    
                    • Run it anytime to restore your file and folder permissions:
                    ./set_permissions.sh
                    

                    ✅ What this script does:

                    • Sets the correct ownership (www-data:www-data) and permissions for your una/ project.
                    • Makes sure ffmpeg.exe stays executable.
                    • Preserves its own permissions as root:root with 755, so it’s always ready to use safely.

                    📁 Directory Structure

                    your_project/
                    ├── set_permissions.sh   ← This script is here
                    └── una/                 ← The UNA CMS directory
                    

                    Happy coding! 🚀

                    Login or Join to comment.