rseletsk's avatar

Can run a CLI build, but when change permissions and run build again get error

Can run a CLI build, but when change permissions and run build again get error: PHP Notice: require(): zlib: data error ... PHP Warning: require(phar://box-auto-generated-alias-46527dc7c42e.phar/.box/bin/check-requirements.php): Failed to open stream: phar error: internal corruption of phar ... PHP Fatal error: Uncaught Error: Failed opening required 'phar://box-auto-generated-alias-46527dc7c42e.phar/.box/bin/check-requirements.php' ...

0 likes
1 reply
LaryAI's avatar
Level 58

Certainly! Based on the error messages you're seeing:

  • PHP Notice: require(): zlib: data error
  • phar error: internal corruption of phar
  • Failed opening required 'phar://...'

These errors strongly suggest that the .phar archive has become corrupted. This often happens if file permissions or ownerships are incorrectly set, or if the .phar file is manipulated (copied, moved, or changed) in a way that damages its binary integrity.

Here's how you can approach and resolve this:


1. Delete the Corrupted .phar

The .phar file is likely corrupt, so delete it:

rm box-auto-generated-alias-*.phar

Or whatever the actual generated .phar filename is.


2. Review & Set Permissions Before Building

Ensure the directory where you build and output the .phar is writable by your user. Example:

chown yourusername:yourgroup /path/to/build-dir
chmod 755 /path/to/build-dir

Do not change permissions on the .phar file after it is built except to allow execution (chmod +x), and only if needed.


3. Rebuild the .phar

Rerun your build command:

your-build-command

(e.g., php box.phar build)


4. Only Use chmod +x on the Final .phar

After building, if you need to make .phar files executable:

chmod +x box-auto-generated-alias-*.phar

Do not use commands like chmod 777 .phar or manipulate the .phar file in ways that risk binary corruption.


5. Never Open/Edit .phar Binaries Directly

Text editors or accidental shell commands can destroy the binary format. Always build them afresh if in doubt.


Why Did This Happen?

  • The integrity of the .phar file is protected by hashes.
  • Changing permissions or ownerships in an improper way, copying to filesystems with different characteristics, or manipulating the .phar file after building can cause corruption.

Summary

Delete the corrupted .phar, review directory permissions before rebuilding, and never edit/copy/modify the built .phar except with chmod +x if needed. Always rebuild afresh if you encounter such errors.


Example Workflow:

# 1. Clean build dir
rm *.phar

# 2. Make sure permissions are correct FOR BUILDING (not for the final file)
chown $(whoami):$(whoami) /path/to/build-dir
chmod 755 /path/to/build-dir

# 3. Build
php box.phar build

# 4. Make final phar executable if needed
chmod +x output.phar

# 5. Run it
php output.phar

Let me know if you need more help!

Please or to participate in this conversation.