How to use MAMP PHP on macOS big Sur - php

I updated the to MacOS Big Sur and then switched to MAMP Pro 6.3 from MAMP 4.x.
which php commands results the
usr/php/bin/
I updated the path using following.
vim ~/.bash_profile
export PATH=/Applications/MAMP/bin/php/php7.4.12/bin:$PATH export
PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH"
Press esc and then
:wq
source ~/.bash_profile
Now when I do which php it shows MAMP's php7.4.12 but if close and re-open the terminal, it again says
usr/php/bin
Btw, PHP 7.4.12 is set as Default version in MAMP Pro from PHP settings in MAMP Pro.
Versoins
macOS Big Sur version 11.1
MAMAP 6.3

Since you're using MAMP PRO 6.x you can enable Activate command line shortcuts for the selected PHP version, pear & pecl within the MAMP PHP settings. This will add aliases to your .profile file. If this does not work right away find the .zshrc file if you have it and add source ~/.profile; within it.

Open a terminal.
edit this file:
nano .zshrc
add these two lines:
export MAMP_PHP=/Applications/MAMP/bin/php/php7.4.12/bin
export PATH="$MAMP_PHP:$PATH"
NOTE: if you want another version, replace php7.4.12 for the version you want.
Save the changes o file and then close the terminal and reopen it.
Now run "which php" and you will see the desire version of Php.

Related

Update PHP Version of XAMPP on macOS

I’m fairly new to mac and try to learn some things by playing around.
Currently I’m trying to get an new PHP version on XAMPP running on my macbook. I've read different threads and tutorials for this (e.g. Is there way to use two PHP versions in XAMPP?) but I'm stuck. Here is what I got:
macOS Mojave with XAMPP 5.6.31-0 with PHP version 5.6.31
$ which PHP says /usr/bin/php
$ PHP -v says 7.1.19
So this means macOS has PHP7 out of the box?
So I tried to make XAMPP load PHP7 from the mac path by editing the /xamppfiles/etc/httpd.conf by:
<IfDefine JUSTTOMAKEAPXSHAPPY>
#LoadModule php4_module modules/libphp4.so
#LoadModule php5_module modules/libphp5.so
LoadModule php7_module /usr/libexec/apache2/libphp7.so
</IfDefine>
But after restarting the apache phpinfo() stays hat 5.6.31. Even if I delete the PHP 7 + 5 lines and expect PHP4 to be loaded it stays at 5.
So what am I doing wrong?
Disclaimer: I know it would be the easiest way to download a newer XAMPP version or use the build in apache from mac. But for learning reasons I would like to get this done.
The best way is install Homebrew, and then in your terminal, write this:
$ brew upgrade php // upgrade php formula
$ brew install php#7.2
$ brew link php#7.2 // create an alias to this keg-only version; see comments output during installation
$ echo 'export PATH="/usr/local/opt/php#7.2/bin:$PATH"' >> ~/.bash_profile // add the alias to your path; see comments output during installation
$ source ~/.bash_profile // reload .bash_profile to use the new settings immediately
greetings!
After a lot of research and implementation, the best one that works for me without using the homebrew command this
go to this link https://php-osx.liip.ch/#install
copy the url of the php version you want to install
paste it inside your terminal, it will require for your password, kindly provide it
After installation is complete, add the default path of php to your bash profile by doing this export PATH=/usr/local/php5/bin:$PATH you can simply copy and paste, after check your php version. i believe it will have change.
Go to your localhost PHPmyAdmin, click on "Export" and export all the databases as one.
Go to your XAMPP folder, go to the "Htdocs" folder and copy all your project files to a different folder outside the XAMPP folder.
Go to the XAMPP folder and click the uninstall icon. It will remove xampp. I noticed it leaves your database and htdocs folder intact. Steps 1 and 2 were just a precaution.
Go to and download the latest XAMPP that has the PHP version you want. You can find it at https://www.apachefriends.org/download.html
Click on the downloaded file and install it. It will complete and you will have the PHP version you want install and your Htdocs and database will be intact. In case your database and htdocs is not there, simply recopy the project files you copied and import the database you exported.

How to check php version in MacOS sierra?

