Collaborating the PHPBrew : past, now and future
Peter, GitHub
Active open source contributor
Speaker
COSCUP、MOPCON......
An associate engineer
DevOps
Back-end
System Architecture Researching
Web Application Security
PHP, Python and JavaScript
Industrial Technology Research Institute
Smart Grid Technology (2017~2021)
Institute for Information Industry
Database, Data platform architecture (2021~)
Survey (Have you heard or used PHPBrew?)
Short introduction about the PHPBrew
The past story of the PHPBrew. (The history of the PHPBrew)
Sharing collaborating/contributing stories (tips?)
Focusing on us!
Summary
# Example for Ubuntu, Linux distribution
# Install some required C/C++ libraries and C/C++ building tools
sudo apt-get update
sudo apt-get install build-essential
# Building the PHP-7.4 from source
cd /tmp
wget https://www.php.net/distributions/php-7.4.0.tar.gz
tar xfz php-7.4.0.tar.gz
./configure --prefix=/opt/php-7.4 \
--with-pdo-pgsql \
--with-zlib-dir \
--with-freetype \
--enable-mbstring \
--enable-soap \
--enable-calendar \
--with-curl \
--with-zlib \
--enable-gd \
--with-pgsql \
--disable-rpath
......
make -j 4 && make install
There'are many configuring options, right?
curl -L -O https://github.com/phpbrew/phpbrew/releases/latest/download/phpbrew.phar
chmod +x phpbrew.phar
# Move phpbrew.phar to somewhere can be found by your $PATH
sudo mv phpbrew.phar /usr/local/bin/phpbrew
phpbrew init
# I assume you're using bash
echo "[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc" >> ~/.bashrc
# For the first-time installation, you don't have phpbrew shell function yet.
source ~/.phpbrew/bashrc
# Fetch the release list from official php site...
phpbrew update
# List available releases
phpbrew known
# List available variants
phpbrew variants
# Let's brew something out.
phpbrew --debug install --stdout 7.4 as 7.4-dev +default +intl
Talking with PHPBrew father in Twitter.
Building/Compiling problems.
Usage problems.
And so on.
Legacy codes/projects are everywhere.
PHP version compatibility is the challenge.
Dependencies issues are another challenge
"corneltek/pearx": "^1.3.5"
"corneltek/curlkit": "^1.0.11"
"corneltek/cliframework": "3.0.x-dev#01cee2d491085cfae63c677611b5e4604624771e"
corneltek/getoptionkit
Trying to fix some bugs....
Dependencies errors are coming...
It should fix dependency bug firstly...
PHPUnit, Symfony and other frameworks compatibility
PHP 7.x, PHP 8.x versions upgrading compatibility
Rector is the great tool for resolving this issue
Tracing many dependency codes and funny talk...
Tracing many dependency codes...corneltek/getoptionkit
Building or Compiling problems are coming...
cannot install gd with php 8.1.12 on ubuntu 18.04
OpenSSL symbol(s) not found for architecture x86_64
PHP Installation fails on Ubuntu 22.04 WSL2
Read documentations.
Update documentations.
Trying to build, run and test it.
Trying to answer questions in issue tracking system.
Trying to submit/report issues.
Trying to trace codes & find current problems/bugs.
Submit pull requests to resolve the issue.
Implementing features.
Improvements.
不要問為何沒有人接手,先承認你就是「沒有人」
Making the PHPBrew building tool environment easy!
docker-phpbrew