Difference between revisions of "WebServer - Basic LAMP Stack Install"

From The TinkerNet Wiki
Jump to navigation Jump to search
 
(27 intermediate revisions by 2 users not shown)
Line 1: Line 1:
*Proven on Mint 19.3
+
*Proven on Mint 19.3 ... (Seems to get MySQL 5.7)
*Proven on SparkyLinux 5.11 ... (You'll have to [https://tecadmin.net/install-mysql-server-on-debian9-stretch/ fix the missing MySQL] thing & install vim first)
+
*Proven on Mint 20 ... (Gets MySQL 8.0)
**[[Getting MySQL onto SparkyLinux]]
+
*Proven on SparkyLinux 5.11 ... (Debian based)
 +
*Proven on LMDE 4 ... (Debian based)
 +
*Proven on Debian minimal ... (Debian based)
  
 
===Install the LAMP Stack===
 
===Install the LAMP Stack===
 +
* [[WebServer - Mint 19.3|If you are running Mint 19.3]]
 +
* [[WebServer - Debian based Linux|If you are running a Debian based Linux]]
 +
** (Debian itself, LMDE, SparkyLinux, others...)
 +
 +
====Install the packages====
  
 
*<code>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</code>
 
*<code>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</code>
 +
**Say Yes to Continue
 +
**<u>Configuring mysql-community-server</u> (Doesn't happen on Mint but DOES happen on LMDE)
 +
***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====
 
====Configure MySQL====
  
 
*<code>sudo mysql_secure_installation</code>
 
*<code>sudo mysql_secure_installation</code>
 +
**<u>Would you like to setup VALIDATE PASSWORD component?</u>
 +
***I select No (because I'd rather manage my own password policies, thanks...)
 +
**'''''root password'''''
 +
***<u>Please set the password for root here.</u>
 +
****Pick a good '''root''' password...
 +
**or... (depends on install...)
 +
***<u>Using existing password for root.</u>
 +
****Say No
 +
**<u>Remove anonymous users?</u>
 +
***Duh... Yes
 +
**<u>Disallow root login remotely?</u>
 +
***Your choice, but I tend to say No.
 +
**<u>Remove test database and access to it?</u>
 +
***Duh... Yes again.
 +
**<u>Reload privilege tables now?</u>
 +
***Yes
 
*([[WebServer - MySQL Notes|Extra Instructions if you've never configured MySQL before]])
 
*([[WebServer - MySQL Notes|Extra Instructions if you've never configured MySQL before]])
  
Line 22: Line 49:
  
 
Browse to [http://ServerAddress/ http://ServerAddress/info.php] & you should see a whole bunch of info about your PHP subsystem.
 
Browse to [http://ServerAddress/ 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====
 
====Set up at least one user in mysql====
Line 28: Line 57:
  
 
  CREATE USER 'someone'@'localhost' IDENTIFIED BY 'password';
 
  CREATE USER 'someone'@'localhost' IDENTIFIED BY 'password';
 +
FLUSH PRIVILEGES;
 
  EXIT;
 
  EXIT;
 
('''Hint:'''  This'd be a good time to create yourself as that user with your non-admin password of choice...)
 
('''Hint:'''  This'd be a good time to create yourself as that user with your non-admin password of choice...)

Latest revision as of 15:16, 1 January 2022

  • Proven on Mint 19.3 ... (Seems to get MySQL 5.7)
  • Proven on Mint 20 ... (Gets MySQL 8.0)
  • Proven on SparkyLinux 5.11 ... (Debian based)
  • Proven on LMDE 4 ... (Debian based)
  • Proven on Debian minimal ... (Debian based)

Install the LAMP Stack

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 but DOES happen on LMDE)
      • 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...)