I have mac os sierra machine. When I start a php project in vs code, I get the following warning
language server needs php 7, and the version found is 5.6.27.
So I used homebrew to upgrade to version 7 and confirmed it from the terminal. I am also running mamp which show version 7.
But in the terminal of vs code the php version is still 5.6.27. So I am bit confused?
I changed the value of php.validate.executablepath in settings.json in vs code from usr/bin/php to usr/local/bin/php, but still vs code terminal showing the older version (viz. 5.6.27)
This is because VM Code still checking /usr/bin/php directory which is php5
You have to configure the path to the PHP executable in the user settings file.
Follow the following steps to change it
Go to File > Preferences > User Settings > Settings.json
Change the value of php.validate.executablePath according to the installed
directory of php7.
"php.validate.executablePath":
"/Applications/MAMP/bin/php/php7.0.14/bin/php"
Relaunch VM Code
If the problem remains same, then add the path to PHP7 to your environment variables, run where php and php --version to verify. To add path in your macos sierra do the following:
Within the Terminal, run vim ~/.bash_profile
Type i and then paste the following at the top of the file:
export PATH=/user/local/bin:$PATH
Hit ESC, Type :wq, and hit Enter.
In Terminal run source ~/.bash_profile
In Terminal, type in which php again and look for the updated string.
If everything went successful, it should output the new path to MAMP PHP install.
In case it doesn't output the correct path, try closing the terminal window (exit fully) and open again, it should apply the changes (Restart in short)
To find out what version you're using, upload a php file to your server containing the following code...
<?php
phpinfo();
?>
It will tell you at the top of the page.

OSX El Capitan Permanently change PHP version

I have installed PHP 7.0 from here http://php-osx.liip.ch/ and followed instructions to add the new php to my $PATH but in a new terminal window php -v still shows the old default version.
The new version is used if I source .profile or source .bash_profile (tried both)
I have even added the new PHP path to my .bashrc but still no luck.
How can I get my mac to always use the new version of PHP by default?
Note:
Symink not an option as I'm on El Capitan.
~/.bashrc:
export PATH=/usr/local/php5/bin:$PATH
export PATH=/usr/local/bin:$PATH
export PATH=$HOME/.composer/vendor/bin:$PATH
You should use ~/.bash_profile instead of ~/.bashrc file on Mac.
If source ~/.bash_profile can solve the problem, that means the file is not sourced when you open a new terminal. If you are using zsh, you should add source ~/.bash_profile to your ~/.zshrc file.
However, brew is a better option.

Mongodb and MAMP

