Merge pull request #3757 from silke/develop

Develop
This commit is contained in:
Tobias Diekershoff 2017-10-05 07:55:00 +00:00 committed by GitHub
commit 2bcd5b3243
7 changed files with 521 additions and 408 deletions

56
Vagrantfile vendored
View file

@ -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.

View file

@ -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:

View file

@ -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

View file

@ -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

View file

@ -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');

View file

@ -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