Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124


Коли Apple випустила MacBook на чіпах M1 та M2, багато розробників зіткнулися з проблемами сумісності. Архітектура ARM замість x86 означала, що деякі інструменти треба було адаптувати. Встановлення CodeIgniter 4 на macOS M1/M2 має свої нюанси, особливо якщо раніше працював на Intel Mac. Пройшов цей шлях особисто і готовий поділитися досвідом, щоб заощадити твій час на розібрання з можливими проблемами.
Перш ніж встановлювати CodeIgniter 4, треба підготувати macOS. Це не просто запустити інсталятор — потрібно налаштувати PHP, Composer та веб-сервер. На щастя, macOS вже має вбудований PHP, але його версія може бути застарілою. Для CodeIgniter 4 потрібен PHP 7.4 або новіший, а краще одразу встановити PHP 8.1 чи 8.2.
Перший крок — встановлення Homebrew, якщо його ще немає. Це пакетний менеджер для macOS, який спрощує встановлення dev-інструментів. Відкриваєш Terminal та вводиш:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Code language: JavaScript (javascript)На M1/M2 Homebrew встановлюється в /opt/homebrew замість традиційного /usr/local. Це важливо пам’ятати, бо інколи шляхи в конфігураціях треба коригувати. Після встановлення Homebrew додай його до PATH, якщо інсталятор не зробив це автоматично:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"Code language: PHP (php)Перевіряємо, що Homebrew працює:
brew --versionЯкщо бачиш версію Homebrew — все ок, можна рухатися далі.
macOS Sonoma та новіші версії постачаються з PHP 8.1, але він може бути не повністю налаштований або відсутній у старіших версіях системи. Найкращий варіант — встановити PHP через Homebrew, це дає більше контролю та простіше оновлюється.
# Встановлення PHP 8.2 (рекомендовано для CodeIgniter 4)
brew install php@8.2
# Додаємо PHP до PATH
echo 'export PATH="/opt/homebrew/opt/php@8.2/bin:$PATH"' >> ~/.zprofile
source ~/.zprofile
# Перевіряємо версію
php -vCode language: PHP (php)Маєш побачити щось на кшталт PHP 8.2.x. Якщо виводить старішу версію, перезапусти Terminal або перевір PATH. Важливий момент: CodeIgniter 4 вимагає певні PHP-розширення. Перевіримо, що все необхідне встановлено:
php -m | grep -E 'intl|mbstring|json|xml'Code language: JavaScript (javascript)Якщо якогось розширення немає, встанови його. Зазвичай базова установка Homebrew PHP вже містить все необхідне, але на всяк випадок:
# Якщо потрібно встановити додаткові розширення
brew install php@8.2-intl php@8.2-mbstringCode language: CSS (css)Стандартний php.ini може мати обмеження, які заважатимуть комфортній розробці. Знайди файл конфігурації:
php --iniВідкриваєш цей файл у текстовому редакторі (я використовую VS Code: code /opt/homebrew/etc/php/8.2/php.ini) та змінюєш кілька параметрів:
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
# Для розробки корисно ввімкнути відображення помилок
display_errors = On
error_reporting = E_ALLCode language: PHP (php)Після змін перезапусти PHP-FPM, якщо використовуєш його, або просто запам’ятай, що зміни вступлять у силу при наступному запуску вбудованого сервера.


