#!/bin/bash
# version 1.2 for MacOS 10.10
# created by Pavel Belyaev 2014
if [ `id -u` -gt 0 ]; then
echo "Запустите скрипт от имени суперпользователя, для этого введите sudo имя_скрипта";
exit;
fi
echo "
#######################################################
# данный скрипт развернет LAMP сервер на вашем MacOS! #
# автор скрипта не отвечает ни за что, данный скрипт #
# работает на MacOS 10.10 и только на ненастроенной #
# системе, если вы модифицировали конфиги Apache или #
# PHP, то для вас этот скрипт неактуален!!!! #
#######################################################
"
read -s -p "Для продолжения нажми любую кнопку, для завершения нажми ctrl+c" -n 1
echo ;
Acnf='/etc/apache2/httpd.conf';
My_tmp=`pwd`'/tmp_install_lamp'
echo "Временная папка: "$My_tmp
mkdir $My_tmp
cd $My_tmp
echo "
#########################
# Устанавливаем MYSQL! ##
#########################
"
curl -L -O http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16-osx10.7-x86.dmg
if [ ! -f ./mysql*dmg ]; then echo "Ошибка загрузки файла mysql!!!"; exit; fi
mkdir mysql
hdiutil attach -mountpoint ./mysql/ mysql*dmg
find ./mysql -name "*.pkg" -exec installer -pkg {} -target / \;
cp -r ./mysql/MySQL.prefPane/ /Library/PreferencePanes/MySQL.prefPane
killall System\ Preferences
hdiutil detach ./mysql
rm -r ./mysql
rm mysql*dmg
export PATH="/usr/local/mysql/bin:$PATH"
echo 'export PATH="/usr/local/mysql/bin:$PATH"' >> /etc/bashrc
/usr/local/mysql/support-files/mysql.server start
#задать пароль mysql root
read -p "Введите пароль пользователя MYSQL для root: " mysql_p
echo "Введенный пароль ".$mysql_p
mysqladmin -u root password "$mysql_p"
echo "
##############################
# Устанавливаем PhpMyAdmin! ##
##############################
"
curl -L -o 'phpmyadmin.zip' http://sourceforge.net/projects/phpmyadmin/files/latest/download
if [ ! -f ./phpmyadmin.zip ]; then echo "Ошибка загрузки файла mysql!!!"; exit; fi
unzip ./phpmyadmin.zip && rm ./phpmyadmin.zip
mv phpMyAdmin* phpmyadmin
rm -r /usr/local/phpmyadmin/*
mkdir -p /usr/local/phpmyadmin
mv phpmyadmin/ /usr/local/phpmyadmin/www
echo 'Alias /phpmyadmin /usr/local/phpmyadmin/www
Require all granted
Options FollowSymLinks
DirectoryIndex index.php
Options Indexes
Order allow,deny
Allow from all
AddType application/x-httpd-php .php
php_flag track_vars On
Order Deny,Allow
Deny from All
Order Deny,Allow
Deny from All
' > /usr/local/phpmyadmin/apache.conf
cp /usr/local/phpmyadmin/www/config.sample.inc.php /usr/local/phpmyadmin/www/config.inc.php
echo "
##############################
# Конфигурируем Apache! ##
##############################
"
echo -n "Создаем резервную копию http.conf ";
cp $Acnf $Acnf".back"
sed -ie 's/#LoadModule php5_module/LoadModule php5_module/g' $Acnf
sed -ie 's/#LoadModule rewrite_module/LoadModule rewrite_module/g' $Acnf
sed -ie 's/DirectoryIndex index.html/DirectoryIndex index.php index.htm index.html/g' $Acnf
sed -ie '// d' $Acnf
sed -ie 's|Include /private/etc/apache2/other/|#Include /private/etc/apache2/other/|g' $Acnf
echo '
NameVirtualHost *:80
Require all granted
Options FollowSymLinks
Options Indexes
AllowOverride All
#Order allow,deny
#Allow from all
AddType application/x-httpd-php .php
' >> $Acnf
#sed -e '/#.*$/ d' $Acnf
echo 'Include /etc/apache2/sites-enabled/*' >> $Acnf
echo 'Include /usr/local/phpmyadmin/apache.conf' >> $Acnf
mkdir -p /www/localhost
chmod -R 777 /www
mkdir -p /etc/apache2/sites-enabled/
echo '
ServerName localhost
DocumentRoot /www/localhost/
Require all granted
Options FollowSymLinks
Options Indexes
AllowOverride All
#Order allow,deny
#Allow from all
' > /etc/apache2/sites-enabled/100-default
echo '' > /www/localhost/index.php
echo "
##############################
# Конфигурируем PHP! ##
##############################
"
cp /etc/php.ini.default /etc/php.ini
sed -ie "s/pdo_mysql.default_socket.*$/pdo_mysql.default_socket = \/tmp\/mysql.sock/g" /etc/php.ini
sed -ie "s/mysql.default_socket.*$/mysql.default_socket = \/tmp\/mysql.sock/g" /etc/php.ini
sed -ie "s/mysqli.default_socket.*$/mysqli.default_socket = \/tmp\/mysql.sock/g" /etc/php.ini
sed -ie "s/short_open_tag.*$/short_open_tag = On/g" /etc/php.ini
sed -ie "s/mysql.default_port.*$/mysql.default_port = 3306/g" /etc/php.ini
sed -ie "s/^upload_max_filesize.*$/upload_max_filesize = 900M/g" /etc/php.ini
sed -ie "s/^post_max_size.*$/post_max_size = 900M/g" /etc/php.ini
#memory economy mysql
echo "# Robby's MySQL overrides (c)http://www.robbyonrails.com/articles/2013/11/24/reducing-mysqls-memory-usage-on-os-x-mavericks
[mysqld]
max_connections = 10
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K
" >> /usr/local/mysql/my.cnf
killall -9 httpd
apachectl restart
/usr/local/mysql/support-files/mysql.server stop
/usr/local/mysql/support-files/mysql.server start
cd ../
rm -r $My_tmp