Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Localhost Setup - Macbook Pro M3

⚠️ CRITICAL WARNING ⚠️

You MUST ensure HomeBrew is NOT installed under Rosetta mode!

Failure to do so will cause critical issues with your development environment and can break your entire setup.


Base info

# Brew paths
/opt/homebrew/bin/httpd
/opt/homebrew/bin/php

ps aux | grep mongod

/usr/local/mongodb/bin/mongod --config /usr/local/etc/mongod.conf

systemLog:
  destination: file
  path: /usr/local/var/log/mongodb/mongo.log
  logAppend: true
storage:
  dbPath: /usr/local/var/mongodb

Terminal

code /Users/jeffrey/.zshrc

Apache

brew services stop httpd

brew services start httpd

brew services restart httpd

code /opt/homebrew/etc/httpd/httpd.conf

# Test config
/opt/homebrew/bin/httpd -t 

PHP

brew services stop php

brew services start php

brew services restart php

# Find your php.ini location
php --ini

code /opt/homebrew/etc/php/8.5/php.ini

PHP Modules

pecl install mongodb

# Find your php.ini location
php --ini

# Edit config and add:
extension=mongodb.so

pecl install xdebug

# Edit config and add:

extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=127.0.0.1
xdebug.client_port=9003

# Test
php -m | grep -i mongo
php -m | grep -i xdebug

Test Mongo

<?php
try {
    $client = new MongoDB\Client("mongodb://localhost:27017");
    $databases = $client->listDatabases();
    echo "Connected! Databases: ";
    print_r($databases);
} catch (Exception $e) {
    echo "Error: " . $e->getMessage();
}

MongoDB

Currently not brew installed.

## Start
/usr/local/mongodb/bin/mongod --config /usr/local/etc/mongod.conf

# Stop (from another terminal)
/usr/local/mongodb/bin/mongosh
# Then in mongosh:
db.adminCommand({ shutdown: 1 })

# Or force kill it
pkill mongod

Create a simpler alias - add to your ~/.zshrc:

alias mongo-start="/usr/local/mongodb/bin/mongod --config /usr/local/etc/mongod.conf &"
alias mongo-stop="pkill mongod"
alias mongo-shell="/usr/local/mongodb/bin/mongosh"

MySQL

brew install mysql
brew services start mysql

# Verify it's running
mysql --version
mysql -u root

Redis

brew install redis
brew services start redis

# Verify it's running
redis-cli ping
# Should return: PONG

Install PHP extensions for MySQL and Redis

# Both are already built into most PHP installations though. Check:
# For MySQLi (modern replacement)
#pecl install mysqli
# Or for PDO MySQL
#pecl install pdo_mysql
# Check installed
php -m | grep -i mysql
php -m | grep -i pdo

# Redis extension
pecl install redis

Check / Edit INI config

extension=redis.so

Restart Apache

brew services restart httpd

Verify PHP can connect:

Install Composer packages

# In your project directory
composer require mongodb/mongodb
composer require predis/predis
<?php

require 'vendor/autoload.php';

echo "=== Database Connections ===<br /><br />";

// MySQL (MySQLi)
try {
    $mysqli = new mysqli("localhost", "root", "");
    echo "✓ MySQL Connected<br />";
    $mysqli->close();
} catch (Exception $e) {
    echo "✗ MySQL Error: " . $e->getMessage() . "<br />";
}

// MongoDB
try {
    $client = new MongoDB\Client("mongodb://localhost:27017");
    $client->listDatabases();
    echo "✓ MongoDB Connected<br />";
} catch (Exception $e) {
    echo "✗ MongoDB Error: " . $e->getMessage() . "<br />";
}

// Redis (using Predis)
try {
    $redis = new Predis\Client('tcp://localhost:6379');
    $redis->ping();
    echo "✓ Redis Connected<br />";
} catch (Exception $e) {
    echo "✗ Redis Error: " . $e->getMessage() . "<br />";
}

About

My dev setup for a Mackbook Pro M3

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages