commit
2bcd5b3243
7 changed files with 521 additions and 408 deletions
56
Vagrantfile
vendored
56
Vagrantfile
vendored
|
@ -1,54 +1,30 @@
|
||||||
|
|
||||||
server_ip_trusty = "192.168.22.10"
|
server_ip = "192.168.22.10"
|
||||||
server_ip_xenial = "192.168.22.11"
|
server_memory = "2048" # MB
|
||||||
server_memory = "1024" # MB
|
|
||||||
server_timezone = "UTC"
|
server_timezone = "UTC"
|
||||||
|
|
||||||
public_folder = "/vagrant"
|
public_folder = "/vagrant"
|
||||||
|
|
||||||
Vagrant.configure(2) do |config|
|
Vagrant.configure(2) do |config|
|
||||||
######################################################################
|
|
||||||
# Set server to Ubuntu 14.04
|
|
||||||
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
|
|
||||||
|
|
||||||
# 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
|
|
||||||
trusty.vm.network :private_network, ip: server_ip_trusty
|
|
||||||
end
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
# Set server to Ubuntu 16.04
|
# Set server to Ubuntu 16.04
|
||||||
config.vm.define "xenial" do |xenial|
|
config.vm.box = "ubuntu/xenial64"
|
||||||
xenial.vm.box = "boxcutter/ubuntu1604"
|
|
||||||
|
|
||||||
# Disable automatic box update checking. If you disable this, then
|
# Disable automatic box update checking. If you disable this, then
|
||||||
# boxes will only be checked for updates when the user runs
|
# boxes will only be checked for updates when the user runs
|
||||||
# `vagrant box outdated`. This is not recommended.
|
# `vagrant box outdated`. This is not recommended.
|
||||||
# config.vm.box_check_update = false
|
config.vm.box_check_update = true
|
||||||
|
|
||||||
# Create a hostname, don't forget to put it to the `hosts` file
|
# Create a hostname, don't forget to put it to the `hosts` file
|
||||||
# This will point to the server's default virtual host
|
# This will point to the server's default virtual host
|
||||||
# TO DO: Make this work with virtualhost along-side xip.io URL
|
# TO DO: Make this work with virtualhost along-side xip.io URL
|
||||||
xenial.vm.hostname = "friendica-xenial.dev"
|
config.vm.hostname = "friendica-xenial.dev"
|
||||||
|
|
||||||
# Create a static IP
|
# Create a static IP
|
||||||
xenial.vm.network :private_network, ip: server_ip_xenial
|
config.vm.network :private_network, ip: server_ip
|
||||||
end
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
# Share a folder between host and guest
|
# Share a folder between host and guest
|
||||||
config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", owner: "www-data", group: "vagrant"
|
# config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", owner: "www-data", group: "vagrant"
|
||||||
|
config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", owner: "www-data", group: "www-data"
|
||||||
|
|
||||||
# Provider-specific configuration so you can fine-tune various
|
# Provider-specific configuration so you can fine-tune various
|
||||||
# backing providers for Vagrant. These expose provider-specific options.
|
# backing providers for Vagrant. These expose provider-specific options.
|
||||||
|
@ -57,7 +33,7 @@ Vagrant.configure(2) do |config|
|
||||||
# vb.gui = true
|
# vb.gui = true
|
||||||
#
|
#
|
||||||
# # Customize the amount of memory on the VM:
|
# # Customize the amount of memory on the VM:
|
||||||
vb.memory = server_memory
|
vb.memory = server_memory
|
||||||
end
|
end
|
||||||
|
|
||||||
# Enable provisioning with a shell script.
|
# Enable provisioning with a shell script.
|
||||||
|
|
|
@ -9,10 +9,8 @@ Getting started
|
||||||
[Vagrant](https://www.vagrantup.com/) is a virtualization solution for developers.
|
[Vagrant](https://www.vagrantup.com/) is a virtualization solution for developers.
|
||||||
No need to setup up a webserver, database etc. before actually starting.
|
No need to setup up a webserver, database etc. before actually starting.
|
||||||
Vagrant creates a virtual machine 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
|
It brings an Ubuntu Xenial (16.04) with PHP 7.0 and MySQL 5.7.16
|
||||||
2. Ubuntu Xenial (16.04) with PHP 7.0 and MySQL 5.7.16
|
|
||||||
|
|
||||||
What you need to do:
|
What you need to do:
|
||||||
|
|
||||||
|
@ -20,29 +18,33 @@ What you need to do:
|
||||||
Please use an up-to-date vagrant version from https://www.vagrantup.com/downloads.html.
|
Please use an up-to-date vagrant version from https://www.vagrantup.com/downloads.html.
|
||||||
2. Git clone your Friendica repository.
|
2. Git clone your Friendica repository.
|
||||||
Inside, you'll find a "Vagrantfile" and some scripts in the utils folder.
|
Inside, you'll find a "Vagrantfile" and some scripts in the utils folder.
|
||||||
3. Choose the Ubuntu version you'll need und run "vagrant up <ubuntu-version>" from inside the friendica clone:
|
3. Run "vagrant up" from inside the friendica clone:
|
||||||
$> vagrant up trusty
|
$> vagrant up
|
||||||
$> vagrant up xenial
|
|
||||||
Be patient: When it runs for the first time, it downloads an Ubuntu Server image.
|
Be patient: When it runs for the first time, it downloads an Ubuntu Server image.
|
||||||
4. Run "vagrant ssh <ubuntu-version>" to log into the virtual machine to log in to the VM:
|
4. Run "vagrant ssh" to log into the virtual machine to log in to the VM:
|
||||||
$> vagrant ssh trusty
|
$> vagrant ssh
|
||||||
$> vagrant ssh xenial
|
|
||||||
5. Open you test installation in a browser.
|
5. Open you test installation in a browser.
|
||||||
If you selected an Ubuntu Trusty go to 192.168.22.10.
|
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 "friendica".
|
||||||
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).
|
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).
|
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.
|
7. Check the changes in your browser in the VM.
|
||||||
Debug via the "vagrant ssh <ubuntu-version>" login.
|
Debug via the "vagrant ssh" login.
|
||||||
Find the Friendica log file /vagrant/logfile.out.
|
Find the Friendica log file /vagrant/logfile.out.
|
||||||
8. Commit and push your changes directly back to Github.
|
8. Commit and push your changes directly back to Github.
|
||||||
|
|
||||||
If you want to stop vagrant after finishing your work, run the following command
|
If you want to stop vagrant after finishing your work, run the following command
|
||||||
|
|
||||||
$> vagrant halt <ubuntu-version>
|
$> vagrant halt
|
||||||
|
|
||||||
in the development directory.
|
in the development directory.
|
||||||
|
This will not delete the virtual machine.
|
||||||
|
9. To ultimately delete the virtual machine run
|
||||||
|
|
||||||
|
$> vagrant destroy
|
||||||
|
$> rm /vagrant/.htconfig.php
|
||||||
|
|
||||||
|
to make sure that you can start from scratch with another "vagrant up".
|
||||||
|
|
||||||
The vagrant Friendica instance contains a test database.
|
The vagrant Friendica instance contains a test database.
|
||||||
You will then have the following accounts to login:
|
You will then have the following accounts to login:
|
||||||
|
|
|
@ -22,11 +22,11 @@ Wir planen, diese Einschränkung in einer zukünftigen Version zu beheben.
|
||||||
|
|
||||||
1. Voraussetzungen
|
1. Voraussetzungen
|
||||||
- Apache mit einer aktiverten mod-rewrite-Funktion und dem Eintrag "Options All", so dass du die lokale .htaccess-Datei nutzen kannst
|
- Apache mit einer aktiverten mod-rewrite-Funktion und dem Eintrag "Options All", so dass du die lokale .htaccess-Datei nutzen kannst
|
||||||
- PHP 5.2+. Je neuer, desto besser. Du benötigst 5.3 für die Authentifizierung untereinander. In einer Windows-Umgebung arbeitet die Version 5.2+ möglicherweise nicht, da die Funktion dns_get_record() erst ab Version 5.3 verfügbar ist.
|
- PHP 5.4+. Je neuer, desto besser.
|
||||||
- PHP *Kommandozeilen*-Zugang mit register_argc_argv auf "true" gesetzt in der php.ini-Datei
|
- PHP *Kommandozeilen*-Zugang mit register_argc_argv auf "true" gesetzt in der php.ini-Datei
|
||||||
- Curl, GD, PDO, MySQLi, xml und OpenSSL-Erweiterung
|
- Curl, GD, PDO, MySQLi, xml und OpenSSL-Erweiterung
|
||||||
- etwas in der Art eines Email-Servers oder eines Gateways wie PHP mail()
|
- etwas in der Art eines Email-Servers oder eines Gateways wie PHP mail()
|
||||||
- Mysql 5.x
|
- Mysql 5.5.3+
|
||||||
- die Möglichkeit, wiederkehrende Aufgaben mit cron (Linux/Mac) oder "Scheduled Tasks" einzustellen (Windows) [Beachte: andere Optionen sind in Abschnitt 7 dieser Dokumentation zu finden]
|
- die Möglichkeit, wiederkehrende Aufgaben mit cron (Linux/Mac) oder "Scheduled Tasks" einzustellen (Windows) [Beachte: andere Optionen sind in Abschnitt 7 dieser Dokumentation zu finden]
|
||||||
- Installation in einer Top-Level-Domain oder Subdomain (ohne eine Verzeichnis/Pfad-Komponente in der URL) wird bevorzugt. Verzeichnispfade sind für diesen Zweck nicht so günstig und wurden auch nicht ausführlich getestet.
|
- Installation in einer Top-Level-Domain oder Subdomain (ohne eine Verzeichnis/Pfad-Komponente in der URL) wird bevorzugt. Verzeichnispfade sind für diesen Zweck nicht so günstig und wurden auch nicht ausführlich getestet.
|
||||||
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -129,9 +129,8 @@ server {
|
||||||
# With php5-fpm:
|
# With php5-fpm:
|
||||||
fastcgi_pass unix:/var/run/php5-fpm.sock;
|
fastcgi_pass unix:/var/run/php5-fpm.sock;
|
||||||
|
|
||||||
include fastcgi_params;
|
include fastcgi.conf;
|
||||||
fastcgi_index index.php;
|
fastcgi_index index.php;
|
||||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# deny access to all dot files
|
# deny access to all dot files
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
// Copy or rename this file to .htconfig.php
|
// Copy or rename this file to .htconfig.php
|
||||||
|
|
||||||
$db_host = 'localhost';
|
$db_host = 'localhost';
|
||||||
$db_user = 'root';
|
$db_user = 'friendica';
|
||||||
$db_pass = 'root';
|
$db_pass = 'friendica';
|
||||||
$db_data = 'friendica';
|
$db_data = 'friendica';
|
||||||
|
|
||||||
// If you are using a subdirectory of your domain you will need to put the
|
// If you are using a subdirectory of your domain you will need to put the
|
||||||
|
@ -73,3 +73,5 @@ $a->config['system']['debugging'] = true;
|
||||||
$a->config['system']['logfile'] = 'logfile.out';
|
$a->config['system']['logfile'] = 'logfile.out';
|
||||||
$a->config['system']['loglevel'] = LOGGER_DEBUG;
|
$a->config['system']['loglevel'] = LOGGER_DEBUG;
|
||||||
|
|
||||||
|
// display php errors
|
||||||
|
ini_set('display_errors', '1');
|
||||||
|
|
|
@ -6,6 +6,9 @@
|
||||||
echo "Friendica configuration settings"
|
echo "Friendica configuration settings"
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
|
|
||||||
|
# Install virtualbox guest additions
|
||||||
|
sudo apt-get install virtualbox-guest-x11
|
||||||
|
|
||||||
#Selfsigned cert
|
#Selfsigned cert
|
||||||
echo ">>> Installing *.xip.io self-signed SSL"
|
echo ">>> Installing *.xip.io self-signed SSL"
|
||||||
SSL_DIR="/etc/ssl/xip.io"
|
SSL_DIR="/etc/ssl/xip.io"
|
||||||
|
@ -32,30 +35,14 @@ sudo apt-get install -y apache2
|
||||||
sudo a2enmod rewrite actions ssl
|
sudo a2enmod rewrite actions ssl
|
||||||
sudo cp /vagrant/util/vagrant_vhost.sh /usr/local/bin/vhost
|
sudo cp /vagrant/util/vagrant_vhost.sh /usr/local/bin/vhost
|
||||||
sudo chmod guo+x /usr/local/bin/vhost
|
sudo chmod guo+x /usr/local/bin/vhost
|
||||||
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-xenial.dev
|
||||||
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 a2dissite 000-default
|
||||||
sudo service apache2 restart
|
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
|
#Install php
|
||||||
if [ $( lsb_release -c | cut -f 2 ) == "trusty" ]; then
|
echo ">>> Installing PHP7"
|
||||||
echo ">>> Installing PHP5"
|
sudo apt-get install -y php libapache2-mod-php php-cli php-mysql php-curl php-gd php-mbstring php-xml imagemagick php-imagick
|
||||||
sudo apt-get install -y php5 libapache2-mod-php5 php5-cli php5-mysql php5-curl php5-gd
|
sudo systemctl restart apache2
|
||||||
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 php-mbstring
|
|
||||||
sudo apt-get install -y imagemagick
|
|
||||||
sudo apt-get install -y php-imagick
|
|
||||||
sudo systemctl restart apache2
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#Install mysql
|
#Install mysql
|
||||||
|
@ -73,21 +60,17 @@ Q1="GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;"
|
||||||
Q2="FLUSH PRIVILEGES;"
|
Q2="FLUSH PRIVILEGES;"
|
||||||
SQL="${Q1}${Q2}"
|
SQL="${Q1}${Q2}"
|
||||||
$MYSQL -uroot -proot -e "$SQL"
|
$MYSQL -uroot -proot -e "$SQL"
|
||||||
if [ $( lsb_release -c | cut -f 2 ) == "trusty" ]; then
|
# add a separate database user for friendica
|
||||||
service mysql restart
|
$MYSQL -uroot -proot -e "CREATE USER 'friendica'@'localhost' identified by 'friendica';"
|
||||||
elif [ $( lsb_release -c | cut -f 2 ) == "xenial" ]; then
|
$MYSQL -uroot -proot -e "GRANT ALL PRIVILEGES ON friendica.* TO 'friendica'@'localhost';"
|
||||||
systemctl restart mysql
|
$MYSQL -uroot -proot -e "FLUSH PRIVILEGES"
|
||||||
fi
|
systemctl restart mysql
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#configure rudimentary mail server (local delivery only)
|
#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'.
|
#add Friendica accounts for local user accounts, use email address like vagrant@friendica.dev, read the email with 'mail'.
|
||||||
if [ $( lsb_release -c | cut -f 2 ) == "trusty" ]; then
|
debconf-set-selections <<< "postfix postfix/mailname string friendica-xenial.dev"
|
||||||
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'"
|
debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Local Only'"
|
||||||
sudo apt-get install -y postfix mailutils libmailutils-dev
|
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
|
sudo echo -e "friendica1: vagrant\nfriendica2: vagrant\nfriendica3: vagrant\nfriendica4: vagrant\nfriendica5: vagrant" >> /etc/aliases && sudo newaliases
|
||||||
|
@ -104,7 +87,7 @@ echo "create database friendica DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_ge
|
||||||
# import test database
|
# import test database
|
||||||
$MYSQL -uroot -proot friendica < /vagrant/friendica_test_data.sql
|
$MYSQL -uroot -proot friendica < /vagrant/friendica_test_data.sql
|
||||||
|
|
||||||
#create cronjob
|
# create cronjob - activate if you have enough memory in you dev VM
|
||||||
echo "*/10 * * * * cd /vagrant; /usr/bin/php include/poller.php" >> friendicacron
|
echo "*/10 * * * * cd /vagrant; /usr/bin/php include/poller.php" >> friendicacron
|
||||||
sudo crontab friendicacron
|
sudo crontab friendicacron
|
||||||
sudo rm friendicacron
|
sudo rm friendicacron
|
||||||
|
|
Loading…
Reference in a new issue