-
-
Save doole/8651341 to your computer and use it in GitHub Desktop.
#!/bin/bash | |
# Install Xcode Command Line Tools first (required) | |
xcode-select --install | |
# Check PHP version `php --version` | |
PHP_VER=$(php -v | head -1 | awk '{ print $2 }') | |
# Extensions directory (default: empty string) | |
EXT_DIR="" | |
# Postgres.app < 9.3.5.0 | |
#PG_APP="/Applications/Postgres.app/Contents/MacOS" | |
# Postgres.app >= 9.3.5.0 (check currently installed version first!) | |
PG_VER="9.5" | |
PG_APP="/Applications/Postgres.app/Contents/Versions/$PG_VER" | |
# El Capitan / Sierra workaround | |
if [ $(uname -r | head -c2) > 14 ]; then | |
EXT_DIR=/usr/local/lib/php/extensions/ | |
mkdir -p $EXT_DIR | |
fi | |
# Check if extension exists first | |
php -m | grep pgsql | |
# Update brew and install requirements | |
brew update | |
brew install autoconf | |
# Download PHP source and extract | |
mkdir -p ~/src && cd ~/src | |
curl -O http://php.net/distributions/php-$PHP_VER.tar.bz2 | |
tar -xjf php-$PHP_VER.tar.bz2 | |
# Go to extension dir and phpize | |
cd ~/src/php-$PHP_VER/ext/pdo_pgsql/ | |
phpize | |
# Configure for Postgress.app or just use `./configure` for the brew version | |
./configure --with-pdo-pgsql=$PG_APP | |
make | |
# El Capitan / Sierra workaround | |
if [ $(uname -r | head -c2) > 14 ]; then | |
cp ./modules/pdo_pgsql.so $EXT_DIR | |
else | |
sudo make install | |
fi | |
echo "extension=${EXT_DIR}pdo_pgsql.so" | sudo tee -a /private/etc/php.ini | |
# Go to extension dir and phpize | |
cd ~/src/php-$PHP_VER/ext/pgsql/ | |
phpize | |
# Configure for Postgress.app or just use `./configure` for the brew version | |
./configure --with-pgsql=$PG_APP | |
make | |
# El Capitan / Sierra workaround | |
if [ $(uname -r | head -c2) > 14 ]; then | |
cp ./modules/pgsql.so $EXT_DIR | |
else | |
sudo make install | |
fi | |
echo "extension=${EXT_DIR}pgsql.so" | sudo tee -a /private/etc/php.ini | |
# Check if extension exists, again | |
php -m | grep pgsql | |
# Cleanup | |
rm -rf ~/src/php-$PHP_VER/ |
Saved my day! Thanks!
Updated for macOS Sierra 🍺
Dudeeeeeee you save my life :D
You saved me! I owe you a beer haha
Thank you!
Freaking amazing. This is the best thing since sliced bread. Thanks a billion
Very Helpful. Thanks you helpful to get the pgsql module installed.
Note that on OS/X the location of the php.ini for the Web application and for the php command line is different -
On OS/X Yosemite:
/usr/local/php5/lib/php.ini - php.ini for the Web app
/usr/local/etc/php/7.1/php.ini - php.ini for the php command line (if you are using php 7.1 YMMV)
If you are using Postgres you will need to specify the location of the pdo_pgsql extension like:
extension="/usr/local/php/extensions/pdo_pgsql.so" (again YMMV depending on your system)
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
pdo_pgsql
pgsql
Already up-to-date.
Warning: autoconf 2.69 is already installed and up-to-date
To reinstall 2.69, run `brew reinstall autoconf`
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 177 100 177 0 0 264 0 --:--:-- --:--:-- --:--:-- 264
tar: Unrecognized archive format
tar: Error exit delayed from previous errors.
/Users/mattijs/Downloads/8651341-0606545a4db1820cf127755505d0d35a186a6827/install_psql_php.sh: line 37: cd: /Users/mattijs/src/php-7.1.23/ext/pdo_pgsql/: No such file or directory
Cannot find config.m4.
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module
/Users/mattijs/Downloads/8651341-0606545a4db1820cf127755505d0d35a186a6827/install_psql_php.sh: line 41: ./configure: No such file or directory
make: *** No targets specified and no makefile found. Stop.
cp: ./modules/pdo_pgsql.so: No such file or directory
Password:
extension=/usr/local/lib/php/extensions/pdo_pgsql.so
/Users/mattijs/Downloads/8651341-0606545a4db1820cf127755505d0d35a186a6827/install_psql_php.sh: line 53: cd: /Users/mattijs/src/php-7.1.23/ext/pgsql/: No such file or directory
Cannot find config.m4.
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module
/Users/mattijs/Downloads/8651341-0606545a4db1820cf127755505d0d35a186a6827/install_psql_php.sh: line 57: ./configure: No such file or directory
make: *** No targets specified and no makefile found. Stop.
cp: ./modules/pgsql.so: No such file or directory
extension=/usr/local/lib/php/extensions/pgsql.so
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/pdo_pgsql.so' - dlopen(/usr/local/lib/php/extensions/pdo_pgsql.so, 0x0009): dlopen(): file not found: /usr/local/lib/php/extensions/pdo_pgsql.so in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/pgsql.so' - dlopen(/usr/local/lib/php/extensions/pgsql.so, 0x0009): dlopen(): file not found: /usr/local/lib/php/extensions/pgsql.so in Unknown on line 0
pdo_pgsql
pgsql
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
Deleting expired sessions...9 completed.
[Process completed]
@mattjis since macOS High Sierra pgsql
is included in the standard PHP instalation, so you don't need this workaround anymore.
If you take a look at your log, lines 2 and 3 show that you actually have pdo_pgsql
and pgsql
installed [from here]. Check yourself by typing php -m | grep pgsql
or php --info | grep PostgreSQL
in console.
Amazing!!!