diff --git a/Vagrantfile b/Vagrantfile index 0c16fa6b8c..ff38151520 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -1,31 +1,55 @@ -server_ip = "192.168.22.10" +server_ip_trusty = "192.168.22.10" +server_ip_xenial = "192.168.22.11" server_memory = "1024" # MB server_timezone = "UTC" public_folder = "/vagrant" Vagrant.configure(2) do |config| - +###################################################################### # Set server to Ubuntu 14.04 - config.vm.box = "ubuntu/trusty64" + config.vm.define "trusty" do |trusty| + trusty.vm.box = "ubuntu/trusty64" - # Disable automatic box update checking. If you disable this, then - # boxes will only be checked for updates when the user runs - # `vagrant box outdated`. This is not recommended. - # config.vm.box_check_update = false + # Disable automatic box update checking. If you disable this, then + # boxes will only be checked for updates when the user runs + # `vagrant box outdated`. This is not recommended. + # config.vm.box_check_update = false - # Create a hostname, don't forget to put it to the `hosts` file - # This will point to the server's default virtual host - # TO DO: Make this work with virtualhost along-side xip.io URL - config.vm.hostname = "friendica.dev" + # Create a hostname, don't forget to put it to the `hosts` file + # This will point to the server's default virtual host + # TO DO: Make this work with virtualhost along-side xip.io URL + trusty.vm.hostname = "friendica-trusty.dev" - # Create a static IP - config.vm.network :private_network, ip: server_ip + # Create a static IP + trusty.vm.network :private_network, ip: server_ip_trusty + end +###################################################################### + # Set server to Ubuntu 16.04 + config.vm.define "xenial" do |xenial| + xenial.vm.box = "boxcutter/ubuntu1604" + + # Disable automatic box update checking. If you disable this, then + # boxes will only be checked for updates when the user runs + # `vagrant box outdated`. This is not recommended. + # config.vm.box_check_update = false + + # Create a hostname, don't forget to put it to the `hosts` file + # This will point to the server's default virtual host + # TO DO: Make this work with virtualhost along-side xip.io URL + xenial.vm.hostname = "friendica-xenial.dev" + + # Create a static IP + xenial.vm.network :private_network, ip: server_ip_xenial + end + +###################################################################### # Share a folder between host and guest config.vm.synced_folder "./", "/vagrant/", owner: "www-data", group: "vagrant" + # Provider-specific configuration so you can fine-tune various # backing providers for Vagrant. These expose provider-specific options. config.vm.provider "virtualbox" do |vb| diff --git a/doc/Vagrant.md b/doc/Vagrant.md index 4bc9e6c54d..ec706e5c38 100644 --- a/doc/Vagrant.md +++ b/doc/Vagrant.md @@ -8,7 +8,11 @@ Getting started [Vagrant](https://www.vagrantup.com/) is a virtualization solution for developers. No need to setup up a webserver, database etc. before actually starting. -Vagrant creates a virtual machine (an Ubuntu 14.04) for you that you can just run inside VirtualBox and start to work directly on Friendica. +Vagrant creates a virtual machine for you that you can just run inside VirtualBox and start to work directly on Friendica. +You can choose between two different Ubuntu Linux versions: + +1. Ubuntu Trusty (14.04) with PHP 5.5.9 and MySQL 5.5.53 +2. Ubuntu Xenial (16.04) with PHP 7.0 and MySQL 5.7.16 What you need to do: @@ -16,21 +20,27 @@ What you need to do: Please use an up-to-date vagrant version from https://www.vagrantup.com/downloads.html. 2. Git clone your Friendica repository. Inside, you'll find a "Vagrantfile" and some scripts in the utils folder. -3. Run "vagrant up" from inside the friendica clone. +3. Choose the Ubuntu version you'll need und run "vagrant up " from inside the friendica clone: + $> vagrant up trusty + $> vagrant up xenial Be patient: When it runs for the first time, it downloads an Ubuntu Server image. -4. Run "vagrant ssh" to log into the virtual machine to log in to the VM. -5. Open 192.168.22.10 in a browser. +4. Run "vagrant ssh " to log into the virtual machine to log in to the VM: + $> vagrant ssh trusty + $> vagrant ssh xenial +5. Open you test installation in a browser. +If you selected an Ubuntu Trusty go to 192.168.22.10. +If you started a Xenial machine go to 192.168.22.11. The mysql database is called "friendica", the mysql user and password both are "root". 6. Work on Friendica's code in your git clone on your machine (not in the VM). Your local working directory is set up as a shared directory with the VM (/vagrant). 7. Check the changes in your browser in the VM. -Debug via the "vagrant ssh" login. +Debug via the "vagrant ssh " login. Find the Friendica log file /vagrant/logfile.out. 8. Commit and push your changes directly back to Github. If you want to stop vagrant after finishing your work, run the following command - $> vagrant halt + $> vagrant halt in the development directory. @@ -44,10 +54,3 @@ You will then have the following accounts to login: * friendica2 and friendica3 are conntected. friendica4 and friendica5 are connected. For further documentation of vagrant, please see [the vagrant*docs*](https://docs.vagrantup.com/v2/). - -**Important notice:** -If you already had an Ubuntu 12.04 Vagrant VM, please run - - $> vagrant destroy - -before starting the new 14.04 machine. diff --git a/util/vagrant_provision.sh b/util/vagrant_provision.sh index 12e792c040..100764caba 100644 --- a/util/vagrant_provision.sh +++ b/util/vagrant_provision.sh @@ -32,16 +32,30 @@ sudo apt-get install -y apache2 sudo a2enmod rewrite actions ssl sudo cp /vagrant/util/vagrant_vhost.sh /usr/local/bin/vhost sudo chmod guo+x /usr/local/bin/vhost -sudo vhost -s 192.168.22.10.xip.io -d /var/www -p /etc/ssl/xip.io -c xip.io -a friendica.dev -sudo a2dissite 000-default -sudo service apache2 restart +if [ $( lsb_release -c | cut -f 2 ) == "trusty" ]; then + sudo vhost -s 192.168.22.10.xip.io -d /var/www -p /etc/ssl/xip.io -c xip.io -a friendica-trusty.dev + sudo a2dissite 000-default + sudo service apache2 restart +elif [ $( lsb_release -c | cut -f 2 ) == "xenial" ]; then + sudo vhost -s 192.168.22.11.xip.io -d /var/www -p /etc/ssl/xip.io -c xip.io -a friendica-xenial.dev + sudo a2dissite 000-default + sudo systemctl restart apache2 +fi #Install php -echo ">>> Installing PHP5" -sudo apt-get install -y php5 libapache2-mod-php5 php5-cli php5-mysql php5-curl php5-gd -sudo apt-get install -y imagemagick -sudo apt-get install -y php5-imagick -sudo service apache2 restart +if [ $( lsb_release -c | cut -f 2 ) == "trusty" ]; then + echo ">>> Installing PHP5" + sudo apt-get install -y php5 libapache2-mod-php5 php5-cli php5-mysql php5-curl php5-gd + sudo apt-get install -y imagemagick + sudo apt-get install -y php5-imagick + sudo service apache2 restart +elif [ $( lsb_release -c | cut -f 2 ) == "xenial" ]; then + echo ">>> Installing PHP7" + sudo apt-get install -y php libapache2-mod-php php-cli php-mysql php-curl php-gd + sudo apt-get install -y imagemagick + sudo apt-get install -y php-imagick + sudo systemctl restart apache2 +fi #Install mysql @@ -59,12 +73,21 @@ Q1="GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;" Q2="FLUSH PRIVILEGES;" SQL="${Q1}${Q2}" $MYSQL -uroot -proot -e "$SQL" -service mysql restart +if [ $( lsb_release -c | cut -f 2 ) == "trusty" ]; then + service mysql restart +elif [ $( lsb_release -c | cut -f 2 ) == "xenial" ]; then + systemctl restart mysql +fi + #configure rudimentary mail server (local delivery only) #add Friendica accounts for local user accounts, use email address like vagrant@friendica.dev, read the email with 'mail'. -debconf-set-selections <<< "postfix postfix/mailname string friendica.dev" +if [ $( lsb_release -c | cut -f 2 ) == "trusty" ]; then + debconf-set-selections <<< "postfix postfix/mailname string friendica-trusty.dev" +elif [ $( lsb_release -c | cut -f 2 ) == "xenial" ]; then + debconf-set-selections <<< "postfix postfix/mailname string friendica-xenial.dev" +fi debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Local Only'" sudo apt-get install -y postfix mailutils libmailutils-dev sudo echo -e "friendica1: vagrant\nfriendica2: vagrant\nfriendica3: vagrant\nfriendica4: vagrant\nfriendica5: vagrant" >> /etc/aliases && sudo newaliases