
Подготовката на дев машина за работа с apache/php/mysql изисква малко модификации. Първо започваме с инсталиране на brew - пакетен мениджър.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
в хода на инсталация може да се наложи да се инсталира xcode-select
- ще стане автоматично.
Проверете дали е инсталиран brew:
brew --version
Homebrew 2.4.2
Homebrew/homebrew-core (git revision 29f3d; last commit 2020-06-30)
Инсталирайте iTerm2 - богат на възможности и настройки заметител на Terminal.
Инсталирайте oh-my-zsh: https://github.com/ohmyzsh/ohmyzsh
Проверете и допълнете конфигурацията му в .zshrc
Инсталирайте следните нужни пакети:
brew install openldap libiconv
Понеже Каталина идва с инсталиран Апах - трябва да го спрем и да му кажем да не се стартира със ситемата:
sudo apachectl stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
Сега можем да пристъпим към инсталиране на локална версия на апаха, както и на php и нужните за Laravel модули:
brew install httpd php@7.4
По подразбиране апаха се стартира на портове 8080 и 8443 - така не са нужни привилегии за отваряне на нови портове. Конфигурацията му може да намерите в /usr/local/etc/httpd/httpd.conf Лично аз си правя следните папки, чрез които лесно и без права ще мога да добавям/махам виртуални хостове и да чета логовете без да се заравям надълбоко:
mkdir -p Sites/{vhosts.d,logs,mac}
Правим следните промени в /usr/local/etc/httpd/httpd.conf
:
Listen 80
...
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
LoadModule php7_module /usr/local/opt/php@7.4/lib/httpd/modules/libphp7.so
...
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
<IfModule unixd_module>
User your_user
Group staff
</IfModule>
ServerAdmin your_user@laravel-vue.eu
#помнете да добавите съответният запис в /etc/hosts
ServerName mac.your_user
<Directory />
AllowOverride none
Require all denied
</Directory>
DocumentRoot "/Users/your_user/Sites/mac"
<Directory "/Users/your_user/Sites/mac">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
<Files ".ht*">
Require all denied
</Files>
ErrorLog "/Users/your_user/Sites/logs/00.error_log"
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "/Users/your_user/Sites/logs/00.access_log" common
</IfModule>
<IfModule headers_module>
RequestHeader unset Proxy early
</IfModule>
<IfModule mime_module>
TypesConfig /usr/local/etc/httpd/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
</IfModule>
<IfModule proxy_html_module>
Include /usr/local/etc/httpd/extra/proxy-html.conf
</IfModule>
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
# това ще го разкоментираме когато ще добавим виртуални хостове
#Include /Users/your_user/Sites/vhosts.d/*.conf
Създаваме файл, който да тестваме конфигурацията на php:
echo "<?php phpinfo();" > ~/Sites/mac/index.php
Добавяме mac.your_user
в /etc/hosts на реда за 127.0.0.1
За да влезе промяната на хостовете в сила изпълняваме:
sudo dscacheutil -flushcache
иначе ще трябва да рестартирате. Инсталираме и composer, node и добавяме инсталатора на Ларавел:
brew install composer nodejs
composer global require laravel/installer
Добавяме към ~/.zshrc
:
export PATH="$HOME/.composer/vendor/bin:$PATH"
Вече сме готови за първият проект на Ларавел! Аз си правя проектите на Ларавел в ~/proj/php
затова създаваме директорията и в нея създаваме проекта laravel-fresh:
mkdir -p ~/proj/php
cd ~/proj/php
laravel new laravel-fresh
Сега трябва да добавим нашият виртуален хост laravel-fresh
- първо добавяме хост записа и рефрешваме dns кеша:
sudo sh -c 'echo "127.0.0.1 laravel-fresh" >> /etc/hosts'
sudo dscacheutil -flushcache
Добавяме конфигурация за този виртуален хост, създавайки файла ~/Sites/vhosts.d/00.laravel-fresh.conf
:
<VirtualHost laravel-fresh:80>
ServerAdmin me@laravel-vue.eu
DocumentRoot /Users/your_user/proj/php/laravel-fresh/public
ServerName laravel-fresh
setenvIf Request_URI ".(jpg|jpeg|png|css|gif|ico|js)$" dontlog
ErrorLog "/Users/your_user/Sites/logs/01.laravel-fresh.err.log"
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
CustomLog "/Users/your_user/Sites/logs/01.laravel-fresh.acc.log" combined env=!dontlog
<Directory /Users/your_user/proj/php/laravel-fresh/public>
Options +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Махаме коментара от последната линия в /usr/local/etc/httpd/httpd.conf
:
Include /Users/your_user/Sites/vhosts.d/*.conf
Редактираме /usr/local/etc/php/7.4/php.ini
за да добавим timezone:
date.timezone = Europe/Sofia
Рестартираме апаха:
brew services restart httpd
И проверяваме двата сайта дали работят http://laravel-fresh
http://mac.your_user
.
Инсталацията на mariadb:
brew install mariadb
brew services start mariadb
# логваме се, за да сетнем рут парола, тъй като по подразбиране рут достъпа е по сокет
mysql
MariaDB [(none)]> ALTER USER root@localhost IDENTIFIED VIA mysql_native_password USING PASSWORD("myStrongPa$$word");
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit
# сега вече може да изпълните
mysql_secure_installation
Добра опция за работа с бази данни е Sequel Ace .
Може да го инсталирате отново чрез brew
:
brew install cask sequel-ace