Composer — це dependency manager для PHP, без якого сучасна розробка неможлива. CodeIgniter 4 рекомендує встановлення саме через Composer, хоча є варіант ручного завантаження. Але давай робити правильно:
# Встановлення Composer через Homebrew (найпростіше)
brew install composer
# Або вручну (якщо хочеш більше контролю)
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
# Перевірка
composer --versionCode language: PHP (php)Я зазвичай використовую Homebrew-версію, бо вона автоматично оновлюється разом з іншими пакетами. Але якщо потрібна специфічна версія Composer, краще вручну.
Тепер найцікавіше — власне встановлення CodeIgniter 4. Переходимо в директорію, де зберігаються проєкти (я тримаю все в ~/Sites):
cd ~/Sites
# Створюємо новий проєкт CodeIgniter 4
composer create-project codeigniter4/appstarter myapp
# Переходимо в директорію проєкту
cd myappCode language: PHP (php)Composer завантажить усі залежності та створить структуру проєкту. Це займає 1-2 хвилини залежно від швидкості інтернету. На M1/M2 все працює нативно без Rosetta 2, бо PHP та Composer вже мають ARM-версії.
Після встановлення перевіримо, що все на місці:
ls -la
# Маєш побачити структуру:
# app/
# public/
# writable/
# tests/
# vendor/
# .env
# sparkCode language: PHP (php)CodeIgniter 4 використовує .env файл для конфігурації середовища. Копіюємо шаблон та редагуємо:
cp env .env
# Відкриваємо в редакторі
code .env # або nano .env, vim .envCode language: CSS (css)Мінімальні налаштування для початку:
# Змінюємо оточення на development
CI_ENVIRONMENT = development
# Базовий URL (для локальної розробки)
app.baseURL = 'http://localhost:8080/'
# Часова зона
app.timezone = 'Europe/Kiev'
# Налаштування бази даних (якщо потрібно)
database.default.hostname = localhost
database.default.database = myapp_db
database.default.username = root
database.default.password =
database.default.DBDriver = MySQLiCode language: PHP (php)Зверни увагу на CI_ENVIRONMENT = development — це важливо для відображення помилок під час розробки. У production обов’язково змінюй на production.
CodeIgniter 4 має вбудований сервер розробки через Spark CLI. Це найпростіший спосіб запустити проєкт локально:
# Запуск на порті 8080 (за замовчуванням)
php spark serve
# Або на іншому порті
php spark serve --port=3000Code language: PHP (php)Відкриваєш браузер і йдеш на http://localhost:8080. Маєш побачити привітальну сторінку CodeIgniter 4 з червоно-білим дизайном. Якщо бачиш помилки, перевір PHP-розширення та права на директорію writable/:
# Надаємо права на запис
chmod -R 777 writable/Code language: PHP (php)Хоча 777 не найбезпечніший варіант для production, для локальної розробки це нормально. Якщо працюєш у команді або плануєш деплоїти, краще налаштувати коректні права через user groups.
Вбудований сервер зручний, але інколи потрібно щось більш потужне. Два популярних варіанти для macOS: MAMP та Laravel Valet. MAMP — це графічний інтерфейс з Apache/Nginx, MySQL та phpMyAdmin. Valet — це мінімалістичне рішення від Laravel, яке працює на Nginx.
Особисто я використовую Valet для всіх PHP-проєктів, не тільки Laravel. Встановлення просте:
# Встановлення Laravel Valet
composer global require laravel/valet
# Додаємо composer global bin до PATH (якщо ще не додано)
echo 'export PATH="$HOME/.composer/vendor/bin:$PATH"' >> ~/.zprofile
source ~/.zprofile
# Встановлюємо Valet
valet install
# Переходимо в директорію з проєктами
cd ~/Sites
# "Паркуємо" директорію
valet parkCode language: PHP (php)Тепер кожна директорія в ~/Sites автоматично доступна за адресою http://назва-директорії.test. Наприклад, проєкт myapp буде доступний на http://myapp.test. Valet працює бездоганно на M1/M2 і споживає мінімум ресурсів. Єдиний мінус — він для macOS та Linux, на Windows не працює.
Якщо проєкт потребує бази даних, встанови MySQL або MariaDB через Homebrew:
# MySQL
brew install mysql
brew services start mysql
# Або MariaDB (легший і сумісніший з M1/M2)
brew install mariadb
brew services start mariadb
# Безпечне налаштування
mysql_secure_installationCode language: PHP (php)Створюємо базу даних для проєкту:
mysql -u root -p
CREATE DATABASE myapp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON myapp_db.* TO 'root'@'localhost';
FLUSH PRIVILEGES;
EXIT;Code language: PHP (php)Тепер CodeIgniter 4 зможе підключитися до бази, якщо правильно налаштував .env файл раніше. Можеш перевірити з’єднання через міграції:
php spark migrateЗа час роботи з M1 Mac я зіткнувся з кількома проблемами. Перша — конфлікт між системним PHP та Homebrew PHP. Завжди перевіряй, який PHP використовується: which php. Якщо бачиш /usr/bin/php замість /opt/homebrew/bin/php, значить PATH налаштований неправильно.
Друга проблема — права доступу до writable/ директорії. CodeIgniter зберігає там кеш, логи та сесії. Якщо бачиш помилки про неможливість запису, використай chmod або перевір, чи не заблокований файловий доступ через macOS System Settings → Privacy & Security.
Третя проблема — помилки з intl розширенням. На деяких старих macOS воно може бути не активоване. Перевір через php -m | grep intl. Якщо немає, встанови через Homebrew або активуй у php.ini, прибравши ; перед extension=intl.
M1/M2 чіпи дуже потужні, але щоб CodeIgniter використовував їх на повну, варто увімкнути OPcache. Це PHP-розширення кешує скомпільований bytecode, прискорюючи виконання. У php.ini додай або розкоментуй:
[opcache]
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=2
opcache.fast_shutdown=1Для розробки opcache.revalidate_freq=2 означає, що кеш перевірятиметься кожні 2 секунди. У production можна збільшити до 60 або більше. Після змін перезапусти PHP або сервер.
Також CodeIgniter 4 підтримує різні драйвери кешування: файли, Redis, Memcached. Для локальної розробки достатньо файлового кешу, але якщо плануєш масштабувати проєкт, розглянь Redis:
brew install redis
brew services start redisУ app/Config/Cache.php зміни $handler на 'redis' і налаштуй параметри підключення.
Щоб комфортно працювати з CodeIgniter 4 на M1/M2, рекомендую кілька інструментів. VS Code з розширеннями: PHP Tools, Intelephense для автодоповнення, та GitLens для роботи з Git. TablePlus або Sequel Ace для роботи з базою даних — обидва нативні для Apple Silicon і працюють блискавично.
Для API-тестування Postman або Insomnia — обидва мають ARM-версії. Для моніторингу логів tail -f writable/logs/*.log у Terminal або встанови LogTail. Для дебагу CodeIgniter має вбудований Debug Toolbar, який показує запити до БД, час виконання та інші метрики — дуже зручно під час розробки.
Встановлення CodeIgniter 4 на macOS з Apple Silicon — це процес, який займає 20-30 хвилин при першому запуску. Основні кроки: Homebrew, PHP 8.2, Composer, створення проєкту через composer create-project, налаштування .env та запуск через php spark serve. Якщо потрібна база даних — MySQL через Homebrew та кілька SQL-команд.
M1/M2 Mac працюють з PHP та CodeIgniter нативно без емуляції, що дає чудову продуктивність. Я помітив, що вбудований сервер запускається швидше, а Composer встановлює залежності у 2-3 рази швидше порівняно зі старим Intel MacBook Pro. Якщо ще вагаєшся щодо переходу на Apple Silicon — не вагайся, для PHP-розробки це чудова платформа.
Найголовніше — правильно налаштувати PATH для Homebrew та перевірити, що використовується правильна версія PHP. Решта — стандартний процес, який не відрізняється від Intel Mac чи Linux. CodeIgniter 4 легкий, швидкий і чудово працює на будь-якій платформі. Успіхів у розробці!