Install Config Wiki

All about installing, configuring and troubleshooting

User Tools

Site Tools


install_apache_mysql_php_linux_ubuntu_server

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
install_apache_mysql_php_linux_ubuntu_server [2020/06/08 03:54] – [Installing PHP] wikiadmininstall_apache_mysql_php_linux_ubuntu_server [2020/06/08 18:39] – [Install MySQL Database Server] wikiadmin
Line 1: Line 1:
-====== Installing Apache2 web server, MySQL database server, and PHP language interpreters, on Ubuntu Server ====== +====== Installing Apache2 web server, MySQL database server, and PHP language interpreter, on Ubuntu Server ====== 
  
-You can install these with LAMP or XAMPP or install each separately using apt-get installer+You can install these with LAMP or XAMPP. You can also install these each separately using apt from the command line
  
 As of April, May June, 2020, Let's install Apache 2.4, MySQL 8.0 and PHP 7.4 on Ubuntu 20.04 LTS. As of April, May June, 2020, Let's install Apache 2.4, MySQL 8.0 and PHP 7.4 on Ubuntu 20.04 LTS.
Line 16: Line 16:
 </code> </code>
  
-Install additional PHP modules that are required for your application.+**Here are some additional PHP modules to install that may be required for your applications**. [However, before you install these modules, see the discussion below regarding additional modules required to run NextCloud.]
  
 <code>sudo apt install php7.4-curl php7.4-gd php7.4-json php7.4-mbstring php7.4-xml</code> <code>sudo apt install php7.4-curl php7.4-gd php7.4-json php7.4-mbstring php7.4-xml</code>
  
-**Enable Modules for NextCloud installation**+If you are planning to install NextCloud on your Ubuntu Server, then the above generally required modules are included in the expanded list of PHP modules that are recommended or required to run NextCloud from Apache and using PHP.
  
-If you plan to install NextCloud server to run on Apache web server, then you should install the following PHP modules that are either recommended or required as prerequisites for the proper functioning NextCloud.  Ensure that you manually enable each of these modules in the php.ini file for purposes of running NextCloud.  There will obviously be other modules to enable for general operation of PHP and other websites' applications.+===== Install the PHP Modules that are Prerequisites for NextCloud installation ===== 
 + 
 +If you plan to install NextCloud to run on a virtual host from Apache web server, then you should install the following PHP modules that are either recommended or required as prerequisites for the proper functioning of NextCloud.  Ensure that you manually enable each of these modules in the php.ini file for purposes of running NextCloud. This involves removing the appropriate #comment marks in php.ini to enable the appropriate modules. There should obviously be other PHP modules to enable for the general operation of PHP as necessary for other websites' applications running from Apache web server on this Ubuntu server.
  
 <code>sudo apt install php-imagick php7.4-common php7.4-mysql php7.4-fpm php7.4-gd php7.4-json php7.4-curl  php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl</code> <code>sudo apt install php-imagick php7.4-common php7.4-mysql php7.4-fpm php7.4-gd php7.4-json php7.4-curl  php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl</code>
  
-Note: If you did not begin with this guide and Apache is already installed, then you should reload Apache2 service to use these PHP modules:+After the installation of these PHP modules, you may see a notice like the following: 
 + 
 +Notice: Not enabling PHP 7.4 FPM by default.  
 +Notice: To enable PHP 7.4 FPM in Apache2 do: 
 +Notice: a2enmod procy fcgi set enfiv 
 +Notice: a2enconf php7.4*fpm 
 +Notice: You are seeing this message because you have apache2 package installed. 
 + 
 +The apache2 package that is installed and the notice is referring to is the package that was just installed with the installation of PHP 7.4.  
 + 
 +Note that if Apache server was already installed before you found this guide, then you should **reload Apache2 servic**e to use these newly installed PHP modules:
  
 <code>sudo systemctl reload apache2</code>  <code>sudo systemctl reload apache2</code> 
  
