Ubuntu 20.04 LAMP linux apache php 5.6/7.0/7.1/7.2/7.3/7.4/8.0/8.1 (php-fpm) mysql + phpmyadmin

edited January 2022 in Web serveriai
LAMP linux apache (su http2 palaikymu) php 5.6/7.0/7.1/7.2/7.3/7.4/8.0/8.1 (php-fpm) mariadb + phpmyadmin + brotli ubuntu 20.04 aplinkoje diegimas.
PATARIAMA diegiant LAMP jeigu slaptažodyje naudojate skaičius - juos vesti naudojant viršutinę klaviatūros dalį ir įsitikinti, kad NĖRA nustatyta kokia nors kalba, kuri skaičius pakeičia kitomis reikšmėmis (pvz Lietuvių).
Mysql duomenų bazę galėsite valdyti per phpMyAdmin kurį pasieksite per šią nuorodą: http://serverio_ip/phpmyadmin (serverio_ip pakeiskite į Jūsų VPS serverio IP adresą).
Normaliam veikimui LAMP reikalauja bent 1 GB laisvos RAM atminties.
Pasijungus per putty (Kaip pasijungti per putty) vedame šias komandas kad atnaujinti visus esamus paketus (Jeigu serveris turi jau įdiegtų paketų ir tai nėra naujai ruošiamas serveris vykdant apt upgrade bei apt dist-upgrade komandas įsitikinkite ar po šių komandų Jūsų jau įdiegti servisai veiks):

apt update
apt upgrade
apt dist-upgrade

Kadangi standartiškai Ubuntu 20.04 palaiko tik php 7.4 diegiame du papildomus repozitorius (Daugiau informacijos kas yra Repozitoriai bei kaip juos tvarkyti galima rasti čia), kad galėtumėme pasirinkti kokią php versiją norime įdiegti bei veiktu naujas http2 protokolas

apt install software-properties-common
add-apt-repository ppa:ondrej/php
add-apt-repository ppa:ondrej/apache2
add-apt-repository ppa:phpmyadmin/ppa
apt update
apt upgrade

Pasirinkite vieną versiją
Diegiame LAMP su php 5.6 bei phpmyadmin

apt install apache2 mariadb-server php5.6-fpm php5.6-gd php5.6-curl php5.6-mbstring php5.6-xml php5.6-mysql php5.6-cli php5.6-common php5.6-json php5.6-readline phpmyadmin brotli  libbrotli-dev libapache2-mod-fcgid libapache2-mod-php5.6

Diegiame LAMP su php 7.0 bei phpmyadmin

apt install apache2 mariadb-server php7.0-fpm php7.0-gd php7.0-curl php7.0-mbstring php7.0-xml php7.0-mysql php7.0-cli php7.0-common php7.0-json php7.0-readline phpmyadmin brotli libbrotli-dev libapache2-mod-fcgid libapache2-mod-php7.0

Diegiame LAMP su php 7.1 bei phpmyadmin

apt install apache2 mariadb-server php7.1-fpm php7.1-gd php7.1-curl php7.1-mbstring php7.1-xml php7.1-mysql php7.1-cli php7.1-common php7.1-json php7.1-readline phpmyadmin brotli libbrotli-dev libapache2-mod-fcgid libapache2-mod-php7.1

Diegiame LAMP su php 7.2 bei phpmyadmin

apt install apache2 mariadb-server php7.2-fpm php7.2-gd php7.2-curl php7.2-mbstring php7.2-xml php7.2-mysql php7.2-cli php7.2-common php7.2-json php7.2-readline phpmyadmin brotli libbrotli-dev libapache2-mod-fcgid libapache2-mod-php7.2

Diegiame LAMP su php 7.3 bei phpmyadmin

apt install apache2 mariadb-server php7.3-fpm php7.3-gd php7.3-curl php7.3-mbstring php7.3-xml php7.3-mysql php7.3-cli php7.3-common php7.3-json php7.3-readline phpmyadmin brotli libbrotli-dev libapache2-mod-fcgid libapache2-mod-php7.3

