Installing Wordpress Mulitsite - Printable Version +- Post4VPS Forum | Free VPS Provider (https://post4vps.com) +-- Forum: VPS Discussion (https://post4vps.com/Forum-VPS-Discussion) +--- Forum: Tutorials (https://post4vps.com/Forum-Tutorials) +--- Thread: Installing Wordpress Mulitsite (/Thread-Installing-Wordpress-Mulitsite) |
Installing Wordpress Mulitsite - tbelldesignco - 10-11-2020 Hello All, So I have been working through all of the bugs of this install to get thing exactly correct, so fellow designers and developers can follow along and setup a Wordpress Multisite Network to easily create and manage sites for clients along with theme and plugin development. Before we begin, we will need some things in place before we can get to the meat and potatoes of the tutorial. Prerequisites: - Ubuntu Server 18.04 - Apache2 (Your LAMP stack including Apache and SQL) - PHP 7.4.11 Setting up Ubuntu Server: If you are installing a fresh install of Ubuntu proceed through the setup and when prompted to select an install package, you can choose the Apache2 (LAMP Stack), make sure to hit the spacebar to select the install package prior to hitting the enter button. 1. Check to see if UFW has the Apache application profile: Code: sudo ufw app list You should see the available options include: Apache, Apache Full, Apache Secure 2. Allow incoming HTTP/HTTPS traffic to your server: Code: sudo ufw allow in "Apache Full" Using your public IP address you can check to see if Apache was correctly configured, you can visit http://PUBLIC.IP.ADDRESS and you should see the default Apache2 Ubuntu Default Page. If you are unable to see this page make sure to start the server if it has not been started already sudo systemctl start apache2 3. Install MySQL Server You will now need to install the MySQL server so you can being creating databases. This setup will install the initial server with a root user and you will be able to set the password for the root user along with securing the server with the secure installation. First run: Code: sudo apt install mysql-server You will see a list of packages that will need to be installed, type Y to confirm and then the installation will continue. After the installation has completed, you will now need to run this built in script to remove any harmful defaults and lock down your SQL Server. Code: sudo mysql_secure_installation The secure installer will then ask you a list of questions, all of which you can answer Y too. The next step will ask you to select a password validation policy level, where 0 is none at all and 3 is maximum security, you will need a super strong password. With my installation, I set the level to 1, that way you need a secure password, but it does not have to be wickedly strong. You will then setup and confirm the password for root@localhost. 4. Installing PHP Using the following command you can install PHP and it's components for displaying dynamic content and connecting to the MySQL server. Code: sudo apt install php libapache2-mod-php php-mysql Once the scripts install, restart the apache server: sudo systemctl restart apache2 Now that the server is restarted, you can upgrade from the stock PHP version in Ubuntu (PHP 7.0) to the most recent version, 7.4.11. Run the following scripts to add the PPA repository for PHP 7.4. Code: sudo apt install software-properties-common With PHP 7.4 installed, you will now need to run these commands to install the needed PHP modules followed by deactivating PHP 7.0 and activating PHP 7.4 then restarting Apache. Code: sudo apt install php7.4-{mysql,common,xml,xmlrcp,curl,gd,imagick,cli,dev,mbstring,opcache,soap,zip,intl} 5. Upgrading phpMyAdmin & Adding a Symbolic Link Now we have PHP updated, we need to update phpMyAdmin, the stock version included in the LAMP stack is out of date and some of the functions are depreciated. This will give you the most up to date version of phpMyAdmin which is compatible with PHP 7.0+ and MySQL 5.0+. Code: Navigate back to your system root and change to the directory /usr/share and remove the current phpmyadmin folder Now that we have the update downloaded, you will need to change the config.sample.inc.php into config.inc.php and then add a blowfish secret key that will enable cookies for phpMyAdmin. Code: cd phpmyadmin Key down to the line asking for the blowfish key and then generate it and insert from this site: https://phpsolved.com/phpmyadmin-blowfish-secret-generator/ Once you have it entered press ctrl+X and save the changes. 6. Setting up Virtual Hosts Now that your Apache server is mostly set up, you can now begin to create the public_html folder which will host the Wordpress install. This is where you would connect up your domain by modifying the DNS settings with your cPanel or Domain Registrar. You can set up and give the proper permissions to the public_html folder by running the commands below. Code: cd ../../../ Now that the public_html directory is made, you will need to create a virtual host file that will allow Apache to serve the content when you and others access your site. Run these commands to create a new configuration file. Make sure to change YOURDOMAIN to your domain name. Ie. tbelldesign.conf Code: sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/YOURDOMAIN.conf Now that you have your new virtual host setup, you will need to create a symbolic link to your public_html so that when you visit http://YOURDOMAIN/phpmyadmin/ you can login to phpMyAdmin and have all of the great features this visual database manager has to offer. Code: sudo ln -ls /etc/phpmyadmin/ /var/www/phpmyadmin/ Now visit http://YOURDOMAIN/phpmyadmin/ to make sure that you can see the login page and log in with your root@localhost username (root) and the password you setup during the MySQL secure install. If you are unable to access phpmyadmin, make sure to chown and chmod the directory. 7. Install Wordpress Now that you have Apache, PHP, MySQL and phpMyAdmin installed and configured you can now download Wordpress to your public_html folder and begin the installation process. Code: cd /var/www/public_html Now the Wordpress is moved to public_html you can begin the installation by visiting http://YOURDOMAIN and following the directions. Once you have successfully installed Wordpress, you can edit your wp-config.php to then begin the installation of Multisite Network. Code: sudo nano wp-config.php Next login to WP-Admin using the credentials you have set up, and begin to remove the stock plugins and the default themes, minus Twenty Twenty. Then head on over to Settings>Permalink and change the option to Post Name. Once those are removed, you can then go to Settings> Create a Wordpress Network of Site. Follow the recommendations of the the installation of the network. I recommend using the subdirectory method and disabling the subdomain method of adding sites. With it installed, you will now be able to create development sites, add network themes and plugins along with more network admin users. Edit: Subdomain Setup To have a subdomain set up where your wordpress network would look like site1.YOURDOMAIN and site2.YOURDOMAIN you will need to set up a wildcard subdomain either in cPanel or with your domain registrar. In cPanel you would go to Domains>Sub Domains and create a subdomain with the following information. Code: * .YOURDOMAIN If you're not using cPanel, you can login to your domain registrar and edit your DNS settings and set up the same configuration but it will look something like this: Code: Name TTL Class Type Record Thank you to @fitkoh for this recommendation. I would like to thanks Post4VPS and @cubedata for the amazing server, allowing me to get Tyler Bell Design Co. Development up and running. You can see the results of the Multisite Network by visiting http://dev.tbelldesign.co and http://dev.tbelldesign.co/eventpros/ to see how one network can host a plethora of sub sites. Good luck and happy development! If you have any questions feel free to ask them below! RE: Installing Wordpress Mulitsite - fitkoh - 10-12-2020 Nice tutorial, and the dev part of your site loads nicely. The tutorial also looks well written and easy to follow (although I don't use phpmyadmin, it would be redundant in my current setup). One possible improvement you could make would be to install phpmyadmin in something other than a default directory, which would minimize risk of intrusion. As an extension of this tutorial, or as in idea for another one in the future, would be to do a subdomain multisite network tutorial in addition to/instead of the subdirectory method. RE: Installing Wordpress Mulitsite - tbelldesignco - 10-12-2020 (10-12-2020, 12:12 AM)fitkoh Wrote: Nice tutorial, and the dev part of your site loads nicely. Thank you for the feedback! I can look into the subdomain options, I have not played with them and just with how fickle the mod_rewrite settings for Wordpress are I have always shot for the subdirectory option. As for phpMyAdmin, you can set allowed IP Addresses so if you are not using it from localhost you can set it for your public IP address to minimize security vulnerabilities. |