-Next we will install Apache2 web server and virtual hosts.+Next we will install Apache2 web server and configure Virtual Hosts.
  
 ===== Installing Apache2 and Creating Apache VirtualHost =====   ===== Installing Apache2 and Creating Apache VirtualHost =====  
Line 42: Line 54:
 </code> </code>
  
-Also (OR INSTEAD) install libapache2-mod-php module to work PHP with Apache2. [Go research this]+Also install libapache2-mod-php module to work PHP with Apache2. 
  
-Enter the following to install it:+Enter the following command to install it:
  
 <code>sudo apt install apache2 libapache2-mod-php7.4</code> <code>sudo apt install apache2 libapache2-mod-php7.4</code>
 +
 +Some help sites also include "php-mysql" module appended to the end of the above command.  I think we can install that later after we install MySQL server.  So keep in mind for later, after MySQL server is installed, the step of entering a command like the following.
 +
 +<code>sudo apt install apache2 php-mysql</code>
 ==== Creating Apache VirtualHost ==== ==== Creating Apache VirtualHost ====
  
Line 134: Line 150:
 Repeat the above steps for site www1 by changing the site-name to whatever it will be, such as www2.exmample.com Repeat the above steps for site www1 by changing the site-name to whatever it will be, such as www2.exmample.com
  
 +===== Install MySQL Database Server =====
 +
 +The apt repositories for Ubuntu 20.04 LTS contain MySQL server version 8.0. 
 +
 +Install mysql-server packages for the MySQL database. Also, install the php-mysql package to use MySQL support using PHP. Use the following command to install it.
 +
 +<code>sudo apt install mysql-server php7.4-mysql</code>
 +
 +The installer will prompt for the root password. This password will work for your MySQL root user. After installing MySQL execute the following command for initial settings of MySQL server. The script will ask more questions for settings than earlier MySQL versions, such as password validation policy etc.
 +
 +Enter this command:
 +
 +<code>sudo mysql_secure_installation</code>
 +
 +<QUOTE>
 +//Securing the MySQL server deployment.//
 +
 +//Connecting to MySQL using a blank password.//
 +
 +//VALIDATE PASSWORD COMPONENT can be used to test passwords
 +and improve security. It checks the strength of password
 +and allows the users to set only those passwords which are
 +secure enough. Would you like to setup VALIDATE PASSWORD component?// 
 +
 +**Press y|Y for Yes, any other key for No: y**
 +
 +//There are three levels of password validation policy:
 +
 +LOW    Length >= 8
 +MEDIUM Length >= 8, numeric, mixed case, and special characters
 +STRONG Length >= 8, numeric, mixed case, special characters and dictionary file//
 +
 +**Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2**
 +//Please set the password for root here.//
 +
 +**New password:**
 +
 +**Re-enter new password:**
 +
 +//Estimated strength of the password: 100
 +Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
 +By default, a MySQL installation has an anonymous user,
 +allowing anyone to log into MySQL without having to have
 +a user account created for them. This is intended only for
 +testing, and to make the installation go a bit smoother.
 +You should remove them before moving into a production
 +environment.//
 +
 +**Remove anonymous users? (Press y|Y for Yes, any other key for No) : y**
 +
 +//Success.//
 +
 +
 +//Normally, root should only be allowed to connect from
 +'localhost'. This ensures that someone cannot guess at
 +the root password from the network.//
 +
 +**Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y** //(n should be considered)//
 +
 +//Success.//
 +
 +//By default, MySQL comes with a database named 'test' that
 +anyone can access. This is also intended only for testing,
 +and should be removed before moving into a production
 +environment.//
 +
 +
 +**Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y**
 + - Dropping test database...
 +
 +//Success.//
 +
 + - Removing privileges on test database...
 +
 +//Success.//
 +
 +//Reloading the privilege tables will ensure that all changes
 +made so far will take effect immediately.//
 +
 +**Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y**
 +
 +//Success.//
  
 +</QUOTE>
  
  
install_apache_mysql_php_linux_ubuntu_server.txt · Last modified: 2020/06/08 23:20 by wikiadmin