Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- mode: ruby -*-
- # vi: set ft=ruby :
- VAGRANTFILE_API_VERSION = '2'
- APP_NAME = 'cakephp'
- @script = <<-SCRIPT
- apt-get update && apt-get upgrade
- #################### SETUP PHP ####################
- apt-get install -y apt-utils php7.2
- apt-get install -y php7.2-bcmath php7.2-bz2 php7.2-cli php7.2-curl php7.2-intl php7.2-json php7.2-mbstring php7.2-opcache php7.2-soap php7.2-sqlite3 php7.2-xml php7.2-xsl php7.2-zip unzip
- # Not needed in PHP 7.2
- ##### php7.2-php-pdo php7.2-php-mysqlnd php7.2-php-mysqli httpd
- #################### SETUP APACHE2 ####################
- apt-get install -y apache2 libapache2-mod-php7.2
- # Add ServerName to httpd.conf
- echo "ServerName localhost" > /etc/apache2/httpd.conf
- # Setup hosts file
- VHOST=$(cat <<EOF
- <VirtualHost *:80>
- DocumentRoot "/home/#{APP_NAME}/webroot"
- ServerName localhost
- <Directory "/home/#{APP_NAME}/webroot">
- Options Indexes FollowSymLinks MultiViews Includes
- AllowOverride All
- Require all granted
- Order allow,deny
- Allow from all
- AddType text/html .shtm .shtml
- AddOutputFilter INCLUDES .htm .html .shtm .shtml
- </Directory>
- </VirtualHost>
- EOF
- )
- echo "${VHOST}" > /etc/apache2/sites-enabled/000-default.conf
- # Enable mod_rewrite
- a2enmod rewrite
- # Put PHP into development configuration
- mv /etc/php/7.2/apache2/php.ini /etc/php/7.2/apache2/php.ini.back
- cp /usr/lib/php/7.2/php.ini-development /etc/php/7.2/apache2/php.ini
- # Enable PHP extensions in php.ini
- sed -i 's/;extension=mysqli/extension=mysqli/' /etc/php/7.2/apache2/php.ini
- sed -i 's/;extension=pdo_mysql/extension=pdo_mysql/' /etc/php/7.2/apache2/php.ini
- # PHP will log errors here
- sed -i 's:;error_log = php_errors.log:error_log = /home/#{APP_NAME}/logs/error_log:' /etc/php/7.2/apache2/php.ini
- # Restart apache
- systemctl restart apache2.service
- #################### SETUP MYSQL ####################
- apt-get install -y mysql-server mysql-client-core-5.7 php7.2-mysql
- systemctl start mysql.service
- # Reset root password
- #/usr/bin/mysqladmin -u root password 'root'
- mysqladmin -u root password 'root'
- # Setup database from root user and setup the application user
- mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS app"
- mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON *.* to 'vagrant'@'localhost' IDENTIFIED BY 'vagrant'"
- mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON *.* to 'vagrant'@'%' IDENTIFIED BY 'vagrant'"
- mysql -uroot -proot -e "FLUSH PRIVILEGES"
- # Allow remote connections to mysql (don't do it like this in production)
- MYSQLCONF=$(cat <<EOF
- [mysqld]
- bind-address = 0.0.0.0
- EOF
- )
- echo "${MYSQLCONF}" >> /etc/mysql/my.cnf
- # Restart mysql
- /etc/init.d/mysql restart
- #################### SETUP COMPOSER ####################
- curl -sS http://getcomposer.org/installer | php
- mv composer.phar /usr/local/bin/composer
- # Run composer install
- cd /home/#{APP_NAME} && composer install
- #################### FINISHED! ####################
- echo "** [PHP] Visit http://localhost:8080 in your browser for to view the application **"
- SCRIPT
- Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
- config.vm.box = 'ubuntu/bionic64'
- config.ssh.insert_key = false
- config.vm.network "forwarded_port", guest: 80, host: 8080
- config.vm.network "forwarded_port", guest: 443, host: 8081
- config.vm.network "forwarded_port", guest: 3306, host: 3307
- # We do not want Vagrant picking the root directory
- config.vm.synced_folder ".", "/vagrant", disabled: true
- config.vm.synced_folder ".", "/home/#{APP_NAME}"
- # Provision runs only on the first "Vangrant up" command
- config.vm.provision 'shell', privileged: true, inline: @script
- config.vm.provider "virtualbox" do |vb|
- vb.customize ["modifyvm", :id, "--memory", "2048"]
- vb.customize ['modifyvm', :id, "--natdnshostresolver1", "on"]
- #vb.customize ["modifyvm", :id, "--name", "domain.com"]
- end
- end
- Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
- config.vm.box = 'ubuntu/bionic64'
- config.vm.network "forwarded_port", guest: 80, host: 8080
- config.vm.network "forwarded_port", guest: 443, host: 8081
- config.vm.provider "virtualbox" do |vb|
- vb.gui = true
- vb.customize ["modifyvm", :id, "--memory", "2048"]
- vb.customize ['modifyvm', :id, "--natdnshostresolver1", "on"]
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement