Ubuntu – kostka – php 7

Instalaci zvolit v angličtině, lokace Czech, klavesnice English (US). Použít LVM na celý disk.

  • Základní nástroje
      • sudo apt update
      • sudo apt upgrade
      • sudo apt install openssh-server
      • sudo apt install mc
      • sudo apt install language-pack-cs
      • ssh-keygen
    • do souboru ~/.ssh/ authorized_keys dát správné přístupy
  • Barevny shell
    • nano ~/.bashrc
    • odkomentovat řádek #force_color_prompt=yes
    • .bash_profile pro login shel
    • nano ~/.bash_profile
    • přidat řádky
      • if [ -f ~/.bashrc ]; then
          source ~/.bashrc
        fi
  • Historie v shellu (místo std. CTRL-R)
    • sudo add-apt-repository ppa:ultradvorka/ppa
    • sudo apt-get update
    • sudo apt-get install hstr
    • hstr --show-configuration >> ~/.bashrc
    • export HSTR_CONFIG=hicolor
  • občas zazlobí práva na adresář /var/cache/man (apt to hlásí při instalaci balíčku)
    • sudo chown -R man: /var/cache/man/
    • sudo chmod -R 775 /var/cache/man/
  • instalace php 7.4 (apache2 se nainstaluje automaticky)
    • sudo add-apt-repository ppa:ondrej/php
    • sudo add-apt-repository ppa:ondrej/apache2
    • sudo apt-get update
    • sudo apt -y install php7.4
  • a potřebných modulů
    • sudo apt -y install php7.4-mbstring php7.4-dev php7.4-xml php7.4-ldap php7.4-zip php7.4-intl
  • FTP server
    • sudo apt -y install vsftpd
    • upravit soubor /etc/vsftpd.conf
      • sudo nano /etc/vsftpd.conf
      • local_enable=YES
      • write_enable=YES
      • local_umask=022
      • chroot_local_user=NO
    • nastavit práva
      • sudo usermod -a -G www-data tomasn
      • sudo chown -R www-data:www-data /var/www/html/
      • sudo chmod -R 775 /var/www/html/
    • sudo systemctl restart vsftpd
    • případně zkontrolovat stav
      • sudo systemctl status vsftpd
  • Sendmail (nutný pro nativní php mail)
    • sudo apt-get -y install sendmail-bin
    • sudo apt-get install php-mail
    • sudo /usr/sbin/sendmailconfig
    • sudo service apache2 restart
  • Samba client
    • sudo apt -y install cifs-utils
    • AutoFS
        • sudo apt -y install autofs
        • vytvořit soubor /etc/auto.auth s obsahem
          • username=xxxx
          • password=yyyy
    • do souboru editace auto.master přidat na konec řádek (a ostatní zakomentovat)

      • /mnt /etc/auto.server --timeout=6000 --ghost
    • a do souboru /etc/auto.server přidat sdílení
      • stitky -fstype=cifs,rw,vers=1.0,credentials=/etc/auto.auth,uid=33,gid=33,iocharset=utf8,rw,sec=ntlm ://192.168.169.202/storage
      • archiv -fstype=cifs,rw,vers=1.0,credentials=/etc/auto.auth,uid=33,gid=33,iocharset=utf8,rw,sec=ntlm ://192.168.169.250/docs
    • sudo systemctl restart autofs
    • test zda vše funguje
      • ls /mnt/smb/zal1
  • Instalace mysql databáze
    • sudo apt -y install mysql-server mysql-client mysql-utilities
    • sudo mysql_secure_installation
    • přestože jsem korektně zadal heslo pro uživatele root, tak jsem se nemohl přihlásit. Řešení jsem nalezl na askubuntu.com
      • sudo mysql -u root
      • ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxx';
      • sudo service mysql restart
    • nainstalovat standardním postupem phpmyadmin
      • sudo apt -y install phpmyadmin
    • a podle tohoto návodu provést upgrade na verzi 5.02
      • sudo mv /usr/share/phpmyadmin/ /usr/share/phpmyadmin.bak
      • sudo mkdir /usr/share/phpmyadmin/
      • cd /usr/share/phpmyadmin/
      • stáhnout novou verzi
        • sudo wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.tar.gz
        • sudo tar xzf phpMyAdmin-5.0.2-all-languages.tar.gz
        • sudo mv phpMyAdmin-5.0.2-all-languages/* /usr/share/phpmyadmin
      • nyní by již měl jít spustit, bude ale hlásit problém s tmp
        • sudo nano /usr/share/phpmyadmin/libraries/vendor_config.php
        • define('TEMP_DIR', '/var/lib/phpmyadmin/tmp/');
      • a taky blowfish_secret (v tom samém souboru)
        • define('CONFIG_DIR', '/etc/phpmyadmin/');
      • nakonec uklidit
        • sudo rm /usr/share/phpmyadmin/phpMyAdmin-5.0.2-all-languages.tar.gz
        • sudo rm -rf /usr/share/phpmyadmin/phpMyAdmin-5.0.2-all-languages
        • sudo rm -rf /usr/share/phpmyadmin.bak
      • v případě hlášky “The secret passphrase in configuration (blowfish_secret) is too short.”
        • sudo nano /var/lib/phpmyadmin/blowfish_secret.inc.php
      • vygenerovat (například zde) novou frázi a tu zapsat do souboru

        • $cfg['blowfish_secret'] = '32_char_random_phrase_here';
  • nová verze mysql má posílenu kompatibilitu se standardem SQL, což ale zlobí, proto je potřeba vypnout nové direktivy v souboru /etc/mysql/mysql.cnf
    • [mysqld]
      sql-mode=""
  • Více na stackoverflow.com
  • Pro zlepšení výkonosti je dobré doladit cache (např tady nebo tady)
    • query_cache_type=1
      query_cache_size = 10M
      query_cache_limit=256K
  • Tiskový systém CUPS
    • sudo apt -y install cups
    • záloha originální konfigurace (není nutná)

      • sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.original
      • sudo chmod a-w /etc/cups/cupsd.conf.original
    • přidat uživatele do skupiny administratoru
      • sudo usermod -aG lpadmin tomasn
    • povolit vzdálenou administraci
      • sudo cupsctl --remote-admin
    • v souboru
      • sudo nano /etc/cups/cupsd.conf
    • přidat do všech sekcí <Location> řádek
      • Allow from 192.168.*.*
    • restartovat cups
      • sudo systemctl restart cups.service
  • Microsoft MSSQL driver
  • Nejprve je potřeba nainstalovat ODBC driver (dle tohoto odkazu)
    • sudo su
    • curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
    • curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
    • exit
    • sudo apt update
    • sudo ACCEPT_EULA=Y apt -y install msodbcsql17
    • sudo ACCEPT_EULA=Y apt -y install mssql-tools
    • echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
    • echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
    • source ~/.bashrc
    • sudo apt -y install unixodbc-dev
  • pak samotné ovladače pro php (viz tento postup)
    • sudo pecl install sqlsrv
    • sudo pecl install pdo_sqlsrv
    • sudo su
    • printf "; priority=20nextension=sqlsrv.son" > /etc/php/7.4/mods-available/sqlsrv.ini
    • printf "; priority=30nextension=pdo_sqlsrv.son" > /etc/php/7.4/mods-available/pdo_sqlsrv.ini
    • exit
    • sudo phpenmod -v 7.4 sqlsrv pdo_sqlsrv
  • Apache
    • sudo su
    • a2dismod mpm_event
    • a2enmod mpm_prefork
    • a2enmod php7.4
    • exit
    • root adresář webového serveru je v /var/www/html, konfigurační soubory je v adresáří /etc/apache2/sites-enabled
    • sudo nano /etc/php/7.4/apache2/php.ini
      • max_execution_time = 300
    • sudo service apache2 restart
  • Kontrola instalace driveru
    • php --ri sqlsrv
    • php --ri pdo_sqlsrv
    • sqlcmd -S [serverName] -d [dbName] -U [username] -P [password]
    • sqlcmd -S 192.168.169.16,49315 -d TRTNAV80 -U xxxx
    • pro zjištění, na jakém remote portu server poslouchá, je dobrý select:
    • SELECT * FROM sys.dm_exec_connections AS dec WHERE dec.session_id = @@SPID;
  • XDEBUG – na kostku 21 se neinstaluje
    • sudo pecl install xdebug
    • do souboru /etc/php/x.x/apache2/php.ini přidat
      • zend_extension=/usr/lib/php/20190902/xdebug.so (podle použité verze)
      • [XDebug]
        • xdebug.remote_log="/var/log/xdebug.log"
        • xdebug.remote_enable=1
        • xdebug.remote_autostart=1
        • xdebug.remote_connect_back = 1
        • xdebug.remote_port=9000
    • a restartovat apache
      • sudo service apache2 restart
  • změna IP adresy serveru
    • sudo nano /etc/netplan/01-netcfg.yaml
  • a restartovat síť
    • sudo netplan apply
  • v případě problémů
    • sudo netplan --debug apply

Tískárny

  • Ovladač tiskárny Godex (stará verze, nepoužívat – viz dále)
    • sudo apt install libcupsimage2-dev
  • deaktivovat AppArmor
    • sudo apt install apparmor-utils
    • sudo aa-complain /usr/sbin/cupsd (pro běh upravit soubor /etc/apparmor.d/usr.bin.cupsd
  • rozbalit distribuční soubor
    • tar xzf rastertoezpl-x.x.tar.gz
  • zkompilovat filtr
    • cd rastertoezpl-x.x
    • sh ./configure
    • sudo aclocal
    • sudo automake
    • sudo make
    • sudo make install
  • Nová metoda instalace již zkompilovaného driveru
    • ze stránek Godexu stáhnout instalační soubor
    • zkopírovat ho na server a pomocí scriptu
      • install-driver
    • nainstalovat potřebný ovladač. Poté již můžeme pokračovat instalací tiskárny do CUPS
  • přidat tiskárnu godex
    • adresa socket://192.168.169.108:9100/?waiteof=false
    • typ GODEX ZX1300i
  • ostatní nechat default
    • vyzkoušet příkazem lp -d godex -o PageSize=Custom.212x107 -o gdxMode=cutpage -o gdxOffset=37 -o cupsDarkness=8 /var/www/html/vs.pdf
  • Instalace HP tiskaren
      • neosvědčil se mi následující postu, tiskárna byla pomalá, po kždých dvou papírech se zasekla
        • ze stránek HP stáhnout aktualní instalační soubor hplip (hplip-3.19.11.run) a na serveru ho spustit
        • tiskárna „stitky“ je pripojena k portu hp:/net/HP_LaserJet_P3010_Series?ip=192.168.169.76
        • používám tento ppd soubor, který jsem dal i do gitu
        • něco k problému pomalého tisku je tady: askubuntu.com
      • nakonec jsem použil standardní hplip z repositáře Ubuntu.
        • sudo apt install hplip hplip-data hplip-doc hpijs-ppds libsane-hpaio printer-driver-hpcups printer-driver-hpijs
      • přes webové rozhraní naintalovat tiskárnu
        • socket://192.168.169.76:9100
      • použí ovladač
        • HP LaserJet 3015 hpijs pcl3, 3.17.10
  • instalace koostky
    • v html adresáři na serveru vytvořit adresář attain a zkopirovat do něj soubory ze zálohy attain.tar.gz
    • rozbalit soubor attain.sql.gz a importovat ho do mysql
      • mysql -u root -p < attain.sql

Popis záložních souborů na jednotlivých virtuálních serverech

  • vs0-104
    • vzdump-qemu-104-2020_04_22-08_22_30.wma.lzo – instalace systému včetně systému CUPS ale bez ovladačů tiskáren GODEX a HPLIP