WebServer - Basic LAMP Stack Install

From The TinkerNet Wiki
Jump to navigation Jump to search

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...
    • or... (depends on install...)
      • Using existing password for root.
        • Say No
    • 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
  • (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...)