I am using MAMP and would like to use mongo with PHP. I am stuck because the version of MAMP I'm using is the latest version I can find, and it's running PHP 5.2.11. The only Mongo PHP install I can find for OSX is for PHP 5.3.
Is there any way to get mongo working with PHP using MAMP?
For MAMP 2.1.2 and PHP 5.4.10
Download MongoDB php driver .
copy mongo.so to
/Applications/MAMP/bin/php/php5.4.10/lib/php/extensions/no-debug-non-zts-20100525/
and using temrinal
cd /Applications/MAMP/bin/php/php5.4.10/lib/php/extensions/no-debug-non-zts-20100525/ && wget https://github.com/downloads/stennie/mongo-php-driver/mongo.so
open
/Applications/MAMP/bin/php/php5.4.10/conf/php.ini
Find ; Extensions
add
extension=mongo.so
Restart MAMP.
Above steps will install MongoDB driver 1.2.10.
To install latest Mongodb driver using PECL
install autoconf using homebrew or Mac Ports
brew install autoconf
Download php 5.4.10 source from php.net.
rename uncompressed php source folder from php-5.4.10 to php and paste it in this folder
/Applications/MAMP/bin/php/php5.4.10/include/
using the terminal open php folder and run ./configure
cd /Applications/MAMP/bin/php/php5.4.10/include/php/ && ./configure
Add MAMP bin to your ~/.bash_profile
echo "export PATH=/Applications/MAMP/bin/php/php5.4.10/bin:$PATH" >> ~/.bash_profile
source ~/.bash_profile
install latest mongo
pecl install mongo
restart MAMP server :).
Here's a tutorial how to do it: http://www.davidgolding.net/mongodb/installing-mongodb-on-mamp-1-9-5.html
Post was removed so here's the tutorial:
Appsolute launched MAMP version 1.9.5 today, so I thought it’d be a great time to add MongoDB to it and improve my NoSQL skills.
Prepare MAMP for MongoDB files
Create a new folder at Applications/MAMP/db/mongo with three additional subfolders named bin, data, and tmp. Provide these folders with chmod 0755 access permissions. These folders will be the main runtime location for Mongo once MAMP gets it running.
Download MongoDB
Grab the latest Mac OS install package of MongoDB. My server setup called for OS X 64-bit, version 1.6.5. It’ll have a directory named bin. Drop the files from this folder into the /Applications/MAMP/db/mongo/bin folder you already created.
Download Mongo Driver for PHP
I’m running PHP 5.3 (why use MongoDB with any earlier version of PHP?), so I’ll need the mongo.so extension to get PHP and Mongo working together. This is available at the MongoDB GitHub repository, under the PHP 5.3 for Mac binary. After unpacking the downloaded file, place the mongo.so extension file in the /Applications/MAMP/bin/php5.3/lib/php/extensions folder.
Update: An alternative is to place the mongo.so file in the /Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626 folder and avoid having to edit the php.ini file. It appears that MAMP 1.9.5 already has the extension=mongo.so line in the extensions block of the php.ini file, even though version 1.9.5 doesn’t come bundled with Mongo.
4. Create Startup Routines for MAMP
Lastly, you’ll need to create the startup routines so that MAMP will launch Mongo along with MySQL and Apache. Create a new file at /Applications/MAMP/bin/startMongo.sh and place in it the following code:
# /bin/sh
/Applications/MAMP/db/mongo/bin/mongod --dbpath /Applications/MAMP/db/mongo/data --logpath /Applications/MAMP/db/mongo/mongodb.log --pidfilepath /Applications/MAMP/db/mongo/tmp/mongo.pid --fork --logappend
When called, this script will launch Mongo using the MAMP-relative paths rather than Mongo’s system defaults.
Create another file at /Applications/MAMP/bin/stopMongo.sh and place the shutdown method:
# /bin/sh
/bin/kill `cat /Applications/MAMP/db/mongo/tmp/mongo.pid`
This works like the previous script, except it kills the mongo.pid process, effectively shutting down Mongo.
To have MAMP automatically call these Mongo startup scripts, open the /Applications/MAMP/bin/start.sh and /Applications/MAMP/bin/stop.sh files, and insert the following lines above the startMysql.sh lines, respectively:
1
/Applications/MAMP/bin/startMongo.sh
1
/Applications/MAMP/bin/stopMongo.sh
Now MAMP will automatically launch Mongo upon startup.
The only thing left to do is tell PHP to run the mongo.so extension. If you’re running MAMP Pro, edit the php.ini file by selecting File > Edit Template > PHP 5.3 php.ini, otherwise you’ll need to lookup the path the php.ini file from the MAMP startup screen, under “phpInfo” and “Loaded Configuration File.”
Insert the following line in the php.ini file/template, save the file, then restart MAMP.
1
extension="/Applications/MAMP/bin/php5.3/lib/php/extensions/mongo.so"
Mongo should now run in the background on MAMP, which you can connect with from PHP using the main connection routines listed on the PHP site. Welcome to NoSQL on MAMP!
MAMP is now at version 2.2, which comes with PHP v 5.5.3. I managed to get Mongodb working had to jump through a few hoops to get there.
Start with a clean install of MAMP 2.2, make sure that's working.
1. I made this the system version of PHP, (not sure if necessary at this stage).
Find out the default version of php you are using, with the terminal command
$ which php
/usr/bin/php
Then back this up
$ sudo mv /usr/bin/php /usr/bin/php.bak
Then create a symlink to the MAMP latest version of php
$ sudo ln -s /Applications/MAMP/bin/php/php5.5.3/bin/php /usr/bin/php
Check this has been updated
$ which php
/Applications/MAMP/bin/php/php5.5.3/bin/php
2. Installing Mongo
$ cd /Applications/MAMP/db
$ curl http://downloads.mongodb.org/osx/mongodb-osx-x86_64-2.4.6.tgz > mongodb.tgz
$ tar -zxvf mongodb.tgz
$ rm mongodb.tgz
$ mv mongodb* mongo
$ mkdir mongo/data/db
Test to make sure mongo is working
$ ./mongo/bin/mongod --dbpath /Applications/MAMP/db/mongo/data/db
Should output some code, ending in 'waiting for connections on port 27017' press Ctrl + C to quit for now.
3. Now we can create a script to start/stop mongod automatically from the MAMP GUI. This inspiration came from a previous answer, by Alexandru Rada, but didn't quite work how he explained - I think this is to do with being a newer MAMP version.
In /Applications/MAMP/bin create a file called startMongo.sh and insert the following
# /bin/sh
/Applications/MAMP/db/mongo/bin/mongod --dbpath /Applications/MAMP/db/mongo/data/db --logpath /Applications/MAMP/logs/mongodb.log --pidfilepath /Applications/MAMP/tmp/mongo/mongo.pid --fork --logappend
I also created the mongo tmp folder at /Applications/MAMP/tmp/mongo
In the same bin directory create a file called stopMongo.sh and insert the following:
# /bin/sh
/bin/kill `cat /Applications/MAMP/tmp/mongo/mongo.pid`
Make these files executable
$ chmod 775 /Applications/MAMP/bin/startMongo.sh /Applications/MAMP/bin/stopMongo.sh
Now update the startApache.sh and stopApache.sh scripts to include our new files respectively.
Use the Activity Monitor in /Applications/Utilities and search for mongod. When you now start MAMP you should see the process mongod is started. When you stop or quit MAMP you should see this process is automatically killed.
4. We still need to install the mongo-php driver, which is also a pain. To do this I added the MAMP bin directory to my bash $PATH variable. To do this I had to edit the hidden file ~/.profile - but be aware that your $PATH might be loaded from somewhere else.
export PATH=$PATH:/Applications/MAMP/bin/php/php5.5.3/bin:/Applications/MAMP/db/mongo/bin
Note that each element is separated by a :. Quit terminal and re-open, then $ echo $PATH to check your new directories have been added to the path. You could also try $ which pecl or $ which mongod.
We still need some extras from PHP php.net download the same php stable version and unzip it. Create the folder 'include' at /Applications/MAMP/bin/php/php5.5.3/include . Drag the unzipped stable version of php to the include folder, and rename it to just 'php'.
$ cd /Applications/MAMP/bin/php/php5.5.3/include/php
$ ./configure
Now at last, we can hopefully run
$ sudo pecl install mongo
5. Now we just need to update our php config file to add the mongo.so extension.
Open /Applications/MAMP/bin/php/php5.5.3/conf/php.ini in a text editor, under the 'extensions' section, add in
extension=mongo.so
Quit and re-open MAMP!
Mac OS X 10.6 Snow Leopard (with the newest updates) has PHP 5.3 installed along with Apache.
You can enable the installed Apache in System Preferences, Sharing, Web Sharing (there is a help icon (?) which shows you details on using the system's web server).
See also this StackOverflow question:
Easiest way to activate PHP and MySQL on Mac OS 10.6 (Snow Leopard)?
Here's the way I did it and it was fairly simple.
First, read what Mongo says # http://www.mongodb.org/display/DOCS/PHP+Language+Center
When you run sudo pecl install mongo it's going to install it for the standard OSX PHP installation to use, so if for some reason you're using the built-in Apache installation.
Like you, I like using MAMP. I didn't want to go through figuring how to download Mongo into MAMP, so I just creating a symbolic link in the MAMP PHP Extensions folder and put the extension line in the MAMP php.ini. Restarted MAMP Apache and everything worked beautifully!
A couple things to note, after installing Mongo, note the extensions folder it installed it into then check MAMP php.ini to see where it has its extensions set to be. You'll notice the ending is very similar.
For MAMP PRO 2.0.5
You may compile your own mongo.so (http://m-schmidt.eu/2011/11/06/develop-mongodb-web-apps-with-mamp-under-mac-os-x/) or download compiled (http://www.davidgolding.net/mongodb/installing-mongodb-on-mamp-1-9-5.html).
I'd like compile.
After steps mongo.so don't include to php configuration, because in MAMP PRO php.ini placed in
/Applications/MAMP PRO/MAMP PRO.app/Contents/Resources
I using php5.3.6.ini file for my configuration.

how to install apc for php on mac osx mamp?

I am running a mac with mamp and mamp pro. How do I check if I have APC enabled and if its not enabled or not installed how do I install it?
I am trying to get the APC upload loader to work that I found online and it gets stuck on NAN% when im uploading.
This is a link: http://www.haughin.com/2007/10/23/php-upload-progress-with-php-52-apc/
There's nothing to download or install. MAMP 1.9 includes APC already. To enable it, open Preferences/PHP. Uncheck 'Zend Optimizer' (because it's not compatible with APC), then choose APC from the 'Cache' drop-down box, submit the change with 'OK'.
In MAMP 2.1 you can find the APC setting in the Main Window under Server > PHP > Cache:
In MAMP 3.0 APC is found on the PHP tab:
For command-line support add also the following lines to your MAMP php.ini:
[apc]
extension=apcu.so
apc.enable_cli=1
Visit the phpinfo page that you can get to from inside the MAMP start page. That lists all of the loaded modules.
Here are the install steps for PHP-APC:
link text
You may be able to run pear or pecl inside MAMP to do the install easily.
Do it manually:
1- nano /Applications/MAMP/bin/php/php5.6.2/conf/php.ini
NOTE: "php5.6.2" on the path should be changed to the php version
you'll be using.
2- Look for the section:
[OPcache]
;zend_extension="/Applications/MAMP/bin/php/php5.6.2/lib/php/extensions/no-debug-non-zts-20131226/opcache.so"
3- Remove the colon (;) so that section reads:
[OPcache]
zend_extension="/Applications/MAMP/bin/php/php5.6.2/lib/php/extensions/no-debug-non-zts-20131226/opcache.so"
4- Save (Ctrl-O) + Enter and quit (Ctrl-X)
Enjoy.
When running PHP scripts from the Console (CLI) you will need to
specify the PHP binary you want to use since by default php will be
the default PHP included with OS X, not the one installed with MAMP.
So instead of:
user$ php script.php
try:
user$ /Applications/MAMP/bin/php/php5.6.2/bin/php script.php

Categories