From 914c30bf60264bed65939cc9cb05a55b7d166f9c Mon Sep 17 00:00:00 2001 From: YAAP Date: Mon, 31 Mar 2014 10:36:05 +0300 Subject: [PATCH 1/5] phpmyadmin --- README.md | 1 + vagrant/configs/nginx-vhost | 9 ++++---- vagrant/configs/nginx/phpmyadmin | 18 ++++++++++++++++ vagrant/provision.sh | 2 ++ vagrant/scripts/phpmyadmin.sh | 35 ++++++++++++++++++++++++++++++++ 5 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 vagrant/configs/nginx/phpmyadmin create mode 100644 vagrant/scripts/phpmyadmin.sh diff --git a/README.md b/README.md index 3fe7fe3..a7d132e 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,7 @@ Lagrant will load Ubuntu 12 x64 VM with following components: * [phpunit](http://phpunit.de/) * [composer](http://getcomposer.org/) * [beanstalkd queue server](https://github.com/kr/beanstalkd) and [beanstalk console](https://github.com/ptrofimov/beanstalk_console), available after install at [http://localhost:8080/beanstalkd/index.php](http://localhost:8080/beanstalkd/index.php) +* [phpmyadmin](http://www.phpmyadmin.net), available after install at http://33.33.33.33/phpmyadmin/ Also it will create a database with provided in Vagrantfile credentials (default root password is *root*, default db name is *database*). If it performs a clean install of Laravel, it will create an environment configs set (defaults to *dev*) and set up local database and app configs. diff --git a/vagrant/configs/nginx-vhost b/vagrant/configs/nginx-vhost index c0486f5..76cf6bc 100644 --- a/vagrant/configs/nginx-vhost +++ b/vagrant/configs/nginx-vhost @@ -8,12 +8,13 @@ server { index index.php index.html; - if (!-d $request_filename) { - rewrite ^/(.+)/$ $scheme://$http_host/$1 permanent; - } + #if (!-d $request_filename) { + # rewrite ^/(.+)/$ $scheme://$http_host/$1 permanent; + #} location / { - try_files $uri $uri/ /index.php?q=$uri&$args; + #try_files $uri $uri/ /index.php?q=$uri&$args; + index index.php index.html index.htm; } error_page 404 /index.php; diff --git a/vagrant/configs/nginx/phpmyadmin b/vagrant/configs/nginx/phpmyadmin new file mode 100644 index 0000000..7d89284 --- /dev/null +++ b/vagrant/configs/nginx/phpmyadmin @@ -0,0 +1,18 @@ + location /phpmyadmin { + root /usr/share/; + index index.php index.html index.htm; + location ~ ^/phpmyadmin/(.+\.php)$ { + try_files $uri =404; + root /usr/share/; + fastcgi_pass unix:/var/run/php5-fpm.sock; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $request_filename; + include /etc/nginx/fastcgi_params; + } + location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { + root /usr/share/; + } + } + location /pma { + rewrite ^/* /phpmyadmin last; + } \ No newline at end of file diff --git a/vagrant/provision.sh b/vagrant/provision.sh index 4b11176..13cf809 100755 --- a/vagrant/provision.sh +++ b/vagrant/provision.sh @@ -25,6 +25,8 @@ ${SCRIPTS}/ruby.sh ${SCRIPTS}/${DATABASE_TYPE}.sh $DATABASE_ROOT_PASSWORD +${SCRIPTS}/phpmyadmin.sh $DATABASE_ROOT_PASSWORD + ${SCRIPTS}/sqlite.sh ${SCRIPTS}/redis.sh diff --git a/vagrant/scripts/phpmyadmin.sh b/vagrant/scripts/phpmyadmin.sh new file mode 100644 index 0000000..be7b2c4 --- /dev/null +++ b/vagrant/scripts/phpmyadmin.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +echo "--- Instaling PhpMyAdmin ---" + +MYSQL_PASSWORD=$1 + +sudo debconf-set-selections <<< "phpmyadmin phpmyadmin/dbconfig-install boolean true" +sudo debconf-set-selections <<< "phpmyadmin phpmyadmin/app-password-confirm password ${MYSQL_PASSWORD}" +sudo debconf-set-selections <<< "phpmyadmin phpmyadmin/mysql/admin-pass password ${MYSQL_PASSWORD}" +sudo debconf-set-selections <<< "phpmyadmin phpmyadmin/mysql/app-pass password ${MYSQL_PASSWORD}" +sudo debconf-set-selections <<< "phpmyadmin phpmyadmin/reconfigure-webserver multiselect none" + +sudo apt-get install -y phpmyadmin + +# Patch nginx config + +REPLACE_ANCHOR='#place-more-options-here' +PHPMYADMIN_NG_CONFIG='include \/etc\/nginx\/phpmyadmin;' +REPLACE_STR=$PHPMYADMIN_NG_CONFIG"\n"$REPLACE_ANCHOR + +sudo cp /vagrant/vagrant/configs/nginx/phpmyadmin /etc/nginx/phpmyadmin +sudo sed -i "s/$REPLACE_ANCHOR/$REPLACE_STR/" /etc/nginx/sites-available/default + +# Patch phpmyadmin config +# 1 - respect localhost:8080/phpmyadmin +# 2 - skipp login page + +REPLACE_ANCHOR="\$cfg\['Servers'\]\[\$i\]\['auth_type'\] = 'cookie';" +REPLACE_STR="\$cfg['Servers'][\$i]['auth_type'] = 'config';\n\$cfg['Servers'][\$i]['user'] = 'root';\n\$cfg['Servers'][\$i]['password'] = '${MYSQL_PASSWORD}';" + +sudo sed -i "s/$REPLACE_ANCHOR/$REPLACE_STR/" /etc/phpmyadmin/config.inc.php + +echo "\$cfg['PmaAbsoluteUri'] = 'http://localhost:8080/phpmyadmin/';" >> /etc/phpmyadmin/config.inc.php + +sudo service nginx restart From 173590fd5fc09a1226813fd6ada14846e739e34a Mon Sep 17 00:00:00 2001 From: YAAP Date: Tue, 1 Apr 2014 10:04:07 +0300 Subject: [PATCH 2/5] small|medium|full provisions --- vagrant/{provision.sh => provision.full.sh} | 0 vagrant/provision.medium.sh | 73 +++++++++++++++++++++ vagrant/provision.small.sh | 31 +++++++++ 3 files changed, 104 insertions(+) rename vagrant/{provision.sh => provision.full.sh} (100%) create mode 100755 vagrant/provision.medium.sh create mode 100755 vagrant/provision.small.sh diff --git a/vagrant/provision.sh b/vagrant/provision.full.sh similarity index 100% rename from vagrant/provision.sh rename to vagrant/provision.full.sh diff --git a/vagrant/provision.medium.sh b/vagrant/provision.medium.sh new file mode 100755 index 0000000..70b06d2 --- /dev/null +++ b/vagrant/provision.medium.sh @@ -0,0 +1,73 @@ +#!/usr/bin/env bash + +SCRIPTS=/vagrant/vagrant/scripts +PROJECT_PATH=/vagrant + +ENV_NAME=$1 +DATABASE_TYPE=$2 +DATABASE_ROOT_PASSWORD=$3 +DATABASE_NAME=$4 + +echo "--- Setting up system ---" + +${SCRIPTS}/init.sh $ENV_NAME + +${SCRIPTS}/php.sh + +# web server MUST be installed immediately after PHP +${SCRIPTS}/nginx.sh + +${SCRIPTS}/documentroot.sh + +${SCRIPTS}/memcached.sh + +${SCRIPTS}/ruby.sh + +${SCRIPTS}/${DATABASE_TYPE}.sh $DATABASE_ROOT_PASSWORD + +${SCRIPTS}/phpmyadmin.sh $DATABASE_ROOT_PASSWORD + +${SCRIPTS}/sqlite.sh + +${SCRIPTS}/redis.sh + +${SCRIPTS}/mongodb.sh + +${SCRIPTS}/nodejs.sh + +${SCRIPTS}/bower.sh + +${SCRIPTS}/gulp.sh +${SCRIPTS}/gulp-autoprefixer.sh + +${SCRIPTS}/less.sh + +${SCRIPTS}/imagick.sh + +${SCRIPTS}/xdebug.sh + +${SCRIPTS}/phpunit.sh + +${SCRIPTS}/composer.sh + +${SCRIPTS}/beanstalkd.sh + +if [ -n "$DATABASE_NAME" ]; +then + ${SCRIPTS}/${DATABASE_TYPE}_createdb.sh $DATABASE_NAME $DATABASE_ROOT_PASSWORD +fi + +# We assume that if there is no composer.json it is raw new project +# Otherwise project already exists and we need to migrate it + +if [ ! -a "/vagrant/composer.json" ]; +then + ${SCRIPTS}/laravel_create.sh $PROJECT_PATH $ENV_NAME + if [ -n "$DATABASE_NAME" ]; + then + ${SCRIPTS}/laravel_set_db.sh $PROJECT_PATH $ENV_NAME $DATABASE_TYPE $DATABASE_NAME $DATABASE_ROOT_PASSWORD + fi + ${SCRIPTS}/laravel_setup.sh $PROJECT_PATH $ENV_NAME +else + ${SCRIPTS}/laravel_migrate.sh $PROJECT_PATH $ENV_NAME +fi diff --git a/vagrant/provision.small.sh b/vagrant/provision.small.sh new file mode 100755 index 0000000..d0aa8a6 --- /dev/null +++ b/vagrant/provision.small.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +SCRIPTS=/vagrant/vagrant/scripts +PROJECT_PATH=/vagrant + +ENV_NAME=$1 +DATABASE_TYPE=$2 +DATABASE_ROOT_PASSWORD=$3 +DATABASE_NAME=$4 + +echo "--- Setting up system ---" + +${SCRIPTS}/init.sh $ENV_NAME + +${SCRIPTS}/php.sh + +# web server MUST be installed immediately after PHP +${SCRIPTS}/nginx.sh + +${SCRIPTS}/documentroot.sh + +${SCRIPTS}/${DATABASE_TYPE}.sh $DATABASE_ROOT_PASSWORD + +${SCRIPTS}/phpmyadmin.sh $DATABASE_ROOT_PASSWORD + +${SCRIPTS}/composer.sh + +if [ -n "$DATABASE_NAME" ]; +then + ${SCRIPTS}/${DATABASE_TYPE}_createdb.sh $DATABASE_NAME $DATABASE_ROOT_PASSWORD +fi From 4c438853e8d6ddfdc59bc4e166d8524c85bc1b7f Mon Sep 17 00:00:00 2001 From: YAAP Date: Tue, 1 Apr 2014 10:05:21 +0300 Subject: [PATCH 3/5] readme --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a7d132e..a2ce50d 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,9 @@ Status: Stable ###Basic usage Open terminal, go to desired directory and type in: ```bash -git clone https://github.com/terion-name/Lagrant && mv Lagrant/* ./ && rm -r -f Lagrant && vagrant up +git clone https://github.com/terion-name/Lagrant && mv Lagrant/* ./ && rm -r -f Lagrant +mv provision.[small|medium|full].sh provision.sh +vagrant up ``` Or just clone/download Lagrant, edit Vagrantfile's variables and/or provision.sh to your prefers and run ```vagrant up``` From fa6a4a709d37f4e91f37c9c62ec9baf7348589cf Mon Sep 17 00:00:00 2001 From: YAAP Date: Tue, 1 Apr 2014 10:09:33 +0300 Subject: [PATCH 4/5] readme:repos url --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a2ce50d..c119386 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Status: Stable ###Basic usage Open terminal, go to desired directory and type in: ```bash -git clone https://github.com/terion-name/Lagrant && mv Lagrant/* ./ && rm -r -f Lagrant +git clone https://github.com/yaapis/Lagrant && mv Lagrant/* ./ && rm -r -f Lagrant mv provision.[small|medium|full].sh provision.sh vagrant up ``` From 520090af3e46342d74de6230440c4d12e66da05b Mon Sep 17 00:00:00 2001 From: YAAP Date: Tue, 1 Apr 2014 10:11:11 +0300 Subject: [PATCH 5/5] readme:provision file path --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c119386..0d21c76 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Status: Stable Open terminal, go to desired directory and type in: ```bash git clone https://github.com/yaapis/Lagrant && mv Lagrant/* ./ && rm -r -f Lagrant -mv provision.[small|medium|full].sh provision.sh +mv vagrant/provision.[small|medium|full].sh vagrant/provision.sh vagrant up ``` Or just clone/download Lagrant, edit Vagrantfile's variables and/or provision.sh to your prefers and run ```vagrant up```