command line

By default, most instillation of Centos will end up having the default protocol set to be dynamic (DHCP) for obtaining the IP address. For a web server this is not what we want as it will be no good having the IP change and then having to change DHCP records to correctly point to the new IP address. This tutorial will show you how to change the IP protocol for a Centos 7 OS to use a static IP instead of a dynamic IP.

Start by navigating to the directory that contains the IP config files.

You should get a list of files that are inside this directory. Most of the time there will be a file named “ifcfg-eth0”, but its not always the case. The name may vary, but it will always begin with “ifcfg”. When you are looking at the results have a look and see what files are in this directory that begin with “ifcfg” and work from there.

Once you have found the correct file you will see that there is a variable near the top of the file called “BOOTPROTO”. This will be set to “dhcp” this needs to be changed to be static. You will then need to go to the bottom of the file and alter or add some values for the network information. Your file should look like the file below once you have finished. (be sure to replace the placeholder info with actual IP information).

If you are in a situation where you have no access to the machine other than command line, you will need to use VI to edit the file. Once you have a static IP you should be able to connect to the machine using SFTP and modify the file using a text editor.

Once you have made edits to the file, you will need to restart the networking on the server. The following command will restart the networking and should now allow you to access the server using the static IP that you have defined.

 

There are many different ways to get the IP of the current server on linux machines which causes a lot of conflict across the different variations. Not all operating systems use the same command and sometimes the command used is not built in as part of the operating system. If you are running the minimal install of Centos 7 you will find that the standard command “ifconfig” does not exist. You could install this if you wish, but there are methods to obtain this using the tools you have available already. There are 2 possible ways to get the IP address.

This will dump out quite a bit of info, the import part being the IP address of the server. This can be a bit messy, but is a more reliable method of obtaining the servers IP. If you want a quick an easy way of finding out what it is, you can run the following command to display just the IP. This is not as reliable and will sometimes return a blank value for a server that has not been configured correctly.

 

command line

Installing can be quite simple to do and also very dangerous as you install something, it completely wrecks apache and now your web server wont start back up again. Well worry not, its very easy to uninstall anything that you have installed. The first thing you need to know is that the name of the package changes from the name of the original file that you downloaded and installed. You will first need to perform a search of everything that is installed to get the name of the package you are looking for. Using grep will make this way easier.

This will generate a massive list of all of the packages installed on your system if you run it without the grep. Once you have found the name of the package you want to install run the following command to uninstall an RPM package from your system.

If the RPM that you installed was part of another application such as an apache module, make sure to run the command to restart the application in case it has crashed with the install of the RPM.

Thankfully this is very easy to perform. You can begin to get over the mini heart attack you had when your server went down now 🙂

When running a web server it’s vital that you have you important that you have applications like apache and mysql start when the system does. Who knows what might trigger a reboot and even more, you don’t want to perform a quick restart and have the entire server crumble. Well fear not, it is very easy to set up your system for running applications on system startup.

The following command will work for Centos and Red Hat Linux.

Run the above command in your command line tool and mysql will be set to start when the system does. Replace mysql with another application name such as httpd to make that application start up on boot too.

laravel logo

I looked up a few tutorials online on how to install Laravel and I got to the point where composer was giving me an error saying that i needed to upgrade to PHP 5.5. Since I had 5.4 running on the server and also had quite a lot of stuff already running on this server I was left in a difficult position where I needed to install Laravel and it seemed like I was required to install PHP 5.6 or 5.5. These are not supported by the default repos with CentOS. Going down the road of using custom repos is just asking for trouble, so I decided to find a way to do this without having to upgrade. So here is how I installed Laravel using PHP 5.4.

I am going to assume that you already have apache and php installed and running on your server.

Install Composer

I looked around and everyone was saying to run a bunch of stuff to download and compile composer. Seems like a waste of time when it was available using yum. I’m not sure if this is required, but you should install the epel repo to make sure you can install everything you need.

Thats it, composer is installed. Sure beats having to do a bunch of weird stuff to get it installed.

Install Laravel

Based on the official documentation for installing Laravel 5 http://laravel.com/docs/5.0 there are 2 different ways to install. I first tried to do it via the laraval new method and this worked, but it messed up. It seemed like the version of php I was running did not live up to the requirements. I don’t know why, so i tried the second option and this worked! To do this i ran the following commands.

This will begin the install process which can take some time as it does a whole load of stuff. Half way through i got an error message saying I needed a GitHub access token in order to continue further. Thankfully i already have a github account, but if you do not then you will need to create one.

To get a GitHub access token, follow this guide. https://help.github.com/articles/creating-an-access-token-for-command-line-use/

Enter the Github access token and it will continue with the install.

Once installed this should be it. If you go to the laravel/public directory in your browser you should see the default Laravel page. If you get an error 500 then it is likely due to apache not having write permissions. This can be fixed with the chown command.

 

So you have chosen an awesome cryptic password that not even you can remember! It happens to us all, but fear not, it’s quite a simple job to reset this. Not sure if we should be worried over how easy it is to reset the root password for your mysql server, but we wont complaint for the moment.

So first thing you need to do to be able to do this is have root shell access to your server. The following commands are specific to Red Hat/Centos, but the same process can be used for any linux distro if you update the command accordingly.

Once you are connected to your server you must disable mysql.

Now that it is stopped you can enter the following command

You should now have access to update the internal tables for SQL. Now you can log into mysql and reset the password. The semi colon at the end of the line is important! Otherwise the command will keep going with an arrow. I.e ‘->’

 

Now you should be able to start the server back up.

command line

The grep command can be used to display the contents of a file and ignore the lines that are commented. This can be useful when quickly checking what options are enabled for certain applications without having to look through large amounts of commented text.

For this example we will use grep to ignore all lines that start with a # in a file stored on the system. The command will first take the config options that will tell grep to ignore lines that begin with a # and the second will be the location of the file that you want to read.

The contents of this file are

The following output is returned when the above command is ran on this file.

Apache Logo

In order to be able to use RewriteEngine to rewrite URLs you will need to have mod_rewrite installed for Apache. To Install it enter the line of code below into terminal. The following line will install for CentOS. This command may differ for different Linux distributions.

Once installed you will need to open your httpd.conf file which should be located in /etc/httpd/conf/httpd.conf. Scroll down and make sure the mod_rewrite module is uncommented. Note: There will be a # in front of the line if it is commented out. Remove the # if it is there.

The final step is to allow URLs to be rewritten in your websites directory. E.G. If your site is located in /var/www/html you will need to look for a DocumentRoot block that contains the path. This was listed twice for me so make sure you check to see there isnt a DocumentRoot entry for your path more than once.

You need to change this to

Now restart apache and you should be able to add rewrite rules to your .htaccess file.