Commit c5055144 authored by Jan Göttlich's avatar Jan Göttlich

some notes

parents
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>WordpressEmber</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/assets/vendor.css">
<link rel="stylesheet" href="/assets/wordpress-ember.css">
</head>
<body>
<script src="/assets/vendor.js"></script>
<script src="/assets/wordpress-ember.js"></script>
<div id="wordpress-ember"></div>
</body>
</html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
# How to setup Hallonachbarn API
## 1. On mac
### 1.1 Install dependencies
Wen need following packages
```
brew install pkg-config
brew tap homebrew/science
brew install opencv
brew install graphicsmagick
```
### 1.2 The DB and filestrcture setup
Change into your desired working directory and clone the api into it.
Now you need to open a ssh tunnel for mongodb with
```
ssh -fNg -L 27018:127.0.0.1:27017 www-data@192.168.168.40
```
If you need a password please contact an admin.
Now we create a dump from the database via
```
mongodump --port 27018 --db hallonachbarn_cms
```
Please choose another directory and not your working directory, like your `~/Downloads` directory.
Now you run in your directory where the database was dumped
```
mongorestore dump/
```
Now we need a directory for our images. So we create following path in our working directory:
```
./images
```
There we paste all our images with:
```
scp -r www-data@192.168.168.40:/var/www/web/hallo-nachbarn/images ./images
```
If you choose you may make this an development system if you create `./images/original`and copy all the files into it.
### 2.3 Elasticsearch setup and configurarion
Open [this](https://www.elastic.co/de/downloads/past-releases/elasticsearch-2-4-0) link and download the package of your choice. After this is done move extract the package and move the extracted directory next to your applicatin as a sibling. Now open `./elasticsearch-2.4/config/elasticsearch.yml`.
At the end of the document add: `http.port:9201`
Now run elasticsearch with
```
./elasticsearch-2.4/bin/elasticsearch
```
### 2.4 Filling our application with data
So now we need to populate the DB and elastic search with the help of 2 scripts:
```
scripts/populate-media-db.js
```
and
```
scripts/elasticsearch-import
```
Now try to execute `app.js`
\ No newline at end of file
# Magento Api Workflow
## As Anon
* User betritt Mozaikoo
* User bekommt von Mozaikoo ein Token.
* Mozaikoo macht
* POST magento-url/V1/guest-carts/
* Bekommen ein Token von Magento zurück (e621f34c568272d0ba052bff9eae6df6)
* Speichern das Token wie folgt:
* |Mozaikoo Token|Magento Token|Expire Time|
|:------------:|:-----------:|:---------:|
|Token A | Token B | Date + 72h|
* Bei jedem Request wird gecheckt ob Token A noch gültig ist.
Ist die nicht der Fall wird ein neuer Eintrag angelegt und ein neues Token B angelegt
\ No newline at end of file
# My notes
## Ember into a cms
Task: We need to find ways to imbed party of ember js (why not simply use node) into an existing CMS. without an iframe. best way would be our webapp gives a xml to the CMS and the cms renders that shit for himself.
Subroutes have to be genereated with js, because '#'.
Ember has the option to use a hash into the uri.
### Ember into WOrdpress
You can simply load ember into a page with the script tag, but for this we need to cancat ember into one file
\ No newline at end of file
# Ubuntu 16.04 Setup
# 1. Initial setup
Log dich über deine Konsole auf dem Server ein mit ssh root@\<serveraddress>. Er wird dich nun nach einem Passwort fragen. Gebe das Passwort ein damit du nun als ROOT auf deinem Server eingeloggt bist.
## 1.1 User erstellen
Als erstes führen wir als ROOT
```
adduser <username>
```
aus. Nun musst du ein Passwort eingeben. Dies wird das Login Passwort für deinen neuen User. Wenn du das neue Passwort zwei mal eingegeben hast, kommen folgende Informationen, die du mit `Enter` bestätigen kannst.
```
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
```
Nun haben wir einen neuen User erstellt. DIesem User solltest du auch zur `sudo` Gruppe hinzufügen, damit man in Zukunft auch mit diesem User arbeiten kann.
Dies erledigt folgender Befehl:
```
usermod -aG sudo <username>
```
Nachdem dies nun erledigt ist, können wir uns als ROOT ausloggen und auf unserer Heimkonsole
```
ssh <username>@<serveraddress>
```
eingeben. Nun kannst du dein Passwort eingeben und solltest eingeloggt sein.
>Falls du an dieser Stelle nicht eingeloggt bist wende dich bitte an einen Mitarbeiter oder versuche die Schritte nochmals zu wiederholen
## 1.2 SSH authentifizierung durch ssh-key
Keiner kann Passwörter leiden, deswegen bauen wir uns einen Zugang über SSH-Key Erkennung. Dazu erstellen wir in unseren "Home" Verzeichnis den Ordner `.ssh` und legen dort die Datei `authorized_keys` an. Dort fügst du deinen Public SSH-Key ein.
>Wenn du an dieser Stelle nicht weißt was ein SSH Key ist, wie man diesen erstellt und wo man den findet, Frage deinen Vorgesetzten nach einer neuen Aufgabe
Nun kannst du testen ob du dich mit `ssh <username>@<serveraddress>` einloggen kannst ohne ein Passwort zu benutzen.
## 1.3 ROOT und Passwort Login deaktivieren
Jetzt werden wir zusehen das wir den Login durch ROOT verhindern, denn dies kann schnell zur Sicherheitslücke werden.
>In diesem setup werde ich ausschließlich vim als Editor verwenden. Wenn es dir lieber ist einen anderen Editor zu verwenden, wie z.B. nano, kannst du dies machen
Um zu testen ob wir auch ROOT-Rechte haben werden wir diese gleich mal verwenden indem wir die sshd_config bearbeiten. Dies geschieht mit:
```
vim /etc/ssh/sshd_config
```
Nun musst du Sicherstellen das folgende Zeilen in der Datei vorhanden sind. Wenn nicht änder diese.
```
PermitRootLogin no
PasswordAuthentication no
```
## 1.4 Firewall einrichten
Wir loggen erstmal von unserem User auf ROOT um mithilfe von
```
sudo su -
```
Hier muss dein Passwort eingegeben werden. DIes lässt sich nicht ändern.
nachdem du dich nun als ROOT angemeldet hast können wir die eine Simple Firewall installieren.
```
apt-get install ufw
```
Verschiedene Anwendungen können sich in UFW eintragen, wenn du sie installierst. Dies erlaubt es UFW die Anwendungen zu steuern. OpenSSH, die Anwendung mit der wir uns auf den Server verbinden, hat schon einen Eintrag in UFW.
Die Liste kann man sehen wenn folgendes eingibst:
```
sudo ufw app list
```
```
Output:
Available applications:
OpenSSH
```
Nun musst du sicherstellen das die Firewall auch SSH Zugänge zulässt. Ansonsten sperrst du dich aus dem Server aus.
Also gibst du folgendes ein:
```
sudo ufw allow OpenSSH
```
Nun musst du noch noch die Firewall einschalten mit:
```
sudo ufw enable
````
Nun bestätige noch das aktivieren der Firewall mit "y".
Nun schau nach ob SSH noch eingeschaltet ist mit:
```
sudo ufw status
````
```
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
```
Merk dir bitte wenn du weitere Dienste installierst das du die Firewall updaten musst.
# 2 Dienste die der Server braucht
## 2.1 PHP
>PHP wird nur benötigt wenn du auch mit einem PHP-CMS arbeitest, wie z.B. Wordpress. Ansonsten brauchst du es nicht und du kannst direkt mit 2.2 weiter machen.
Für dieses setup benutz ich PHP 7.1. Wenn deine Seite eine andere PHP Version benutzt kann dir [diese Seite](http://google.com) weiterhelfen.
### 2.1.1 Python
Damit wir PHP 7.1 installieren können, müssen wir zum `apt-get` Quellen hinzufügen. Damit dies funktioniert brauche ich Python. Dies installier ich mit:
```
sudo apt-get install python-software-properties
sudo apt-get install software-properties-common
```
### 2.1.2 PPA hinzufügen
Nun fügen wir das PPA(Personal Package Archive) hinzu und updaten `apt-get`:
```
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
```
### 2.1.3 Was ist das richtige PHP
Es gibt viele verschiedene PHP Packete für jede Version. Diese kannst du die anzeigen lassen indem du:
```
apt-cache pkgnames | grep php7.1
```
eingibst.
Nun solltest du folgendes erhalten:
```
php7.1-xml
php7.1-xsl
php7.1-mbstring
php7.1-readline
php7.1-zip
php7.1-mysql
php7.1-phpdbg
php7.1-interbase
php7.1-sybase
php7.1
php7.1-sqlite3
php7.1-tidy
php7.1-opcache
php7.1-pspell
php7.1-json
php7.1-xmlrpc
php7.1-curl
php7.1-ldap
php7.1-bz2
php7.1-cgi
php7.1-imap
php7.1-cli
php7.1-dba
php7.1-dev
php7.1-intl
php7.1-fpm
php7.1-recode
php7.1-odbc
php7.1-gmp
php7.1-common
php7.1-pgsql
php7.1-bcmath
php7.1-snmp
php7.1-soap
php7.1-mcrypt
php7.1-gd
php7.1-enchant
libapache2-mod-php7.1
libphp7.1-embed
```
Viel PHP kram, einiges sind Module einiges sind vollständige PHP versionen . Wir installieren an dieser stelle erstmal nichts, denn wir installieren erst wenn wir etwas bruchen. Da wir jetzt PHP noch nirgends einbinden müssen oder benutzen brauchen wir PHP auch noch nciht.
## 2.2 Webserver
Bevor irgendwas auf unserem Server erreichbar ist brauchen wir einen Webserver. Wir nehmen benutzen Nginx. Also installieren wir Nginx mit:
```
sudo apt-get install nginx
````
>Unsere Wahl des Webservers viel auf nginx. Welchen du nimmst sei dir überlassen, nur musst du beachten das eventuell einige teile des Setups dann nicht auf dich zutreffen
Wir wollen nun testen ob nginx funktioniert. Dazu erstellen wir einen Ordner:
```
mkdir /var/ww/playground/
```
Nun müssen wir auch eine `index.html`.
```
vim /var/www/playground/index.html
```
```html
<html>
<body>
<p>Es Geht!</p>
</body>
</html>
```
Nun müssen wir unserem Nginx configureren, damit er auch erkennt das wir
nginx config
```
server {
listen 80;
server_name your-url.com;
root /var/www/playground/;
index index.html index.htm;
# log files
access_log /var/log/nginx/ember.ene-mene-muh.de-access.log;
error_log /var/log/nginx/ember.ene-mene-muh.de/error.log;
# ssl files
# ssl on;i
# keepalive_timeout 60;
# proxy buffers
proxy_buffers 16 64k;
proxy_buffer_size 128k;
## default location ##
location /test {
include /etc/nginx/mime.types;
try_files $uri $uri/ /index.html?/$request_uri;
}
}
```
link to enable
```
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
```
php-fpm config
/etc/php/7.1/fpm/pool.d/file.conf
```
[playground.regiostart.com]
listen = /var/run/php7.1-fpm/php7.1-fpm-playground.sock
listen.backlog = -1
listen.owner = nginx
listen.group = www-data
listen.mode=0660
; Unix user/group of processes
user = (THE USERNAME OF THE USER THAT OWNS THE SITE FILES)
group = www-data
; Choose how the process manager will control the number of child processes.
pm = dynamic
pm.max_children = 75
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500
; Pass environment variables
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
; host-specific php ini settings here
; php_admin_value[open_basedir] = /var/www/DOMAINNAME/htdocs:/tmp
```
## HTTP Auth in nginx
```
sudo apt-get install apache2-utils
```
```
htpasswd -c /etc/nginx/.htpasswd exampleuser
```
```
server {
listen portnumber;
server_name ip_address;
location / {
root /var/www/mywebsite.com;
index index.html index.htm;
auth_basic "Restricted"; #For Basic Auth
auth_basic_user_file /etc/nginx/.htpasswd; #For Basic Auth
}
}
```
## MySQL
```
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mysql-server-5.7
```
\ No newline at end of file
# My Notes
## Suggestions
### Categories
When you want to create a New category I was wondering how you make a new Subkategory, because there was no Form for it.
Maybe add one for convenience.
### Article
## Bugs
### Crawler
Ich clicke auf "Neuen Crawler hinzufügen"
```
ember.debug.js:18023 Nothing handled the action 'addItem'. If you did handle the action, this error can be caused by returning true from an action handler in a controller, causing the action to bubble.
Error
at Router.triggerEvent (http://localhost:4200/assets/vendor.js:44927:13)
at trigger (http://localhost:4200/assets/vendor.js:72255:12)
at Router.trigger (http://localhost:4200/assets/vendor.js:73855:5)
at Class.send (http://localhost:4200/assets/vendor.js:44096:40)
at Class.send (http://localhost:4200/assets/vendor.js:48108:21)
at http://localhost:4200/assets/vendor.js:27754:25
at Object.flaggedInstrument (http://localhost:4200/assets/vendor.js:34657:14)
at http://localhost:4200/assets/vendor.js:27753:23
at Backburner.run (http://localhost:4200/assets/vendor.js:16497:23)
at Object.run (http://localhost:4200/assets/vendor.js:38495:27)
```
# 11.07.2017
## JBill Server
* Versucht WP zu installieren, ging nicht kein php
* Php installiert eigenes socket in php5-fpm gebaut, anschließend nginx configuriert das alles funktioniert
### Probem: 403 Fobidden für index.php
* habe eine neue nginx [config](https://github.com/daylerees/laravel-website-configs/blob/6db24701073dbe34d2d58fea3a3c6b3c0cd5685b/nginx.conf) gefunden
* habe wordpress installation gestartet
* keine mysql extension installiert als standart von php5
* wordpress installiert am ende sind 2 Mysql errors enstanden
### Problem: Wordpress 14 ist nicht kompatibel mit php5.x
* hat sich herausgestellt das Wordpress 14 nur mit php7 funktioniert.
* habe jetzt neue sources zu apt-get hinzugefügt
* php7.1-fpm installiert
* fpm config hinzugefügt für ember-worpress
* fpm version in nginx/sites-avaiable/ember-wordpress geändert
* wordpress installiert, immernoch die gleichen Fehler
* Worpress geht nicht mit Mysql 5.5
* Mysql 5.5 auf 5.6 upgraden
* htpasswd user erstellt und encrypted passwd für authentication
### Problem: Ember app erstellen und als subdomain in nginx zur verfügung stellen
* nginx config erstellt für ember-app
* logging bereitgestellt
* erfahren das ich ember reverse proxyn muss
* ember auf den server geladen config überarbeitet da die erste nicht ging ember app gestartet
* ember mit neuen configs gebaut und deployed
* alles läuft
### Problem: Wordpress braucht eine spezielle configuration für Permalinks
* die nötigen nginx configs rausgesucht und versucht zu verstehen was wordpress mit nginx machen möchte
* habe viele verschiedene nginx configurationen getestet von der keine zur zufriedenheit funktioniert hat habe dann einen hack von 2011 gefunden und geschaut ob der immernoch funktioniert.
* `remove_filter('template_redirect', 'redirect_canonical');` in function.php des themes hat wunder gewirkt
### Problem: Ember versucht HTML zu laden was es nicht soll
* nachdem nun die ember app und wordpress funktionieren kommen wir zum eigentlichen problem. wie sagen wir ember es soll in WP funcktionieren
* nginx vermittelt nicht die richtigen dateien an den client
* es kommen nur HTML files zurück und kein js
* problem gelößt da die ember assests nicht von der rootUrl variable beeinflusst werden
### Problem: Wordpress bietet mir nurnoch Downloads von allen seiten an
* hab mit nginx rumspielt und muss irgendwo irgendwas kaputt gemacht haben ohne es gemerkt zu haben I think some fixng is needed
* meine herangehendsweise wird sein die configs von der wordpress nginx hilfe auf meinen use case zu übertargen(mal wieder)
# 12.07.2017
## Ember-Wordpress croos site app
### Ember Webapp
* neue routen erstellen damit man die url generierung unter dem hash testen kann
* hab mehrere routen erstellt und di emit testtext gefüllt
### MetaTag
* die ember configs wurden aus mir unerkenntlichen gründen wieder in dem meta tag gespeichert.
* in der envoirment.js koann es geändert werden, hat aber nicht funktioniert
* in der app js kann es auch geändert werden, nur hat auch dies leider nicht funktioniert
* also habe ich es hart in der ember-cli-build.js geändert nun hat es funktioniert
routing über das hash funktioniert einwandfrei
### Problem: Bilder
* Bilder können leider nicht angezeigt werden
* ich habe versucht einen absoluten Pfad in der ember ap zu benutzen nur sah es leider wie folgt aus
* http://goettlich.ene-mene-muh.de/ember.ene-mene-muh.de/ember-welcome-page/images/construction.png
* sieht falsch aus ist auch falsch
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment