Last active
November 4, 2016 21:59
-
-
Save andrewstobbe/d5392fadcf131199d7f451db430b4b94 to your computer and use it in GitHub Desktop.
Migrate LAMP via brew Yosemite to Sierra
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I have already removed existing versions... then. | |
brew doctor | |
brew tap homebrew/dupes | |
brew tap homebrew/versions | |
brew tap homebrew/php | |
brew tap homebrew/apache | |
brew update | |
sudo apachectl stop | |
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null | |
brew reinstall httpd24 --with-privileged-ports --with-http2 | |
sudo cp -v /usr/local/Cellar/httpd24/2.4.23_2/homebrew.mxcl.httpd24.plist /Library/LaunchDaemons | |
sudo chown -v root:wheel /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist | |
sudo chmod -v 644 /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist | |
sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist | |
ps -aef | grep httpd | |
sudo apachectl -k restart | |
tail -f /usr/local/var/log/apache2/error_log | |
sudo apachectl start | |
sudo apachectl stop | |
sudo apachectl -k restart | |
DocumentRoot /Users/Andrew/Sites/active-projects | |
AllowOverride All | |
Uncomment rewrite_module | |
User Andrew | |
Group staff | |
ServerAdmin andrew.stobbe@gmail.com | |
echo "<h1>Active Projects Web Root</h1>" > ~/Sites/active-projects/index.html | |
brew reinstall php55 --with-apache | |
brew reinstall php55-opcache | |
brew reinstall php55-apcu | |
brew reinstall php55-mcrypt | |
brew reinstall php55-imagick | |
brew reinstall php55-pdo-dblib | |
brew reinstall php55-yaml | |
brew reinstall php55-xdebug | |
Add to httpd.conf so we can test the first php install. | |
--------------------------------- | |
<IfModule dir_module> | |
DirectoryIndex index.php index.html | |
</IfModule> | |
<FilesMatch \.php$> | |
SetHandler application/x-httpd-php | |
</FilesMatch> | |
sudo apachectl -k restart | |
brew unlink php55 | |
brew reinstall php56 --with-apache | |
brew reinstall php56-opcache | |
brew reinstall php56-apcu | |
brew reinstall php56-mcrypt | |
brew reinstall php56-imagick | |
brew reinstall php56-pdo-dblib | |
brew reinstall php56-yaml | |
brew reinstall php56-xdebug | |
brew unlink php56 | |
brew reinstall php70 --with-apache | |
brew reinstall php70-opcache | |
brew reinstall php70-apcu | |
brew reinstall php70-mcrypt | |
brew reinstall php70-imagick | |
brew reinstall php70-pdo-dblib | |
brew reinstall php70-yaml | |
brew reinstall php70-xdebug | |
brew unlink php70 | |
php71 ended up needing special attention before re-install. | |
------------------------------- | |
brew uninstall --force php71 | |
brew cleanup --force -s php71 | |
brew prune | |
sudo rm -fr /usr/local/opt/php71 | |
brew reinstall php71 --with-apache | |
brew reinstall php71-opcache | |
brew reinstall php71-apcu | |
brew reinstall php71-mcrypt | |
brew reinstall php71-imagick | |
brew reinstall php71-pdo-dblib | |
brew reinstall php71-yaml | |
brew reinstall php71-xdebug | |
brew unlink php71 | |
brew link php56 | |
PHP Paths | |
----------------------------- | |
/usr/local/etc/php/5.5/php.ini | |
/usr/local/etc/php/5.6/php.ini | |
/usr/local/etc/php/7.0/php.ini | |
/usr/local/etc/php/7.1/php.ini | |
Modify the paths as follows: | |
---------------------------- | |
LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so | |
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so | |
LoadModule php7_module /usr/local/opt/php70/libexec/apache2/libphp7.so | |
LoadModule php7_module /usr/local/opt/php71/libexec/apache2/libphp7.so | |
We can only have one module processing PHP at a time, so for now, comment out all but the php56 entry: | |
---------------------------- | |
#LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so | |
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so | |
#LoadModule php7_module /usr/local/opt/php70/libexec/apache2/libphp7.so | |
#LoadModule php7_module /usr/local/opt/php71/libexec/apache2/libphp7.so | |
Verify php install one more time. | |
Install php switcher. | |
------------------------ | |
curl -L https://gist.github.com/w00fz/142b6b19750ea6979137b963df959d11/raw > /usr/local/bin/sphp | |
chmod +x /usr/local/bin/sphp | |
It's quite IMPORTANT at this stage to fully stop your Apache sever, and start it again. Do not just restart it! | |
-------------------------- | |
sudo apachectl -k stop | |
sudo apachectl start | |
# Brew PHP LoadModule for `sphp` switcher | |
LoadModule php5_module /usr/local/lib/libphp5.so | |
#LoadModule php7_module /usr/local/lib/libphp7.so | |
sphp71 | |
brew reinstall --build-from-source php71-intl | |
brew update | |
brew upgrade | |
sphp55 | |
brew reinstall --build-from-source php55-intl | |
brew update | |
brew upgrade | |
sphp56 | |
brew reinstall --build-from-source php56-intl | |
brew update | |
brew upgrade | |
sphp70 | |
brew reinstall --build-from-source php70-intl | |
brew update | |
brew upgrade | |
brew reinstall mariadb | |
mysql_install_db | |
mysql.server start | |
mysql.server stop | |
Apache already comes preconfigured to support this behavior but it is not enabled. First you will need to uncomment the following lines in your /usr/local/etc/apache2/2.4/httpd.conf file: | |
LoadModule vhost_alias_module libexec/mod_vhost_alias.so | |
and: | |
# Virtual hosts | |
Include /usr/local/etc/apache2/2.4/extra/httpd-vhosts.conf | |
<VirtualHost *:80> | |
DocumentRoot "/Users/Andrew/Sites/active-projects" | |
ServerName localhost | |
</VirtualHost> | |
<VirtualHost *:80> | |
DocumentRoot "/Users/Andrew/Sites/active-projects/stand-by.jjlprocess.com" | |
ServerName stand-by.dev | |
</VirtualHost> | |
brew reinstall dnsmasq | |
echo 'address=/.dev/127.0.0.1' > /usr/local/etc/dnsmasq.conf | |
sudo brew services start dnsmasq | |
sudo mkdir -v /etc/resolver | |
sudo bash -c 'echo "nameserver 127.0.0.1" > /etc/resolver/dev' | |
ping bogus.dev | |
openssl genrsa -des3 -passout pass:x -out local.dev.pass.key 2048 | |
openssl rsa -passin pass:x -in local.dev.pass.key -out local.dev.key | |
rm local.dev.pass.key | |
openssl req -new -key local.dev.key -out local.dev.csr | |
openssl x509 -req -days 365 -in local.dev.csr -signkey local.dev.key -out local.dev.crt |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment