WebServer - Basic LAMP Stack Install
- Proven on Mint 19.3 ... (Seems to get MySQL 5.7)
- Proven on Mint 20 ... (Gets MySQL 8.0)
- Proven on SparkyLinux 5.11 ... (You'll have to fix the missing MySQL (My Notes) thing & install vim first)
- Proven on LMDE 4 ... (You'll have to fix the missing MySQL thing & install vim first)
Contents
Install the LAMP Stack
If you are running Mint 19.3!
Note: On Mint 19.3, this installs php 7.2.24. On Mint 20, this installs php 7.4.3. This MIGHT be an important point to keep in mind for later...
If you expect to need php newer than 7.2.24 on a Mint 19.3 server, force it to upgrade before you move on to installing the packages:
sudo add-apt-repository ppa:ondrej/php # Press enter to confirm.
sudo apt update
sudo apt upgrade
php -v
(Verify that it's showing a suitable version of php. I'm seeing 7.4.10 in testing...)
Install the packages
sudo apt install apache2 libapache2-mod-php php-xml php-mbstring php-apcu php-intl imagemagick inkscape php-gd php-cli php-cgi php mysql-server mysql-client php-mysql
- Say Yes to Continue
- Configuring mysql-community-server (Doesn't happen on Mint)
- Pick a good root password...
- I tend to select Use Legacy Authentication Method because Use Strong Password Encryption is annoying as hell. (Your choice here...)
Configure MySQL
sudo mysql_secure_installation
- Would you like to setup VALIDATE PASSWORD component?
- I select No (because I'd rather manage my own password policies, thanks...)
- root password
- Please set the password for root here.
- Pick a good root password...
- Please set the password for root here.
- or... (depends on install...)
- Using existing password for root.
- Say No
- Using existing password for root.
- Remove anonymous users?
- Duh... Yes
- Disallow root login remotely?
- Your choice, but I tend to say No.
- Remove test database and access to it?
- Duh... Yes again.
- Reload privilege tables now?
- Yes
- Would you like to setup VALIDATE PASSWORD component?
- (Extra Instructions if you've never configured MySQL before)
& Test it
sudo vi /var/www/html/info.php
<?php phpinfo(); ?>
Browse to http://ServerAddress/ & you should see the default page.
Browse to http://ServerAddress/info.php & you should see a whole bunch of info about your PHP subsystem.
Notice that those 2 addresses are HTTP, and NOT HTTPS. This is important and Chrome will mess with you.
Set up at least one user in mysql
sudo mysql -u root -p
CREATE USER 'someone'@'localhost' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; EXIT;
(Hint: This'd be a good time to create yourself as that user with your non-admin password of choice...)