Diegiame LAMP su php 7.4 bei phpmyadmin

apt install apache2 mariadb-server php7.4-fpm php7.4-gd php7.4-curl php7.4-mbstring php7.4-xml php7.4-mysql php7.4-cli php7.4-common php7.4-json php7.4-readline phpmyadmin brotli libbrotli-dev libapache2-mod-fcgid libapache2-mod-php7.4

Diegiame LAMP su php 8.0 bei phpmyadmin

apt install apache2 mariadb-server php8.0-fpm php8.0-gd php8.0-curl php8.0-mbstring php8.0-xml php8.0-mysql php8.0-cli php8.0-common php8.0-bcmath php8.1-mcrypt php8.0-json php8.0-readline phpmyadmin brotli libbrotli-dev libapache2-mod-fcgid libapache2-mod-php8.0

Diegiame LAMP su php 8.1 bei phpmyadmin

apt install apache2 mariadb-server php8.1-fpm php8.1-gd php8.1-curl php8.1-mbstring php8.1-xml php8.1-mysql php8.1-cli php8.1-common php8.1-bcmath php8.1-mcrypt php8.1-readline phpmyadmin brotli libbrotli-dev libapache2-mod-fcgid libapache2-mod-php8.1

BŪTINAI SU SPACE KLAVIŠU PASPAUDŽIAME TIES APACHE2 IR TĘSIAME TIK TADA KAI ĮSITIKINAME, KAD APACHE2 PAŽYMĖTA



Diegiant toliau paprašys sukonfiguruoti duombazę phpmyadmin valdymo panelei, pasirodžiusiame lange užeiname ant Yes ir spaudžiam enter



Vedame phpmyadmin aplikacijos slaptažodį (galima vesti tą patį mysql root slaptažodį)
 


Pakartojame tą patį slaptažodį



LAMP įdiegtas dabar konfiguruojame, kad viskas veiktu kaip priklauso.
Visu pirma reikia sutvarkyti mariadb serverio saugumą ir tai galima padaryt su komanda

mysql_secure_installation

Įvedus šią komandą reikės spausti tokias reikšmes:
Enter current password for root (enter for none): Nieko neveskite (spauskite enter) nes tik instaliuotas mariadb neturi slaptažodžio
Set root password? [Y/n] Spauskite y ir enter
New password: Įveskite skaptažodį ir spauskite enter (TURĖKITE OMENYJE, KAD VEDANT SLAPTAŽODĮ SIMBOLIAI *** NEATSIRANDA, BET VESKITE SLAPTAŽODĮ NEKREIPIANT DĖMESIO Į TAI)
Re-enter new password: Pakartokite slaptažodį ir spauskite enter (TURĖKITE OMENYJE, KAD VEDANT SLAPTAŽODĮ SIMBOLIAI *** NEATSIRANDA, BET VESKITE SLAPTAŽODĮ NEKREIPIANT DĖMESIO Į TAI)
Remove anonymous users? [Y/n] Spauskite y ir enter
Disallow root login remotely? [Y/n] Spauskite y ir enter
Remove test database and access to it? [Y/n] Spauskite y ir enter
Reload privilege tables now? [Y/n] Spauskite y ir enter
Saugumas sukonfiguruotas, dabar reikia sukurti vartotoją prie kurio galėsite prisijungti per phpmyadmin nes standartiškai mariadb prie root vartotojo prisijungti neleidžia
Jungiamės prie mariadb serverio:

mysql -u root -p

įvedus šią komandą Jūsų paprašys slaptažodžio Enter password: Įveskite slaptažodį tą patį kurį nustatėte naudodami mysql_secure_installation komandą (TURĖKITE OMENYJE, KAD VEDANT SLAPTAŽODĮ SIMBOLIAI *** NEATSIRANDA, BET VESKITE SLAPTAŽODĮ NEKREIPIANT DĖMESIO Į TAI)

Pasijungus į mariadb matysite panašų vaizdą:

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 60
Server version: 10.1.38-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

Kuriame duomenų bazę (Nebūtina):

CREATE DATABASE aloha;

Kuriame vartotoją:

CREATE USER 'VARTOTOJAS'@'localhost' IDENTIFIED BY 'SLAPTAŽODIS';

Komandoje su kuria kūriate vartotoją jums reikia pakeisti VARTOTOJAS į norimą vartotojo vardą (pamokoje naudosime admin) ir SLAPTAŽODIS į norimą nustatyti vartotojui slaptažodį (pamokoje naudosima labas (Turėkite omenyje, kad tokius lengvus slaptažodžius naudoti negalima nes tokiu atveju yra labai lengva įsilaužti))

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'labas';

Dabar reikia suteikti admin vartotojui kurį katik sukūrėme visas teises prie duombazės aloha kurią sukūrėme seniau

GRANT ALL PRIVILEGES ON aloha.* to 'admin'@'localhost';
Jeigu norite suteitki vartotojui teises prie visų duombazių naudokite sekančiame punkte esančią komandą

Jeigu norite sukurtam vartotojui suteikti teises prie visų duombazių ir sukurti kažką panašaus kaip senesnėse versijose buvo root vartotojas - komanda būtu tokia:

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;

Ir perkrauti privilegijas bei įšeiti iš mariadb:

FLUSH PRIVILEGES;
quit

Dabar galite prisijungti prie phpmyadmin su katik sukurtu vartotoju (jeigu naudoti pamokoje nurodytus prisijungimo duomenys tai būtu - prisijungimo vardas: admin slaptažodis: labas)
Duombazės serveris mariadb pilnai sutvarkytas.

Aktyviname proxy_fcgi setnenvif actions http2 brotli bei php-fpm palaikyma
Jeigu php 5.6

a2enmod proxy_fcgi setenvif actions http2 brotli proxy_fcgi
a2enconf php5.6-fpm

Jeigu php 7.0

a2enmod proxy_fcgi setenvif actions http2 brotli proxy_fcgi
a2enconf php7.0-fpm

Jeigu php 7.1

a2enmod proxy_fcgi setenvif actions http2 brotli proxy_fcgi
a2enconf php7.1-fpm

Jeigu php 7.2

a2enmod proxy_fcgi setenvif actions http2 brotli proxy_fcgi
a2enconf php7.2-fpm

Jeigu php 7.3

a2enmod proxy_fcgi setenvif actions http2 brotli proxy_fcgi
a2enconf php7.3-fpm

Jeigu php 7.4

a2enmod proxy_fcgi setenvif actions http2 brotli proxy_fcgi
a2enconf php7.4-fpm

Jeigu php 8.0

a2enmod proxy_fcgi setenvif actions http2 brotli proxy_fcgi
a2enconf php8.0-fpm

Jeigu php 8.1

a2enmod proxy_fcgi setenvif actions http2 brotli proxy_fcgi
a2enconf php8.1-fpm

Perkrauname apache serverį (galima daryti pilną perkrovimą su komanda service apache2 restart)

systemctl restart apache2

Jeigu phpmyadmin neveikia su klaida:
Error in processing request
Error code: 500
Error text: Internal Server Error (rejected)
It seems that the connection to server has been lost. Please check your network connectivity and server status.


Tai yra dėl to, kad phpmyadmin repozitoriuose neatnaujintas ir laikinas pataisymas būtu toks:

sed -i -e 's/newInstanceArgs($arguments)/newInstanceArgs(array_values($arguments))/g' /usr/share/php/Symfony/Component/DependencyInjection/ContainerBuilder.php && cat /usr/share/php/Symfony/Component/DependencyInjection/ContainerBuilder.php | grep "newInstanceArgs"

Viskas, apache, php, php-fpm, mysql-server bei phpmyadmin įdiegtas
Į phpmyadmin galite pasijungti per nuorodą http://VPS_IP/phpmyadmin 
Svetainės failus laikyti reikia /var/www/html/ direktorijoje kuriuos galite įkelti naudojant winscp (Kaip pasijungti naudojant winscp), filezilla (Kaip prisijungti naudojant filezilla) ar kitas programas
Sign In or Register to comment.