sudo apt-get update && sudo apt-get upgrade
sudo apt-get install -y apache2
sudo apt-get install -y php libapache2-mod-php
sudo apt-get install -y php-curl php-gd php-json php-mbstring php-xml
sudo apt-get install -y mariadb-server php-mysql
sudo service mariadb restart
sudo mysql_secure_installation
#> Validate password component: N
#> New password: MyPassword
#> Remove anonymous users: Y
#> Disallow root login remotely: Y
#> Reload privilege tables now: Y
sudo service mariadb stop
sudo usermod -d /var/lib/mysql mysql
sudo service mariadb start
Allow remote root login
sudo mysql -u root -pMyPassword -e "UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE User = 'root'; FLUSH PRIVILEGES;"
sudo apt-get install -y phpmyadmin
#> Use apache2
#> Configure db with dbconfig-common: Yes
#> Random password (leave password blank)
sudo service mariadb restart && sudo service apache2 restart
Before you can access PHPMyAdmin, you need to include PHPMyAdmin inside apache configuration.
Open apache.conf using nano
sudo nano /etc/apache2/apache2.conf
Then add the following line at the end of the life:
Include /etc/phpmyadmin/apache.conf
Now you can login into phpmyadmin with username root
and password MyPassword
.
sudo mysql -u root -pMyPassword -e "UPDATE mysql.user SET plugin = 'auth_socket' WHERE User = 'root'; FLUSH PRIVILEGES;"
* If remotely login for root is disallowed then you need to create new MySql user, otherwise you will not be able to login into PhpMyAdmin.
cd ~ && touch .bash_aliases
echo 'alias lampstatus="sudo service apache2 status ; sudo service mariadb status"' >> .bash_aliases
echo 'alias lampstart="sudo service mariadb start ; sudo service apache2 start"' >> .bash_aliases
echo 'alias lampstop="sudo service mariadb stop ; sudo service apache2 stop"' >> .bash_aliases
echo 'alias lamprestart="sudo service mariadb reload ; sudo service apache2 reload"' >> .bash_aliases
Now you need to logout/login and then you can use lampstatus
, lampstart
, lampstop
and lamprestart
for controling LAMP stack.
In this example document root will be changed from /var/www/html
to ~/www
cd ~
mkdir www
sudo sed -i "s;/var/www;$HOME/www;g" /etc/apache2/apache2.conf
sudo sed -i "s;/var/www/html;$HOME/www;g" /etc/apache2/sites-available/000-default.conf
Don't forget to add apache2 user (usually www-data for Ubuntu) to the personal group of the current user
sudo adduser www-data $(whoami)
sudo service apache2 reload
Now you can go to ~/www
and create index.html
For each version of PHP, choose the appropriate package to install!
PHP 7.4
sudo apt-get install php7.4-xdebug
PHP 8.0
sudo apt-get install php8.0-xdebug
PHP 8.1
sudo apt-get install php8.1-xdebug
First with cd
go into your wordpress installation folder and then:
sudo touch .htaccess
sudo chown -v :www-data .htaccess
sudo chmod -v 664 .htaccess
sudo sed -i "s/AllowOverride None/AllowOverride All/g" /etc/apache2/apache2.conf
sudo a2enmod rewrite
sudo service apache2 restart
Now go to WpAdmin -> Settings -> Permalinks. Choose permalink structure and hit "Save Changes".
Now .htaccess
should be populated with wordpress rewrite rules and conditions.