PeeJayz.de|How To's

Breadcrump: Development > How To's

Submenu for navigation on the (parent)page:
  • github ssh-keys, auch für mehrere Accounts
  • Plenty checkout
  • Virtualbox Update
  • Teilstring in Dateinamen ersetzen mit rename
  • Virtualhost in Apache2
  • Symfony 4 - das erste Mal
  • github clone vs. pull
  • VirtualBox Host-Only-Adaper
  • Terminal MySQL User/Datenbank anlegen/löschen
  • github ssh-keys, auch für mehrere Accounts

    Bei z.B. Cinnamon übernimmt der ssh-agent die keys unter ~/.ssh/ automatisch. Das verhindert jedoch den Zugriff aus dem Dateimanager (Nemo) heraus von SFTP-Benutzern auf SFTP Server. Deshalb die keys an anderer Stelle speichern z.B. in ~/.ssh/git/

    # einen extra Ordner für die neuen keys anlegen
    mkdir ~/.ssh/git
    
    # keys erzeugen und in neuem Ordner speichern
    ssh-keygen -t rsa -b 4096 -C "test@example.com"
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/user/.ssh/id_rsa): /home/user/.ssh/git/account-one-git_id_rsa
    
    # public key ausgeben und bei github hinterlegen
    # dort auch gleich repository für einen Test anlegen, z.B. keytest
    cat ~/.ssh/git/account-one-git_id_rsa.pub
    
    # ssh config bearbeiten und host mit Pfad zum IdentityFile anlegen
    # HostName und User bleiben immer gleich
    nano .ssh/config
    
    Host account-one-git
            HostName github.com
            User git
            IdentityFile ~/.ssh/git/account-one-git_id_rsa
    
    # ssh Aufruf testen
    ssh -T account-one-git
    
    # neues lokales repository erstellen
    cd Schreibtisch
    mkdir test
    cd test
    git init
    git config user.email "you@example.com"
    git config user.name "Your Name"
    touch test.txt
    git add *
    git commit -m "first commit"
    

    beim Hinzufügen der remote Adresse die url austauschen, also statt

    git@github.com:githubname/keytest.git

    git@account-one-git:githubname/keytest.git

    # remote adresse hinzufügen
    git remote add origin git@account-one-git:githubname/keytest.git
    # pushen
    git push -u origin master
    

    mit weiteren Accounts genauso verfahren und Namen anpassen

    top

    Plenty checkout

    {% if ( $CustomerID ) { Link_Checkout(3); } else { Link_Checkout(2); } %}
    

    ersetzen durch
    $_check.$_backlink
    

    und darüber hinzufügen
    {% if( $CustomerID ) %}
    	{% $_check = Link_Checkout(3); %}
    	{% $_backlink = ''; %}
    {% else %}
    	{% $_check = Link_Checkout(2); %}
    	{% $_backlink = '?backlink='; %}
    	{% if $Lang !== 'de' %}
    	  {% $_backlink = $_backlink . '/' . $Lang; %}
    	{% endif %}
    	{% $_backlink .= '/checkout'; %}
    {% endif %}
    

    gilt für:
    • Artikel -> Kategorien -> (Bestellen) Warenkorb, dort in der Beschreibung 1
    • CMS -> Webdesign -> Layout -> ItemView -> ItemViewBasketPreviewList
    • CMS -> Webdesign -> Layout -> ItemView -> ItemViewItemToBasketConfirmationOverlay

    • mit Webdesign -> links den Mandanten auswählen -> Einstellungen -> Mandanten -> z.B. Standard -> Bestellvorgang -> 3. Bestellschritt von BESTELLEN Kasse auf neu angelegten checkout ändern
    • Mit Webdesign -> links den Mandanten auswählen -> Einstellungen -> Mandanten -> z.B. Standard -> Bestellvorgang -> 2. Bestellschritt von KONTO Anmeldung auf neu angelegten login ändern, falls nötig (nicht bei B2B)

    • ggf. restliche Routen anpassen / übertragen (gtc/privacy-policy u.s.w.)

    top

    Virtualbox Update

    Virtualbox sagt beim Start bescheid, daß neue Version heruntergeladen werden kann => runterladen => in's Download-Verzeichnis wechseln

    VBoxManage -version
    # Version, falls nötig, ersetzen
    sudo apt-get remove virtualbox-6.0
    sudo apt-get update
    sudo dpkg -i virtualbox-6.0_XXXXXXXXXXXXXX.deb
    # oder welche Version auch immer...
    

    top

    Teilstring in Dateinamen ersetzen mit rename

    • unpassender_dateiname.jpg
    • noch_ein_unpassender_dateiname.jpg
    # -n: noaction - nur testen nichts ändern
    rename -n 's/alt/neu/g' *
    # 's' für string und 'g' für global: nicht nur den ersten Treffer, sondern ALLE Treffer im Dateinamen
    # konkret:
    rename 's/unpassender_/treffender_/' *.jpg
    
    • treffender_dateiname.jpg
    • noch_ein_treffender_dateiname.jpg

    top

    Virtualhost in Apache2

    • alle aktiven virtualhosts anzeigen
    ls /etc/apache2/sites-enabled
    • lege einen Ordner für die domain an
    • passe die Besitzrechte an
    • passe die Lese- und Schreibrechte an
    • lege in dem neuen Ordner eine index-Datei an
    sudo mkdir /var/www/html/example.local
    sudo chown $USER:$USER /var/www/html/example.local
    sudo chmod -R 755 /var/www/html/example.local
    nano /var/www/html/example.local/index.php
    {php "Example.local is working!"; php}
    
    • kopiere die Standard-Konfigurationsdatei in /etc/apache2/sites-available/
    cd /etc/apache2/sites-available
    cp 000-default.conf example.conf
    

    Beachte, daß .dev und .foo nicht mehr funktionieren, da diese wohl von google aufgekauft wurden

    • passe die example.conf an, wichtig ist hier eigentlich nur ServerName example.local
    {VirtualHost *:80}
    
            ...
    
    	# However, you must set it for any further virtual host explicitly.
    	#ServerName www.example.com
    
    	ServerAdmin webmaster@localhost
    	ServerName example.local
    	ServerAlias www.example.local
    	DocumentRoot /var/www/html/example.local
    
            ...
    
            weitere Optionen...
    
    {/VirtualHost}
    
    • dann die Konfigurationsdatei aktivieren und den Apache neu laden
    sudo a2ensite example.conf
    sudo systemctl reload apache2
    
    • ggf. prüfen mit
    ls /etc/apache2/sites-enabled
    • auf dem client die /etc/hosts anpassen
    sudo nano /etc/hosts
    192.168.1.88        example.local
    
    • deaktivieren wäre
    sudo a2dissite example.conf
    sudo systemctl reload apache2
    
    • bei Änderungen an der Datei genügt ein
    sudo systemctl reload apache2

    top

    Symfony 4 - das erste Mal

    Voraussetzungen:

    • Apache
    • Virtualhost (symfony.local)
    • Updates und Upgrades

    Server vorbereiten:

    mkdir /var/www/html/symfony.local
    chown $USER:$USER /var/www/html/symfony.local
    chmod -R 755 /var/www/html/symfony.local
    cd /var/www/html/symfony.local
    nano index.php {% write some PHP text %}
    

    Composer im home-Verzeichnis installieren

    cd ~

    Micro-App anlegen

    cd /var/www/html/symfony.local
    composer create-project symfony/skeleton my_first_symfony
    cd my_first_symfony
    

    composer apache-pack (erstellt die notwendige .htacccess im public-Ordner)

    composer require symfony/apache-pack

    composer annotations

    composer require annotations

    Controller anlegen im Projekt unter

    my_first_symfony/src/Controller/ArticleController.php

    Inhalt ArticleController.php

        {% PHP
    
    namespace App\Controller;
    
    use Symfony\Component\Routing\Annotation\Route;
    use Symfony\Component\HttpFoundation\Response;
    
    
    class ArticleController
    {
        /**
         * @Route("/")
         *
         */
    
        public function index(){
            return new Response("index-seite");
        }
    
        /**
         * @Route("/show")
         *
         */
    
        public function foo(){
            return new Response("show-seite");
        }
    
        /**
         * @Route("/show/ja-is-klar")
         */
    
        public function bla(){
            return new Response("show/ja-is-klar-seite");
        }
    
        /**
         * @Route("/show/{slug}")
         */
    
        public function blub($slug){
            return new Response(sprintf(
                "der Part nach dem slash hinter show: %s", $slug
            ));
        }
    
        /**
         * @Route("/show/{id}", methods={"GET","POST"})
         *
         */
    
        public function show($id){
            return new Response($id);
        }
    }
    

    top

    github clone vs. pull

    verwende clone, wenn das Verzeichnis lokal noch nicht existiert oder du einen sauberen Clon des Repositoys benötigst, beinhaltet auch gleich den den Remote-Pfad (origin)

    git clone benutzername@host:/pfad/zum/repositoryName.git
    

    erzeugt im aktuellen Verzeichnis das repositoryName, sonst einfach in das Verzeichnis repositoryName wechseln und dort pullen

    Für einen Upload bearbeiteter Dateien müssen die Credentials für das Repository genommen werden!

    git init nicht nötig

    git config user.email "test@myexample.com"
    git config user.name "myName"
    

    danach das übliche

    git push -u origin master
    

    top

    VirtualBox Host-Only-Adaper

    VirtualBox unter Cinnamon: Datei->Host-Only Netzwerk-Manager / unter LXDE: Datei->Einstellungen->Netwzerk->Host-only Netzwerk Tab

    Adapter-Einstellungen und DHCP-Einstellungen vornehmen, DHCP muss offenbar aktiviert sein

    In der VM feste IP vergeben

    Bilder

    top

    Terminal MySQL User/Datenbank anlegen/löschen

    als root anmelden

    sudo su

    an Datenbank anmelden

    mysql

    alle DB Benutzer anzeigen lassen

        mysql> SELECT user from mysql.user;
        +------------------+
        | user             |
        +------------------+
        | debian-sys-maint |
        | mysql.session    |
        | mysql.sys        |
        | testuser         |
        | root             |
        +------------------+
        5 rows in set (0.00 sec)
    

    User löschen

        DROP USER 'testuser'@'localhost';
    

    User anlegen

        mysql> CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'YOUR_PASSWORD_HERE';
        Query OK, 0 rows affected (0.00 sec)
    

    alle Datenbanken anzeigen lassen

        mysql> SHOW DATABASES;
        +--------------------+
        | Database           |
        +--------------------+
        | information_schema |
        | mysql              |
        | performance_schema |
        | sys                |
        | mytestdb           |
        +--------------------+
        5 rows in set (0.04 sec)
    

    Datenbank löschen

        mysql> DROP DATABASE mytestdb;
        Query OK, 249 rows affected (6.33 sec)
    

    Datenbank anlegen

        mysql> CREATE DATABASE mytestdb;
        Query OK, 1 row affected (0.05 sec)
    

    Benutzer zur Datenbank mytestdb mit PRIVILEGES ALL hinzufügen

        mysql> GRANT ALL PRIVILEGES ON mytestdb.* TO 'testuser'@'localhost';
        Query OK, 0 rows affected (0.00 sec)
    

    Benutzerrechte ausführen

        mysql> flush privileges;
        Query OK, 0 rows affected (0.01 sec)
    

    root abmelden, anmelden als USER testen

        exit;
        
        mysql -h'localhost' -u'testuser' -p
        Enter password:
        Welcome to the MySQL monitor.  Commands end with ; or \g.
        Your MySQL connection id is ...
        Server version: ...
    
        Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    
        Oracle is a registered trademark of Oracle Corporation and/or its
        affiliates. Other names may be trademarks of their respective
        owners.
    
        Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
        mysql>
    

    top

    No wordpress needed, just made with the brilliant PROCESSWIRE CMS

    Diese Webseite ist noch im Aufbau!