Skip to content

Instantly share code, notes, and snippets.

@mateusreis
Last active August 18, 2025 02:36
Show Gist options
  • Select an option

  • Save mateusreis/fd76c955fe74dd8ef48451fcced11896 to your computer and use it in GitHub Desktop.

Select an option

Save mateusreis/fd76c955fe74dd8ef48451fcced11896 to your computer and use it in GitHub Desktop.
LAMP Debian 13 - 2025
By Mateus Reis - 17/08/2025 - sem revisão, mas funcionou
1.1: Update Software Packages and Install wget
$ sudo apt update
$ sudo apt install wget -y
1.2: Install Apache
$ sudo apt install apache2 -y
$ systemctl status apache2
1.3: Install PHP on Debian 13
$ sudo apt -y install php php-cgi php-mysqli php-pear php-mbstring libapache2-mod-php php-common php-phpseclib php-mysql
$ php --version
1.4: Install and Set Up MariaDB on Debian 12
$ sudo apt install mariadb-server mariadb-client -y
$ systemctl status mariadb
$ sudo mariadb-secure-installation
As you have not yet set a root password for your database, hit Enter to skip the initial query. Complete the following queries:
a. Switch to unix_socket authentication [Y/n]. Enter n to skip.
b. Set root password? [Y/n]. Type y and press Enter to create a strong root password for your database. c. If you already have a root password, enter n to answer the Change the root password question.
d. Remove anonymous users? [Y/n]. Type y and press Enter.
e. Disallow root login remotely? [Y/n]. Type y and press Enter.
f. Remove test database and access to it? [Y/n]. Type y and confirm with Enter.
g. Reload privilege tables now? [Y/n]. Type y and confirm with Enter.
Create New MariaDB User:
$ sudo mysql -u root
$ sudo mysql -u root -p
> CREATE DATABASE YOUR_DB;
> SHOW DATABASES;
> CREATE USER 'user1'@localhost IDENTIFIED BY 'password1';
> SELECT User FROM mysql.user;
> GRANT ALL PRIVILEGES ON *.* TO 'user1'@localhost IDENTIFIED BY 'password1';
> GRANT ALL PRIVILEGES ON YOUR_DB.* TO 'user1'@localhost;
> FLUSH PRIVILEGES;
> SHOW GRANTS FOR 'user1'@localhost;
> DROP USER 'user1'@localhost;
2: Download phpMyAdmin
$ wget -P Downloads https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
3: Check phpMyAdmin GPG Key
$ wget -P Downloads https://files.phpmyadmin.net/phpmyadmin.keyring
$ cd Downloads
$ gpg --import phpmyadmin.keyring
$ wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz.asc
$ gpg --verify phpMyAdmin-latest-all-languages.tar.gz.asc
4: Unpack and Configure phpMyAdmin
$ sudo mkdir /var/www/html/phpMyAdmin
$ sudo tar xvf phpMyAdmin-latest-all-languages.tar.gz --strip-components=1 -C /var/www/html/phpMyAdmin
5: Secure phpMyAdmin Instance
$ sudo cp /var/www/html/phpMyAdmin/config.sample.inc.php /var/www/html/phpMyAdmin/config.inc.php
$ sudo nano /var/www/html/phpMyAdmin/config.inc.php
Locate the following line and add a secret passphrase between the single quotes:
$cfg['blowfish_secret'] = '';
For example:
$cfg['blowfish_secret'] = 'My_Secret_Passphras3!';
$ sudo chmod 660 /var/www/html/phpMyAdmin/config.inc.php
$ sudo chown -R www-data:www-data /var/www/html/phpMyAdmin
Restart Apache:
$ sudo systemctl restart apache2
http://localhost/phpMyAdmin
Deu pau de permissao?
$ cd /var/www/html/phpMyAdmin/
$ sudo chown www-data:www-data config.inc.php
Deu erro:
>> mysqli::real_connect(): (HY000/1698): Access denied for user 'root'@'localhost'
Solução: Crie um novo usuário para o phpMyAdmin
A maneira mais segura e recomendada de resolver isso é não usar o usuário root para aplicações como o phpMyAdmin. Em vez disso, crie um novo usuário com privilégios específicos para o banco de dados.
Acesse o MariaDB/MySQL como root:
No terminal, execute o comando para acessar o MariaDB com privilégios de superusuário (root do sistema).
$ sudo mysql -u root
Crie um novo usuário:
Dentro do prompt do MariaDB, crie um novo usuário e defina uma senha forte.
> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'Dados2010';
Conceda privilégios ao novo usuário:
Dê ao novo usuário as permissões necessárias para gerenciar bancos de dados.
> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
Recarregue os privilégios:
Atualize as tabelas de permissões para que as mudanças tenham efeito imediatamente.
> FLUSH PRIVILEGES;
Saia do MariaDB:
> EXIT;
Mude a configuração do phpMyAdmin
Agora, você precisa editar o arquivo de configuração do phpMyAdmin para usar o novo usuário.
Abra o arquivo de configuração:
$ sudo nano /var/www/html/phpMyAdmin/config.inc.php
Atualize a linha de usuário:
Procure pela linha que define o usuário e altere-a para o novo usuário que você criou:
$cfg['Servers'][$i]['user'] = 'admin';
$cfg['Servers'][$i]['password'] = 'Dados2010';
Salve e saia:
Pressione Ctrl + O para salvar e Ctrl + X para sair.
Depois de seguir esses passos, você poderá fazer login no phpMyAdmin com o usuário e senha que acabou de criar, evitando o problema de acesso negado do usuário root. Essa abordagem é mais segura, pois evita que a aplicação use o usuário com privilégios de superusuário.
$ echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/teste.php
> http://localhost/test.php
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment