Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request for PHP Official to Provide Standalone Linux Binary Packages #15916

Open
eatmeatball opened this issue Sep 16, 2024 · 13 comments
Open

Request for PHP Official to Provide Standalone Linux Binary Packages #15916

eatmeatball opened this issue Sep 16, 2024 · 13 comments

Comments

@eatmeatball
Copy link

Description

Background

When embarking on the journey of software development, especially for newcomers, setting up a development environment can often be a complex and time-consuming process. Many developers may feel overwhelmed by environment configuration issues, which can hinder their learning experience. To reduce this barrier, several programming languages and frameworks have begun to offer standalone binary packages that are ready to use, rather than just source code.

Binary Packages vs Source Code

For beginners, one of the most significant challenges is figuring out how to build an entire development environment from scratch. In contrast, binary packages provide numerous advantages:

  • Simplicity: Users only need to download and extract the package, without having to engage in complex compilation steps.
  • Consistency: Different users or deployment environments can utilize the same version of PHP, minimizing issues related to version discrepancies.
  • Time-saving: Newcomers can get up and running more quickly, allowing them to focus on learning PHP itself rather than on configuring it to run on their machines.
  • For example, languages like Python and Node.js offer straightforward binary installation options. Users simply download the appropriate version and extract it, making it easy to use in any compatible environment. This significantly lowers the barrier to entry, enabling more people to quickly dive into programming.

Benefits of a Unified Ecosystem

Providing a consistent binary package also helps to create a more unified ecosystem. Here are several potential benefits:

  • Reduced Fragmentation: When everyone uses the same binary version, community communication and troubleshooting become more efficient.
  • User-friendly: New users can start with simple steps, without needing to delve into various compilation options and dependencies.
  • Enhanced Community Support: A unified version means that the community can provide support and documentation more efficiently, reducing confusion caused by version differences.

Conclusion

We hope that the PHP official team will consider releasing a standalone Linux binary package for PHP. This initiative would greatly facilitate the learning and usage of PHP for newcomers, while also enhancing the uniformity and user experience across the PHP ecosystem. By drawing on the successful practices of other programming languages, we believe this change could attract more new users and increase engagement within the PHP community.


e1 node:
image

e1 golang
image

@iluuu1994
Copy link
Member

There have been some plans to improve installation instructions. /cc @pronskiy @derickr

@ooing
Copy link

ooing commented Sep 16, 2024

I think this is really necessary

@NattyNarwhal
Copy link
Member

NattyNarwhal commented Sep 16, 2024

Miss me with the ChatGPT intro, but I think historically why this didn't happen:

  • PHP is almost always used with your web server, be it loaded as a module or with (Fast)CGI via i.e. FPM. This wouldn't be a plug and play process by just extracting a tarball (i.e. you'd need to link with your build of Apache for mod_php, you'd need to set up the service and get the web server talking to it for i.e. FPM); the distribution packages build and install integration here.
  • There has been semi-official packages already, be it Zend's commercial distribution or Ondrej and Remi's repositories (usually based and majorly enhanced from distribution packaging). Perhaps PHP as a project could do a better job of promoting or blessing these, but it risks accusations of favouritism.
    • That said, a lot of distros also tend to have their own support lifecycles separate from PHP's (i.e. Zend's LTS, Debian/EL/etc backporting fixes), it's sometihng to keep in mind. In theory, users are also supposed to talk with their dowstream first with issues (it's more obvious if you're paying them), but in practice everyone circumvents distro bug trackers and go directly to upstream.
  • For people interested in consistency, they're probably already using containers. Most I tend to see (though I don't usually work with containerized Linux environments) tend to be distro PHP on i.e. Ubuntu or Alpine base images.

(Disclaimer for transparency: I provide a commercially supported PHP distribution for IBM i, and thus have worked on i.e. system integration stuff.)

@mouyong
Copy link

mouyong commented Sep 16, 2024

When I completed projects using PHP, it was tedious and complicated to deal with the environment independently for each deployment.

In different teams, the environmental dependencies of PHP are also different. When the team first switches to a unified environment, someone needs to complete the containerization process, which is also a complicated matter.

PHP currently cannot have an environment through one installation like nodejs, python, etc. Users are always required to build more additional adaptation environments (such as web servers nginx, apache).

When I want to migrate a PHP project from a monolithic project to a containerized project, the level of tedium is even higher. You need to select the Ubuntu system environment, choose the dependencies to install, and process how web requests are processed by the PHP interpreter. These are disaster-level difficulties for those with less overall experience. Basically, it is more difficult for users with 1 to 3 years of experience to complete it. But compared with python and nodejs, it is indeed very easy. Just need from the official image. Install the project dependencies and run the project to complete. Not PHP.

@JaguarJack
Copy link

When I write beginner tutorials, I find it relatively difficult from my personal perspective. I need to explain a lot, such as where to install PHP, where the PHP directory is, and how to configure PHP's environment variables to use the PHP interpreter in the console. Especially on Windows, if I don't use some integrated software, I really don't want to explain it to beginners; it's too troublesome.

In my vision, if the official PHP development team could take some time to make PHP an executable file and integrate the Composer package manager, it would be invaluable for the development of PHP. I see many RFC proposals that do not contribute to the popularization of PHP. What PHP needs is to lower the entry barrier for newcomers. I see other languages evolving, with their usage thresholds getting lower and lower, while PHP remains stagnant. Installing PHP on a new machine has been the same for the past ten years. This can be considered a regression.

Please give this issue the attention it deserves. I truly hope PHP will continue to improve and become more accessible.

@weijer

This comment was marked as duplicate.

@AuroraYolo

This comment was marked as duplicate.

1 similar comment
@woshijxh

This comment was marked as duplicate.

@wdwlrz

This comment was marked as duplicate.

@KingBes

This comment was marked as duplicate.

@kanyxmo

This comment was marked as duplicate.

@iluuu1994
Copy link
Member

Ok guys, please use the +1 button instead of spamming hundreds of people. 🙂

@tlxf

This comment was marked as duplicate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests