Today I’m going to share with my readers my list for manually creating another website on one of my NGINX servers. I am partially logging this here for my own reference as I often look for these directions I keep stored in a .txt file on my laptop. Wherever you see text in green in this post, it will indicate that the text is to be entered as a command at the command prompt in Linux.
Step by Step Directions to Add a New Site on NGINX Servers
1) Sign into Linux server using an application like Putty (Windows) or Terminal (Mac):
Login with root user and password if possible, otherwise login with the user and password you have and remember to use sudo commands(purring sudo before each command line command)
2) Create the website directory (for example, your_new_site.com):
mkdir -p /var/www/your_new_site.com/public_html
mkdir -p /var/www/your_new_site.com/logs
3) Change the ownership of the directory to the web user:
chown -R www-data:www-data /var/www/your_new_site.com/public_html
chown -R www-data:www-data /var/www/your_new_site.com/logs
4) Create the web site config file. To do this, you can simply copy the config file of an existing site and then make the required changes. For example try this command but change the existing_site to your own existing website on your server:
cp /etc/nginx/sites-available/existing_site.com /etc/nginx/sites-available/your_new_site.com
5) Edit the new config file to replace with the new site’s values:
Edit the line that reads: root /var/www/existing_site.com/public_html to be the current domain name.
Edit the two server_name instances to be the new domain name.
Edit access_log and error_log paths for new domain name
Save the file by hitting Ctrl-X, then Y and then Enter.
6) Enable the new site in NGINX:
ln -s /etc/nginx/sites-available/sandiboudreau.com /etc/nginx/sites-enabled/
7) Restart NGINX:
service nginx restart
9) Create the database and user.
mysql -u root -p
create database database name;
(note: I often create the db and user with the same name as the domain name. That makes it easy to remember. However, MySQL users are limited to 16 characters. so if the domain name is longer, I truncate both in some fashion. Just make sure theu match.
grant all on your_new_site.* to ‘your_new_site’ identified by ‘secret_password’;
(the last part is the password. just make up a hard one – record this where only you can find it, you’ll need it with the restore)
8) Copy your new website files into the public_html folder with your sFTP client and your site is up and running!
Using PHP to create an NGINX SITE MAKER
I used the above knowledge to create a Site Maker tool that does all the steps for you. All you have to do is enter a domain name. Email me if interested at email@example.com
So, this isn’t too hard if you have something to reference such as the above cheat sheet. Once you get used it doing it, it is really easy. However if it’s too complex, you can do what I did and make a tool to do it for you. Even if it’s not too difficult, the tool saves you time if you add a lot of sites to your NGINX server as I do. Email me if you have interest in such a tool and I can custom build you one for your server! firstname.lastname@example.org is my email.