Merge pull request #2949 from silke/vagrant-1604
Added Vagrant for Ubuntu 16.04
This commit is contained in:
commit
59c12db020
50
Vagrantfile
vendored
50
Vagrantfile
vendored
|
@ -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|
|
||||
|
|
|
@ -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 <ubuntu-version>" 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 <ubuntu-version>" 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 <ubuntu-version>" 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 <ubuntu-version>
|
||||
|
||||
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.
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue