1. Установить Homebrew
Установка, обновление и быстрая проверка сервисов.
Copy
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
обновление до последней версии
выводит список запущенных служб
доп. проверка состояния brew
2. Добавить `code` в PATH (Visual Studio Code)
Visual Studio Code -> палитра команд -> Shell Command: Install `code` command in PATH.
проверка, что команда `code` доступна в терминале
3. Apache: установка и базовое управление
Установка Apache, проверка версии и команды запуска/остановки.
установить apache
проверка установленной версии apache
Copy
sudo apachectl start
sudo apachectl stop
sudo apachectl restart
запуск, остановка, перезапуск (вариант через apachectl)
Copy
brew services start httpd
brew services stop httpd
brew services restart httpd
предпочтительный вариант через brew services
Copy
/opt/homebrew/etc/httpd/httpd.conf
/opt/homebrew/etc/httpd/extra/httpd-vhosts.conf
code /etc/hosts
cd /opt/homebrew/etc/httpd/
open .
основные конфиги и быстрый переход в директорию apache
4. PHP: установка и подключение к Apache
Установка PHP (latest или конкретной версии), загрузка модуля в `httpd.conf`.
Copy
brew install php
php -v
which php
установка последней версии + проверка
Copy
brew tap shivammathur/php
brew install shivammathur/php/php@7.2
php -v
установка конкретной версии php@7.2 (если нужен старый проект)
Copy
/opt/homebrew/etc/httpd/httpd.conf
открываем основной конфиг Apache
Copy
LoadModule php7_module /opt/homebrew/opt/php@7.2/lib/httpd/modules/libphp7.so
вставить после блока LoadModule
Copy
<IfModule php7_module>
AddType application/x-httpd-php .php
DirectoryIndex index.php index.html
</IfModule>
добавить после секции LoadModule
Copy
apachectl -t
sudo apachectl restart
проверка синтаксиса конфига и перезапуск
Copy
# при необходимости:
# Listen 8080 -> Listen 80
# ServerName www.example.com:8080 -> ServerName localhost
правки, которые помогали при конфликте портов/ServerName
5. Локальный PHP-хост (hosts + VirtualHost + права)
Настройка локального домена и тестового PHP-проекта.
Copy
127.0.0.1 localhost envdhost.loc
добавить строку в hosts
Copy
/opt/homebrew/etc/httpd/extra/httpd-vhosts.conf
файл виртуальных хостов
Copy
<VirtualHost *:80>
ServerAdmin webmaster@envdhost.loc
DocumentRoot "/Users/sergeybudyakin/Desktop/my-projects/php"
ServerName envdhost.loc
<Directory "/Users/sergeybudyakin/Desktop/my-projects/php">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog "/opt/homebrew/var/log/httpd/dummy-host.example.com-error_log"
CustomLog "/opt/homebrew/var/log/httpd/dummy-host.example.com-access_log" common
</VirtualHost>
заменить тестовый VirtualHost на рабочий локальный
Copy
sudo apachectl restart
apachectl -t
Copy
# тестовый файл:
<?php phpinfo(); ?>
создать `index.php` в `/Users/sergeybudyakin/Desktop/my-projects/php`
Copy
cd /opt/homebrew/var/www
open .
если открывается `It works`, проверить содержимое директории `www`
Copy
Include /opt/homebrew/etc/httpd/extra/httpd-vhosts.conf
убедиться, что include виртуальных хостов не закомментирован
Copy
sudo chmod +x /Users/sergeybudyakin
sudo chmod +x /Users/sergeybudyakin/Desktop
sudo chmod -R 755 /Users/sergeybudyakin/Desktop/my-projects/php
права доступа, если страница не открывается
Copy
tail -f /opt/homebrew/var/log/httpd/envdhost.loc-error_log
tail -f /opt/homebrew/var/log/httpd/dummy-host.example.com-error_log
логи ошибок apache для диагностики
6. Yii2 + Composer
Установка Composer, создание Yii2 advanced, конфиг VirtualHost frontend/backend.
Copy
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer -v
установка composer и проверка версии
Copy
composer create-project yiisoft/yii2-app-advanced envdhost
выполнять в директории, где должен находиться проект
Copy
<VirtualHost *:80>
ServerName envdhost.loc
AddDefaultCharset UTF-8
Options FollowSymLinks
DirectoryIndex index.php index.html
RewriteEngine on
RewriteRule /\. - [L,F]
DocumentRoot /Users/sergeybudyakin/Desktop/my-projects/envdhost/frontend/web
<Directory /Users/sergeybudyakin/Desktop/my-projects/envdhost/frontend/web>
AllowOverride none
<IfVersion < 2.4>
Order Allow,Deny
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
</Directory>
Alias /stuff /Users/sergeybudyakin/Desktop/my-projects/envdhost/backend/web
RewriteRule ^/stuff$ /stuff/ [L,PT]
<Directory /Users/sergeybudyakin/Desktop/my-projects/envdhost/backend/web>
AllowOverride none
<IfVersion < 2.4>
Order Allow,Deny
Allow from all
</IfVersion>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
</Directory>
</VirtualHost>
готовый VirtualHost: фронт `envdhost.loc`, бэк `envdhost.loc/stuff`
Copy
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
раскомментировать в `httpd.conf`
Copy
sudo chmod -R 755 /Users/sergeybudyakin/Desktop/my-projects/envdhost/frontend/web
sudo chmod -R 755 /Users/sergeybudyakin/Desktop/my-projects/envdhost/backend/web
права доступа для web-директорий
Copy
composer install
php init
apachectl -t
brew services restart httpd
инициализация проекта и перезапуск apache
7. MySQL
Установка, запуск и базовая начальная настройка.
Copy
brew install mysql
mysql --version
Copy
brew services start mysql
brew services restart mysql
Copy
mysql_secure_installation
установка root-пароля и первичная защита
Copy
mysql -u root -p
EXIT;
вход/выход из mysql-cli (`EXIT;` в SQL синтаксисе)
8. phpMyAdmin
Установка, alias в Apache и проверка символической ссылки.
Copy
brew install phpmyadmin
Copy
Alias /phpmyadmin "/usr/local/var/www/phpmyadmin"
<Directory "/usr/local/var/www/phpmyadmin">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
вставить в конец `/opt/homebrew/etc/httpd/httpd.conf`
Copy
sudo ln -s /opt/homebrew/opt/phpmyadmin/share/phpmyadmin /opt/homebrew/var/www/phpmyadmin
ls -l /opt/homebrew/var/www/phpmyadmin
создать и проверить символическую ссылку
Copy
apachectl -t
brew services restart httpd
9. Финальная проверка
Быстрый чек, что стек поднят и роутинг работает.
Copy
http://envdhost.loc/
http://envdhost.loc/stuff
http://localhost/phpmyadmin
фронт, бэк и phpMyAdmin должны открываться
Copy
tail -f /opt/homebrew/var/log/httpd/envdhost.loc-error_log
если не открывается — сразу смотреть лог apache