<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2003346800207305155</id><updated>2024-10-04T18:54:53.213-07:00</updated><category term="linux"/><category term="ubuntu"/><category term="mysql"/><category term="firewall"/><category term="php"/><category term="windows"/><category term="line commad"/><category term="programming"/><category term="security"/><category term="apache"/><category term="commad"/><category term="dos"/><category term="hack"/><category term="scripting"/><category term="CentOS"/><category term="apache2"/><category term="microsoft"/><category term="redhat"/><category term="samba"/><category term="Xen"/><category term="Xen.Ubuntu"/><category term="audio"/><category term="backup"/><category term="bash"/><category term="batch"/><category term="cgi"/><category term="cloud"/><category term="download"/><category term="environment"/><category term="ipcop"/><category term="iptable"/><category term="kali"/><category term="lamp"/><category term="laravel 4"/><category term="mssql"/><category term="others"/><category term="perl"/><category term="proxy"/><category term="shell"/><category term="sql server 2005"/><category term="symfony"/><category term="windows 8"/><category term="wordpress"/><title type='text'>Kota Jembal Ubuntu / Linux</title><subtitle type='html'>My personal experience as a programmer, system admin and database administratror.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>83</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-8852558162845392651</id><published>2016-06-12T20:28:00.000-07:00</published><updated>2016-06-12T20:28:24.385-07:00</updated><title type='text'>E: Unable to fetch some archives, m</title><content type='html'>from http://stackoverflow.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is linked to using a non LTS version of ubuntu called an End of 
life version. As those have discontinued support. You can check if your 
ubuntu lies in the end of life version on this link -&amp;gt; &lt;a href=&quot;https://wiki.ubuntu.com/Releases&quot;&gt;https://wiki.ubuntu.com/Releases&lt;/a&gt;&lt;br /&gt;


The simplest solution is to do the following two steps:&lt;br /&gt;


1- Backup your sources list -&amp;gt; sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup&lt;br /&gt;


2- Open the sources file &quot;/etc/apt/sources.list&quot; Rename all the instances of &lt;strong&gt;us.archive&lt;/strong&gt; or &lt;strong&gt;archive&lt;/strong&gt; in http://&lt;strong&gt;us.archive&lt;/strong&gt;.ubuntu.com/ubuntu/  to &lt;br /&gt;


http://&lt;strong&gt;old-releases&lt;/strong&gt;.ubuntu.com/ubuntu/&lt;br /&gt;


Also do the same for the http://&lt;strong&gt;security&lt;/strong&gt;.ubuntu.com/ubuntu/dists/saucy-security/universe/binary-i386/Packages&lt;br /&gt;


3- Run sudo apt-get update after doing the above.&lt;br /&gt;


That should fix the issue.&lt;br /&gt;


&lt;strong&gt;Warning&lt;/strong&gt;: Please update your ubuntu to an LTS version
 as soon as possible otherwise you won&#39;t be getting the latest security 
patches. This is definitely not a solution that you would deploy on 
production machines.</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/8852558162845392651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/8852558162845392651' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/8852558162845392651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/8852558162845392651'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2016/06/e-unable-to-fetch-some-archives-m.html' title='E: Unable to fetch some archives, m'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-5004185083850935400</id><published>2016-05-25T19:44:00.002-07:00</published><updated>2016-05-25T19:44:53.723-07:00</updated><title type='text'>Install package using tasksel (Ubuntu 16.04)</title><content type='html'>tasksel is a gui for install a bundle og installation&lt;br /&gt;
&lt;br /&gt;
1. install the tasksel tool&lt;br /&gt;
&lt;br /&gt;
# apt install tasksel&lt;br /&gt;
&lt;br /&gt;
2. run the tasksel util&lt;br /&gt;
&lt;br /&gt;
# tasksel&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;&quot; height=&quot;480&quot; src=&quot;data:image/png;base64,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&quot; width=&quot;640&quot; /&gt;</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/5004185083850935400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/5004185083850935400' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/5004185083850935400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/5004185083850935400'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2016/05/install-package-using-tasksel-ubuntu.html' title='Install package using tasksel (Ubuntu 16.04)'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-4068013165060448299</id><published>2015-05-22T00:13:00.002-07:00</published><updated>2015-05-22T01:38:10.005-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="firewall"/><category scheme="http://www.blogger.com/atom/ns#" term="hack"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="security"/><title type='text'>Network Security tools script</title><content type='html'>&lt;h2&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;Chkrootkit&lt;/span&gt;:&lt;/b&gt;&lt;br /&gt;
chkrootkit is a tool to locally check for signs of a rootkit. It 
contains a chkrootkit: shell script that checks system binaries for 
rootkit modification.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Installation:&lt;/b&gt;&lt;br /&gt;
Open up the terminal and type the following command to install chkrootkit: &lt;br /&gt;
&lt;/h2&gt;
&lt;div style=&quot;color: blue;&quot;&gt;
&lt;i&gt;$ sudo apt-get install chkrootkit&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Using chkrootkit:&lt;/b&gt;&lt;br /&gt;
Open up the terminal and type the command: &lt;i style=&quot;color: blue;&quot;&gt;$ sudo chkrootkit&lt;/i&gt;&lt;br /&gt;
This will perform all tests&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Other Configurations:&lt;/b&gt;&lt;br /&gt;
If you want an automatic daily run of chkrootkit:&lt;br /&gt;
Open &lt;i&gt;/etc/chkrootkit.conf&lt;/i&gt; and Replace &lt;i style=&quot;color: blue;&quot;&gt;RUN_DAILY=&quot;false&quot;&lt;/i&gt; by &lt;i style=&quot;color: blue;&quot;&gt;RUN_DAILY=&quot;true&quot;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
If you also want a daily mailed report :&lt;br /&gt;
Open &lt;i&gt;/etc/cron.daily/chkrootkit&lt;/i&gt; and replace &lt;i style=&quot;color: blue;&quot;&gt;&#39;$CHKROOTKIT $RUN_DAILY_OPTS&#39;&lt;/i&gt; by&lt;br /&gt;
&lt;div style=&quot;color: blue;&quot;&gt;
&lt;i&gt;&#39;$CHKROOTKIT $RUN_DAILY_OPTS | mail -s &#39;&quot;\&quot;Daily chkrootkit run from $HOSTNAME \&quot;$YOUR_EMAIL_ADDRESS&quot;&#39;&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;Rkhunter&lt;/span&gt;:&lt;/b&gt;&lt;br /&gt;
Rootkit Hunter scans files and systems for known and unknown rootkits, 
backdoors, sniffers, and malware. The application consists of the main 
shell script, a few text-based databases, and optional Perl scripts. It 
can recognise and run external applications like &#39;skdet&#39; and &#39;unhide&#39;. 
It should run on almost every Unix clone.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Installation:&lt;/b&gt;&lt;br /&gt;
Open up the terminal and type the following command to install Rkhunter: &lt;br /&gt;
&lt;div style=&quot;color: blue;&quot;&gt;
&lt;i&gt;$ sudo apt-get install Rkhunter&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Using Rkhunter:&lt;/b&gt;&lt;br /&gt;
Open up the terminal and type the command: &lt;i style=&quot;color: blue;&quot;&gt;$ sudo rkhunter --check&lt;/i&gt;&lt;br /&gt;
This will perform all tests&lt;br /&gt;
&lt;br /&gt;
By default, the log file &#39;&lt;i&gt;/var/log/rkhunter.log&lt;/i&gt;&#39; will be created. It will contain the results of the checks made by Rkhunter&lt;br /&gt;
&lt;br /&gt;
The following command option causes rkhunter to check and download the later version of any of its text data files: &lt;i style=&quot;color: blue;&quot;&gt;$ sudo rkhunter --update&lt;/i&gt;&lt;div style=&quot;background-color: white; border: medium none; color: black; overflow: hidden; text-align: left; text-decoration: none;&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;h2&gt;
&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;
others :&lt;/h2&gt;
&lt;h2&gt;
&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;
1. DenyHosts&lt;/h2&gt;
&lt;br /&gt;
&lt;h2&gt;
 &lt;/h2&gt;
&lt;h2&gt;
What is DenyHosts?&lt;/h2&gt;
DenyHosts is a script intended to be run by Linux system administrators to help 
thwart SSH server attacks (also known as dictionary based attacks and brute force 
attacks).



If you&#39;ve ever looked at your ssh log (/var/log/secure on Redhat, /var/log/auth.log on Mandrake, etc...) you may be 
alarmed to see how many hackers attempted to gain access to your server.  Hopefully, none of them were successful (but 
then again, how would you know?).  Wouldn&#39;t it be better to automatically prevent that attacker from continuing to gain 
entry into your system?&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;
Features&lt;/h1&gt;
- Parses /var/log/secure to find all login attempts and filters failed
  and successful attempts.

- Synchronization mode (new in 2.0) allows DenyHosts daemons the ability to share data via a centralized server
to proactively thwart attacks.
&lt;br /&gt;
- Can be run from the command line, cron or as a daemon (new in 0.9)
&lt;br /&gt;
- Records all failed login attempts for the user and offending host
&lt;br /&gt;
- For each host that exceeds a threshold count, records the evil host
&lt;br /&gt;
- Keeps track of each non-existent user (eg. sdadasd) when a login attempt
  failed.
&lt;br /&gt;
- Keeps track of each existing user (eg. root) when a login attempt
  failed.
&lt;br /&gt;
- Keeps track of each offending host (with 0.8+ these hosts can be purged if the associated entry in /etc/hosts.deny 
is expired)
&lt;br /&gt;
- Keeps track of suspicious logins (that is, logins that were successful
  for a host that had many login failures)
&lt;br /&gt;
- Keeps track of the file offset, so that you can reparse the same file
  (/var/log/secure) continuously (until it is rotated).
&lt;br /&gt;
- When the log file is rotated, the script will detect it and parse from
  the beginning.
&lt;br /&gt;
- Appends /etc/hosts.deny and adds the newly banned hosts
&lt;br /&gt;
- Optionally sends an email of newly banned hosts and suspicious logins.
&lt;br /&gt;
- Keeps a history of all user, host, user/host combo and suspicious logins
  encountered which includes the data and number of corresponding failed
  login attempts.
&lt;br /&gt;
- Maintains failed valid and invalid user login attempts in separate
  files, such that it is easy to see which valid user is under attack
  (which would give you the opportunity to remove the account, change the
  password or change it&#39;s default shell to something like /sbin/nologin
&lt;br /&gt;
- Upon each run, the script will load the previously saved data and re-use
  it to append new failures.
&lt;br /&gt;
- Resolves IP addresses to hostnames, if available (new in v0.6.0).
&lt;br /&gt;
- /etc/hosts.deny entries can be expired (purge) at a user specified time (new in 0.8)&lt;br /&gt;
&lt;br /&gt;
These are some of the people and sites that have blogged about DenyHosts: &lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.unixreview.com/documents/s=9846/ur0508g/ur0508g.html&quot; target=&quot;x&quot;&gt;Tool of 
the Month&lt;/a&gt;

&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.howtoforge.com/preventing_ssh_dictionary_attacks_with_denyhosts&quot; target=&quot;x&quot;&gt;Preventing SSH Dictionary Attacks With DenyHosts&lt;/a&gt;

&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://tdot.blog-city.com/securing_ssh_with_denyhosts.htm&quot; target=&quot;x&quot;&gt;Securing SSH with 
DenyHosts&lt;/a&gt;

&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://it.slashdot.org/comments.pl?sid=156058&amp;amp;cid=13081972&quot; target=&quot;x&quot;&gt;Slashdot&lt;/a&gt;

&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.dimensionzero.ca/archives/2005/03/&quot; target=&quot;x&quot;&gt;The Life Of Ken&lt;/a&gt;

&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://madphilosopher.ca/index.php?s=denyhosts&quot; target=&quot;x&quot;&gt;The Mad Philosopher&lt;/a&gt;

&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://little.xmtp.net/blog/2005/08/09/denyhosts-is-a-must-have-if-you-run-secure-shell/&quot; target=&quot;x&quot;&gt;Jay R. Wren&lt;/a&gt;

&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://software.newsforge.com/comments.pl?sid=47145&amp;amp;cid=114010&quot;&gt;NewsForge&lt;/a&gt;

&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://theory.kaos.to/blog/archives/2005/06/14/denyhosts-an-ssh-server-attack-denial-tool/&quot; target=&quot;x&amp;gt;Kaos Theory&amp;lt;/a&amp;gt;

&amp;lt;li&amp;gt;&amp;lt;a href=&quot;&gt;Nix Bits&lt;/a&gt;

&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.hojohnlee.com/weblog/archives/2005/07/17/links-for-2005-07-17/&quot; target=&quot;x&quot;&gt;Ho
John Lee&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;
2. Fail2ban&lt;/h2&gt;
&lt;i&gt;Fail2ban&lt;/i&gt; scans log files (e.g. &lt;tt&gt;/var/log/apache/error_log&lt;/tt&gt;)
 and bans IPs that show the malicious signs -- too many password 
failures, seeking for exploits, etc.  Generally Fail2Ban is then used to
 update firewall rules to reject the IP addresses for a specified amount
 of time, although any arbitrary other action (e.g. sending an email) could also be configured.  Out of the box Fail2Ban comes with filters&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt; for various services (apache, courier, ssh, etc).&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h1 id=&quot;Installing_Security_Tools&quot;&gt;
3. Ubuntu security tools&lt;/h1&gt;
&lt;span class=&quot;anchor&quot; id=&quot;line-2&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;line874&quot;&gt;
The Ubuntu 
repositories contain several useful tools for maintaining a secure 
network and network administration. This page attempts to list the most 
popular and useful of these utilities, a brief description of them, and 
how to install them. &lt;span class=&quot;anchor&quot; id=&quot;line-3&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;Wireshark&lt;/i&gt; (Previously called &lt;i&gt;Ethereal&lt;/i&gt;)
 - a popular network traffic analyzing tool, that can capture both off 
the wire and from existing capture files. It features a helpful GUI to 
ease analysis. Note: The Universe package adds a menu entry that expects
 the user to have a root account.  To use ethereal in Ubuntu, use gksudo
 in a terminal. You should only run it using sudo if need to capture 
packets live; root privileges are not required to read saved capture 
files. For Ubuntu 6.06 and earlier install the &lt;b&gt;ethereal&lt;/b&gt; and &lt;b&gt;ethereal-common&lt;/b&gt; packages from the Universe Repository. &lt;span class=&quot;anchor&quot; id=&quot;line-5&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-6&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-7&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div class=&quot;line862&quot;&gt;
For Ubuntu 6.10 onwards install install the &lt;b&gt;wireshark&lt;/b&gt; and &lt;b&gt;wireshark-common&lt;/b&gt; packages from the Universe Repository. &lt;span class=&quot;anchor&quot; id=&quot;line-8&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-9&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-10&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;a class=&quot;http&quot; href=&quot;http://www.tenable.com/products/nessus&quot;&gt;&#39;&#39;Nessus&#39;&#39;&lt;/a&gt;
 - a powerful remote network security auditor, with a nice GUI. Nessus 
supports plugins and offers a usually current attack database. It also 
features useful scripting abilities, allowing you to automate many 
tasks. Nessus is no longer open source, but is available free for 
personal use. &lt;span class=&quot;anchor&quot; id=&quot;line-11&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-12&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;a class=&quot;http&quot; href=&quot;http://openvas.org/&quot;&gt;&#39;&#39;OpenVAS&#39;&#39;&lt;/a&gt;
       (The Open Vulnerability Assessment System) is a framework of 
several services and tools offering a comprehensive and powerful 
vulnerability scanning and vulnerability management solution. The actual
 security scanner is accompanied with a daily updated feed of Network 
Vulnerability Tests (NVTs), over 20,000 in total (as of January 2011). 
All OpenVAS products are Free Software. Most components are licensed 
under the GNU General Public License (GNU GPL). (&lt;a class=&quot;http&quot; href=&quot;http://ubuntuforums.org/showthread.php?t=1754666&quot;&gt;forum thread on how to install and use.&lt;/a&gt;) &lt;span class=&quot;anchor&quot; id=&quot;line-13&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-14&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;Nmap&lt;/i&gt; - the standard network mapper.  Has a thousand and one uses. To install Nmap install the &lt;b&gt;nmap&lt;/b&gt; package. &lt;span class=&quot;anchor&quot; id=&quot;line-15&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-16&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;Etherape&lt;/i&gt; - an etherman clone. It displays network activity with an intuitive UI. Install the &lt;b&gt;etherape&lt;/b&gt; package from the Universe Repository. &lt;span class=&quot;anchor&quot; id=&quot;line-17&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-18&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;Kismet&lt;/i&gt; - a wireless sniffing tool. Includes support for GPS map scanning with in use of the gpsdrive package. Install the &lt;b&gt;kismet&lt;/b&gt; package from the Universe Repository. &lt;span class=&quot;anchor&quot; id=&quot;line-19&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-20&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;Chkrootkit&lt;/i&gt;
 - chkrootkit can be used to help determine if a machine has been 
compromised. While not what you should use for the &#39;final word&#39; on if 
you have been compromised, it runs a lot of useful checks and can direct
 suspicions towards finding a solution. To install chkrootkit install 
the &lt;b&gt;chkrootkit&lt;/b&gt; package. &lt;span class=&quot;anchor&quot; id=&quot;line-21&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-22&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;Rkhunter&lt;/i&gt; (Ubuntu 6.06 and above only) - another rootkit detection software. Install the &lt;b&gt;rkhunter&lt;/b&gt; package from the Universe Repository. &lt;span class=&quot;anchor&quot; id=&quot;line-23&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-24&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;tiger&lt;/i&gt;
 - Tiger is a package consisting of Bourne Shell scripts, C code and 
data files which is used for checking for security problems on a UNIX 
system.  It scans system configuration files, file systems, and user 
configuration files for possible security problems and reports them. 
Install &lt;b&gt;tiger chkrootkit john&lt;/b&gt;. &lt;span class=&quot;anchor&quot; id=&quot;line-25&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-26&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;GnuPG&lt;/i&gt;
 - also known as GPG, is an open source PGP replacement implementing the
 OpenPGP standard. Lacks support for IDEA, but is incredibly useful. 
Included by default. GnuPG will allow you to encrypt emails, digitally 
sign, and integrates well into the Evolution mail client as well as 
Thunderbird. &lt;span class=&quot;anchor&quot; id=&quot;line-27&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-28&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;Seahorse&lt;/i&gt; - a light-weight Gnome frontend for GPG, makes managing keys much easier. Install the &lt;b&gt;seahorse&lt;/b&gt; package from the Universe Repository. &lt;span class=&quot;anchor&quot; id=&quot;line-29&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-30&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;Nemesis&lt;/i&gt;
 - a command-line based packet injection utility.  Requires a bit of 
reading the documentation to get full use from. To install nemesis 
install the &lt;b&gt;nemesis&lt;/b&gt; package from the Universe Repository. &lt;span class=&quot;anchor&quot; id=&quot;line-31&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-32&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-33&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;Tcpdump&lt;/i&gt;
 - while its name suggests that it works for only TCP, tcpdump also 
supports UDP, BGP, NFS, and a lot of other packet types.  It is a 
powerful network utility that should be in every admins toolbox, 
allowing you to pull in everything off the wire.  In combination with 
ethereal it doesn&#39;t miss much. To install tcpdump install the &lt;b&gt;tcpdump&lt;/b&gt; package. &lt;span class=&quot;anchor&quot; id=&quot;line-34&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-35&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;OpenSSH&lt;/i&gt;
 - OpenSSH almost singlehandedly stopped admins from using telnet, an 
insecure protocol. The OpenSSH client is installed by default.  
Generally you want to use SSH instead of telnet or rsh. In some 
situations, such as large number of clients, you might want to pursue 
other options, such as telnet with ssl.  To install the ssh server 
install the &lt;b&gt;openssh-server&lt;/b&gt; package. &lt;span class=&quot;anchor&quot; id=&quot;line-36&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-37&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;denyhosts&lt;/i&gt;
 (Ubuntu 6.10 and above only) - scans your SSH logs to find brute-force 
attacks, and then blocks the IPs they came from. To install denyhosts 
install the &lt;b&gt;denyhosts&lt;/b&gt; package.  &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/4068013165060448299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/4068013165060448299' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/4068013165060448299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/4068013165060448299'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2015/05/denyhosts.html' title='Network Security tools script'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-816627667773562992</id><published>2015-05-21T04:03:00.000-07:00</published><updated>2015-05-23T18:18:48.600-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hack"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="security"/><title type='text'>ssh compromised</title><content type='html'>&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;Chkrootkit&lt;/span&gt;:&lt;/b&gt;&lt;br /&gt;
chkrootkit is a tool to locally check for signs of a rootkit. It 
contains a chkrootkit: shell script that checks system binaries for 
rootkit modification.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Installation:&lt;/b&gt;&lt;br /&gt;
Open up the terminal and type the following command to install chkrootkit: &lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;color: blue;&quot;&gt;
&lt;i&gt;$ sudo apt-get install chkrootkit&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Using chkrootkit:&lt;/b&gt;&lt;br /&gt;
Open up the terminal and type the command: &lt;i style=&quot;color: blue;&quot;&gt;$ sudo chkrootkit&lt;/i&gt;&lt;br /&gt;
This will perform all tests&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Other Configurations:&lt;/b&gt;&lt;br /&gt;
If you want an automatic daily run of chkrootkit:&lt;br /&gt;
Open &lt;i&gt;/etc/chkrootkit.conf&lt;/i&gt; and Replace &lt;i style=&quot;color: blue;&quot;&gt;RUN_DAILY=&quot;false&quot;&lt;/i&gt; by &lt;i style=&quot;color: blue;&quot;&gt;RUN_DAILY=&quot;true&quot;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
If you also want a daily mailed report :&lt;br /&gt;
Open &lt;i&gt;/etc/cron.daily/chkrootkit&lt;/i&gt; and replace &lt;i style=&quot;color: blue;&quot;&gt;&#39;$CHKROOTKIT $RUN_DAILY_OPTS&#39;&lt;/i&gt; by&lt;br /&gt;
&lt;div style=&quot;color: blue;&quot;&gt;
&lt;i&gt;&#39;$CHKROOTKIT $RUN_DAILY_OPTS | mail -s &#39;&quot;\&quot;Daily chkrootkit run from $HOSTNAME \&quot;$YOUR_EMAIL_ADDRESS&quot;&#39;&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;Rkhunter&lt;/span&gt;:&lt;/b&gt;&lt;br /&gt;
Rootkit Hunter scans files and systems for known and unknown rootkits, 
backdoors, sniffers, and malware. The application consists of the main 
shell script, a few text-based databases, and optional Perl scripts. It 
can recognise and run external applications like &#39;skdet&#39; and &#39;unhide&#39;. 
It should run on almost every Unix clone.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Installation:&lt;/b&gt;&lt;br /&gt;
Open up the terminal and type the following command to install Rkhunter: &lt;br /&gt;
&lt;div style=&quot;color: blue;&quot;&gt;
&lt;i&gt;$ sudo apt-get install Rkhunter&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;Using Rkhunter:&lt;/b&gt;&lt;br /&gt;
Open up the terminal and type the command: &lt;i style=&quot;color: blue;&quot;&gt;$ sudo rkhunter --check&lt;/i&gt;&lt;br /&gt;
This will perform all tests&lt;br /&gt;
&lt;br /&gt;
By default, the log file &#39;&lt;i&gt;/var/log/rkhunter.log&lt;/i&gt;&#39; will be created. It will contain the results of the checks made by Rkhunter&lt;br /&gt;
&lt;br /&gt;
The following command option causes rkhunter to check and download the later version of any of its text data files: &lt;i style=&quot;color: blue;&quot;&gt;$ sudo rkhunter --update&lt;/i&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: white; border: medium none; color: black; overflow: hidden; text-align: left; text-decoration: none;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ssh compromised&lt;br /&gt;
&lt;br /&gt;
1. stop ssh service&lt;br /&gt;
&lt;pre class=&quot;bbcodeblock&quot; dir=&quot;ltr&quot; style=&quot;border: 1px inset; height: 34px; margin-right: -99999px; margin: 0px; overflow: auto; padding: 3px; text-align: left; width: 98%;&quot;&gt;sudo /etc/init.d/ssh stop&lt;/pre&gt;
&lt;br /&gt;
2. stop ssh service&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;bbcodeblock&quot; dir=&quot;ltr&quot; style=&quot;border: 1px inset; height: 34px; margin-right: -99999px; margin: 0px; overflow: auto; padding: 3px; text-align: left; width: 98%;&quot;&gt;# sudo /etc/init.d/ssh start&lt;/pre&gt;
&lt;br /&gt;
3. Do not start at boot time :&lt;br /&gt;
&lt;br /&gt;
chkconfig sshd off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Check &lt;b&gt;auth&lt;/b&gt; log :&lt;br /&gt;
&lt;tt&gt;&amp;nbsp;&lt;/tt&gt;&lt;tt&gt;/var/log/auth.log&lt;/tt&gt;&lt;br /&gt;
/var/log/auth.log.0 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Do a portscan with nmap&lt;br /&gt;
&lt;br /&gt;
3. security tools utils :&lt;br /&gt;
&lt;br /&gt;
- &lt;a href=&quot;http://logcheck.org/&quot; rel=&quot;nofollow&quot;&gt;logcheck&lt;/a&gt;, &lt;a href=&quot;http://sourceforge.net/projects/sentrytools/&quot; rel=&quot;nofollow&quot;&gt;portsentry&lt;/a&gt;, and &lt;a href=&quot;http://sourceforge.net/projects/tripwire/&quot; rel=&quot;nofollow&quot;&gt;tripwire&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&quot;it&#39;s very common for random dictionary SSH attempts, so i wouldn&#39;t be 
too worried by that. you may want to change the port for random 
obfuscation, but you&#39;ll still see random attempts from time to time, 
it&#39;s life having a machine on the internet.&quot; - Owen &lt;br /&gt;
&lt;br /&gt;
&quot;Will happen all the time with ssh enabled.  Move it to a high port.&quot; - Bill K&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if there was an attack, the best advice is to reinstall it from 
scratch ( make sure you plugin any holes on the new install ). It is 
very easy to not notice a backdoor or a stealth process, you are better 
off reinstalling.

&lt;br /&gt;
&quot;* ... prevent this from happening in the future?&quot;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;security updates &lt;/li&gt;
&lt;li&gt;tight firewall &lt;/li&gt;
&lt;li&gt;strong passwords &lt;/li&gt;
&lt;li&gt;turn off uneccessary services&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
Suggestion :&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;post-text&quot; itemprop=&quot;text&quot;&gt;
There is some poor advice on this thread, such as:&lt;br /&gt;


&lt;ul&gt;
&lt;li&gt;using a non-standard port for ssh (wrong!)&lt;/li&gt;
&lt;li&gt;using some third party security tool (adding an unnecessary dependency/complexity)&lt;/li&gt;
&lt;li&gt;configuring your firewall to block or whitelisting (maintenance head-ache)&lt;/li&gt;
&lt;/ul&gt;
Simply tweak your &lt;code&gt;/etc/ssh/sshd_config&lt;/code&gt; instead to improve security:&lt;br /&gt;


&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PermitRootLogin no&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Configure &lt;strong&gt;AllowUsers&lt;/strong&gt; for only the users on the system who have ssh accounts&lt;/li&gt;
&lt;li&gt;Consider using only physical keys with &#39;PasswordAuthentication no&#39;&lt;/li&gt;
&lt;/ul&gt;
If you are box has been infiltrated. Rebuild the box.&lt;br /&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;post-text&quot; itemprop=&quot;text&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;post-text&quot; itemprop=&quot;text&quot;&gt;
-----------------------------------------------------------------------------------------------------------------&lt;/div&gt;
&lt;div class=&quot;post-text&quot; itemprop=&quot;text&quot;&gt;
&amp;nbsp;See:&lt;br /&gt;


&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://serverfault.com/questions/6159/aftermath-of-hack&quot;&gt;http://serverfault.com/questions/6159/aftermath-of-hack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://serverfault.com/questions/6190/reinstall-after-a-root-compromise&quot;&gt;http://serverfault.com/questions/6190/reinstall-after-a-root-compromise&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
  How can I prevent this from happening in the future?&lt;br /&gt;

&lt;/blockquote&gt;
See: &lt;br /&gt;


&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://serverfault.com/questions/4188/preventing-brute-force-attacks-against-ssh&quot;&gt;http://serverfault.com/questions/4188/preventing-brute-force-attacks-against-ssh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://serverfault.com/questions/17870/hundreds-of-failed-ssh-logins&quot;&gt;http://serverfault.com/questions/17870/hundreds-of-failed-ssh-logins&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://serverfault.com/questions/55679/ubuntu-server-ssh&quot;&gt;http://serverfault.com/questions/55679/ubuntu-server-ssh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://serverfault.com/questions/11659/what-steps-do-you-take-to-secure-a-debian-server&quot;&gt;http://serverfault.com/questions/11659/what-steps-do-you-take-to-secure-a-debian-server&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;post-text&quot; itemprop=&quot;text&quot;&gt;
----------------------------------------------------------------------------------------------------------------- &lt;/div&gt;
&lt;br /&gt;
You can watch the box to see what&#39;s going in and out and look for anything suspicious. See this post: &lt;a href=&quot;http://stackoverflow.com/questions/124745/sniffing-network-traffic-for-signs-of-virusesspyware&quot;&gt;http://stackoverflow.com/questions/124745/sniffing-network-traffic-for-signs-of-virusesspyware&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;post-text&quot; itemprop=&quot;text&quot;&gt;
&lt;a href=&quot;http://cipherdyne.org/psad/&quot; rel=&quot;nofollow&quot;&gt;Psad&lt;/a&gt; coupled with &lt;a href=&quot;http://www.shorewall.net/&quot; rel=&quot;nofollow&quot;&gt;Shorewall&lt;/a&gt; is a good way to compliment your iptables rules.&lt;br /&gt;


I also use &lt;a href=&quot;http://www.fail2ban.org/&quot; rel=&quot;nofollow&quot;&gt;Fail2ban&lt;/a&gt; to track my ssh logins&lt;br /&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;post-text&quot; itemprop=&quot;text&quot;&gt;
&amp;nbsp;&lt;/div&gt;
-----------------------------------------------------------------------------------------------------------------&lt;br /&gt;


&lt;br /&gt;
&lt;a href=&quot;http://www.ossec.net/&quot; rel=&quot;nofollow&quot;&gt;http://www.ossec.net/&lt;/a&gt;&lt;br /&gt;


taken from the website :&lt;br /&gt;


&quot;OSSEC is an Open Source Host-based Intrusion Detection System. It 
performs log analysis, file integrity checking, policy monitoring, 
rootkit detection, real-time alerting and active response.&quot;&lt;br /&gt;


&lt;ul&gt;
&lt;li&gt;log analysis
It can check logs file on your servers and alerts you via rules (there are a lot pre-defined and you can add your own)&lt;/li&gt;
&lt;li&gt;file integrity
tripwire/aide like functionnality so you will see if any file has been modified on your server&lt;/li&gt;
&lt;li&gt;policy monitoring :
check some &quot;Best practices&quot; security rules&lt;/li&gt;
&lt;li&gt;rootkit detection :
rkhunter, chkrootkit like functionnality &lt;/li&gt;
&lt;li&gt;real-time alerting and active response :
You can configure ossec to react automatically to alerts (i don&#39;t use 
this but you can use it to block ssh access to hosts making too many 
failed connections attempts)&lt;/li&gt;
&lt;/ul&gt;
Really good product and it is very active&lt;br /&gt;


To harden your box you can also use &lt;strong&gt;lynis&lt;/strong&gt; or &lt;strong&gt;bastille&lt;/strong&gt;&lt;br /&gt;


&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.rootkit.nl/projects/lynis.html&quot; rel=&quot;nofollow&quot;&gt;http://www.rootkit.nl/projects/lynis.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bastille-linux.sourceforge.net/&quot; rel=&quot;nofollow&quot;&gt;http://bastille-linux.sourceforge.net/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
-----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
take a look at tools like &lt;a href=&quot;http://logcheck.org/&quot; rel=&quot;nofollow&quot;&gt;logcheck&lt;/a&gt;, &lt;a href=&quot;http://sourceforge.net/projects/sentrytools/&quot; rel=&quot;nofollow&quot;&gt;portsentry&lt;/a&gt;, and &lt;a href=&quot;http://sourceforge.net/projects/tripwire/&quot; rel=&quot;nofollow&quot;&gt;tripwire&lt;/a&gt;.
 it&#39;s very common for random dictionary SSH attempts, so i wouldn&#39;t be 
too worried by that. you may want to change the port for random 
obfuscation, but you&#39;ll still see random attempts from time to time, 
it&#39;s life having a machine on the internet.&lt;br /&gt;
-----------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Prevention :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Use&amp;nbsp; iptables&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;$ iptables        -A INPUT      -p tcp --dport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
$ iptables        -A INPUT      -p tcp --dport 22 -m state --state NEW -m limit --limit 3/min --limit-burst 3 -j ACCEPT
$ iptables        -A INPUT      -p tcp --dport 22 -j DROP&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
Use &lt;a href=&quot;http://denyhosts.sourceforge.net/&quot;&gt;DenyHosts&lt;/a&gt; to monitor my logs for suspicious SSH traffic, it can configured to automatically firewall off hosts at a certain point.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
others :&lt;/h2&gt;
&lt;h2&gt;
&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;
1. DenyHosts&lt;/h2&gt;
&lt;br /&gt;
&lt;h2&gt;
 &lt;/h2&gt;
&lt;h2&gt;
What is DenyHosts?&lt;/h2&gt;
DenyHosts is a script intended to be run by Linux system administrators to help 
thwart SSH server attacks (also known as dictionary based attacks and brute force 
attacks).



If you&#39;ve ever looked at your ssh log (/var/log/secure on Redhat, /var/log/auth.log on Mandrake, etc...) you may be 
alarmed to see how many hackers attempted to gain access to your server.  Hopefully, none of them were successful (but 
then again, how would you know?).  Wouldn&#39;t it be better to automatically prevent that attacker from continuing to gain 
entry into your system?&lt;br /&gt;
&lt;br /&gt;
&lt;h1&gt;
Features&lt;/h1&gt;
- Parses /var/log/secure to find all login attempts and filters failed
  and successful attempts.

- Synchronization mode (new in 2.0) allows DenyHosts daemons the ability to share data via a centralized server
to proactively thwart attacks.
&lt;br /&gt;
- Can be run from the command line, cron or as a daemon (new in 0.9)
&lt;br /&gt;
- Records all failed login attempts for the user and offending host
&lt;br /&gt;
- For each host that exceeds a threshold count, records the evil host
&lt;br /&gt;
- Keeps track of each non-existent user (eg. sdadasd) when a login attempt
  failed.
&lt;br /&gt;
- Keeps track of each existing user (eg. root) when a login attempt
  failed.
&lt;br /&gt;
- Keeps track of each offending host (with 0.8+ these hosts can be purged if the associated entry in /etc/hosts.deny 
is expired)
&lt;br /&gt;
- Keeps track of suspicious logins (that is, logins that were successful
  for a host that had many login failures)
&lt;br /&gt;
- Keeps track of the file offset, so that you can reparse the same file
  (/var/log/secure) continuously (until it is rotated).
&lt;br /&gt;
- When the log file is rotated, the script will detect it and parse from
  the beginning.
&lt;br /&gt;
- Appends /etc/hosts.deny and adds the newly banned hosts
&lt;br /&gt;
- Optionally sends an email of newly banned hosts and suspicious logins.
&lt;br /&gt;
- Keeps a history of all user, host, user/host combo and suspicious logins
  encountered which includes the data and number of corresponding failed
  login attempts.
&lt;br /&gt;
- Maintains failed valid and invalid user login attempts in separate
  files, such that it is easy to see which valid user is under attack
  (which would give you the opportunity to remove the account, change the
  password or change it&#39;s default shell to something like /sbin/nologin
&lt;br /&gt;
- Upon each run, the script will load the previously saved data and re-use
  it to append new failures.
&lt;br /&gt;
- Resolves IP addresses to hostnames, if available (new in v0.6.0).
&lt;br /&gt;
- /etc/hosts.deny entries can be expired (purge) at a user specified time (new in 0.8)&lt;br /&gt;
&lt;br /&gt;
These are some of the people and sites that have blogged about DenyHosts: &lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.unixreview.com/documents/s=9846/ur0508g/ur0508g.html&quot; target=&quot;x&quot;&gt;Tool of 
the Month&lt;/a&gt;

&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.howtoforge.com/preventing_ssh_dictionary_attacks_with_denyhosts&quot; target=&quot;x&quot;&gt;Preventing SSH Dictionary Attacks With DenyHosts&lt;/a&gt;

&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://tdot.blog-city.com/securing_ssh_with_denyhosts.htm&quot; target=&quot;x&quot;&gt;Securing SSH with 
DenyHosts&lt;/a&gt;

&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://it.slashdot.org/comments.pl?sid=156058&amp;amp;cid=13081972&quot; target=&quot;x&quot;&gt;Slashdot&lt;/a&gt;

&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.dimensionzero.ca/archives/2005/03/&quot; target=&quot;x&quot;&gt;The Life Of Ken&lt;/a&gt;

&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://madphilosopher.ca/index.php?s=denyhosts&quot; target=&quot;x&quot;&gt;The Mad Philosopher&lt;/a&gt;

&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://little.xmtp.net/blog/2005/08/09/denyhosts-is-a-must-have-if-you-run-secure-shell/&quot; target=&quot;x&quot;&gt;Jay R. Wren&lt;/a&gt;

&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://software.newsforge.com/comments.pl?sid=47145&amp;amp;cid=114010&quot;&gt;NewsForge&lt;/a&gt;

&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://theory.kaos.to/blog/archives/2005/06/14/denyhosts-an-ssh-server-attack-denial-tool/&quot; target=&quot;x&amp;gt;Kaos Theory&amp;lt;/a&amp;gt;

&amp;lt;li&amp;gt;&amp;lt;a href=&quot;&gt;Nix Bits&lt;/a&gt;

&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.hojohnlee.com/weblog/archives/2005/07/17/links-for-2005-07-17/&quot; target=&quot;x&quot;&gt;Ho
John Lee&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;
2. Fail2ban&lt;/h2&gt;
&lt;i&gt;Fail2ban&lt;/i&gt; scans log files (e.g. &lt;tt&gt;/var/log/apache/error_log&lt;/tt&gt;)
 and bans IPs that show the malicious signs -- too many password 
failures, seeking for exploits, etc.  Generally Fail2Ban is then used to
 update firewall rules to reject the IP addresses for a specified amount
 of time, although any arbitrary other action (e.g. sending an email) 
could also be configured.  Out of the box Fail2Ban comes with filters&lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt; for various services (apache, courier, ssh, etc).&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h1 id=&quot;Installing_Security_Tools&quot;&gt;
3. Ubuntu security tools&lt;/h1&gt;
&lt;span class=&quot;anchor&quot; id=&quot;line-2&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;line874&quot;&gt;
The Ubuntu 
repositories contain several useful tools for maintaining a secure 
network and network administration. This page attempts to list the most 
popular and useful of these utilities, a brief description of them, and 
how to install them. &lt;span class=&quot;anchor&quot; id=&quot;line-3&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-4&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;Wireshark&lt;/i&gt; (Previously called &lt;i&gt;Ethereal&lt;/i&gt;)
 - a popular network traffic analyzing tool, that can capture both off 
the wire and from existing capture files. It features a helpful GUI to 
ease analysis. Note: The Universe package adds a menu entry that expects
 the user to have a root account.  To use ethereal in Ubuntu, use gksudo
 in a terminal. You should only run it using sudo if need to capture 
packets live; root privileges are not required to read saved capture 
files. For Ubuntu 6.06 and earlier install the &lt;b&gt;ethereal&lt;/b&gt; and &lt;b&gt;ethereal-common&lt;/b&gt; packages from the Universe Repository. &lt;span class=&quot;anchor&quot; id=&quot;line-5&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-6&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-7&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div class=&quot;line862&quot;&gt;
For Ubuntu 6.10 onwards install install the &lt;b&gt;wireshark&lt;/b&gt; and &lt;b&gt;wireshark-common&lt;/b&gt; packages from the Universe Repository. &lt;span class=&quot;anchor&quot; id=&quot;line-8&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-9&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-10&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;a class=&quot;http&quot; href=&quot;http://www.tenable.com/products/nessus&quot;&gt;&#39;&#39;Nessus&#39;&#39;&lt;/a&gt;
 - a powerful remote network security auditor, with a nice GUI. Nessus 
supports plugins and offers a usually current attack database. It also 
features useful scripting abilities, allowing you to automate many 
tasks. Nessus is no longer open source, but is available free for 
personal use. &lt;span class=&quot;anchor&quot; id=&quot;line-11&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-12&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;a class=&quot;http&quot; href=&quot;http://openvas.org/&quot;&gt;&#39;&#39;OpenVAS&#39;&#39;&lt;/a&gt;
       (The Open Vulnerability Assessment System) is a framework of 
several services and tools offering a comprehensive and powerful 
vulnerability scanning and vulnerability management solution. The actual
 security scanner is accompanied with a daily updated feed of Network 
Vulnerability Tests (NVTs), over 20,000 in total (as of January 2011). 
All OpenVAS products are Free Software. Most components are licensed 
under the GNU General Public License (GNU GPL). (&lt;a class=&quot;http&quot; href=&quot;http://ubuntuforums.org/showthread.php?t=1754666&quot;&gt;forum thread on how to install and use.&lt;/a&gt;) &lt;span class=&quot;anchor&quot; id=&quot;line-13&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-14&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;Nmap&lt;/i&gt; - the standard network mapper.  Has a thousand and one uses. To install Nmap install the &lt;b&gt;nmap&lt;/b&gt; package. &lt;span class=&quot;anchor&quot; id=&quot;line-15&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-16&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;Etherape&lt;/i&gt; - an etherman clone. It displays network activity with an intuitive UI. Install the &lt;b&gt;etherape&lt;/b&gt; package from the Universe Repository. &lt;span class=&quot;anchor&quot; id=&quot;line-17&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-18&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;Kismet&lt;/i&gt; - a wireless sniffing tool. Includes support for GPS map scanning with in use of the gpsdrive package. Install the &lt;b&gt;kismet&lt;/b&gt; package from the Universe Repository. &lt;span class=&quot;anchor&quot; id=&quot;line-19&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-20&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;Chkrootkit&lt;/i&gt;
 - chkrootkit can be used to help determine if a machine has been 
compromised. While not what you should use for the &#39;final word&#39; on if 
you have been compromised, it runs a lot of useful checks and can direct
 suspicions towards finding a solution. To install chkrootkit install 
the &lt;b&gt;chkrootkit&lt;/b&gt; package. &lt;span class=&quot;anchor&quot; id=&quot;line-21&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-22&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;Rkhunter&lt;/i&gt; (Ubuntu 6.06 and above only) - another rootkit detection software. Install the &lt;b&gt;rkhunter&lt;/b&gt; package from the Universe Repository. &lt;span class=&quot;anchor&quot; id=&quot;line-23&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-24&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;tiger&lt;/i&gt;
 - Tiger is a package consisting of Bourne Shell scripts, C code and 
data files which is used for checking for security problems on a UNIX 
system.  It scans system configuration files, file systems, and user 
configuration files for possible security problems and reports them. 
Install &lt;b&gt;tiger chkrootkit john&lt;/b&gt;. &lt;span class=&quot;anchor&quot; id=&quot;line-25&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-26&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;GnuPG&lt;/i&gt;
 - also known as GPG, is an open source PGP replacement implementing the
 OpenPGP standard. Lacks support for IDEA, but is incredibly useful. 
Included by default. GnuPG will allow you to encrypt emails, digitally 
sign, and integrates well into the Evolution mail client as well as 
Thunderbird. &lt;span class=&quot;anchor&quot; id=&quot;line-27&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-28&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;Seahorse&lt;/i&gt; - a light-weight Gnome frontend for GPG, makes managing keys much easier. Install the &lt;b&gt;seahorse&lt;/b&gt; package from the Universe Repository. &lt;span class=&quot;anchor&quot; id=&quot;line-29&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-30&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;Nemesis&lt;/i&gt;
 - a command-line based packet injection utility.  Requires a bit of 
reading the documentation to get full use from. To install nemesis 
install the &lt;b&gt;nemesis&lt;/b&gt; package from the Universe Repository. &lt;span class=&quot;anchor&quot; id=&quot;line-31&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-32&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-33&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;Tcpdump&lt;/i&gt;
 - while its name suggests that it works for only TCP, tcpdump also 
supports UDP, BGP, NFS, and a lot of other packet types.  It is a 
powerful network utility that should be in every admins toolbox, 
allowing you to pull in everything off the wire.  In combination with 
ethereal it doesn&#39;t miss much. To install tcpdump install the &lt;b&gt;tcpdump&lt;/b&gt; package. &lt;span class=&quot;anchor&quot; id=&quot;line-34&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-35&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;OpenSSH&lt;/i&gt;
 - OpenSSH almost singlehandedly stopped admins from using telnet, an 
insecure protocol. The OpenSSH client is installed by default.  
Generally you want to use SSH instead of telnet or rsh. In some 
situations, such as large number of clients, you might want to pursue 
other options, such as telnet with ssl.  To install the ssh server 
install the &lt;b&gt;openssh-server&lt;/b&gt; package. &lt;span class=&quot;anchor&quot; id=&quot;line-36&quot;&gt;&lt;/span&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-37&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;gap&quot;&gt;&lt;div class=&quot;line891&quot;&gt;
&lt;i&gt;denyhosts&lt;/i&gt;
 (Ubuntu 6.10 and above only) - scans your SSH logs to find brute-force 
attacks, and then blocks the IPs they came from. To install denyhosts 
install the &lt;b&gt;denyhosts&lt;/b&gt; package.  &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/816627667773562992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/816627667773562992' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/816627667773562992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/816627667773562992'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2015/05/ssh-compromised.html' title='ssh compromised'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-2839020424276163225</id><published>2014-11-25T00:59:00.000-08:00</published><updated>2014-11-25T00:59:33.197-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="line commad"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><title type='text'>SCP command</title><content type='html'>&lt;h5&gt;
Basic syntax of SCP&lt;/h5&gt;
&lt;pre&gt;# scp source_file_name username@destination_host:destination_folder&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;h3&gt;
Provide the detail information of SCP process using -v parameter&lt;/h3&gt;
&lt;pre&gt;# scp -v Label.pdf mrarianto@202.x.x.x:.&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;h3&gt;
Provide modification times, access times, and modes from original files&lt;/h3&gt;
&lt;pre&gt;# scp -p Label.pdf mrarianto@202.x.x.x:.&lt;/pre&gt;
&lt;h3&gt;
Make file transfer faster using -C parameter&lt;/h3&gt;
&lt;pre&gt;# scp -pv messages.log mrarianto@202.x.x.x:.&lt;/pre&gt;
&amp;nbsp;&lt;pre&gt;# scp -Cpv messages.log mrarianto@202.x.x.x:.&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;h3&gt;
Select another cipher to encrypt files&lt;/h3&gt;
&lt;pre&gt;# scp -c 3des Label.pdf mrarianto@202.x.x.x:.&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;h3&gt;
Limiting bandwidth usage&lt;/h3&gt;
&lt;pre&gt;# scp -l 400 Label.pdf mrarianto@202.x.x.x:.&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;h3&gt;
&amp;nbsp;Specify specific port to use with SCP&lt;/h3&gt;
&lt;pre&gt;scp -P 2249 Label.pdf mrarianto@202.x.x.x:.&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;h3&gt;
Copy files inside directory recursively&lt;/h3&gt;
&lt;pre&gt; scp -r documents mrarianto@202.x.x.x:.&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;h3&gt;
Disable progress meter and warning / diagnostic message&lt;/h3&gt;
&lt;pre&gt;scp -q Label.pdf mrarianto@202.x.x.x:.&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;h3&gt;
Copy files using SCP through Proxy&lt;/h3&gt;
&lt;pre&gt;ProxyCommand /usr/bin/corkscrew 10.0.96.6 8080 %h %p ~/.ssh/proxyauth&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;“&lt;strong&gt;~/.ssh/proxyauth&lt;/strong&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;strong&gt;myusername:mypassword&lt;/strong&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/pre&gt;
&lt;h3&gt;
Select different ssh_config file&lt;/h3&gt;
&lt;pre&gt;scp -F /home/pungki/proxy_ssh_config Label.pdf&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;h3&gt;
&amp;nbsp;&lt;/h3&gt;
&lt;pre&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt; &lt;/pre&gt;
&lt;h3&gt;
&amp;nbsp;&lt;/h3&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;h3&gt;
&amp;nbsp;&lt;/h3&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;h3&gt;
&amp;nbsp;&lt;/h3&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;h3&gt;
&amp;nbsp;&lt;/h3&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;h3&gt;
&amp;nbsp;&lt;/h3&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/2839020424276163225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/2839020424276163225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/2839020424276163225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/2839020424276163225'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2014/11/scp-command.html' title='SCP command'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-1223735180829389580</id><published>2014-10-30T16:54:00.000-07:00</published><updated>2014-10-30T16:54:34.194-07:00</updated><title type='text'>Laravel 4 – simple website with backend tutorial – Part 1</title><content type='html'>&lt;h1&gt;
Laravel 4 – simple website with backend tutorial – Part 1&lt;/h1&gt;
&lt;a class=&quot;comments-nr&quot; href=&quot;http://www.codeforest.net/laravel4-simple-website-with-backend-1#disqus_thread&quot;&gt;85 Comments&lt;/a&gt;

&lt;figure class=&quot;preview-image&quot;&gt;
&lt;a href=&quot;http://www.codeforest.net/laravel4-simple-website-with-backend-1&quot; title=&quot;Laravel 4 – simple website with backend tutorial – Part 1&quot;&gt;
&lt;img alt=&quot;Getting started with Laravel&quot; class=&quot;attachment-post-thumbnail wp-post-image&quot; height=&quot;138&quot; src=&quot;http://www.codeforest.net/wp-content/uploads/2013/04/laravel-logo-big-570x398-138x138.png&quot; width=&quot;138&quot; /&gt; &lt;/a&gt;
&lt;/figure&gt;
 &lt;div class=&quot;ssba&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;a class=&quot;ssba_twitter_share&quot; href=&quot;http://twitter.com/share?url=http://www.codeforest.net/laravel4-simple-website-with-backend-1&amp;amp;text=Laravel+4+%E2%80%93+simple+website+with+backend+tutorial+%E2%80%93+Part+1+&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Tweet about this on Twitter&quot; class=&quot;ssba&quot; src=&quot;http://www.codeforest.net/wp-content/plugins/simple-share-buttons-adder/buttons/somacro/twitter.png&quot; title=&quot;Twitter&quot; /&gt;&lt;/a&gt;&lt;a class=&quot;ssba_facebook_share&quot; href=&quot;http://www.facebook.com/sharer.php?u=http://www.codeforest.net/laravel4-simple-website-with-backend-1&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Share on Facebook&quot; class=&quot;ssba&quot; src=&quot;http://www.codeforest.net/wp-content/plugins/simple-share-buttons-adder/buttons/somacro/facebook.png&quot; title=&quot;Facebook&quot; /&gt;&lt;/a&gt;&lt;a class=&quot;ssba_google_share&quot; href=&quot;https://plus.google.com/share?url=http://www.codeforest.net/laravel4-simple-website-with-backend-1&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Share on Google+&quot; class=&quot;ssba&quot; src=&quot;http://www.codeforest.net/wp-content/plugins/simple-share-buttons-adder/buttons/somacro/google.png&quot; title=&quot;Google+&quot; /&gt;&lt;/a&gt;&lt;a class=&quot;ssba_linkedin_share ssba_share_link&quot; href=&quot;http://www.linkedin.com/shareArticle?mini=true&amp;amp;url=http://www.codeforest.net/laravel4-simple-website-with-backend-1&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Share on LinkedIn&quot; class=&quot;ssba&quot; src=&quot;http://www.codeforest.net/wp-content/plugins/simple-share-buttons-adder/buttons/somacro/linkedin.png&quot; title=&quot;Linkedin&quot; /&gt;&lt;/a&gt;&lt;a class=&quot;ssba_reddit_share&quot; href=&quot;http://reddit.com/submit?url=http://www.codeforest.net/laravel4-simple-website-with-backend-1&amp;amp;title=Laravel%204%20%E2%80%93%20simple%20website%20with%20backend%20tutorial%20%E2%80%93%20Part%201&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Share on Reddit&quot; class=&quot;ssba&quot; src=&quot;http://www.codeforest.net/wp-content/plugins/simple-share-buttons-adder/buttons/somacro/reddit.png&quot; title=&quot;Reddit&quot; /&gt;&lt;/a&gt;&lt;a class=&quot;ssba_stumbleupon_share ssba_share_link&quot; href=&quot;http://www.stumbleupon.com/submit?url=http://www.codeforest.net/laravel4-simple-website-with-backend-1&amp;amp;title=Laravel%204%20%E2%80%93%20simple%20website%20with%20backend%20tutorial%20%E2%80%93%20Part%201&quot; target=&quot;_blank&quot;&gt;&lt;img alt=&quot;Share on StumbleUpon&quot; class=&quot;ssba&quot; src=&quot;http://www.codeforest.net/wp-content/plugins/simple-share-buttons-adder/buttons/somacro/stumbleupon.png&quot; title=&quot;StumbleUpon&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
Laravel
 4 app will be developed at the same time as writing this article, and 
everything will be up on Github. I’ll try to separate the tutorial parts
 in branches so it will be easier to follow. Github URL: &lt;a href=&quot;https://github.com/bstrahija/l4-site-tutorial&quot; target=&quot;_blank&quot;&gt;https://github.com/bstrahija/l4-site-tutorial&lt;/a&gt;&lt;br /&gt;

&lt;strong&gt;EDIT: The second part of &lt;a href=&quot;http://www.codeforest.net/laravel-4-tutorial-part-2&quot; target=&quot;_blank&quot; title=&quot;Laravel 4 tutorial – simple website with backend – Part 2&quot;&gt;Laravel 4 tutorial is available&lt;/a&gt;!!!&lt;/strong&gt;&lt;br /&gt;

This is by no means a tutorial for beginners, there are plenty of those &lt;img alt=&quot;;)&quot; class=&quot;wp-smiley&quot; src=&quot;http://www.codeforest.net/wp-includes/images/smilies/icon_wink.gif&quot; /&gt;  I assume you already know the basics on how to &lt;a href=&quot;http://getcomposer.org/doc/&quot; title=&quot;Composer Docs&quot;&gt;install Composer&lt;/a&gt;, pull down the Laravel 4 base application. You will need some mid-level knowledge on tools like &lt;a href=&quot;http://getcomposer.org/&quot; title=&quot;Composer&quot;&gt;Composer&lt;/a&gt;, &lt;a href=&quot;http://git-scm.com/&quot; title=&quot;Git&quot;&gt;Git&lt;/a&gt;, working in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Command-line_interface&quot;&gt;terminal&lt;/a&gt;…&lt;br /&gt;

I’m going to put up some links to resources on getting started with 
Laravel and Composer at the end of this article. Also keep in mind that 
at this point Laravel 4 is still in BETA, but it’s really stable and 
scheduled for release during May.&lt;br /&gt;

&lt;h2&gt;
Installing Laravel 4 and all the dependencies&lt;/h2&gt;
Since Laravel 4 already leverages a lot of third party packages, 
we’ll expand on that, and add some that could be useful for our 
application. Here are some of composer packages that we’re going to 
need:&lt;br /&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/cartalyst/sentry&quot; title=&quot;Cartalyst Sentry&quot;&gt;Sentry&lt;/a&gt; – user authentication (cartalyst/sentry)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/avalanche123/Imagine&quot; title=&quot;Imagine library&quot;&gt;Imagine&lt;/a&gt; – image manipulation and resizing (imagine/Imagine)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/dflydev/dflydev-markdown&quot; title=&quot;Mardown parsing&quot;&gt;Markdown&lt;/a&gt; – for converting markdown text to HTML (dflydev/markdown)&lt;/li&gt;
&lt;/ul&gt;
So, first let’s start by creating a new L4 app. We’re going to call 
our app simply “L4 Site”. You can call yours anything you like &lt;img alt=&quot;;)&quot; class=&quot;wp-smiley&quot; src=&quot;http://www.codeforest.net/wp-includes/images/smilies/icon_wink.gif&quot; /&gt; &lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  xml&quot; id=&quot;highlighter_367775&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;xml plain&quot;&gt;git clone -b develop &lt;a href=&quot;git://github.com/laravel/laravel.git&quot;&gt;git://github.com/laravel/laravel.git&lt;/a&gt; l4_site&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;xml plain&quot;&gt;cd l4_site&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
The next step is to setup our composer file. After adding our dependencies, it should look like this:&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_139772&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
5&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
6&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
7&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
8&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
9&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
10&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
11&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
12&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot;&gt;
13&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot;&gt;
14&lt;/div&gt;
&lt;div class=&quot;line number15 index14 alt2&quot;&gt;
15&lt;/div&gt;
&lt;div class=&quot;line number16 index15 alt1&quot;&gt;
16&lt;/div&gt;
&lt;div class=&quot;line number17 index16 alt2&quot;&gt;
17&lt;/div&gt;
&lt;div class=&quot;line number18 index17 alt1&quot;&gt;
18&lt;/div&gt;
&lt;div class=&quot;line number19 index18 alt2&quot;&gt;
19&lt;/div&gt;
&lt;div class=&quot;line number20 index19 alt1&quot;&gt;
20&lt;/div&gt;
&lt;div class=&quot;line number21 index20 alt2&quot;&gt;
21&lt;/div&gt;
&lt;div class=&quot;line number22 index21 alt1&quot;&gt;
22&lt;/div&gt;
&lt;div class=&quot;line number23 index22 alt2&quot;&gt;
23&lt;/div&gt;
&lt;div class=&quot;line number24 index23 alt1&quot;&gt;
24&lt;/div&gt;
&lt;div class=&quot;line number25 index24 alt2&quot;&gt;
25&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;amp;quot;&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;require&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;amp;quot;: {&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;amp;quot;laravel/framework&amp;amp;quot;: &amp;amp;quot;4.0.*&amp;amp;quot;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;amp;quot;cartalyst/sentry&amp;amp;quot;: &amp;amp;quot;2.0.*&amp;amp;quot;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;amp;quot;dflydev/markdown&amp;amp;quot;: &amp;amp;quot;v1.0.2&amp;amp;quot;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;amp;quot;imagine/Imagine&amp;amp;quot;: &amp;amp;quot;v0.4.1&amp;amp;quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;},&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;amp;quot;autoload&amp;amp;quot;: {&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;amp;quot;classmap&amp;amp;quot;: [&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;amp;quot;app/commands&amp;amp;quot;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;amp;quot;app/controllers&amp;amp;quot;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;amp;quot;app/models&amp;amp;quot;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;amp;quot;app/database/migrations&amp;amp;quot;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;amp;quot;app/database/seeds&amp;amp;quot;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number15 index14 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;amp;quot;app/tests/TestCase.php&amp;amp;quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number16 index15 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;]&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number17 index16 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;},&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number18 index17 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;amp;quot;scripts&amp;amp;quot;: {&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number19 index18 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;amp;quot;post-update-cmd&amp;amp;quot;: &amp;amp;quot;php artisan optimize&amp;amp;quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number20 index19 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;},&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number21 index20 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;amp;quot;config&amp;amp;quot;: {&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number22 index21 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;amp;quot;preferred-install&amp;amp;quot;: &amp;amp;quot;dist&amp;amp;quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number23 index22 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;},&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number24 index23 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;amp;quot;minimum-stability&amp;amp;quot;: &amp;amp;quot;dev&amp;amp;quot;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number25 index24 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
Then just run “&lt;em&gt;php composer install&lt;/em&gt;” and wait for all the dependencies to download. This could take a couple of minutes.&lt;br /&gt;

When everything is finished downloading we need to check if the app 
actually works. For this I would recommend to setup a virtual host 
entry, or if you working on a machine with PHP 5.4 you can utilize the 
PHP built in server by running “&lt;em&gt;php artisan serve&lt;/em&gt;” from the console.&lt;br /&gt;

For simplicity sake I’ll take the approach with the build in PHP server which will start the server on the URL &lt;em&gt;http://localhost:8000/&lt;/em&gt;.&lt;br /&gt;
If you get the Hello World! page then everything is fine, but if you see
 any errors you should consult the Laravel 4 documentation.&lt;br /&gt;

&lt;h2&gt;
Setup the database and migrations&lt;/h2&gt;
The next step is to setup the database connection and create our 
migrations. I’ll be working with a MySQL database, but you can choose 
whatever database type you want as long as Laravel 4 supports it. If 
don’t know what migrations and seeding are, you can read more on that 
here:&amp;nbsp;http://four.laravel.com/docs/migrations&lt;br /&gt;

My database is named “l4_site”, and now I am going to enter the database credentials into the database configuration file (&lt;em&gt;app/config/database.php&lt;/em&gt;). This is pretty straightforward, but if you run into problems consult the Laravel 4 documentation.&lt;br /&gt;

Since we’re leveraging the Sentry package for our user authentication
 stuff, and Sentry already has some migration setup, we just need to run
 those migrations by running the following command in our console:&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_70484&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;php artisan migrate --package=cartalyst/sentry&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
Sentry should create 4 DB tables: users, groups, users_groups and 
throttle. To complete installation for the Sentry package consult the 
Sentry docs: &lt;a href=&quot;http://docs.cartalyst.com/sentry-2/installation/laravel-4&quot; target=&quot;_blank&quot;&gt;http://docs.cartalyst.com/sentry-2/installation/laravel-4&lt;/a&gt;&lt;br /&gt;

EDIT: Some people complained there’s not enough info on installing 
Sentry, so basicaly you need to add the service provider and the alias 
to your &lt;strong&gt;app/config/app.php&lt;/strong&gt; file:&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_56793&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php string&quot;&gt;&#39;Cartalyst\Sentry\SentryServiceProvider&#39;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
and&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_621433&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php string&quot;&gt;&#39;Sentry&#39;&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;=&amp;amp;gt; &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;Cartalyst\Sentry\Facades\Laravel\Sentry&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;,&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
I hope this clears it up.&lt;br /&gt;

Now that we have our authentication tables setup, we need to create 
tables that will contain the actual content. We will have 2 types of 
content entries, articles and pages. So the migrations that we need are 
these:&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_724497&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;php artisan migrate:make create_articles_table --table=articles --create&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;php artisan migrate:make create_pages_table --table=pages --create&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
The migrations are created inside the directory “&lt;em&gt;app/database/migrations&lt;/em&gt;“. To keep things simple, these are my migrations.&lt;br /&gt;
&lt;strong&gt;Articles:&lt;/strong&gt;&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_494013&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
5&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
6&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
7&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
8&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
9&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
10&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
11&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
12&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot;&gt;
13&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot;&gt;
14&lt;/div&gt;
&lt;div class=&quot;line number15 index14 alt2&quot;&gt;
15&lt;/div&gt;
&lt;div class=&quot;line number16 index15 alt1&quot;&gt;
16&lt;/div&gt;
&lt;div class=&quot;line number17 index16 alt2&quot;&gt;
17&lt;/div&gt;
&lt;div class=&quot;line number18 index17 alt1&quot;&gt;
18&lt;/div&gt;
&lt;div class=&quot;line number19 index18 alt2&quot;&gt;
19&lt;/div&gt;
&lt;div class=&quot;line number20 index19 alt1&quot;&gt;
20&lt;/div&gt;
&lt;div class=&quot;line number21 index20 alt2&quot;&gt;
21&lt;/div&gt;
&lt;div class=&quot;line number22 index21 alt1&quot;&gt;
22&lt;/div&gt;
&lt;div class=&quot;line number23 index22 alt2&quot;&gt;
23&lt;/div&gt;
&lt;div class=&quot;line number24 index23 alt1&quot;&gt;
24&lt;/div&gt;
&lt;div class=&quot;line number25 index24 alt2&quot;&gt;
25&lt;/div&gt;
&lt;div class=&quot;line number26 index25 alt1&quot;&gt;
26&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;&amp;amp;lt;?php&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;use&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;Illuminate\Database\Schema\Blueprint;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;use&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;Illuminate\Database\Migrations\Migration;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;class&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;CreateArticlesTable &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;extends&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;Migration {&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;up()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;Schema::create(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;articles&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;(Blueprint &lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;amp;gt;increments(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;id&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;amp;gt;string(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;title&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;amp;gt;string(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;slug&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number15 index14 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;amp;gt;text(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;body&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;)-&amp;amp;gt;nullable();&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number16 index15 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;amp;gt;string(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;image&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;)-&amp;amp;gt;nullable();&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number17 index16 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;amp;gt;integer(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;user_id&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number18 index17 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;amp;gt;timestamps();&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number19 index18 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;});&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number20 index19 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number21 index20 alt2&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number22 index21 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;down()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number23 index22 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number24 index23 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;Schema::drop(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;articles&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number25 index24 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number26 index25 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
and &lt;strong&gt;Pages&lt;/strong&gt;:&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_895346&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
5&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
6&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
7&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
8&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
9&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
10&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
11&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
12&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot;&gt;
13&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot;&gt;
14&lt;/div&gt;
&lt;div class=&quot;line number15 index14 alt2&quot;&gt;
15&lt;/div&gt;
&lt;div class=&quot;line number16 index15 alt1&quot;&gt;
16&lt;/div&gt;
&lt;div class=&quot;line number17 index16 alt2&quot;&gt;
17&lt;/div&gt;
&lt;div class=&quot;line number18 index17 alt1&quot;&gt;
18&lt;/div&gt;
&lt;div class=&quot;line number19 index18 alt2&quot;&gt;
19&lt;/div&gt;
&lt;div class=&quot;line number20 index19 alt1&quot;&gt;
20&lt;/div&gt;
&lt;div class=&quot;line number21 index20 alt2&quot;&gt;
21&lt;/div&gt;
&lt;div class=&quot;line number22 index21 alt1&quot;&gt;
22&lt;/div&gt;
&lt;div class=&quot;line number23 index22 alt2&quot;&gt;
23&lt;/div&gt;
&lt;div class=&quot;line number24 index23 alt1&quot;&gt;
24&lt;/div&gt;
&lt;div class=&quot;line number25 index24 alt2&quot;&gt;
25&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;&amp;amp;lt;?php&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;use&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;Illuminate\Database\Schema\Blueprint;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;use&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;Illuminate\Database\Migrations\Migration;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;class&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;CreatePagesTable &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;extends&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;Migration {&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;up()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;Schema::create(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;pages&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;(Blueprint &lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;amp;gt;increments(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;id&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;amp;gt;string(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;title&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;amp;gt;string(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;slug&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number15 index14 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;amp;gt;text(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;body&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;)-&amp;amp;gt;nullable();&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number16 index15 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;amp;gt;integer(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;user_id&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number17 index16 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;amp;gt;timestamps();&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number18 index17 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;});&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number19 index18 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number20 index19 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number21 index20 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;down()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number22 index21 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number23 index22 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;Schema::drop(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;pages&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number24 index23 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number25 index24 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
Now just run “&lt;em&gt;php artisan migrate&lt;/em&gt;” and the tables are created. It’s magic &lt;img alt=&quot;:)&quot; class=&quot;wp-smiley&quot; src=&quot;http://www.codeforest.net/wp-includes/images/smilies/icon_smile.gif&quot; /&gt; &lt;br /&gt;

&lt;h2&gt;
Our models&lt;/h2&gt;
To actually work with the database we need to create our models. The models that we need are:&lt;br /&gt;
&lt;strong&gt;app/models/Article.php&lt;/strong&gt;&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_311808&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
5&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
6&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
7&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
8&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
9&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
10&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
11&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
12&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;&amp;amp;lt;?php &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;namespace&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;App\Models;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;class&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;Article &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;extends&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;\Eloquent {&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;protected&lt;/code&gt; &lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;= &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;articles&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;author()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;return&lt;/code&gt; &lt;code class=&quot;php variable&quot;&gt;$this&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;amp;gt;belongsTo(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;User&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;strong&gt;app/models/Page.php&lt;/strong&gt;&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_852843&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
5&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
6&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
7&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
8&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
9&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
10&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
11&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
12&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;&amp;amp;lt;?php &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;namespace&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;App\Models;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;class&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;Page &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;extends&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;\Eloquent {&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;protected&lt;/code&gt; &lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;= &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;pages&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;author()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;return&lt;/code&gt; &lt;code class=&quot;php variable&quot;&gt;$this&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;amp;gt;belongsTo(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;User&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
There’s already a default User model in the “&lt;em&gt;app/models&lt;/em&gt;” folder, I just like to namespace it like the others under App\Models. Go ahead and check it out at: &lt;a href=&quot;https://github.com/bstrahija/l4-site-tutorial/blob/master/app/models/User.php&quot;&gt;https://github.com/bstrahija/l4-site-tutorial/blob/master/app/models/User.php&lt;/a&gt;&lt;br /&gt;

&lt;h2&gt;
Seeding the database&lt;/h2&gt;
For the app to actually contain some data, I like to add some dummy 
content. This can be achieved easily by using the Laravel 4 seeds. The 
files should be located in the “&lt;em&gt;app/database/seeds&lt;/em&gt;” directory, and here my setup for the app:&lt;br /&gt;
&lt;strong&gt;app/database/seeds/DatabaseSeeder.php&lt;/strong&gt;&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_200558&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
5&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
6&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
7&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
8&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
9&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
10&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
11&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
12&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot;&gt;
13&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot;&gt;
14&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;&amp;amp;lt;?php&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;class&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;DatabaseSeeder &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;extends&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;Seeder {&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;run()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$this&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;amp;gt;call(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;SentrySeeder&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$this&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;amp;gt;command-&amp;amp;gt;info(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;Sentry tables seeded!&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$this&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;amp;gt;call(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;ContentSeeder&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$this&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;amp;gt;command-&amp;amp;gt;info(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;Content tables seeded!&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;strong&gt;EDIT:&lt;/strong&gt; Since we use the Sentry package I changed the way the user is created. We now use&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_622065&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;Sentry::getUserProvider()-&amp;amp;gt;create();&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
for creation.&lt;br /&gt;

Also note that the User model is namespaced under App\Models, so you 
should also update you default model. Just take a look at everything 
here: &lt;a href=&quot;https://github.com/bstrahija/l4-site-tutorial/blob/master/app/models/User.php&quot;&gt;https://github.com/bstrahija/l4-site-tutorial/blob/master/app/models/User.php&lt;/a&gt;&lt;br /&gt;

&lt;strong&gt;app/database/seeds/SentrySeeder.php&lt;/strong&gt;&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_434611&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
5&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
6&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
7&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
8&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
9&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
10&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
11&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
12&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot;&gt;
13&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot;&gt;
14&lt;/div&gt;
&lt;div class=&quot;line number15 index14 alt2&quot;&gt;
15&lt;/div&gt;
&lt;div class=&quot;line number16 index15 alt1&quot;&gt;
16&lt;/div&gt;
&lt;div class=&quot;line number17 index16 alt2&quot;&gt;
17&lt;/div&gt;
&lt;div class=&quot;line number18 index17 alt1&quot;&gt;
18&lt;/div&gt;
&lt;div class=&quot;line number19 index18 alt2&quot;&gt;
19&lt;/div&gt;
&lt;div class=&quot;line number20 index19 alt1&quot;&gt;
20&lt;/div&gt;
&lt;div class=&quot;line number21 index20 alt2&quot;&gt;
21&lt;/div&gt;
&lt;div class=&quot;line number22 index21 alt1&quot;&gt;
22&lt;/div&gt;
&lt;div class=&quot;line number23 index22 alt2&quot;&gt;
23&lt;/div&gt;
&lt;div class=&quot;line number24 index23 alt1&quot;&gt;
24&lt;/div&gt;
&lt;div class=&quot;line number25 index24 alt2&quot;&gt;
25&lt;/div&gt;
&lt;div class=&quot;line number26 index25 alt1&quot;&gt;
26&lt;/div&gt;
&lt;div class=&quot;line number27 index26 alt2&quot;&gt;
27&lt;/div&gt;
&lt;div class=&quot;line number28 index27 alt1&quot;&gt;
28&lt;/div&gt;
&lt;div class=&quot;line number29 index28 alt2&quot;&gt;
29&lt;/div&gt;
&lt;div class=&quot;line number30 index29 alt1&quot;&gt;
30&lt;/div&gt;
&lt;div class=&quot;line number31 index30 alt2&quot;&gt;
31&lt;/div&gt;
&lt;div class=&quot;line number32 index31 alt1&quot;&gt;
32&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;&amp;amp;lt;?php&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;use&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;App\Models\User;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;class&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;SentrySeeder &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;extends&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;Seeder {&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;run()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;DB::table(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;users&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;)-&amp;amp;gt;&lt;/code&gt;&lt;code class=&quot;php functions&quot;&gt;delete&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;();&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;DB::table(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;groups&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;)-&amp;amp;gt;&lt;/code&gt;&lt;code class=&quot;php functions&quot;&gt;delete&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;();&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;DB::table(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;users_groups&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;)-&amp;amp;gt;&lt;/code&gt;&lt;code class=&quot;php functions&quot;&gt;delete&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;();&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;Sentry::getUserProvider()-&amp;amp;gt;create(&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;array&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;(&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;email&#39;&lt;/code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;code class=&quot;php plain&quot;&gt;=&amp;amp;gt; &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;admin@admin.com&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number15 index14 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;password&#39;&lt;/code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;code class=&quot;php plain&quot;&gt;=&amp;amp;gt; &amp;amp;quot;admin&amp;amp;quot;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number16 index15 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;first_name&#39;&lt;/code&gt;&amp;nbsp; &lt;code class=&quot;php plain&quot;&gt;=&amp;amp;gt; &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;John&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number17 index16 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;last_name&#39;&lt;/code&gt;&amp;nbsp;&amp;nbsp; &lt;code class=&quot;php plain&quot;&gt;=&amp;amp;gt; &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;McClane&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number18 index17 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;activated&#39;&lt;/code&gt;&amp;nbsp;&amp;nbsp; &lt;code class=&quot;php plain&quot;&gt;=&amp;amp;gt; 1,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number19 index18 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;));&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number20 index19 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number21 index20 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;Sentry::getGroupProvider()-&amp;amp;gt;create(&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;array&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;(&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number22 index21 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;name&#39;&lt;/code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;code class=&quot;php plain&quot;&gt;=&amp;amp;gt; &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;Admin&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number23 index22 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;permissions&#39;&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;=&amp;amp;gt; &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;array&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;admin&#39;&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;=&amp;amp;gt; 1),&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number24 index23 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;));&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number25 index24 alt2&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number26 index25 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php comments&quot;&gt;// Assign user permissions&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number27 index26 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$adminUser&lt;/code&gt;&amp;nbsp; &lt;code class=&quot;php plain&quot;&gt;= Sentry::getUserProvider()-&amp;amp;gt;findByLogin(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;admin@admin.com&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number28 index27 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$adminGroup&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;= Sentry::getGroupProvider()-&amp;amp;gt;findByName(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;Admin&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number29 index28 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$adminUser&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;amp;gt;addGroup(&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$adminGroup&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number30 index29 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number31 index30 alt2&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number32 index31 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;strong&gt;app/database/seeds/ContentSeeder.php&lt;/strong&gt;&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_80559&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
5&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
6&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
7&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
8&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
9&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
10&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
11&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
12&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot;&gt;
13&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot;&gt;
14&lt;/div&gt;
&lt;div class=&quot;line number15 index14 alt2&quot;&gt;
15&lt;/div&gt;
&lt;div class=&quot;line number16 index15 alt1&quot;&gt;
16&lt;/div&gt;
&lt;div class=&quot;line number17 index16 alt2&quot;&gt;
17&lt;/div&gt;
&lt;div class=&quot;line number18 index17 alt1&quot;&gt;
18&lt;/div&gt;
&lt;div class=&quot;line number19 index18 alt2&quot;&gt;
19&lt;/div&gt;
&lt;div class=&quot;line number20 index19 alt1&quot;&gt;
20&lt;/div&gt;
&lt;div class=&quot;line number21 index20 alt2&quot;&gt;
21&lt;/div&gt;
&lt;div class=&quot;line number22 index21 alt1&quot;&gt;
22&lt;/div&gt;
&lt;div class=&quot;line number23 index22 alt2&quot;&gt;
23&lt;/div&gt;
&lt;div class=&quot;line number24 index23 alt1&quot;&gt;
24&lt;/div&gt;
&lt;div class=&quot;line number25 index24 alt2&quot;&gt;
25&lt;/div&gt;
&lt;div class=&quot;line number26 index25 alt1&quot;&gt;
26&lt;/div&gt;
&lt;div class=&quot;line number27 index26 alt2&quot;&gt;
27&lt;/div&gt;
&lt;div class=&quot;line number28 index27 alt1&quot;&gt;
28&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;&amp;amp;lt;?php&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;use&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;App\Models\Article;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;use&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;App\Models\Page;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;class&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;ContentSeeder &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;extends&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;Seeder {&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;run()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;DB::table(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;articles&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;)-&amp;amp;gt;&lt;/code&gt;&lt;code class=&quot;php functions&quot;&gt;delete&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;();&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;DB::table(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;pages&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;)-&amp;amp;gt;&lt;/code&gt;&lt;code class=&quot;php functions&quot;&gt;delete&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;();&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;Article::create(&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;array&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;(&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;title&#39;&lt;/code&gt;&amp;nbsp;&amp;nbsp; &lt;code class=&quot;php plain&quot;&gt;=&amp;amp;gt; &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;First post&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number15 index14 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;slug&#39;&lt;/code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;code class=&quot;php plain&quot;&gt;=&amp;amp;gt; &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;first-post&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number16 index15 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;body&#39;&lt;/code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;code class=&quot;php plain&quot;&gt;=&amp;amp;gt; &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;Lorem
 ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod 
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim 
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea 
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate 
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint 
occaecat cupidatat non proident, sunt in culpa qui officia deserunt 
mollit anim id est laborum.&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number17 index16 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;user_id&#39;&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;=&amp;amp;gt; 1,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number18 index17 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;));&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number19 index18 alt2&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number20 index19 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;Page::create(&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;array&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;(&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number21 index20 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;title&#39;&lt;/code&gt;&amp;nbsp;&amp;nbsp; &lt;code class=&quot;php plain&quot;&gt;=&amp;amp;gt; &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;About us&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number22 index21 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;slug&#39;&lt;/code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;code class=&quot;php plain&quot;&gt;=&amp;amp;gt; &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;about-us&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number23 index22 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;body&#39;&lt;/code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;code class=&quot;php plain&quot;&gt;=&amp;amp;gt; &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;Lorem
 ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod 
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim 
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea 
commodo consequat. Duis aute irure dolor in reprehenderit in voluptate 
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint 
occaecat cupidatat non proident, sunt in culpa qui officia deserunt 
mollit anim id est laborum.&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number24 index23 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;user_id&#39;&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;=&amp;amp;gt; 1,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number25 index24 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;));&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number26 index25 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number27 index26 alt2&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number28 index27 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
Now run “&lt;em&gt;php artisan db:seed&lt;/em&gt;” in the console, and your database will be populated with the dummy data from the seeds. Nice.&lt;br /&gt;

&lt;h2&gt;
Extra tip on database seeding&lt;/h2&gt;
I created a couple of custom artisan commands to refresh the app. You can check them out: &lt;a href=&quot;https://github.com/bstrahija/l4-site-tutorial/tree/master/app/commands&quot; target=&quot;_blank&quot;&gt;https://github.com/bstrahija/l4-site-tutorial/tree/master/app/commands&lt;/a&gt;&lt;br /&gt;

This is useful for me when working on the app, and sometimes the data
 is modified, or some entries are deleted. Then I can easily reset the 
database to a fresh state by running:&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_420207&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;php artisan app:refresh&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
Also, since the migrate command doesn’t migrate 3rd party packages, I added the Sentry migration to the command.&lt;br /&gt;
You can add your own commands, call other package migrations etc.&lt;br /&gt;

&lt;h2&gt;
Tinker with our models&lt;/h2&gt;
Laravel 4 comes with a nice tool for tinkering with out app.&lt;br /&gt;
What we can do now is test if the database was properly seeded. Just run “&lt;em&gt;php artisan tinker&lt;/em&gt;” and we get into a simple REPL for our app.&lt;br /&gt;

Now to check if our pages and articles were seeded we just run the following inside the REPL:&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_324894&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php functions&quot;&gt;echo&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;App\Models\Page::all();&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
or&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_306727&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php functions&quot;&gt;echo&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;App\Models\Article::all();&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
And for each command we should get our database content entries in JSON format.&lt;br /&gt;

&lt;h2&gt;
What is next?&lt;/h2&gt;
For now we just created our database and models, added some dummy 
data to the database, and there isn’t really much to see in the browser 
yet.&lt;br /&gt;

In the next part we will start to create our backend panel so prepare
 yourself for some working with routes, controllers, views and assets.&lt;br /&gt;

The backend will be built with the Twitter Bootstrap package, since I find it’s the easiest to integrate.</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/1223735180829389580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/1223735180829389580' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/1223735180829389580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/1223735180829389580'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2014/10/laravel-4-simple-website-with-backend.html' title='Laravel 4 – simple website with backend tutorial – Part 1'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-6869854775077880433</id><published>2014-10-27T08:44:00.003-07:00</published><updated>2014-10-27T08:44:19.177-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="laravel 4"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><title type='text'>25 Laravel Tips and Tricks</title><content type='html'>&lt;h1 class=&quot;content-header__title nolinks&quot;&gt;
25 Laravel Tips and Tricks&lt;/h1&gt;
&lt;div class=&quot;content-header__publication-meta&quot;&gt;
&lt;span class=&quot;content-header__author-by&quot;&gt;&lt;/span&gt;by &lt;span class=&quot;content-header__author&quot;&gt;&lt;a class=&quot;content-header__author-link&quot; href=&quot;http://tutsplus.com/authors/jeffrey-way&quot; rel=&quot;author&quot;&gt;Jeffrey Way&lt;/a&gt;&lt;/span&gt;&lt;time class=&quot;content-header__publication-date&quot; datetime=&quot;2013-10-31T02:19:16Z&quot; title=&quot;31 Oct 2013&quot;&gt;31 Oct 2013&lt;/time&gt;&lt;span class=&quot;content-header__comment-count&quot;&gt;&lt;a class=&quot;content-header__comment-count-link&quot; data-disqus-identifier=&quot;1921085445&quot; href=&quot;http://code.tutsplus.com/tutorials/25-laravel-tips-and-tricks--pre-92818#disqus_thread&quot;&gt;1 Comment&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;content-header__social-share-links sticky-block--floating&quot;&gt;
&lt;ul class=&quot;social-share-links&quot;&gt;
&lt;li class=&quot;social-share-links__item&quot;&gt;&lt;a class=&quot;social-share-links__link social-share-links__link--facebook&quot; href=&quot;https://www.facebook.com/dialog/feed?app_id=1494084460809023&amp;amp;link=http%3A%2F%2Fcode.tutsplus.com%2Ftutorials%2F25-laravel-tips-and-tricks--pre-92818&amp;amp;display=page&amp;amp;name=25%20Laravel%20Tips%20and%20Tricks&amp;amp;redirect_uri=http%3A%2F%2Fcode.tutsplus.com%2Ftutorials%2F25-laravel-tips-and-tricks--pre-92818&quot; title=&quot;Share on Facebook&quot;&gt;&lt;div class=&quot;social-share-links__count&quot;&gt;
24&lt;/div&gt;
&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;social-share-links__item&quot;&gt;&lt;a class=&quot;social-share-links__link social-share-links__link--twitter&quot; href=&quot;https://twitter.com/intent/tweet?text=25%20Laravel%20Tips%20and%20Tricks&amp;amp;url=http%3A%2F%2Fcode.tutsplus.com%2Ftutorials%2F25-laravel-tips-and-tricks--pre-92818&amp;amp;via=tutsplus&quot; target=&quot;_blank&quot; title=&quot;Share on Twitter&quot;&gt;&lt;div class=&quot;social-share-links__count&quot;&gt;
12&lt;/div&gt;
&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;social-share-links__item&quot;&gt;&lt;a class=&quot;social-share-links__link social-share-links__link--google-plus&quot; href=&quot;https://plus.google.com/share?url=http%3A%2F%2Fcode.tutsplus.com%2Ftutorials%2F25-laravel-tips-and-tricks--pre-92818&quot; target=&quot;_blank&quot; title=&quot;Share on Google+&quot;&gt;&lt;div class=&quot;social-share-links__count&quot;&gt;
8&lt;/div&gt;
&lt;/a&gt;&lt;/li&gt;
&lt;li class=&quot;social-share-links__item&quot;&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;post-body__inarticle-promo&quot;&gt;
&lt;img alt=&quot;Gift&quot; class=&quot;post-body__inarticle-promo-icon&quot; src=&quot;http://static.tutsplus.com/assets/promos/gift-157a49340f008ae4dcad7865b5796e03.png&quot; /&gt;&lt;div class=&quot;post-body__inarticle-promo-text&quot;&gt;
Want a free year on Tuts+ (worth $180)? &lt;a href=&quot;https://secure1.inmotionhosting.com/cgi-bin/gby/clickthru.cgi?id=tutsplus&amp;amp;page=5403&quot;&gt;Start an InMotion Hosting plan&lt;/a&gt; for $3.49/mo. &lt;/div&gt;
&lt;/div&gt;
There
 was a period of time, not too long ago, when PHP and its community 
were, for lack of better words, hated. Seemingly, the headline joke of 
every day was one that related to how terrible PHP was. Let&#39;s see, what 
new PHP-slamming blog article will be posted today?&lt;br /&gt;

&lt;blockquote class=&quot;pullquote&quot;&gt;

    Yes, sadly enough, the community and ecosystem simply weren&#39;t on the same level as other modern languages.
  &lt;br /&gt;

&lt;/blockquote&gt;
Yes, sadly enough, the community and ecosystem simply weren&#39;t on the 
same level as other modern languages. It seemed that PHP was destined to
 live out its dominating lifespan in the form of messy WordPress themes.&lt;br /&gt;

But, then, quite amazingly, things began to change - and quickly, 
too. Like a witch stirring the pot, innovative new projects began 
popping out of nowhere. Perhaps most notable of these projects was 
Composer: PHP&#39;s definitive dependency manager (not unlike Ruby&#39;s Bundler
 or Node&#39;s NPM). While, in the past, PHP developers were forced to 
wrangle PEAR into shape (a nightmare, indeed), now, thanks to Composer, 
they can simply update a JSON file, and immediately pull in their 
desired dependency. A profiler here, a testing framework there... all in
 seconds!&lt;br /&gt;

In the crowded PHP framework world, just as CodeIgniter began to 
fizzle out, Taylor Otwell&#39;s Laravel framework arose out of the ashes to 
become the darling of the community. With such a simple and elegant 
syntax, building applications with Laravel and PHP was - gasp - 
downright fun! Further, with version 4 of the framework leveraging 
Composer heavily, things finally seemed to be falling into place for the
 community.&lt;br /&gt;

&lt;figure class=&quot;post_image&quot;&gt;
          &lt;img alt=&quot;&quot; data-original-url=&quot;http://tutsplus-media.s3.amazonaws.com/tutsplus.com/uploads/2013/10/composer.png&quot; src=&quot;https://cms-assets.tutsplus.com/legacy-premium-tutorials/posts/92818/images/92818_ebbc65ed9614d03c0a2b325bab253bc6.png&quot; /&gt;&lt;br /&gt;
        &lt;/figure&gt;
Want migrations (version control for your database)? Done. How about a
 powerful Active-Record implementation? Sure, Eloquent will do the trick
 quite nicely. What about testing facilities? Of course. And routing? 
Most certainly. What about a highly tested HTTP layer? Thanks to 
Composer, Laravel can leverage many of the excellent Symfony components.
 When it comes right down to it, chances are, if you need it, Laravel 
offers it.&lt;br /&gt;

&lt;figure class=&quot;post_image&quot;&gt;
          &lt;img alt=&quot;&quot; data-original-url=&quot;http://tutsplus-media.s3.amazonaws.com/tutsplus.com/uploads/2013/10/laravel.png&quot; src=&quot;https://cms-assets.tutsplus.com/legacy-premium-tutorials/posts/92818/images/92818_e38bc86a0101815da3b156d9e50839d3.png&quot; /&gt;&lt;br /&gt;
        &lt;/figure&gt;
While PHP used to be not dissimilar from a game of Jenga - just one 
block and away from falling to pieces - suddenly, thanks to Laravel and 
Composer, the future couldn&#39;t look any brighter. So pull out some 
shades, and dig into all that the framework has to offer.&lt;br /&gt;


&lt;h2 class=&quot;nolinks&quot; id=&quot;1eloquentqueries&quot;&gt;
1. Eloquent Queries&lt;/h2&gt;
Laravel offers one of the most powerful Active-Record implementations in the PHP world. Let&#39;s say that you have an &lt;code&gt;orders&lt;/code&gt; table, along with an &lt;code&gt;Order&lt;/code&gt; Eloquent model:&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_710063&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;class&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;Order &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;extends&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;Eloquent {}&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
We can easily perform any number of database queries, using simple, 
elegant PHP. No need to throw messy SQL around the room. Let&#39;s grab all 
orders.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_917536&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php variable&quot;&gt;$orders&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;= Order::all();&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
Done. Or maybe, those orders should be returned in order, according to the release date. That&#39;s easy:&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_828249&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php variable&quot;&gt;$orders&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;= Order::orderBy(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;release_date&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;desc&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;)-&amp;gt;get();&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
What if, rather than fetching a record, we instead need to save a new order to the database. Sure, we can do that.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_364173&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php variable&quot;&gt;$order&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;= &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;new&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;Order;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php variable&quot;&gt;$order&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;title = &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;Xbox One&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php variable&quot;&gt;$order&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;save();&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
Finished! With Laravel, tasks that used to be cumbersome to perform are laughably simple.&lt;br /&gt;


&lt;h2 class=&quot;nolinks&quot; id=&quot;2flexiblerouting&quot;&gt;
2. Flexible Routing&lt;/h2&gt;
Laravel is unique in that it can be used in a number of ways. Prefer a
 simpler, more Sinatra-like routing system? Sure, Laravel can offer that
 quite easily, using closures.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_535963&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
5&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;Route::get(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;orders&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;return&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;View::make(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;orders.index&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;with(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;orders&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, Order::all());&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;});&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
This can prove helpful for small projects and APIs, but, chances are 
high that you&#39;ll require controllers for most of your projects. That&#39;s 
okay; Laravel can do that, too!&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_369535&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;Route::get(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;orders&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;OrdersController@index&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
Done. Notice how Laravel grows with your needs? This level of 
accomodation is what makes the framework as popular as it is today.&lt;br /&gt;


&lt;h2 class=&quot;nolinks&quot; id=&quot;3easyrelationships&quot;&gt;
3. Easy Relationships&lt;/h2&gt;
What do we do in the instances when we must define relationships? For
 example, a task will surely belong to a user. How might we represent 
that in Laravel? Well, assuming that the necessary database tables are 
setup, we only need to tweak the related Eloquent models.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_401436&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
01&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
02&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
03&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
04&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
05&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
06&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
07&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
08&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
09&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
10&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
11&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
12&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot;&gt;
13&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;class&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;Task &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;extends&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;Eloquent {&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;user()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;return&lt;/code&gt; &lt;code class=&quot;php variable&quot;&gt;$this&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;belongsTo(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;User&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;class&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;User &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;extends&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;Eloquent {&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;tasks()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;return&lt;/code&gt; &lt;code class=&quot;php variable&quot;&gt;$this&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;hasMany(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;Task&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
And, with that, we&#39;re done! Let&#39;s grab all tasks for the user with an id of 1. We can do that in two lines of code.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_732307&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php variable&quot;&gt;$user&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;= User::find(1);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php variable&quot;&gt;$tasks&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;= &lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$user&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;tasks;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
However, because we&#39;ve defined the relationship from both ends, if we
 instead want to fetch the user associated with a task, we can do that, 
too.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_929427&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php variable&quot;&gt;$task&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;= Task::find(1);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php variable&quot;&gt;$user&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;= &lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$task&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;user;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 class=&quot;nolinks&quot; id=&quot;4formmodelbinding&quot;&gt;
4. Form Model Binding&lt;/h2&gt;
Often, it can be helpful to link a form to a model. The obvious 
example of this is when you wish to edit some record in your database. 
With form model binding, we can instantly populate the form fields with 
the values from the associated table row.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_489381&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
01&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
02&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
03&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
04&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
05&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
06&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
07&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
08&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
09&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
10&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
11&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;{{ Form::model(&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$order&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;) }}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;lt;div&amp;gt;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;{{ Form::label(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;title&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;Title:&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;) }}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;{{ Form::text(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;title&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;) }}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;lt;div&amp;gt;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;{{ Form::label(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;description&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;Description:&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;) }}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;{{ Form::textarea(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;description&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;) }}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;{{ Form::close() }}&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
Because the form is now linked to a specific &lt;code&gt;Order&lt;/code&gt; instance, the inputs will display the correct values from the table. Simple!&lt;br /&gt;


&lt;h2 class=&quot;nolinks&quot; id=&quot;5cachedatabasequeries&quot;&gt;
5. Cache Database Queries&lt;/h2&gt;
Too many database queries, and, very quickly, your application can 
become like molasses. Luckily, Laravel offers a simple mechanism for 
caching these queries, using nothing more than a single method call.&lt;br /&gt;

Let&#39;s grab all &lt;code&gt;questions&lt;/code&gt; from the database, but cache the query, since it&#39;s not likely that this table will be updated frequently.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_37046&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php variable&quot;&gt;$questions&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;= Question::remember(60)-&amp;gt;get();&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
That&#39;s it! Now, for the next hour of pages requests, that query will remain cached, and the database will not be touched.&lt;br /&gt;


&lt;h2 class=&quot;nolinks&quot; id=&quot;6viewcomposers&quot;&gt;
6. View Composers&lt;/h2&gt;
You&#39;ll encounter situations when multiple views require a certain 
variable or piece of data. A good example of this is a navigation bar 
that displays a list of tags.&lt;br /&gt;

Too keep controllers as minimal as possible, Laravel offers view composers to manage things like this.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_922112&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
4&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;View::composer(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;layouts.nav&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;(&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$view&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$view&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;with(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;tags&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, [&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;tag1&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;tag2&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;]);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;});&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
With this piece of code, any time that the &lt;code&gt;layouts/nav.blade.php&lt;/code&gt; view is loaded, it will have access to a variable, &lt;code&gt;$tags&lt;/code&gt;, equal to the provided array.&lt;br /&gt;


&lt;h2 class=&quot;nolinks&quot; id=&quot;7simpleauthentication&quot;&gt;
7. Simple Authentication&lt;/h2&gt;
Laravel takes a dead-simple approach to authentication. Simply pass 
an array of credentials, likely fetched from a login form, to &lt;code&gt;Auth::attempt()&lt;/code&gt;. If the provided values match what is stored in the &lt;code&gt;users&lt;/code&gt; table, the user will instantly be logged in.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_142877&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
01&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
02&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
03&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
04&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
05&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
06&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
07&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
08&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
09&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
10&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php variable&quot;&gt;$user&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;= [&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;email&#39;&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;=&amp;gt; &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;email&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;password&#39;&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;=&amp;gt; &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;password&#39;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;];&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;if&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;(Auth::attempt(&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$user&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;))&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php comments&quot;&gt;// user is now logged in!&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php comments&quot;&gt;// Access user object with Auth::user()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
What if we need to log the user out - perhaps, when a &lt;code&gt;/logout&lt;/code&gt; URI is hit? That&#39;s easy, too.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_319639&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
5&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
6&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;Route::get(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;logout&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;Auth::logout();&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;return&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;Redirect::home();&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;});&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 class=&quot;nolinks&quot; id=&quot;8resources&quot;&gt;
8. Resources&lt;/h2&gt;
Working RESTfully in Laravel has never been easier. To register a resourceful controller, simple call &lt;code&gt;Route::resource()&lt;/code&gt;, like so:&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_927619&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;Route::resource(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;orders&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;OrdersController&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
With this code, Laravel will register eight routes.&lt;br /&gt;

&lt;ul&gt;
&lt;li&gt;GET /orders&lt;/li&gt;
&lt;li&gt;GET /orders/:order&lt;/li&gt;
&lt;li&gt;GET /orders/create&lt;/li&gt;
&lt;li&gt;GET /orders/:order/edit&lt;/li&gt;
&lt;li&gt;POST /orders&lt;/li&gt;
&lt;li&gt;PUT /orders/:order&lt;/li&gt;
&lt;li&gt;PATCH /orders/:order&lt;/li&gt;
&lt;li&gt;DELETE /orders/:order&lt;/li&gt;
&lt;/ul&gt;
Further, the companion controller may be generated from the command line:&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_222052&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;php artisan controller:make OrdersController&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
Within this generated controller, each method will correspond to one of the routes above. For examples, &lt;code&gt;/orders&lt;/code&gt; will map to the &lt;code&gt;index&lt;/code&gt; method, &lt;code&gt;/orders/create&lt;/code&gt; will map to &lt;code&gt;create&lt;/code&gt;, etc.&lt;br /&gt;

We now have the necessary power to build RESTful applications and APIs with ease.&lt;br /&gt;


&lt;h2 class=&quot;nolinks&quot; id=&quot;9bladetemplating&quot;&gt;
9. Blade Templating&lt;/h2&gt;
While, yes, PHP is by nature a templating language, it hasn&#39;t evolved
 to become an overly good one. That&#39;s okay, though; Laravel offers its 
Blade engine to fill the gap. Simply name your views with a &lt;code&gt;.blade.php&lt;/code&gt; extension, and they will automatically be parsed, accordingly. Now, we can do such things as:&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_460964&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
5&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
6&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
7&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;@&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;if&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;(&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$orders&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;&lt;/code&gt;&lt;code class=&quot;php functions&quot;&gt;count&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;())&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;lt;ul&amp;gt;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;@&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;foreach&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;(&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$orders&lt;/code&gt; &lt;code class=&quot;php keyword&quot;&gt;as&lt;/code&gt; &lt;code class=&quot;php variable&quot;&gt;$order&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;lt;li&amp;gt;{{ &lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$order&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;title }}&amp;lt;/li&amp;gt;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;@&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;endforeach&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;&amp;lt;/ul&amp;gt;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;@&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;endif&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 class=&quot;nolinks&quot; id=&quot;10testingfacilities&quot;&gt;
10. Testing Facilities&lt;/h2&gt;
Because Laravel makes use of Composer, we instantly have PHPUnit 
support in the framework out of the box. Install the framework and run &lt;code&gt;phpunit&lt;/code&gt; from the command line to test it out.&lt;br /&gt;

Even better, though, Laravel offers a number of test helpers for the most common types of functional tests.&lt;br /&gt;

Let&#39;s verify that the home page returns a status code of 200.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_999837&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
5&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;test_home_page()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$this&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;call(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;GET&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;/&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$this&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;assertResponseOk();&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
Or maybe we want to confirm that, when a contact form is posted, the 
user is redirected back to the home page with a flash message.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_622092&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
01&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
02&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
03&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
04&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
05&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
06&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
07&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
08&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
09&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
10&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
11&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
12&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;test_contact_page_redirects_user_to_home_page()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$postData&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;= [&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;name&#39;&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;=&amp;gt; &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;Joe Example&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;email&#39;&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;=&amp;gt; &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;email-address&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;message&#39;&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;=&amp;gt; &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;I love your website&#39;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;];&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$this&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;call(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;POST&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;/contact&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$postData&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$this&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;assertRedirectedToRoute(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;home&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, null, [&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;flash_message&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;]);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 class=&quot;nolinks&quot; id=&quot;11remotecomponent&quot;&gt;
11. Remote Component&lt;/h2&gt;
As part of Laravel 4.1 - scheduled to be released in November, 2013 -
 you can easily write an Artisan command to SSH into your server, and 
perform any number of actions. It&#39;s as simple as using the &lt;code&gt;SSH&lt;/code&gt; facade:&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_772477&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
4&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;SSH::into(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;production&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;)-&amp;gt;run([&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;cd /var/www&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;git pull origin master&#39;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;]);&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
Pass an array of commands to the &lt;code&gt;run()&lt;/code&gt; method, and 
Laravel will handle the rest! Now, because it makes sense to execute 
code like this as an Artisan command, you only need to run &lt;code&gt;php artisan command:make DeployCommand&lt;/code&gt;, and insert the applicable code into the command&#39;s &lt;code&gt;fire&lt;/code&gt; method to rapidly create a dedicated deployment command!&lt;br /&gt;


&lt;h2 class=&quot;nolinks&quot; id=&quot;12events&quot;&gt;
12. Events&lt;/h2&gt;
Laravel offers an elegant implementation of the observer pattern that
 you may use throughout your applications. Listen to native events, like
 &lt;code&gt;illuminate.query&lt;/code&gt;, or even fire and catch your own.&lt;br /&gt;

A mature use of events in an application can have an incredible effect on its maintainability and structure.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_969541&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
5&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;Event::listen(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;user.signUp&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php comments&quot;&gt;// do whatever needs to happen&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php comments&quot;&gt;// when a new user signs up&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;});&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
Like most things in Laravel, if you&#39;d instead prefer to reference a 
class name, rather than a closure, you can freely do so. Laravel will 
then resolve it out of the IoC container.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_266756&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;Event::listen(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;user.signUp&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;UserEventHandler&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 class=&quot;nolinks&quot; id=&quot;13viewallroutes&quot;&gt;
13. View All Routes&lt;/h2&gt;
&lt;figure class=&quot;post_image&quot;&gt;
          &lt;img alt=&quot;&quot; data-original-url=&quot;http://tutsplus-media.s3.amazonaws.com/tutsplus.com/uploads/2013/10/routes.png&quot; src=&quot;https://cms-assets.tutsplus.com/legacy-premium-tutorials/posts/92818/images/92818_cb58d61316ef1fad8e5798dc7fbd177c.png&quot; /&gt;&lt;br /&gt;
        &lt;/figure&gt;
As an application grows, it can be difficult to view which routes 
have been registered. This is especially true if proper care has not 
been given to your &lt;code&gt;routes.php&lt;/code&gt; file (i.e. abusive implicit routing).&lt;br /&gt;

Laravel offers a helpful &lt;code&gt;routes&lt;/code&gt; command, which will display all registered routes, as well as the controller methods that they trigger.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_980292&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;php artisan routes&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 class=&quot;nolinks&quot; id=&quot;14queues&quot;&gt;
14. Queues&lt;/h2&gt;
Think about when a user signs up for your application. Likely, a 
number of events must take place. A database table should be updated, a 
newsletter list should be appended to, an invoice must be raised, a 
welcome email might be sent, etc. Unfortunately, these sorts of actions 
have a tendency to take a long time.&lt;br /&gt;

Why force the user to wait for these actions, when we can instead throw them into the background?&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_468266&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;Queue::push(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;SignUpService&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, compact(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;user&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;));&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
Perhaps the most exciting part, though, is that Laravel brilliantly offers support for &lt;span class=&quot;skimlinks-unlinked&quot;&gt;Iron.io&lt;/span&gt;
 push queues. This means that, even without an ounce of &quot;worker&quot; or 
&quot;daemon&quot; experience, we can still leverage the power of queues. Simply 
register a URL end-point using Laravel&#39;s helpful &lt;code&gt;php artisan queue:subscribe&lt;/code&gt; command, and &lt;span class=&quot;skimlinks-unlinked&quot;&gt;Iron.io&lt;/span&gt; will ping your chosen URL each time a job is added to the queue.&lt;br /&gt;

&lt;figure class=&quot;post_image&quot;&gt;
          &lt;img alt=&quot;&quot; data-original-url=&quot;http://tutsplus-media.s3.amazonaws.com/tutsplus.com/uploads/2013/10/iron.png&quot; src=&quot;https://cms-assets.tutsplus.com/legacy-premium-tutorials/posts/92818/images/92818_709cd713c675b92d1a29fc44b124eee3.png&quot; /&gt;&lt;br /&gt;
        &lt;/figure&gt;
Simple steps to faster performance!&lt;br /&gt;


&lt;h2 class=&quot;nolinks&quot; id=&quot;15easyvalidation&quot;&gt;
15. Easy Validation&lt;/h2&gt;
When validation is required (and when isn&#39;t it), Laravel again comes to the rescue! Using the &lt;code&gt;Validator&lt;/code&gt; class is as intuitive as can be. Simply pass the object under validation, as well as a list of rules to the &lt;code&gt;make&lt;/code&gt; method, and Laravel will take care of the rest.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_808345&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
01&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
02&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
03&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
04&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
05&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
06&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
07&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
08&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
09&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
10&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
11&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
12&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot;&gt;
13&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot;&gt;
14&lt;/div&gt;
&lt;div class=&quot;line number15 index14 alt2&quot;&gt;
15&lt;/div&gt;
&lt;div class=&quot;line number16 index15 alt1&quot;&gt;
16&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php variable&quot;&gt;$order&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;= [&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;title&#39;&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;=&amp;gt; &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;Wii U&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;description&#39;&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;=&amp;gt; &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;Game console from Nintendo&#39;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;];&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
&lt;code class=&quot;php variable&quot;&gt;$rules&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;= [&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;title&#39;&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;=&amp;gt; &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;required&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;,&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;description&#39;&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;=&amp;gt; &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;required&#39;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;];&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
&lt;code class=&quot;php variable&quot;&gt;$validator&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;= Validator::make(&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$order&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$rules&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;if&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;(&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$validator&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;fails())&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number15 index14 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;var_dump(&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$validator&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;messages()); &lt;/code&gt;&lt;code class=&quot;php comments&quot;&gt;// validation errors array&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number16 index15 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
Typically, this type of code will be stored within your model, 
meaning that validation of, say, an order could be reduced to a single 
method call:&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_47723&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php variable&quot;&gt;$order&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;isValid();&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 class=&quot;nolinks&quot; id=&quot;16tinkertinker&quot;&gt;
16. Tinker Tinker&lt;/h2&gt;
&lt;figure class=&quot;post_image&quot;&gt;
          &lt;img alt=&quot;&quot; data-original-url=&quot;http://tutsplus-media.s3.amazonaws.com/tutsplus.com/uploads/2013/10/artisan.png&quot; src=&quot;https://cms-assets.tutsplus.com/legacy-premium-tutorials/posts/92818/images/92818_e1a7043726b7f589702d955718c9e957.png&quot; /&gt;&lt;br /&gt;
        &lt;/figure&gt;
Especially when first learning Laravel, it an be helpful to tinker around with the core. Laravel&#39;s &lt;code&gt;tinker&lt;/code&gt; Artisan command can help with this.&lt;br /&gt;

&lt;blockquote&gt;
As part of version 4.1, the &lt;code&gt;tinker&lt;/code&gt; command is even more powerful, now that it leverages the popular Boris component.&lt;br /&gt;

&lt;/blockquote&gt;
&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  bash&quot; id=&quot;highlighter_981144&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
5&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;bash plain&quot;&gt;$ php artisan tinker&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;bash plain&quot;&gt;&amp;gt; $order = Order::&lt;/code&gt;&lt;code class=&quot;bash functions&quot;&gt;find&lt;/code&gt;&lt;code class=&quot;bash plain&quot;&gt;(1);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;bash plain&quot;&gt;&amp;gt; var_dump($order-&amp;gt;toArray());&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&lt;code class=&quot;bash plain&quot;&gt;&amp;gt; array(...)&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 class=&quot;nolinks&quot; id=&quot;17migrations&quot;&gt;
17. Migrations&lt;/h2&gt;
Think of migrations as version control for your database. At any 
given point, you may &quot;rollback&quot; all migrations, rerun them, and much 
more. Perhaps the true power rests in the power to push an app to 
production, and run a single &lt;code&gt;php artisan migrate&lt;/code&gt; command to instantly construct your database.&lt;br /&gt;

To prepare the schema for a new users table, we may run:&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_32137&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;php artisan migrate:make create_users_table&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
This will generate a migration file, which you may then populate according to your needs. Once complete, &lt;code&gt;php artisan migrate&lt;/code&gt; will create the table. That&#39;s it! Need to roll back that creation? Easy! &lt;code&gt;php artisan migrate:rollback&lt;/code&gt;.&lt;br /&gt;

Here&#39;s an example of the schema for a frequently asked questions table.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_219928&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
01&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
02&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
03&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
04&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
05&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
06&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
07&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
08&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
09&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
10&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
11&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
12&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot;&gt;
13&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot;&gt;
14&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;up()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;Schema::create(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;faqs&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;(Blueprint &lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;) {&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;integer(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;id&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, true);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;text(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;question&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number6 index5 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;text(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;answer&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number7 index6 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$table&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;timestamps();&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number8 index7 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;});&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number9 index8 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number10 index9 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number11 index10 alt2&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;down()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number12 index11 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number13 index12 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;Schema::drop(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;faqs&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number14 index13 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
Notice how the &lt;code&gt;drop()&lt;/code&gt; method performs the inverse of &lt;code&gt;up()&lt;/code&gt;. This is what allows us to rollback the migration. Isn&#39;t that a lot easier that wrangling a bunch of SQL into place?&lt;br /&gt;


&lt;h2 class=&quot;nolinks&quot; id=&quot;18generators&quot;&gt;
18. Generators&lt;/h2&gt;
While Laravel offers a number of helpful generators, an incredibly 
helpful third-party package, called &quot;Laravel 4 Generators,&quot; takes this 
even further. Generate resources, seed files, pivot tables, and 
migrations with schema!&lt;br /&gt;

In this previous tip, we were forced to manually write the schema. 
However, with the generators package enabled, we can instead do:&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_40734&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;php artisan generate:migration create_users_table --fields=&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&quot;username:string, password:string&quot;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
The generator will take care of the rest. This means that, with two commands, you can prepare and build a new database table.&lt;br /&gt;

&lt;blockquote&gt;
Laravel 4 Generators &lt;a href=&quot;https://github.com/JeffreyWay/Laravel-4-Generators&quot;&gt;may be installed&lt;/a&gt; through Composer.&lt;br /&gt;

&lt;/blockquote&gt;
&lt;h2 class=&quot;nolinks&quot; id=&quot;19commands&quot;&gt;
19. Commands&lt;/h2&gt;
As noted earlier, there are number of instances when it can be 
helpful to write custom commands. They can be used to scaffold 
applications, generate files, deploy applications, and everything in 
between.&lt;br /&gt;

Because this is such a common task, Laravel makes the process of creating a command as easy as it can be.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_439813&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;php artisan command:make MyCustomCommand&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
This command will generate the necessary boilerplate for your new custom command. Next, from the newly created, &lt;code&gt;app/commands/MyCustomCommand.php&lt;/code&gt;, fill the appropriate name and description:&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_383399&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;protected&lt;/code&gt; &lt;code class=&quot;php variable&quot;&gt;$name&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;= &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;command:name&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;protected&lt;/code&gt; &lt;code class=&quot;php variable&quot;&gt;$description&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;= &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;Command description.&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
And, finally, within the command class&#39; &lt;code&gt;fire()&lt;/code&gt; method, 
perform any action that you need to. Once finished, the only remaining 
step is to register the command with Artisan, from &lt;code&gt;app/start/Artisan.php&lt;/code&gt;.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_950521&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;Artisan::add(&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;new&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;MyCustomCommand);&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
Believe it or not; that&#39;s it! You may now call your custom command from the terminal.&lt;br /&gt;


&lt;h2 class=&quot;nolinks&quot; id=&quot;20mockfacades&quot;&gt;
20. Mock Facades&lt;/h2&gt;
Laravel leverages the facade pattern heavily. This allows for the 
clean static-like syntax that you&#39;ll undoubtedly come to love (&lt;code&gt;Route::get()&lt;/code&gt;, &lt;code&gt;Config::get()&lt;/code&gt;, etc.), while still allowing for complete testability behind the scenes.&lt;br /&gt;

Because these &quot;underlying classes&quot; are resolved out of the IoC 
container, we can easily swap those underlying instances out with mocks,
 for the purposes of testing. This allows for such control as:&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_207461&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;Validator::shouldReceive(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;make&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;)-&amp;gt;once();&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
Yep, we&#39;re calling &lt;code&gt;shouldReceive&lt;/code&gt; directly off of the 
facade. Behind the scenes, Laravel makes use of the excellent Mockery 
framework to allow for this. This means that you may freely use these 
facades in your code, while still allowing for 100% testability.&lt;br /&gt;


&lt;h2 class=&quot;nolinks&quot; id=&quot;21formhelpers&quot;&gt;
21. Form Helpers&lt;/h2&gt;
Because building forms can frequently be a cumbersome task, Laravel&#39;s
 form builder steps in to ease the process, as well as leverage many of 
the idiosyncrasies related to form construction. Here are a few 
examples:&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_572770&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
5&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;{{ Form::open() }}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;{{ Form::text(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;name&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;) }}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;{{ Form::textarea(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;bio&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;) }}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;{{ Form::selectYear(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;dob&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;php functions&quot;&gt;date&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;Y&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;) - 80, &lt;/code&gt;&lt;code class=&quot;php functions&quot;&gt;date&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;Y&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;)) }}&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;{{ Form::close() }}&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
What about tasks, such as remembering input from the previous form submission? Laravel can do all of that automatically!&lt;br /&gt;


&lt;h2 class=&quot;nolinks&quot; id=&quot;22theioccontainer&quot;&gt;
22. The IoC Container&lt;/h2&gt;
At the core of Laravel is its powerful IoC container, which is a tool
 that assists in managing class dependencies. Notably, the container has
 the power to automatically resolve classes without configuration!&lt;br /&gt;

Simply typehint your dependencies within the constructor, and, upon 
instantiation, Laravel will use PHP&#39;s Reflection API to intelligently 
read the typehints, and attempt to inject them for you.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_724770&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
4&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;__construct(MyDependency &lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$thing&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$this&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;thing = &lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$thing&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
As long as you request the class out of the IoC container, this resolution will take place automatically.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_332946&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php variable&quot;&gt;$myClass&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;= App::make(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;MyClass&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;);&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;blockquote&gt;
An important note is that controllers are always resolved out of the 
IoC container. As such, you may free typhint your controller&#39;s 
dependencies, and Laravel will subsequently do its best to inject them 
for you.&lt;br /&gt;

&lt;/blockquote&gt;
&lt;h2 class=&quot;nolinks&quot; id=&quot;23environments&quot;&gt;
23. Environments&lt;/h2&gt;
While a single environment might work for small projects, for any 
applications of size, multiple environments will prove essentials. 
Development, testing, production...all of these are essential and 
require their own configuration.&lt;br /&gt;

Maybe your test environment uses a database in memory for testing. 
Maybe your development environment uses different API keys. Likely, your
 production environment will use a custom database connection string.&lt;br /&gt;

Luckily, Laravel makes our job simple once again. Have a look at &lt;code&gt;bootstrap/start.php&lt;/code&gt; in your app.&lt;br /&gt;

Here&#39;s a basic demonstration of setting both a &lt;code&gt;local&lt;/code&gt; and &lt;code&gt;production&lt;/code&gt; environment, based upon the browser&#39;s address bar.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_918695&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
4&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php variable&quot;&gt;$env&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;= &lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$app&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;detectEnvironment(&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;array&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;(&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;local&#39;&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;=&amp;gt; &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;array&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;localhost&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;),&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;production&#39;&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;=&amp;gt; &lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;array&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;*.com&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;));&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
While this will work, generally speaking, it&#39;s preferred to use 
environment variables for this sort of thing. No worries; this is still 
doable in Laravel! Instead, simply return a function from the &lt;code&gt;detectEnvironment&lt;/code&gt; method on the container object.&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_264818&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
4&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php variable&quot;&gt;$env&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;= &lt;/code&gt;&lt;code class=&quot;php variable&quot;&gt;$app&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;-&amp;gt;detectEnvironment(&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;function&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;()&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;{&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php keyword&quot;&gt;return&lt;/code&gt; &lt;code class=&quot;php functions&quot;&gt;getenv&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;(&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;ENV_NAME&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;) ?: &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;local&#39;&lt;/code&gt;&lt;code class=&quot;php plain&quot;&gt;;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;});&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
Now, unless an environment variable has been set (which you will do for production), the environment will default to &lt;code&gt;local&lt;/code&gt;.&lt;br /&gt;


&lt;div class=&quot;post__inarticle-ad-template&quot; style=&quot;margin-top: 30px;&quot;&gt;
&lt;div class=&quot;ad view ad--inarticle&quot;&gt;
&lt;div class=&quot;ad__wrapper&quot;&gt;
&lt;div class=&quot;ad__label&quot;&gt;
Advertisement&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 class=&quot;nolinks&quot; id=&quot;24simpleconfiguration&quot;&gt;
24. Simple Configuration&lt;/h2&gt;
Laravel, yet again, takes a dead-simple approach to configuration. Create a folder within &lt;code&gt;app/config&lt;/code&gt;
 that matches your desired environment, and any configuration files 
within it will take precedence, if the environment name matches. As 
such, to, say, set a different billing API key for development, you 
could do:&lt;br /&gt;

&lt;div&gt;
&lt;div class=&quot;syntaxhighlighter  php&quot; id=&quot;highlighter_349032&quot;&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
1&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
2&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
3&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
4&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
5&lt;/div&gt;
&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;div class=&quot;container&quot;&gt;
&lt;div class=&quot;line number1 index0 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;&amp;lt;?php app/config/development/billing.php&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number2 index1 alt1&quot;&gt;
&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;line number3 index2 alt2&quot;&gt;
&lt;code class=&quot;php keyword&quot;&gt;return&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;[&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number4 index3 alt1&quot;&gt;
&lt;code class=&quot;php spaces&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;api_key&#39;&lt;/code&gt; &lt;code class=&quot;php plain&quot;&gt;=&amp;gt; &lt;/code&gt;&lt;code class=&quot;php string&quot;&gt;&#39;your-development-mode-api-key&#39;&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;line number5 index4 alt2&quot;&gt;
&lt;code class=&quot;php plain&quot;&gt;];&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
The configuration switcharoo is automatic. Simply type &lt;code&gt;Config::get(&#39;billing.api_key&#39;)&lt;/code&gt;, and Laravel will correctly determine which file to read from.&lt;br /&gt;


&lt;h2 class=&quot;nolinks&quot; id=&quot;25topshelffurtherlearning&quot;&gt;
25. Top-Shelf Further Learning&lt;/h2&gt;
When it comes to education, the Laravel community, despite its 
relatively young age, is a never-ending well. In little over a year, a 
half-dozen different books - related to all matters of Laravel 
development - have been released. </content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/6869854775077880433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/6869854775077880433' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/6869854775077880433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/6869854775077880433'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2014/10/25-laravel-tips-and-tricks.html' title='25 Laravel Tips and Tricks'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-5467079035268074906</id><published>2014-05-05T03:58:00.003-07:00</published><updated>2014-05-05T03:58:48.018-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><title type='text'>12 Type Of Servers And What They Do</title><content type='html'>&lt;span style=&quot;color: black; font-family: verdana; font-size: x-small;&quot;&gt;&lt;b&gt;1.   Real-Time Communication Servers&lt;/b&gt;&lt;br /&gt;
 Also known as chat servers or IRC, and sometimes known as instant 
messaging (IM) servers, these servers are meant to allow huge number 
users to exchange information instantly.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;2.  FTP Servers&lt;/b&gt;&lt;br /&gt;
 This is one of the oldest of the Internet services available. The FTP 
or File Transfer Protocol allows the users to securely transfer one or 
more files of any size between two computers.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;3.  Collaboration Servers&lt;/b&gt;&lt;br /&gt;
 In many ways, collaboration software, once called &#39;groupware,&#39; 
demonstrates the original power of the Web. Collaboration software 
designed to enable users to collaborate, regardless of location, via the
 Internet or a corporate intranet and to work together in a virtual 
atmosphere.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;4.  List Servers&lt;/b&gt;&lt;br /&gt; List servers lets users 
better manage their mass mailing lists like open interactive discussions
 or one-way lists to deliver newsletters, announcements or advertising.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;5.  Telnet Servers&lt;/b&gt;&lt;br /&gt; The Telnet server lets the users on to a host computer control and work on remote computers. &lt;br /&gt; &lt;br /&gt;&lt;b&gt;6.  Web Servers&lt;/b&gt;&lt;br /&gt;
 At its core, a Web server serves static content to a Web browser by 
loading a file from a disk and serving it across the network to a user&#39;s
 Web browser. This entire exchange is mediated by the browser and server
 talking to each other using HTTP.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;7.  Virtual Servers&lt;/b&gt;&lt;br /&gt;
 A virtual server is a web server which shares its resources with 
multiple users. It&#39;s another way of saying that multiple web sites share
 the resources of one server.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;8.   Proxy Servers&lt;/b&gt;&lt;br /&gt; 
Proxy server is a server which acts as an intermediary for requests 
between the users and the  servers. Client connects to the proxy server 
and the proxy server evaluates the requests sent by the users simplifies
 them and control their complexities.&lt;br /&gt; &lt;br /&gt;9.  Mail Servers&lt;br /&gt; Mail servers help in moving and storing the e-mail over a network via LANs and WANs or across the Internet.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;10.  Server Platforms&lt;/b&gt;&lt;br /&gt;
 Normally used in same context with that of operating systems, server 
platforms are the platforms that are under the hardware or software of a
 system and the hence in the engine that drives the server.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;11.  Open Source Servers&lt;/b&gt;&lt;br /&gt;
 Similar to server platforms, Open source server are referred to the 
underlying open source operating system used in the IT infrastructures 
of the companies.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;12.  Application Servers&lt;/b&gt;&lt;br /&gt; Application servers are a type of middleware which connects the database servers and the app users.&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/5467079035268074906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/5467079035268074906' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/5467079035268074906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/5467079035268074906'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2014/05/12-type-of-servers-and-what-they-do.html' title='12 Type Of Servers And What They Do'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-5417587537621295545</id><published>2014-05-03T20:55:00.001-07:00</published><updated>2014-05-03T20:55:13.004-07:00</updated><title type='text'>15 IT Courses That Will Make You An Industry Hero</title><content type='html'>&lt;span style=&quot;color: black; font-family: verdana; font-size: x-small;&quot;&gt;&lt;b&gt;1. PMP: Project Management Professional&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This is a course whose credentials are recognised as one of the most important&lt;br /&gt;certification
 for project managers. The course has an acknowledgement from the 
fraternity globally. It is in heavy demand globally. The course is meant
 for experienced project management professionals. The testing is 
rigorous.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. CISSP: Certified Information Systems Security Professional&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The
 CIISP credential is meant primarily for security managers and 
professionals who work towards he development of policies and procedures
 in information security. This course has become the global standard in 
information security certifications. The course was the&lt;br /&gt;first in information security, accredited by the ANSI (American&lt;br /&gt;National Standards Institute) to ISO (International Organization for&lt;br /&gt;Standardization) Standard 17024:2003.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. MCSD: Microsoft Certified Solutions Developer&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;THE
 MCSD is a new new Microsoft developer certification programme. This has
 replaced the Microsoft Certified Solutions Developer certification. The
 new course validated the ability of the candidate to design and build 
application solutions, which may well span multiple versions of a single
 technology or integrate multiple technologies.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4. MCDBA: Microsoft Certified Database Administrator&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The
 course is meant for employees of MNCs that are looking for quick and 
reliable systems that would help process and retrieve information, 
throught operations of their own database servers and business 
intelligence software. The course is an MCDBA and an individual that is 
MCDBA certified can design, implement, and manage SQL Server 2000 
databases. The certification was retired on 30 September, 2012, though 
if you achieved it before that date it will still appear on your 
transcript as a legacy certification.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5. CCDA®: Cisco Certified Design Associate&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This
 course indicates that the taker of the course posses a strong 
foundation and apprentice knowledge of network design for Cisco 
converged networks. The course is meant for network design engineers, 
technicians, and support engineers, who enable efficient network&lt;br /&gt;environments.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6. MCAD: Microsoft Certified Application Developer&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This
 course gives its taker an industry recognition for professional 
developers that are involved in building powerful applications using 
Microsoft Visual Studio.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7. VCP-DV: VMware Certified Professional Datacenter Virtualisation&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Virtualisation
 is one of the most important trends in modern technology. This course, 
provided by VMware, one of the world’s leading vendors of virtualisation
 products is the first step that an individual could take in gaining 
industry-recognized expertise in&lt;br /&gt;virtual infrastructure.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8. CNE: Certified Novell Engineer&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The
 CNE course is meant for those individuals who have the expertise and 
knowledge to solve advanced company-wide support problems and high-level
 network problems.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;9. ITIL v3 Foundation&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This 
course is more of a foundation building course meant that provides 
quality IT Service Management. The good thing about the course is that 
it uses documented and proven processes that covering the entire Service
 Lifecycle.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;10. CCA: Citrix Certified Administrator - Citrix XenServer 6&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Another
 entry level certification course, this validates the skills a candidate
 might have with one of 11 specific Citrix products, the most popular 
being XenApp, XenDesktop, and XenServer.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;11. MCITP: Database Administrator&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This
 is a validation course that aims at building the IT professional’s 
capability in the deployment, designing, optimizing, and operating 
technologies for a particular job role. MCITP certifications builds on 
the technical proficiency measured in the Microsoft Certified Technology
 Specialist (MCTS) certifications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;12. MCTS: SQL Server 2005&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Those
 that have taken this course are usually IT professionals who might want
 to pursue careers as database administrators, database developers, or 
business intelligence developers. The course gives its taker a 
validation that the IT professional can implement and maintain databases
 by using specific instructions and specifications.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;13. MCT: Microsoft Certified Trainer&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Those
 that have taken this course are considered to be premier technical and 
instructional experts on Microsoft technologies. The benefits of the 
course include substantial discounts on exams, books, and Microsoft 
products; members-only newsgroups and online community resources; and 
invitations to exclusive events and programs.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;14. CCNP®: Cisco Certified Network Professional&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The
 course offers two tracks at the Associate and Professional levels - 
Designing and Networking. It is demonstrative of the fact that the taker
 has the ability to plan, implement, verify, and troubleshoot local and 
wide-area enterprise networks.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;15. CCA: Citrix Certified Administrator - Citrix XenDesktop 5&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The
 Citrix CCA is an entry-level certification. Earning this certification 
validates the candidate&#39;s skills with one of 11 specific Citrix 
products, the most popular being XenApp, XenDesktop, and XenServer.



&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/5417587537621295545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/5417587537621295545' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/5417587537621295545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/5417587537621295545'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2014/05/15-it-courses-that-will-make-you.html' title='15 IT Courses That Will Make You An Industry Hero'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-8838502263848342044</id><published>2014-05-01T19:46:00.002-07:00</published><updated>2014-05-01T19:46:49.894-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><title type='text'>Donwload entire web using ubuntu / linux</title><content type='html'>&lt;b&gt;Basic wget Commands:&lt;/b&gt;&lt;br /&gt;
To download a file from the Internet type:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
wget http://www.example.com/downloads.zip&lt;/blockquote&gt;
&lt;br /&gt;
If you are downloading a large file, for example an ISO image, this 
could take some time. If your Internet connection goes down, then what 
do you do? You will have to start the download again. If you are 
downloading a 700Mb ISO image on a slow connection, this could be very 
annoying! To get around this problem, you can use the -c parameter. This
 will continue the download after any disruptions. eg:&lt;br /&gt;
&lt;blockquote&gt;
wget -c http://www.example.com/linux.iso&lt;/blockquote&gt;
&lt;br /&gt;
I have came across some websites that do not allow you to download any files using a download manager. To get around this, &lt;br /&gt;
&lt;blockquote&gt;
wget -U mozilla http://www.example.com/image.jpg&lt;/blockquote&gt;
&lt;br /&gt;
This will pass wget off as being a Mozilla web browser&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Downloading Entire Sites:&lt;/span&gt;&lt;br /&gt;
Wget is also able to download an entire website. But because this can put a heavy load upon the server, wget will obey the &lt;a href=&quot;http://www.robotstxt.org/&quot; target=&quot;_blank&quot; title=&quot;Robots.txt file&quot;&gt;robots.txt&lt;/a&gt; file.&lt;br /&gt;
&lt;blockquote&gt;
wget -r -p http://www.example.com&lt;/blockquote&gt;
&lt;br /&gt;
The -p parameter tells wget to include all files, including images. This
 will mean that all of the HTML files will look how they should do.&lt;br /&gt;
&lt;br /&gt;
So what if you don&#39;t want wget to obey by the robots.txt file? You can simply add &lt;i&gt;-e robots=off&lt;/i&gt; to the command like this:&lt;br /&gt;
&lt;blockquote&gt;
wget -r -p -e robots=off http://www.example.com&lt;/blockquote&gt;
&lt;br /&gt;
&lt;br /&gt;
As many sites will not let you download the entire site, they will check your browsers identity. To get around this, use &lt;i&gt;-U mozilla&lt;/i&gt; as I explained above.&lt;br /&gt;
&lt;blockquote&gt;
wget -r -p -e robots=off -U mozilla http://www.example.com&lt;/blockquote&gt;
&lt;br /&gt;
A lot of the website owners will not like the fact that you are 
downloading their entire site. If the server sees that you are 
downloading a large amount of files, it may automatically add you to 
it&#39;s black list. The way around this is to wait a few seconds after 
every download. The way to do this using wget is by including &lt;i&gt;--wait=X&lt;/i&gt; (where X is the amount of seconds.)&lt;br /&gt;
&lt;br /&gt;
you can also use the parameter: &lt;i&gt;--random-wait&lt;/i&gt; to let wget chose a random number of seconds to wait. To include this into the command:&lt;br /&gt;
&lt;blockquote&gt;
wget --random-wait -r -p -e robots=off -U mozilla http://www.example.com&lt;/blockquote&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Other Useful wget Parameters:&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;&lt;b&gt;--limit-rate=20k&lt;/b&gt;&lt;/i&gt; : Limits the rate at which it downloads files. (20Kb/s)&lt;br /&gt;
&lt;i&gt;&lt;b&gt;-b&lt;/b&gt;&lt;/i&gt; : Continues wget after logging out. Very useful if you are connecting to your home PC via SSH.&lt;br /&gt;
&lt;i&gt;&lt;b&gt;-o $HOME/wget_log.txt&lt;/b&gt;&lt;/i&gt; : Logs the output of the wget 
command to a text file within your home directory. Useful for if you are
 using wget in the background, as you can check for any errors that may 
appear.</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/8838502263848342044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/8838502263848342044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/8838502263848342044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/8838502263848342044'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2014/05/donwload-entire-web-using-ubuntu-linux.html' title='Donwload entire web using ubuntu / linux'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-8613482532594296926</id><published>2014-05-01T16:05:00.003-07:00</published><updated>2014-05-01T16:05:43.555-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hack"/><category scheme="http://www.blogger.com/atom/ns#" term="kali"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><title type='text'>Hack Into Gmail And Facebook Using Kali Linux! </title><content type='html'>&lt;span style=&quot;color: black; font-family: verdana; font-size: x-small;&quot;&gt;1. Open the backtrack terminal use the ifconfig command to find your IP address.&lt;br /&gt;&lt;br /&gt;2. On the terminal type cd /pentest/exploits/set&lt;br /&gt;&lt;br /&gt;3. You will need to have the Social Engineering Toolkit (SET) for this one.&lt;br /&gt;&lt;br /&gt;4. Start this us and then choose the second option, which says ‘Website Attack Vectors’.&lt;br /&gt;&lt;br /&gt;5. In the next part, you have to select the fourth option, which says ‘Tabnabbing Attack Method’.&lt;br /&gt;&lt;br /&gt;6. Choose the second option, which is ‘Site Cloner’.&lt;br /&gt;&lt;br /&gt;7.
 Now you have to enter the URL of the website that you want to clone or 
hack into. In this case the URL will be www.gmail.com. The SET will 
automatically create the clone. Press enter in order to continue.&lt;br /&gt;&lt;br /&gt;8.
 The URL now needs to be converted into the Google URL. For this use 
goo.gl and send the link address to you’re the person you want to 
attack. This you can do in a myriad number of ways like email, chat etc.&lt;br /&gt;&lt;br /&gt;9.
 When your victim will open their internet browser for Gmail, they 
should get a message saying that the page is still loading. As soon as 
they open a new tab, the fake clone that we made will start functioning.



&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/8613482532594296926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/8613482532594296926' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/8613482532594296926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/8613482532594296926'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2014/05/hack-into-gmail-and-facebook-using-kali.html' title='Hack Into Gmail And Facebook Using Kali Linux! '/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-7634766109529355118</id><published>2014-05-01T04:35:00.000-07:00</published><updated>2014-05-01T04:35:00.298-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="wordpress"/><title type='text'>How To Install Wordpress on Ubuntu 14.04</title><content type='html'>&lt;h1&gt;
How To Install Wordpress on Ubuntu 14.04&lt;/h1&gt;
&lt;div id=&quot;tags&quot;&gt;
      &lt;span&gt;Tagged In: &lt;/span&gt;
      &lt;a href=&quot;https://www.digitalocean.com/community/tags/ubuntu&quot;&gt;Ubuntu&lt;/a&gt;, &lt;a href=&quot;https://www.digitalocean.com/community/tags/mysql&quot;&gt;My Sql&lt;/a&gt;, &lt;a href=&quot;https://www.digitalocean.com/community/tags/apache&quot;&gt;Apache&lt;/a&gt;, &lt;a href=&quot;https://www.digitalocean.com/community/tags/php&quot;&gt;Php&lt;/a&gt;, &lt;a href=&quot;https://www.digitalocean.com/community/tags/wordpress&quot;&gt;Word Press&lt;/a&gt;
    &lt;/div&gt;
&lt;div class=&quot;tutorial-content&quot;&gt;
    &lt;h3&gt;
Introduction&lt;/h3&gt;
At this time, WordPress is the most popular CMS (content management 
system) on the internet.  It allows you to easily set up flexible blogs 
and websites on top of a MySQL backend with PHP processing.  WordPress 
has seen incredible adoption and is a great choice for getting a website
 up and running quickly.&lt;br /&gt;


In this guide, we&#39;ll focus on getting a WordPress instance set up with an Apache web server on Ubuntu 14.04.&lt;br /&gt;


&lt;h2&gt;
Prerequisites&lt;/h2&gt;
Before you begin this guide, there are some important steps that you need to complete on your server.&lt;br /&gt;


We will be proceeding through these steps as a non-root user with 
sudo privileges, so you will need to have one available.  You can find 
out how to create a user with sudo privileges by following steps 1-4 in 
our &lt;a href=&quot;https://www.digitalocean.com/community/articles/initial-server-setup-with-ubuntu-14-04&quot;&gt;Ubuntu 14.04 initial server setup&lt;/a&gt; guide.&lt;br /&gt;


Additionally, you&#39;ll need to have a LAMP (Linux, Apache, MySQL, and 
PHP) stack installed on your VPS instance.  If you don&#39;t have these 
components already installed and configured, you can use this guide to 
learn &lt;a href=&quot;https://www.digitalocean.com/community/articles/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-14-04&quot;&gt;how to install LAMP on Ubuntu 14.04&lt;/a&gt;.&lt;br /&gt;


When you are finished with these steps, you can continue with this guide.&lt;br /&gt;


&lt;h2&gt;
Step One — Create a MySQL Database and User for WordPress&lt;/h2&gt;
The first step that we will take is a preparatory one.  WordPress 
uses a relational database to manage and store site and user 
information.&lt;br /&gt;


We have MySQL installed, which can provide this functionality, but we
 need to make a database and a user for WordPress to work with.&lt;br /&gt;


To get started, log into the MySQL root (administrative) account by issuing this command:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;mysql -u root -p
&lt;/code&gt;&lt;/pre&gt;
You will be prompted for the password you set for the MySQL root 
account when you installed the software.  You will then be given a MySQL
 command prompt.&lt;br /&gt;


First, we can create a separate database that WordPress can control. 
 You can call this whatever you would like, but I will be calling it &lt;code&gt;wordpress&lt;/code&gt; because it is descriptive and simple.  Enter this command to create the database:&lt;br /&gt;


&lt;pre&gt;CREATE DATABASE &lt;span class=&quot;highlight&quot;&gt;wordpress&lt;/span&gt;;
&lt;/pre&gt;
Every MySQL statement must end in a semi-colon (;), so check to make sure this is present if you are running into any issues.&lt;br /&gt;


Next, we are going to create a separate MySQL user account that we 
will use exclusively to operate on our new database.  Creating 
one-function databases and accounts is a good idea from a management and
 security standpoint.&lt;br /&gt;


I am going to call the new account that I&#39;m making &lt;code&gt;wordpressuser&lt;/code&gt; and will assign it a password of &lt;code&gt;password&lt;/code&gt;.
  You should definitely change the password for your installation and 
can name the user whatever you&#39;d like.  This is the command you need to 
create the user:&lt;br /&gt;


&lt;pre&gt;CREATE USER &lt;span class=&quot;highlight&quot;&gt;wordpressuser&lt;/span&gt;@localhost IDENTIFIED BY &#39;&lt;span class=&quot;highlight&quot;&gt;password&lt;/span&gt;&#39;;
&lt;/pre&gt;
At this point, you have a database and a user account, each made 
specifically for WordPress.  However, these two components have no 
relationship yet.  The user has no access to the database.&lt;br /&gt;


Let&#39;s fix that by granting our user account access to our database with this command:&lt;br /&gt;


&lt;pre&gt;GRANT ALL PRIVILEGES ON &lt;span class=&quot;highlight&quot;&gt;wordpress&lt;/span&gt;.* TO &lt;span class=&quot;highlight&quot;&gt;wordpressuser&lt;/span&gt;@localhost;
&lt;/pre&gt;
Now the user has access to the database.  We need to flush the 
privileges so that the current instance of MySQL knows about the recent 
privilege changes we&#39;ve made:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;FLUSH PRIVILEGES;
&lt;/code&gt;&lt;/pre&gt;
We&#39;re all set now.  We can exit out of the MySQL prompt by typing:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;exit
&lt;/code&gt;&lt;/pre&gt;
You should now be back to your regular command prompt.&lt;br /&gt;


&lt;h2&gt;
Step Two — Download WordPress&lt;/h2&gt;
Next, we will download the actual WordPress files from the project&#39;s website.&lt;br /&gt;


Luckily, the WordPress team always links the most recent stable 
version of their software to the same URL, so we can get the most 
up-to-date version of WordPress by typing this:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;cd ~
wget http://wordpress.org/latest.tar.gz
&lt;/code&gt;&lt;/pre&gt;
This will download a compressed file that contains the archived directory contents of the WordPress files to our home directory.&lt;br /&gt;


We can extract the files to rebuild the WordPress directory we need by typing:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;tar xzvf latest.tar.gz
&lt;/code&gt;&lt;/pre&gt;
This will create a directory called &lt;code&gt;wordpress&lt;/code&gt; in your home directory.&lt;br /&gt;


While we are downloading things, we should also get a few more 
packages that we need.  We can get these directly from Ubuntu&#39;s default 
repositories after we update our local package index:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;sudo apt-get update
sudo apt-get install php5-gd libssh2-php
&lt;/code&gt;&lt;/pre&gt;
This will allow you to work with images and will also allow you to 
install plugins and update portions of your site using your SSH login 
credentials.&lt;br /&gt;


&lt;h2&gt;
Step Three — Configure WordPress&lt;/h2&gt;
Most of the configuration that we will be doing will be through a web
 interface later on.  However, we do need to do some work from the 
command line before we can get this up and running.&lt;br /&gt;


Begin by moving into the WordPress directory that you just unpacked:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;cd ~/wordpress
&lt;/code&gt;&lt;/pre&gt;
A sample configuration file that mostly matches the configuration we 
need is included by default.  However, we need to copy it to the default
 configuration file location to get WordPress to recognize the file.  Do
 that now by typing:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;cp wp-config-sample.php wp-config.php
&lt;/code&gt;&lt;/pre&gt;
Now that we have a configuration file to work with, let&#39;s open it in a text editor:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;nano wp-config.php
&lt;/code&gt;&lt;/pre&gt;
As I said before, this file is almost entirely suitable for our needs
 already.  The only modifications we need to make is to the parameters 
that hold our database information.&lt;br /&gt;


We will need to find the settings for &lt;code&gt;DB_NAME&lt;/code&gt;, &lt;code&gt;DB_USER&lt;/code&gt;, and &lt;code&gt;DB_PASSWORD&lt;/code&gt; in order for WordPress to correctly connect and authenticate to the database we created.&lt;br /&gt;


Fill in the values of these parameters with the information for the database you created.  It should look like this:&lt;br /&gt;


&lt;pre&gt;// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define(&#39;DB_NAME&#39;, &#39;&lt;span class=&quot;highlight&quot;&gt;wordpress&lt;/span&gt;&#39;);

/** MySQL database username */
define(&#39;DB_USER&#39;, &#39;&lt;span class=&quot;highlight&quot;&gt;wordpressuser&lt;/span&gt;&#39;);

/** MySQL database password */
define(&#39;DB_PASSWORD&#39;, &#39;&lt;span class=&quot;highlight&quot;&gt;password&lt;/span&gt;&#39;);
&lt;/pre&gt;
These are the only values that you need to change.&lt;br /&gt;


When you are finished, save and close the file.&lt;br /&gt;


&lt;h2&gt;
Step Four — Copy Files to the Document Root&lt;/h2&gt;
Now that we have our application configured, we need to copy it into 
Apache&#39;s document root, where it can be served to visitors of our 
website.&lt;br /&gt;


One of the easiest and most reliable way of transferring files from directory to directory is with the &lt;code&gt;rsync&lt;/code&gt; command.  This preserves permissions and has good data integrity features.&lt;br /&gt;


The location of the document root in &lt;a href=&quot;https://www.digitalocean.com/community/articles/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-14-04&quot;&gt;the Ubuntu 14.04 LAMP guide&lt;/a&gt; is &lt;code&gt;/var/www/html/&lt;/code&gt;.  We can transfer our WordPress files there by typing:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;sudo rsync -avP ~/wordpress/ /var/www/html/
&lt;/code&gt;&lt;/pre&gt;
This will safely copy all of the contents from the directory you unpacked to the document root.&lt;br /&gt;


We should now move into the document root to make some final permissions changes&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;cd /var/www/html
&lt;/code&gt;&lt;/pre&gt;
You will need to change the ownership of our files for increased security.&lt;br /&gt;


We want to give user ownership to the regular, non-root user (with 
sudo privileges) that you plan on using to interact with your site.  
This can be your regular user if you wish, but some may suggest that you
 create an additional user for this process.  It is up to you which you 
choose.&lt;br /&gt;


For this guide, we will use the same account that we set up during the &lt;a href=&quot;https://www.digitalocean.com/community/articles/initial-server-setup-with-ubuntu-14-04&quot;&gt;initial server setup&lt;/a&gt; guide, which we called &lt;code&gt;demo&lt;/code&gt;.  This is the account I am performing all of the actions of this guide as.&lt;br /&gt;


The group ownership we will give to our web server process, which is &lt;code&gt;www-data&lt;/code&gt;.  This will allow Apache to interact with the content as necessary.&lt;br /&gt;


We can quickly assign these ownership values by typing:&lt;br /&gt;


&lt;pre&gt;sudo chown -R &lt;span class=&quot;highlight&quot;&gt;demo&lt;/span&gt;:www-data *
&lt;/pre&gt;
This will set up the ownership properties that we are looking for.&lt;br /&gt;


While we are dealing with ownership and permissions, we should also 
look into assigning correct ownership on our uploads directory.  This 
will allow us to upload images and other content to our site.  
Currently, the permissions are too restrictive.&lt;br /&gt;


First, let&#39;s manually create the &lt;code&gt;uploads&lt;/code&gt; directory beneath the &lt;code&gt;wp-content&lt;/code&gt; directory at our document root.  This will be the parent directory of our content:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;mkdir /var/www/html/wp-content/uploads
&lt;/code&gt;&lt;/pre&gt;
We have a directory now to house uploaded files, however the 
permissions are still too restrictive.  We need to allow the web server 
itself to write to this directory.  We can do this by assigning group 
ownership of this directory to our web server, like this:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;sudo chown -R :www-data /var/www/html/wp-content/uploads
&lt;/code&gt;&lt;/pre&gt;
This will allow the web server to create files and directories under 
this directory, which will permit us to upload content to the server.&lt;br /&gt;


&lt;h2&gt;
Step Five — Complete Installation through the Web Interface&lt;/h2&gt;
Now that you have your files in place and your software is 
configured, you can complete the installation through the web interface.&lt;br /&gt;


In your web browser, navigate to your server&#39;s domain name or public IP address:&lt;br /&gt;


&lt;pre&gt;http://&lt;span class=&quot;highlight&quot;&gt;server_domain_name_or_IP&lt;/span&gt;
&lt;/pre&gt;
You will see the WordPress initial configuration page, where you will create an initial administrator account:&lt;br /&gt;


&lt;img alt=&quot;Wordpress initial config&quot; src=&quot;https://assets.digitalocean.com/articles/wordpress_1404/initial_config.png&quot; /&gt;&lt;br /&gt;


Fill out the information for the site and the administrative account 
you wish to make.  When you are finished, click on the install button at
 the bottom.&lt;br /&gt;


WordPress will confirm the installation, and then ask you to log in with the account you just created:&lt;br /&gt;


&lt;img alt=&quot;WordPress confirm install&quot; src=&quot;https://assets.digitalocean.com/articles/wordpress_1404/confirm_install.png&quot; /&gt;&lt;br /&gt;


Hit the button at the bottom and then fill out your account information:&lt;br /&gt;


&lt;img alt=&quot;WordPress login&quot; src=&quot;https://assets.digitalocean.com/articles/wordpress_1404/login.png&quot; /&gt;&lt;br /&gt;


You will be presented with the WordPress interface:&lt;br /&gt;


&lt;img alt=&quot;WordPress admin interface&quot; src=&quot;https://assets.digitalocean.com/articles/wordpress_1404/admin_interface.png&quot; /&gt;&lt;br /&gt;


&lt;h2&gt;
Step Six (Optional) — Configure Pretty Permalinks for WordPress&lt;/h2&gt;
By default, WordPress creates URLs dynamically that look something like this:&lt;br /&gt;


&lt;pre&gt;http://&lt;span class=&quot;highlight&quot;&gt;server_domain_name_or_IP&lt;/span&gt;/?p=1
&lt;/pre&gt;
This isn&#39;t exactly the most useful interface for visitors or search 
engines, so most users want to modify this.  WordPress has the ability 
to create &quot;pretty&quot; permalinks which will clean up the URL into a more 
human-friendly format.&lt;br /&gt;


There are a few things we need to do to get this to work with Apache on Ubuntu 14.04.&lt;br /&gt;


&lt;h3&gt;
Modifying Apache to Allow URL Rewrites&lt;/h3&gt;
First, we need to modify the Apache virtual host file for WordPress to allow for &lt;code&gt;.htaccess&lt;/code&gt; overrides.  You can do this by editing the virtual host file.&lt;br /&gt;


By default, this is &lt;code&gt;000-default.conf&lt;/code&gt;, but your file might be different if you created another configuration file:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;sudo nano /etc/apache2/sites-available/000-default.conf
&lt;/code&gt;&lt;/pre&gt;
Inside of this file, we want to set up a few things.  We should set the &lt;code&gt;ServerName&lt;/code&gt; and create a directory section where we allow overrides.  This should look something like this:&lt;br /&gt;


&lt;pre&gt;&amp;lt;VirtualHost *:80&amp;gt;
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    &lt;span class=&quot;highlight&quot;&gt;ServerName server_domain_name_or_IP&lt;/span&gt;
    &lt;span class=&quot;highlight&quot;&gt;&amp;lt;Directory /var/www/html/&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;highlight&quot;&gt;AllowOverride All&lt;/span&gt;
    &lt;span class=&quot;highlight&quot;&gt;&amp;lt;/Directory&amp;gt;
    . . .
&lt;/span&gt;&lt;/pre&gt;
When you are finished, save and close the file.&lt;br /&gt;


Next, we need to enable the rewrite module, which allows you to modify URLs.  You can do this by typing:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;sudo a2enmod rewrite
&lt;/code&gt;&lt;/pre&gt;
After you have made these changes, restart Apache:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;sudo service apache2 restart
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;
Create an .htaccess File&lt;/h3&gt;
Now that Apache is configured to allow rewrites through &lt;code&gt;.htaccess&lt;/code&gt; files, we need to create an actual file.&lt;br /&gt;


You need to place this file in your document root.  Type this to create an empty file:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;touch /var/www/html/.htaccess
&lt;/code&gt;&lt;/pre&gt;
This will be created with your username and user group.  We need the 
web server to be the group owner though, so we should adjust the 
ownership by typing:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;sudo chown :www-data /var/www/html/.htaccess
&lt;/code&gt;&lt;/pre&gt;
We now have the correct ownership of this file.&lt;br /&gt;


We may need to adjust the permissions however.  This depends on how 
you prefer to work.  WordPress will generate the necessary rewrite rules
 for you.  If it has write permissions to this file, it can implement 
the rules automatically.  If it does not, you will have to manually edit
 this file to add the correct rules.&lt;br /&gt;


Which configuration you choose depends on how much you value 
convenience over security.  Allowing the web server write access to this
 file will definitely be more convenient, but some say that it is an 
unnecessary security risk.&lt;br /&gt;


If you want WordPress to automatically update this file with rewrite 
rules, you can ensure that it has the correct permissions to do so by 
typing:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;chmod 664 /var/www/html/.htaccess
&lt;/code&gt;&lt;/pre&gt;
If you want to update this file manually for the sake of a small 
security gain, you can allow the web server only read privileges by 
typing:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;chmod 644 /var/www/html/.htaccess
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;
Change the Permalink Settings in WordPress&lt;/h3&gt;
When you are finished doing the server-side changes, you can easily 
adjust the permalink settings through the WordPress administration 
interface.&lt;br /&gt;


On the left-hand side, under the &lt;code&gt;Settings&lt;/code&gt; menu, you can select &lt;code&gt;Permalinks&lt;/code&gt;:&lt;br /&gt;


&lt;img alt=&quot;WordPress permalinks&quot; src=&quot;https://assets.digitalocean.com/articles/wordpress_1404/perma_settings.png&quot; /&gt;&lt;br /&gt;


You can choose any of the preconfigured settings to organize URLs, or you can create your own.&lt;br /&gt;


&lt;img alt=&quot;WordPress perma options&quot; src=&quot;https://assets.digitalocean.com/articles/wordpress_1404/perma_options.png&quot; /&gt;&lt;br /&gt;


When you have made your selection, click &quot;Save Changes&quot; to generate the rewrite rules.&lt;br /&gt;


If you allowed the web server write access to your &lt;code&gt;.htaccess&lt;/code&gt; file, you should see a message like this:&lt;br /&gt;


&lt;img alt=&quot;WordPress perma update&quot; src=&quot;https://assets.digitalocean.com/articles/wordpress_1404/perma_update.png&quot; /&gt;&lt;br /&gt;


If you did &lt;em&gt;not&lt;/em&gt; allow the web server write access to your &lt;code&gt;.htaccess&lt;/code&gt; file, you will be provided with the rewrite rules you need to add to the file manually.&lt;br /&gt;


Copy the lines that WordPress gives you and then edit file on your server:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;nano /var/www/html/.htaccess
&lt;/code&gt;&lt;/pre&gt;
This should give you the same functionality.&lt;br /&gt;


&lt;h2&gt;
Conclusion&lt;/h2&gt;
You should now have a WordPress instance up and running on your 
Ubuntu 14.04 VPS.  There are many avenues you can take from here.  Below
 we&#39;ve listed some options:&lt;br /&gt;


&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.digitalocean.com/community/articles/how-to-configure-secure-updates-and-installations-in-wordpress-on-ubuntu&quot;&gt;Configure Secure Updates and Installations for WordPress&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.digitalocean.com/community/articles/how-to-use-wpscan-to-test-for-vulnerable-plugins-and-themes-in-wordpress&quot;&gt;Use WPScan to Test for Vulnerable Plugins and Themes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.digitalocean.com/community/articles/how-to-use-wp-cli-to-manage-your-wordpress-site-from-the-command-line&quot;&gt;Manage WordPress from the Command Line&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.digitalocean.com/community/articles/how-to-set-up-multiple-wordpress-sites-on-a-single-ubuntu-vps&quot;&gt;Set Up Multiple WordPress Sites (non-multisite)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.digitalocean.com/community/articles/how-to-set-up-multiple-wordpress-sites-using-multisite&quot;&gt;Set Up Multiple WordPress Sites with Multisite&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;author&quot;&gt;
By Justin Ellingwood&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/7634766109529355118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/7634766109529355118' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/7634766109529355118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/7634766109529355118'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2014/05/how-to-install-wordpress-on-ubuntu-1404.html' title='How To Install Wordpress on Ubuntu 14.04'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-8423059101251712590</id><published>2014-05-01T04:29:00.000-07:00</published><updated>2014-05-01T04:29:13.874-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><title type='text'>How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 14.04</title><content type='html'>&lt;h1&gt;
How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 14.04&lt;/h1&gt;
&lt;div id=&quot;tags&quot;&gt;
      &lt;span&gt;Tagged In: &lt;/span&gt;
      &lt;a href=&quot;https://www.digitalocean.com/community/tags/linux-basics&quot;&gt;Linux Basics&lt;/a&gt;, &lt;a href=&quot;https://www.digitalocean.com/community/tags/ubuntu&quot;&gt;Ubuntu&lt;/a&gt;, &lt;a href=&quot;https://www.digitalocean.com/community/tags/mysql&quot;&gt;My Sql&lt;/a&gt;, &lt;a href=&quot;https://www.digitalocean.com/community/tags/apache&quot;&gt;Apache&lt;/a&gt;, &lt;a href=&quot;https://www.digitalocean.com/community/tags/php&quot;&gt;Php&lt;/a&gt;, &lt;a href=&quot;https://www.digitalocean.com/community/tags/getting-started&quot;&gt;Getting Started&lt;/a&gt;, &lt;a href=&quot;https://www.digitalocean.com/community/tags/lamp-stack&quot;&gt;Lamp Stack&lt;/a&gt;
    &lt;/div&gt;
&lt;div class=&quot;tutorial-content&quot;&gt;
    &lt;h3&gt;
Introduction&lt;/h3&gt;
A &quot;LAMP&quot; stack is a group of open source software that is typically 
installed together to enable a server to host dynamic websites and web 
apps.  This term is actually an acronym which represents the &lt;strong&gt;L&lt;/strong&gt;inux operating system, with the &lt;strong&gt;A&lt;/strong&gt;pache web server.  The site data is stored in a &lt;strong&gt;M&lt;/strong&gt;ySQL database, and dynamic content is processed by &lt;strong&gt;P&lt;/strong&gt;HP.&lt;br /&gt;


In this guide, we&#39;ll get a LAMP stack installed on an Ubuntu 14.04 
Droplet.  Ubuntu will fulfill our first requirement: a Linux operating 
system.&lt;br /&gt;


&lt;h2&gt;
Prerequisites&lt;/h2&gt;
Before you begin with this guide, you should have a separate, 
non-root user account set up on your server.  You can learn how to do 
this by completing steps 1-4 in the &lt;a href=&quot;https://www.digitalocean.com/community/articles/initial-server-setup-with-ubuntu-14-04&quot;&gt;initial server setup for Ubuntu 14.04&lt;/a&gt;.&lt;br /&gt;


&lt;h2&gt;
Step One — Install Apache&lt;/h2&gt;
The Apache web server is currently the most popular web server in the
 world, which makes it a great default choice for hosting a website.&lt;br /&gt;


We can install Apache easily using Ubuntu&#39;s package manager, &lt;code&gt;apt&lt;/code&gt;.
  A package manager allows us to install most software pain-free from a 
repository maintained by Ubuntu.  You can learn more about &lt;a href=&quot;https://www.digitalocean.com/community/articles/how-to-manage-packages-in-ubuntu-and-debian-with-apt-get-apt-cache&quot;&gt;how to use &lt;code&gt;apt&lt;/code&gt;&lt;/a&gt; here.&lt;br /&gt;


For our purposes, we can get started by typing these commands:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;sudo apt-get update
sudo apt-get install apache2
&lt;/code&gt;&lt;/pre&gt;
Since we are using a &lt;code&gt;sudo&lt;/code&gt; command, these operations get 
executed with root privileges.  It will ask you for your regular user&#39;s 
password to verify your intentions.&lt;br /&gt;


Afterwards, your web server is installed.&lt;br /&gt;


You can do a spot check right away to verify that everything went as 
planned by visiting your server&#39;s public IP address in your web browser 
(see the note under the next heading to find out what your public IP 
address is if you do not have this information already):&lt;br /&gt;


&lt;pre&gt;http://&lt;span class=&quot;highlight&quot;&gt;your_server_IP_address&lt;/span&gt;
&lt;/pre&gt;
You will see the default Ubuntu 14.04 Apache web page, which is there
 for informational and testing purposes.  It should look something like 
this:&lt;br /&gt;


&lt;img alt=&quot;Ubuntu 14.04 Apache default&quot; src=&quot;https://assets.digitalocean.com/articles/lamp_1404/default_apache.png&quot; /&gt;&lt;br /&gt;


If you see this page, then your web server is now correctly installed.&lt;br /&gt;


&lt;h3&gt;
How To Find your Server&#39;s Public IP Address&lt;/h3&gt;
If you do not know what your server&#39;s public IP address is, there are
 a number of ways you can find it.  Usually, this is the address you use
 to connect to your server through SSH.&lt;br /&gt;


From the command line, you can find this a few ways.  First, you can use the &lt;code&gt;iproute2&lt;/code&gt; tools to get your address by typing this:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;ip addr show eth0 | grep inet | awk &#39;{ print $2; }&#39; | sed &#39;s/\/.*$//&#39;
&lt;/code&gt;&lt;/pre&gt;
This will give you one or two lines back.  They are both correct 
addresses, but your computer may only be able to use one of them, so 
feel free to try each one.&lt;br /&gt;


An alternative method is to use an outside party to tell you how &lt;em&gt;it&lt;/em&gt; sees your server.  You can do this by asking a specific server what your IP address is:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;curl http://icanhazip.com
&lt;/code&gt;&lt;/pre&gt;
Regardless of the method you use to get your IP address, you can type
 it into your web browser&#39;s address bar to get to your server.&lt;br /&gt;


&lt;h2&gt;
Step Two — Install MySQL&lt;/h2&gt;
Now that we have our web server up and running, it is time to install
 MySQL.  MySQL is a database management system.  Basically, it will 
organize and provide access to databases where our site can store 
information.&lt;br /&gt;


Again, we can use &lt;code&gt;apt&lt;/code&gt; to acquire and install our 
software.  This time, we&#39;ll also install some other &quot;helper&quot; packages 
that will assist us in getting our components to communicate with each 
other:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
&lt;/code&gt;&lt;/pre&gt;
&lt;strong&gt;Note&lt;/strong&gt;: In this case, you do not have to run &lt;code&gt;sudo apt-get update&lt;/code&gt;
 prior to the command.  This is because we recently ran it in the 
commands above to install Apache.  The package index on our computer 
should already be up-to-date.&lt;br /&gt;


During the installation, your server will ask you to select and 
confirm a password for the MySQL &quot;root&quot; user.  This is an administrative
 account in MySQL that has increased privileges.  Think of it as being 
similar to the root account for the server itself (the one you are 
configuring now is a MySQL-specific account however).&lt;br /&gt;


When the installation is complete, we need to run some additional commands to get our MySQL environment set up securely.&lt;br /&gt;


First, we need to tell MySQL to create its database directory 
structure where it will store its information.  You can do this by 
typing:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;sudo mysql_install_db
&lt;/code&gt;&lt;/pre&gt;
Afterwards, we want to run a simple security script that will remove 
some dangerous defaults and lock down access to our database system a 
little bit.  Start the interactive script by running:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;sudo mysql_secure_installation
&lt;/code&gt;&lt;/pre&gt;
You will be asked to enter the password you set for the MySQL root 
account.  Next, it will ask you if you want to change that password.  If
 you are happy with your current password, type &quot;n&quot; for &quot;no&quot; at the 
prompt.&lt;br /&gt;


For the rest of the questions, you should simply hit the &quot;ENTER&quot; key 
through each prompt to accept the default values.  This will remove some
 sample users and databases, disable remote root logins, and load these 
new rules so that MySQL immediately respects the changes we have made.&lt;br /&gt;


At this point, your database system is now set up and we can move on.&lt;br /&gt;


&lt;h2&gt;
Step Three — Install PHP&lt;/h2&gt;
PHP is the component of our setup that will process code to display 
dynamic content.  It can run scripts, connect to our MySQL databases to 
get information, and hand the processed content over to our web server 
to display.&lt;br /&gt;


We can once again leverage the &lt;code&gt;apt&lt;/code&gt; system to install our components.  We&#39;re going to include some helper packages as well:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
&lt;/code&gt;&lt;/pre&gt;
This should install PHP without any problems.  We&#39;ll test this in a moment.&lt;br /&gt;


In most cases, we&#39;ll want to modify the way that Apache serves files 
when a directory is requested.  Currently, if a user requests a 
directory from the server, Apache will first look for a file called &lt;code&gt;index.html&lt;/code&gt;.  We want to tell our web server to prefer PHP files, so we&#39;ll make Apache look for an &lt;code&gt;index.php&lt;/code&gt; file first.&lt;br /&gt;


To do this, type this command to open the &lt;code&gt;dir.conf&lt;/code&gt; file in a text editor with root privileges:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;sudo nano /etc/apache2/mods-enabled/dir.conf
&lt;/code&gt;&lt;/pre&gt;
It will look like this:&lt;br /&gt;


&lt;pre&gt;&amp;lt;IfModule mod_dir.c&amp;gt;
    DirectoryIndex index.html index.cgi index.pl &lt;span class=&quot;highlight&quot;&gt;index.php&lt;/span&gt; index.xhtml index.htm
&amp;lt;/IfModule&amp;gt;
&lt;/pre&gt;
We want to move the PHP index file highlighted above to the first position after the &lt;code&gt;DirectoryIndex&lt;/code&gt; specification, like this:&lt;br /&gt;


&lt;pre&gt;&amp;lt;IfModule mod_dir.c&amp;gt;
    DirectoryIndex &lt;span class=&quot;highlight&quot;&gt;index.php&lt;/span&gt; index.html index.cgi index.pl index.xhtml index.htm
&amp;lt;/IfModule&amp;gt;
&lt;/pre&gt;
When you are finished, save and close the file by pressing &quot;CTRL-X&quot;. 
 You&#39;ll have to confirm the save by typing &quot;Y&quot; and then hit &quot;ENTER&quot; to 
confirm the file save location.&lt;br /&gt;


After this, we need to restart the Apache web server in order for our changes to be recognized.  You can do this by typing this:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;sudo service apache2 restart
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;
Install PHP Modules&lt;/h3&gt;
To enhance the functionality of PHP, we can optionally install some additional modules.&lt;br /&gt;


To see the available options for PHP modules and libraries, you can type this into your system:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;apt-cache search php5-
&lt;/code&gt;&lt;/pre&gt;
The results are all optional components that you can install.  It will give you a short description for each:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;php5-cgi - server-side, HTML-embedded scripting language (CGI binary)
php5-cli - command-line interpreter for the php5 scripting language
php5-common - Common files for packages built from the php5 source
php5-curl - CURL module for php5
php5-dbg - Debug symbols for PHP5
php5-dev - Files for PHP5 module development
php5-gd - GD module for php5
. . .
&lt;/code&gt;&lt;/pre&gt;
To get more information about what each module does, you can either 
search the internet, or you can look at the long description in the 
package by typing:&lt;br /&gt;


&lt;pre&gt;apt-cache show &lt;span class=&quot;highlight&quot;&gt;package_name&lt;/span&gt;
&lt;/pre&gt;
There will be a lot of output, with one field called &lt;code&gt;Description-en&lt;/code&gt; which will have a longer explanation of the functionality that the module provides.&lt;br /&gt;


For example, to find out what the &lt;code&gt;php5-cli&lt;/code&gt; module does, we could type this:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;apt-cache show php5-cli
&lt;/code&gt;&lt;/pre&gt;
Along with a large amount of other information, you&#39;ll find something that looks like this:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;. . .
SHA256: 91cfdbda65df65c9a4a5bd3478d6e7d3e92c53efcddf3436bbe9bbe27eca409d
Description-en: command-line interpreter for the php5 scripting language
 This package provides the /usr/bin/php5 command interpreter, useful for
 testing PHP scripts from a shell or performing general shell scripting tasks.
 .
 The following extensions are built in: bcmath bz2 calendar Core ctype date
 dba dom ereg exif fileinfo filter ftp gettext hash iconv libxml mbstring
 mhash openssl pcntl pcre Phar posix Reflection session shmop SimpleXML soap
 sockets SPL standard sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader
 xmlwriter zip zlib.
 .
 PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
 open source general-purpose scripting language that is especially suited
 for web development and can be embedded into HTML.
Description-md5: f8450d3b28653dcf1a4615f3b1d4e347
Homepage: http://www.php.net/
. . .
&lt;/code&gt;&lt;/pre&gt;
If, after researching, you decide you would like to install a package, you can do so by using the &lt;code&gt;apt-get install&lt;/code&gt; command like we have been doing for our other software.&lt;br /&gt;


If we decided that &lt;code&gt;php5-cli&lt;/code&gt; is something that we need, we could type:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;sudo apt-get install php5-cli
&lt;/code&gt;&lt;/pre&gt;
If you want to install more than one module, you can do that by listing each one, separated by a space, following the &lt;code&gt;apt-get install&lt;/code&gt; command, like this:&lt;br /&gt;


&lt;pre&gt;sudo apt-get install &lt;span class=&quot;highlight&quot;&gt;package1&lt;/span&gt; &lt;span class=&quot;highlight&quot;&gt;package2&lt;/span&gt; &lt;span class=&quot;highlight&quot;&gt;...&lt;/span&gt;
&lt;/pre&gt;
At this point, your LAMP stack is installed and configured.  We should still test out our PHP though.&lt;br /&gt;


&lt;h2&gt;
Step Four — Test PHP Processing on your Web Server&lt;/h2&gt;
In order to test that our system is configured properly for PHP, we can create a very basic PHP script.&lt;br /&gt;


We will call this script &lt;code&gt;info.php&lt;/code&gt;.  In order for Apache 
to find the file and serve it correctly, it must be saved to a very 
specific directory, which is called the &quot;web root&quot;.&lt;br /&gt;


In Ubuntu 14.04, this directory is located at &lt;code&gt;/var/www/html/&lt;/code&gt;.  We can create the file at that location by typing:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;sudo nano /var/www/html/info.php
&lt;/code&gt;&lt;/pre&gt;
This will open a blank file.  We want to put the following text, which is valid PHP code, inside the file:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;&amp;lt;?php
phpinfo();
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
When you are finished, save and close the file.&lt;br /&gt;


Now we can test whether our web server can correctly display content 
generated by a PHP script.  To try this out, we just have to visit this 
page in our web browser.  You&#39;ll need your server&#39;s public IP address 
again.&lt;br /&gt;


The address you want to visit will be:&lt;br /&gt;


&lt;pre&gt;http://&lt;span class=&quot;highlight&quot;&gt;your_server_IP_address&lt;/span&gt;/info.php
&lt;/pre&gt;
The page that you come to should look something like this:&lt;br /&gt;


&lt;img alt=&quot;Ubuntu 14.04 default PHP info&quot; src=&quot;https://assets.digitalocean.com/articles/lamp_1404/default_php.png&quot; /&gt;&lt;br /&gt;


This page basically gives you information about your server from the 
perspective of PHP.  It is useful for debugging and to ensure that your 
settings are being applied correctly.&lt;br /&gt;


If this was successful, then your PHP is working as expected.&lt;br /&gt;


You probably want to remove this file after this test because it 
could actually give information about your server to unauthorized users.
  To do this, you can type this:&lt;br /&gt;


&lt;pre&gt;&lt;code&gt;sudo rm /var/www/html/info.php
&lt;/code&gt;&lt;/pre&gt;
You can always recreate this page if you need to access the information again later.&lt;br /&gt;


&lt;h2&gt;
Conclusion&lt;/h2&gt;
Now that you have a LAMP stack installed, you have many choices for 
what to do next.  Basically, you&#39;ve installed a platform that will allow
 you to install most kinds of websites and web software on your server. 
 &lt;br /&gt;


Some popular options are:&lt;br /&gt;


&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.digitalocean.com/community/articles/how-to-install-wordpress-on-ubuntu-12-04&quot;&gt;Install Wordpress&lt;/a&gt; the most popular content management system on the internet&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.digitalocean.com/community/articles/how-to-install-and-secure-phpmyadmin-on-ubuntu-12-04&quot;&gt;Set Up PHPMyAdmin&lt;/a&gt; to help manage your MySQL databases from web browser.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.digitalocean.com/community/articles/a-basic-mysql-tutorial&quot;&gt;Learn more about MySQL&lt;/a&gt; to manage your databases.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.digitalocean.com/community/articles/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-12-04&quot;&gt;Learn how to create an SSL Certificate&lt;/a&gt; to secure traffic to your web server.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.digitalocean.com/community/articles/how-to-use-sftp-to-securely-transfer-files-with-a-remote-server&quot;&gt;Learn how to use SFTP&lt;/a&gt; to transfer files to and from your server.&lt;/li&gt;
&lt;/ul&gt;
&lt;strong&gt;Note&lt;/strong&gt;: We will be updating the links above to our 14.04 documentation as it is written.&lt;br /&gt;


&lt;div class=&quot;author&quot;&gt;
By Justin Ellingwood&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/8423059101251712590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/8423059101251712590' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/8423059101251712590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/8423059101251712590'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2014/05/how-to-install-linux-apache-mysql-php.html' title='How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 14.04'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-3198273642506278425</id><published>2014-05-01T02:21:00.000-07:00</published><updated>2014-05-01T02:23:35.193-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><title type='text'>How To Set Up Apache Virtual Hosts on Ubuntu 14.04 LTS</title><content type='html'>&lt;h1&gt;
How To Set Up Apache Virtual Hosts on Ubuntu 14.04 LTS&lt;/h1&gt;
&lt;div id=&quot;tags&quot;&gt;
Tagged In: 
      &lt;a href=&quot;https://www.digitalocean.com/community/tags/linux-basics&quot;&gt;Linux Basics&lt;/a&gt;, &lt;a href=&quot;https://www.digitalocean.com/community/tags/ubuntu&quot;&gt;Ubuntu&lt;/a&gt;, &lt;a href=&quot;https://www.digitalocean.com/community/tags/apache&quot;&gt;Apache&lt;/a&gt;, &lt;a href=&quot;https://www.digitalocean.com/community/tags/faq&quot;&gt;Faq&lt;/a&gt;, &lt;a href=&quot;https://www.digitalocean.com/community/tags/getting-started&quot;&gt;Getting Started&lt;/a&gt;
    &lt;/div&gt;
&lt;div class=&quot;tutorial-content&quot;&gt;
&lt;h3&gt;
Introduction&lt;/h3&gt;
The Apache web server is the most popular way of serving web content 
on the internet.  It accounts for more than half of all active websites 
on the internet and is extremely powerful and flexible.&lt;br /&gt;
Apache breaks its functionality and components into individual units 
that can be customized and configured independently.  The basic unit 
that describes an individual site or domain is called a &lt;code&gt;virtual host&lt;/code&gt;.&lt;br /&gt;
These designations allow the administrator to use one server to host 
multiple domains or sites off of a single interface or IP by using a 
matching mechanism.  This is relevant to anyone looking to host more 
than one site off of a single VPS.&lt;br /&gt;
Each domain that is configured will direct the visitor to a specific 
directory holding that site&#39;s information, never indicating that the 
same server is also responsible for other sites.  This scheme is 
expandable without any software limit as long as your server can handle 
the load.&lt;br /&gt;
In this guide, we will walk you through how to set up Apache virtual 
hosts on an Ubuntu 14.04 VPS.  During this process, you&#39;ll learn how to 
serve different content to different visitors depending on which domains
 they are requesting.&lt;br /&gt;
&lt;h2&gt;
Prerequisites&lt;/h2&gt;
Before you begin this tutorial, you should &lt;a href=&quot;https://www.digitalocean.com/community/articles/initial-server-setup-with-ubuntu-14-04&quot;&gt;create a non-root user&lt;/a&gt; as described in steps 1-4 here.&lt;br /&gt;
You will also need to have Apache installed in order to work through 
these steps.  If you haven&#39;t already done so, you can get Apache 
installed on your server through &lt;code&gt;apt-get&lt;/code&gt;:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get update
sudo apt-get install apache2
&lt;/code&gt;&lt;/pre&gt;
After these steps are complete, we can get started.&lt;br /&gt;
For the purposes of this guide, my configuration will make a virtual host for &lt;code&gt;example.com&lt;/code&gt; and another for &lt;code&gt;test.com&lt;/code&gt;.  These will be referenced throughout the guide, but you should substitute your own domains or values while following along.&lt;br /&gt;
To learn &lt;a href=&quot;https://www.digitalocean.com/community/articles/how-to-set-up-a-host-name-with-digitalocean&quot;&gt;how to set up your domain names with DigitalOcean&lt;/a&gt;, follow this link.  If you do &lt;i&gt;not&lt;/i&gt; have domains available to play with, you can use dummy values.&lt;br /&gt;
We will show how to edit your local hosts file later on to test the 
configuration if you are using dummy values.  This will allow you to 
test your configuration from your home computer, even though your 
content won&#39;t be available through the domain name to other visitors.&lt;br /&gt;
&lt;h2&gt;
Step One — Create the Directory Structure&lt;/h2&gt;
The first step that we are going to take is to make a directory 
structure that will hold the site data that we will be serving to 
visitors.&lt;br /&gt;
Our &lt;code&gt;document root&lt;/code&gt; (the top-level directory that Apache looks at to find content to serve) will be set to individual directories under the &lt;code&gt;/var/www&lt;/code&gt; directory.  We will create a directory here for both of the virtual hosts we plan on making.&lt;br /&gt;
Within each of &lt;i&gt;these&lt;/i&gt; directories, we will create a &lt;code&gt;public_html&lt;/code&gt; file that will hold our actual files.  This gives us some flexibility in our hosting.&lt;br /&gt;
For instance, for our sites, we&#39;re going to make our directories like this:&lt;br /&gt;
&lt;pre&gt;sudo mkdir -p /var/www/&lt;span class=&quot;highlight&quot;&gt;example.com&lt;/span&gt;/public_html
sudo mkdir -p /var/www/&lt;span class=&quot;highlight&quot;&gt;test.com&lt;/span&gt;/public_html
&lt;/pre&gt;
The portions in red represent the domain names that we are wanting to serve from our VPS.&lt;br /&gt;
&lt;h2&gt;
Step Two — Grant Permissions&lt;/h2&gt;
Now we have the directory structure for our files, but they are owned
 by our root user.  If we want our regular user to be able to modify 
files in our web directories, we can change the ownership by doing this:&lt;br /&gt;
&lt;pre&gt;sudo chown -R $USER:$USER /var/www/&lt;span class=&quot;highlight&quot;&gt;example.com&lt;/span&gt;/public_html
sudo chown -R $USER:$USER /var/www/&lt;span class=&quot;highlight&quot;&gt;test.com&lt;/span&gt;/public_html
&lt;/pre&gt;
The &lt;code&gt;$USER&lt;/code&gt; variable will take the value of the user you 
are currently logged in as when you press &quot;ENTER&quot;.  By doing this, our 
regular user now owns the &lt;code&gt;public_html&lt;/code&gt; subdirectories where we will be storing our content.&lt;br /&gt;
We should also modify our permissions a little bit to ensure that 
read access is permitted to the general web directory and all of the 
files and folders it contains so that pages can be served correctly:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;sudo chmod -R 755 /var/www
&lt;/code&gt;&lt;/pre&gt;
Your web server should now have the permissions it needs to serve 
content, and your user should be able to create content within the 
necessary folders.&lt;br /&gt;
&lt;h2&gt;
Step Three — Create Demo Pages for Each Virtual Host&lt;/h2&gt;
We have our directory structure in place.  Let&#39;s create some content to serve.&lt;br /&gt;
We&#39;re just going for a demonstration, so our pages will be very simple.  We&#39;re just going to make an &lt;code&gt;index.html&lt;/code&gt; page for each site.&lt;br /&gt;
Let&#39;s start with &lt;code&gt;example.com&lt;/code&gt;.  We can open up an &lt;code&gt;index.html&lt;/code&gt; file in our editor by typing:&lt;br /&gt;
&lt;pre&gt;nano /var/www/&lt;span class=&quot;highlight&quot;&gt;example.com&lt;/span&gt;/public_html/index.html
&lt;/pre&gt;
In this file, create a simple HTML document that indicates the site it is connected to.  My file looks like this:&lt;br /&gt;
&lt;pre&gt;&amp;lt;html&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;Welcome to &lt;span class=&quot;highlight&quot;&gt;Example.com&lt;/span&gt;!&amp;lt;/title&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;Success!  The &lt;span class=&quot;highlight&quot;&gt;example.com&lt;/span&gt; virtual host is working!&amp;lt;/h1&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;
Save and close the file when you are finished.&lt;br /&gt;
We can copy this file to use as the basis for our second site by typing:&lt;br /&gt;
&lt;pre&gt;cp /var/www/&lt;span class=&quot;highlight&quot;&gt;example.com&lt;/span&gt;/public_html/index.html /var/www/&lt;span class=&quot;highlight&quot;&gt;test.com&lt;/span&gt;/public_html/index.html
&lt;/pre&gt;
We can then open the file and modify the relevant pieces of information:&lt;br /&gt;
&lt;pre&gt;nano /var/www/&lt;span class=&quot;highlight&quot;&gt;test.com&lt;/span&gt;/public_html/index.html
&lt;/pre&gt;
&lt;pre&gt;&amp;lt;html&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;Welcome to &lt;span class=&quot;highlight&quot;&gt;Test.com&lt;/span&gt;!&amp;lt;/title&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;Success!  The &lt;span class=&quot;highlight&quot;&gt;test.com&lt;/span&gt; virtual host is working!&amp;lt;/h1&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;
Save and close this file as well.  You now have the pages necessary to test the virtual host configuration.&lt;br /&gt;
&lt;h2&gt;
Step Four — Create New Virtual Host Files&lt;/h2&gt;
Virtual host files are the files that specify the actual 
configuration of our virtual hosts and dictate how the Apache web server
 will respond to various domain requests.&lt;br /&gt;
Apache comes with a default virtual host file called &lt;code&gt;000-default.conf&lt;/code&gt; that we can use as a jumping off point.  We are going to copy it over to create a virtual host file for each of our domains.&lt;br /&gt;
We will start with one domain, configure it, copy it for our second 
domain, and then make the few further adjustments needed.  The default 
Ubuntu configuration requires that each virtual host file end in &lt;code&gt;.conf&lt;/code&gt;.&lt;br /&gt;
&lt;h3&gt;
Create the First Virtual Host File&lt;/h3&gt;
Start by copying the file for the first domain:&lt;br /&gt;
&lt;pre&gt;sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/&lt;span class=&quot;highlight&quot;&gt;example.com&lt;/span&gt;.conf
&lt;/pre&gt;
Open the new file in your editor with root privileges:&lt;br /&gt;
&lt;pre&gt;sudo nano /etc/apache2/sites-available/&lt;span class=&quot;highlight&quot;&gt;example.com&lt;/span&gt;.conf
&lt;/pre&gt;
The file will look something like this (I&#39;ve removed the comments here to make the file more approachable):&lt;br /&gt;
&lt;pre&gt;&amp;lt;VirtualHost *:80&amp;gt;
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
&amp;lt;/VirtualHost&amp;gt;
&lt;/pre&gt;
As you can see, there&#39;s not much here.  We will customize the items 
here for our first domain and add some additional directives.  This 
virtual host section matches &lt;i&gt;any&lt;/i&gt; requests that are made on port 80, the default HTTP port.&lt;br /&gt;
First, we need to change the &lt;code&gt;ServerAdmin&lt;/code&gt; directive to an email that the site administrator can receive emails through.&lt;br /&gt;
&lt;pre&gt;ServerAdmin &lt;span class=&quot;highlight&quot;&gt;admin@example.com&lt;/span&gt;
&lt;/pre&gt;
After this, we need to &lt;i&gt;add&lt;/i&gt; two directives.  The first, called &lt;code&gt;ServerName&lt;/code&gt;,
 establishes the base domain that should match for this virtual host 
definition.  This will most likely be your domain.  The second, called &lt;code&gt;ServerAlias&lt;/code&gt;, defines further names that should match as if they were the base name.  This is useful for matching hosts you defined, like &lt;code&gt;www&lt;/code&gt;:&lt;br /&gt;
&lt;pre&gt;ServerName &lt;span class=&quot;highlight&quot;&gt;example.com&lt;/span&gt;
ServerAlias &lt;span class=&quot;highlight&quot;&gt;www.example.com&lt;/span&gt;
&lt;/pre&gt;
The only other thing we need to change for a basic virtual host file 
is the location of the document root for this domain.  We already 
created the directory we need, so we just need to alter the &lt;code&gt;DocumentRoot&lt;/code&gt; directive to reflect the directory we created:&lt;br /&gt;
&lt;pre&gt;DocumentRoot /var/www/&lt;span class=&quot;highlight&quot;&gt;example.com&lt;/span&gt;/public_html
&lt;/pre&gt;
In total, our virtualhost file should look like this:&lt;br /&gt;
&lt;pre&gt;&amp;lt;VirtualHost *:80&amp;gt;
    ServerAdmin &lt;span class=&quot;highlight&quot;&gt;admin@example.com&lt;/span&gt;
    ServerName &lt;span class=&quot;highlight&quot;&gt;example.com&lt;/span&gt;
    ServerAlias &lt;span class=&quot;highlight&quot;&gt;www.example.com&lt;/span&gt;
    DocumentRoot /var/www/&lt;span class=&quot;highlight&quot;&gt;example.com&lt;/span&gt;/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
&amp;lt;/VirtualHost&amp;gt;
&lt;/pre&gt;
Save and close the file.&lt;br /&gt;
&lt;h3&gt;
Copy First Virtual Host and Customize for Second Domain&lt;/h3&gt;
Now that we have our first virtual host file established, we can 
create our second one by copying that file and adjusting it as needed.&lt;br /&gt;
Start by copying it:&lt;br /&gt;
&lt;pre&gt;sudo cp /etc/apache2/sites-available/&lt;span class=&quot;highlight&quot;&gt;example.com&lt;/span&gt;.conf /etc/apache2/sites-available/&lt;span class=&quot;highlight&quot;&gt;test.com&lt;/span&gt;.conf
&lt;/pre&gt;
Open the new file with root privileges in your editor:&lt;br /&gt;
&lt;pre&gt;sudo nano /etc/apache2/sites-available/&lt;span class=&quot;highlight&quot;&gt;test.com&lt;/span&gt;.conf
&lt;/pre&gt;
You now need to modify all of the pieces of information to reference 
your second domain.  When you are finished, it may look something like 
this:&lt;br /&gt;
&lt;pre&gt;&amp;lt;VirtualHost *:80&amp;gt;
    ServerAdmin &lt;span class=&quot;highlight&quot;&gt;admin@test.com&lt;/span&gt;
    ServerName &lt;span class=&quot;highlight&quot;&gt;test.com&lt;/span&gt;
    ServerAlias &lt;span class=&quot;highlight&quot;&gt;www.test.com&lt;/span&gt;
    DocumentRoot /var/www/&lt;span class=&quot;highlight&quot;&gt;test.com&lt;/span&gt;/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
&amp;lt;/VirtualHost&amp;gt;
&lt;/pre&gt;
Save and close the file when you are finished.&lt;br /&gt;
&lt;h2&gt;
Step Five — Enable the New Virtual Host Files&lt;/h2&gt;
Now that we have created our virtual host files, we must enable them.  Apache includes some tools that allow us to do this.&lt;br /&gt;
We can use the &lt;code&gt;a2ensite&lt;/code&gt; tool to enable each of our sites like this:&lt;br /&gt;
&lt;pre&gt;sudo a2ensite &lt;span class=&quot;highlight&quot;&gt;example.com&lt;/span&gt;.conf
sudo a2ensite &lt;span class=&quot;highlight&quot;&gt;test.com&lt;/span&gt;.conf
&lt;/pre&gt;
When you are finished, you need to restart Apache to make these changes take affect:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;sudo service apache2 restart
&lt;/code&gt;&lt;/pre&gt;
You will most likely receive a message saying something similar to:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt; * Restarting web server apache2
 AH00558: apache2: Could not reliably determine the server&#39;s fully qualified domain name, using 127.0.0.1. Set the &#39;ServerName&#39; directive globally to suppress this message
&lt;/code&gt;&lt;/pre&gt;
This is a harmless message that does not affect our site.&lt;br /&gt;
&lt;h2&gt;
Step Six — Set Up Local Hosts File (Optional)&lt;/h2&gt;
If you haven&#39;t been using actual domain names that you own to test 
this procedure and have been using some example domains instead, you can
 at least test the functionality of this process by temporarily 
modifying the &lt;code&gt;hosts&lt;/code&gt; file on your local computer.&lt;br /&gt;
This will intercept any requests for the domains that you configured 
and point them to your VPS server, just as the DNS system would do if 
you were using registered domains.  This will only work from your 
computer though, and is simply useful for testing purposes.&lt;br /&gt;
Make sure you are operating on your local computer for these steps 
and not your VPS server.  You will need to know the computer&#39;s 
administrative password or otherwise be a member of the administrative 
group.&lt;br /&gt;
If you are on a Mac or Linux computer, edit your local file with administrative privileges by typing:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;sudo nano /etc/hosts
&lt;/code&gt;&lt;/pre&gt;
If you are on a Windows machine, you can &lt;a href=&quot;http://support.microsoft.com/kb/923947&quot;&gt;find instructions on altering your hosts file&lt;/a&gt; here.&lt;br /&gt;
The details that you need to add are the public IP address of your 
VPS server followed by the domain you want to use to reach that VPS.&lt;br /&gt;
For the domains that I used in this guide, assuming that my VPS IP address is &lt;code&gt;111.111.111.111&lt;/code&gt;, I could add the following lines to the bottom of my hosts file:&lt;br /&gt;
&lt;pre&gt;127.0.0.1   localhost
127.0.1.1   guest-desktop
111.111.111.111 &lt;span class=&quot;highlight&quot;&gt;example.com&lt;/span&gt;
111.111.111.111 &lt;span class=&quot;highlight&quot;&gt;test.com&lt;/span&gt;
&lt;/pre&gt;
This will direct any requests for &lt;code&gt;example.com&lt;/code&gt; and &lt;code&gt;test.com&lt;/code&gt; on our computer and send them to our server at &lt;code&gt;111.111.111.111&lt;/code&gt;.  This is what we want if we are not actually the owners of these domains in order to test our virtual hosts.&lt;br /&gt;
Save and close the file.&lt;br /&gt;
&lt;h2&gt;
Step Seven — Test your Results&lt;/h2&gt;
Now that you have your virtual hosts configured, you can test your 
setup easily by going to the domains that you configured in your web 
browser:&lt;br /&gt;
&lt;pre&gt;http://&lt;span class=&quot;highlight&quot;&gt;example.com&lt;/span&gt;
&lt;/pre&gt;
You should see a page that looks like this:&lt;br /&gt;
&lt;img alt=&quot;Apache virt host example&quot; src=&quot;https://assets.digitalocean.com/articles/apache_virt_hosts_1404/example.png&quot; /&gt;&lt;br /&gt;
Likewise, if you can visit your second page:&lt;br /&gt;
&lt;pre&gt;http://&lt;span class=&quot;highlight&quot;&gt;test.com&lt;/span&gt;
&lt;/pre&gt;
You will see the file you created for your second site:&lt;br /&gt;
&lt;img alt=&quot;Apache virt host test&quot; src=&quot;https://assets.digitalocean.com/articles/apache_virt_hosts_1404/test.png&quot; /&gt;&lt;br /&gt;
If both of these sites work well, you&#39;ve successfully configured &lt;b&gt;two&lt;/b&gt; virtual hosts on the same server.&lt;br /&gt;
If you adjusted your home computer&#39;s hosts file, you may want to 
delete the lines you added now that you verified that your configuration
 works.  This will prevent your hosts file from being filled with 
entries that are not actually necessary. &lt;br /&gt;
If you need to access this long term, consider purchasing a domain name for each site you need and &lt;a href=&quot;https://www.digitalocean.com/community/articles/how-to-set-up-a-host-name-with-digitalocean&quot;&gt;setting it up to point to your VPS server&lt;/a&gt;.&lt;br /&gt;
&lt;h2&gt;
Conclusion&lt;/h2&gt;
If you followed along, you should now have a single server handling 
two separate domain names.  You can expand this process by following the
 steps we outlined above to make additional virtual hosts.&lt;br /&gt;
There is no software limit on the number of domain names Apache can 
handle, so feel free to make as many as your server is capable of 
handling.&lt;br /&gt;
&lt;div class=&quot;author&quot;&gt;
By Justin Ellingwood&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/3198273642506278425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/3198273642506278425' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/3198273642506278425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/3198273642506278425'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2014/05/how-to-set-up-apache-virtual-hosts-on.html' title='How To Set Up Apache Virtual Hosts on Ubuntu 14.04 LTS'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-8986060145394670872</id><published>2014-05-01T00:59:00.002-07:00</published><updated>2014-05-01T01:03:44.096-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><title type='text'>Hacker Alert: Here Are 8 Major Types Of DDoS Attacks</title><content type='html'>&lt;span style=&quot;color: black; font-family: verdana; font-size: x-small;&quot;&gt;&lt;b&gt;1.UDP Flood&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A 
UDP flood attack is a denial-of-service (DoS) attack using the User 
Datagram Protocol (UDP), a sessionless/connectionless computer 
networking protocol. Using UDP for denial-of-service attacks is not as 
straightforward as with the Transmission Control Protocol (TCP). 
However, a UDP flood attack can be initiated by sending a large number 
of UDP packets to random ports on a remote host. As a result, the 
distant host will: check for the application listening at that port, see
 that no application listens at that port and reply with an ICMP 
Destination Unreachable packet.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2.Ping of Death&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A 
ping of death is a type of attack on a computer that involves sending a 
malformed or otherwise malicious ping to a computer. A correctly formed 
ping message is typically 56 bytes in size, or 84 bytes when the 
Internet Protocol (IP) header is considered. Historically, many computer
 systems could not properly handle a ping packet larger than the maximum
 IPv4 packet size of 65535bytes. Larger packets could crash the target 
computer. In early implementations of TCP/IP, this bug was easy to 
exploit. This exploit affected a wide variety of systems, including 
Unix, Linux, Mac, Windows, printers, and routers.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3.Reflected / Spoofed attack&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A
 distributed denial of service attack may involve sending forged 
requests of some type to a very large number of computers that will 
reply to the requests. Using Internet Protocol address spoofing, the 
source address is set to that of the targeted victim, which means all 
the replies will go to (and flood) the target.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4.Nuke&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A
 Nuke is an old denial-of-service attack against computer networks 
consisting of fragmented or otherwise invalid ICMP packets sent to the 
target, achieved by using a modified ping utility to repeatedly send 
this corrupt data, thus slowing down the affected computer until it 
comes to a complete stop.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5.Slowloris&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Slowloris is a
 piece of software written by Robert &quot;RSnake&quot; Hansen which allows a 
single machine to take down another machine&#39;s web server with minimal 
bandwidth and side effects on unrelated services and ports. Slowloris 
tries to keep many connections to the target web server open and hold 
them open as long as possible. It accomplishes this by opening 
connections to the target web server and sending a partial request. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;6.Unintentional DDoS&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This
 describes a situation where a website ends up denied, not due to a 
deliberate attack by a single individual or group of individuals, but 
simply due to a sudden enormous spike in popularity. This can happen 
when an extremely popular website posts a prominent link to a second, 
less well-prepared site, for example, as part of a news story.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7.Zero Day DDoS&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;General term used to describe vulnerabilities and exploits that are still new and haven&#39;t been patched yet.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8.SYN Flood&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A
 SYN flood is a form of denial-of-service attack in which an attacker 
sends a succession of SYN requests to a target&#39;s system in an attempt to
 consume enough server resources to make the system unresponsive to 
legitimate traffic.



&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/8986060145394670872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/8986060145394670872' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/8986060145394670872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/8986060145394670872'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2014/05/hacker-alert-here-are-8-major-types-of.html' title='Hacker Alert: Here Are 8 Major Types Of DDoS Attacks'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-143339371660555549</id><published>2014-04-30T10:02:00.000-07:00</published><updated>2014-04-30T10:02:34.684-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><title type='text'>58 Cool Linux Hacks!</title><content type='html'>&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;width: 100%px;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td align=&quot;center&quot; valign=&quot;top&quot; width=&quot;100%&quot;&gt;&lt;div align=&quot;left&quot;&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Efytimes brings to you 58 super cool hacks for all levels of Linux users!&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;


	
	
	
	


&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot; style=&quot;page-break-before: always;&quot;&gt;
&lt;span style=&quot;color: #000033; font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;Are you ready to try your hands on these cool Linux hacks! Set your machine on and get started!&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot; style=&quot;page-break-before: always;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Fix a wonky
terminal&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: bash 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;We&#39;ve all done it - accidentally used less or cat to list a file,
and ended up viewing binary instead. This usually involves all sorts
of control codes that can easily screw up your terminal display.
There will be beeping. There will be funny characters. There will be
odd colour combinations. At the end of it, your font will be replaced
with hieroglyphics and you don&#39;t know what to do. Well, bash is
obviously still working, but you just can&#39;t read what&#39;s actually
going on! Send the terminal an initialisation command: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;reset&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
and all will be well again.&amp;nbsp;&lt;/span&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Creating_Mozilla_keywords&quot;&gt;&lt;/a&gt;Creating
Mozilla keywords&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: Firefox/Mozilla 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;A useful feature in Konqueror is the ability to type gg onion to
do a Google search based on the word onion. The same kind of
functionality can be achieved in Mozilla by first clicking on
Bookmarks&amp;gt;Manage Bookmarks and then Add a New Bookmark. Add the
URL as: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;http://www.google.com/search?q=%25s&quot;&gt;http://www.google.com/search?q=%s&lt;/a&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Now select the entry in the bookmark editor and click the Properties
button. Now enter the keyword as gg (or this can be anything you
choose) and the process is complete. The %s in the URL will be
replaced with the text after the keyword. You can apply this hack to
other kinds of sites that rely on you passing information on the URL.
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Alternatively, right-click on a search field and select the menu
option &quot;Add a Keyword for this Search...&quot;. The subsequent
dialog will allow you to specify the keyword to use. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Running_multiple_X_sessions&quot;&gt;&lt;/a&gt;Running
multiple X sessions&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: X 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;If you share your Linux box with someone and you are sick of
continually logging in and out, you may be relieved to know that this
is not really needed. Assuming that your computer starts in graphical
mode (runlevel 5), by simultaneously pressing the keys Control+Alt+F1
- you will get a login prompt. Insert your login and password and
then execute: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;startx --&amp;nbsp;:1&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
to get into your graphical environment. To go back to the previous
user session, press Ctrl+Alt+F7, while to get yours back press
Ctrl+Alt+F8. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;You can repeat this trick: the keys F1 to F6 identify six console
sessions, while F7 to F12 identify six X sessions. Caveat: although
this is true in most cases, different distributions can implement
this feature in a different way. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Faster_browsing&quot;&gt;&lt;/a&gt;Faster browsing&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: KDE 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;In KDE 3.2, a little-known but useful option has been added to
speed up your web browsing experience. Start the KDE Control Center
and choose System &amp;gt; KDE performance from the sidebar. You can now
select to preload Konqueror instances. Effectively, this means that
Konqueror is run on startup, but kept hidden until you try to use it.
When you do, it pops up almost instantaneously. Bonus! 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Backup_your_website_easily&quot;&gt;&lt;/a&gt;Backup
your website easily&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: Backups 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;If you want to back up a directory on a computer and only copy
changed files to the backup computer instead of everything with each
backup, you can use the rsync tool to do this. You will need an
account on the remote computer that you are backing up from. Here is
the command: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;rsync -vare ssh jono@192.168.0.2:/home/jono/importantfiles/* /home/jono/backup/&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Here we are backing up all of the files in /home/jono/importantfiles/
on 192.168.0.2 to /home/jono/backup on the current machine. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Keeping_your_clock_in_time&quot;&gt;&lt;/a&gt;Keeping
your clock in time&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: NTP 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;If you find that the clock on your computer seems to wander off
the time, you can make use of a special NTP tool to ensure that you
are always synchronised with the kind of accuracy that only people
that wear white coats get excited about. You will need to install the
ntpdate tool that is often included in the NTP package, and then you
can synchronise with an NTP server: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;ntpdate ntp.blueyonder.co.uk&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
A list of suitable NTP servers is available at
www.eecis.udel.edu/~mills/ntp/clock1b.html. If you modify your boot
process and scripts to include this command you can ensure that you
are perfectly in time whenever you boot your computer. You could also
run a cron job to update the time. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Finding_the_biggest_files&quot;&gt;&lt;/a&gt;Finding
the biggest files&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: Shell 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;A common problem with computers is when you have a number of large
files (such as audio/video clips) that you may want to get rid of.
You can find the biggest files in the current directory with: ( only
in current directory ) 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;ls -lSrh (the r causes the large files to be listed at the end, the h gives human readable output (MB and such))&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
You could also search for the biggest MP3/MPEGs: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;ls -lSrh *.mp*&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
You can also look for the largest directories with: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;du -kx | egrep -v &quot;\./.+/&quot; | sort -n&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
You can find the biggest files in your home directory, ( in the whole
directory structure ). 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;find ~ -type f -exec ls -s {} \; | sort -n&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
List only the top 10 biggest file. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;find . -type f -exec ls -s {} \; | sort -nr | head -10&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Nautilus_shortcuts&quot;&gt;&lt;/a&gt;Nautilus shortcuts&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: Nautilus 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Although most file managers these days are designed to be used
with the mouse, it&#39;s also useful to be able to use the keyboard
sometimes. Nautilus has a few keyboard shortcuts that can have you
flying through files: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Open a location - Ctrl+L 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Open Parent folder - Ctrl+Up 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Arrow keys navigate around current folder. 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;You can also customise the file icons with &#39;emblems&#39;. These are
little graphical overlays that can be applied to individual files or
groups. Open the Edit &amp;gt; Backgrounds and Emblems menu item, and
drag-and-drop the images you want. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Defrag_your_databases&quot;&gt;&lt;/a&gt;Defrag your
databases&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: MySQL 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Whenever you change the structure of a MySQL database, or remove a
lot of data from it, the files can become fragmented resulting in a
loss of performance, particularly when running queries. Just remember
any time you change the database to run the optimiser: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;mysqlcheck -o &lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
You may also find it worth your while to defragment your database
tables regularly if you are using VARCHAR fields: these
variable-length columns are particularly prone to fragmentation. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Quicker_emails&quot;&gt;&lt;/a&gt;Quicker emails&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: KMail 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Can&#39;t afford to waste three seconds locating your email client?
Can&#39;t be bothered finding the mouse under all those gently rotting
mountains of clutter on your desk? Whatever you are doing in KDE, you
are only a few keypresses away from sending a mail. Press Alt+F2 to
bring up the &#39;Run command&#39; dialog. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;

&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Press return and KMail will automatically fire up, ready for your
words of wisdom. You don&#39;t even need to fill in the entire email
address. This also works for Internet addresses: try typing
www.slashdot.org to launch Konqueror. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Parallelise_your_build&quot;&gt;&lt;/a&gt;Parallelise
your build&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: GCC 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;If you&#39;re running a multiprocessor system (SMP) with a moderate
amount of RAM, you can usually see significant benefits by performing
a parallel make when building code. Compared to doing serial builds
when running make (as is the default), a parallel build is a vast
improvement. To tell make to allow more than one child at a time
while building, use the -j switch: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;make -j4; make -j4 modules&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Save_battery_power&quot;&gt;&lt;/a&gt;Save battery power&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Intermediate 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: hdparm 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;You are probably familiar with using hdparm for tuning a hard
drive, but it can also save battery life on your laptop, or make life
quieter for you by spinning down drives. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;hdparm -y /dev/hdb
hdparm -Y /dev/hdb
hdparm -S 36 /dev/hdb&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
In order, these commands will: cause the drive to switch to Standby
mode, switch to Sleep mode, and finally set the Automatic spindown
timeout. This last includes a numeric variable, whose units are
blocks of 5 seconds (for example, a value of 12 would equal one
minute). 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Incidentally, this habit of specifying spindown time in blocks of
5 seconds should really be a contender for a special
user-friendliness award - there&#39;s probably some historical reason for
it, but we&#39;re stumped. Write in and tell us if you happen to know
where it came from! 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Wireless_speed_management&quot;&gt;&lt;/a&gt;Wireless
speed management&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Intermediate 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: iwconfig 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;The speed at which a piece of radio transmission/receiver
equipment can communicate with another depends on how much signal is
available. In order to maintain communications as the available
signal fades, the radios need to transmit data at a slower rate.
Normally, the radios attempt to work out the available signal on
their own and automatically select the fastest possible speed. In
fringe areas with a barely adequate signal, packets may be needlessly
lost while the radios continually renegotiate the link speed. If you
can&#39;t add more antenna gain, or reposition your equipment to achieve
a better enough signal, consider forcing your card to sync at a lower
rate. This will mean fewer retries, and can be substantially faster
than using a continually flip-flopping link. Each driver has its own
method for setting the link speed. In Linux, set the link speed with
iwconfig: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;iwconfig eth0 rate 2M&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
This forces the radio to always sync at 2Mbps, even if other speeds
are available. You can also set a particular speed as a ceiling, and
allow the card to automatically scale to any slower speed, but go no
faster. For example, you might use this on the example link above: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;iwconfig eth0 rate 5.5M auto&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Using the auto directive this way tells the driver to allow speeds up
to 5.5Mbps, and to run slower if necessary, but will never try to
sync at anything faster. To restore the card to full auto scaling,
just specify auto by itself: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;iwconfig eth0 rate auto&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Cards can generally reach much further at 1Mbps than they can at
11Mbps. There is a difference of 12dB between the 1Mbps and 11Mbps
ratings of the Orinoco card - that&#39;s four times the potential
distance just by dropping the data rate! 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Unclog_open_ports&quot;&gt;&lt;/a&gt;Unclog open ports&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Intermediate 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: netstat 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Generating a list of network ports that are in the Listen state on
a Linux server is simple with netstat: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;root@catlin:~# netstat -lnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name 
tcp 0 0 0.0.0.0:5280 0.0.0.0:* LISTEN 698/perl 
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 217/httpd 
tcp 0 0 10.42.3.2:53 0.0.0.0:* LISTEN 220/named 
tcp 0 0 10.42.4.6:53 0.0.0.0:* LISTEN 220/named 
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 220/named 
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 200/sshd 
udp 0 0 0.0.0.0:32768 0.0.0.0:* 220/named 
udp 0 0 10.42.3.2:53 0.0.0.0:* 220/named 
udp 0 0 10.42.4.6:53 0.0.0.0:* 220/named 
udp 0 0 127.0.0.1:53 0.0.0.0:* 220/named 
udp 0 0 0.0.0.0:67 0.0.0.0:* 222/dhcpd 
raw 0 0 0.0.0.0:1 0.0.0.0:* 7 222/dhcpd&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
That shows you that PID 698 is a Perl process that is bound to port
5280. If you&#39;re not root, the system won&#39;t disclose which programs
are running on which ports. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Faster_Hard_drives&quot;&gt;&lt;/a&gt;Faster Hard
drives&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Expert 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: hdparm 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;You may know that the hdparm tool can be used to speed test your
disk and change a few settings. It can also be used to optimise drive
performance, and turn on some features that may not be enabled by
default. Before we start though, be warned that changing drive
options can cause data corruption, so back up all your important data
first. Testing speed is done with: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;hdparm -Tt /dev/hda&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
You&#39;ll see something like: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;/dev/hda:
Timing buffer-cache reads:   128 MB in  1.64 seconds =78.05 MB/sec
Timing buffered disk reads:  64 MB in 18.56 seconds = 3.45MB/sec&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Now we can try speeding it up. To find out which options your drive
is currently set to use, just pass hdparm the device name: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;hdparm /dev/hda
 /dev/hda:
 multcount    =  16 (on)
 I/O support  =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  0 (off)
 keepsettings =  0 (off)
 readonly     =  0 (off)
 readahead    =  8 (on)
 geometry     = 40395/16/63, sectors = 40718160, start = 0&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
This is a fairly default setting. Most distros will opt for safe
options that will work with most hardware. To get more speed, you may
want to enable dma mode, and certainly adjust I/O support. Most
modern computers support mode 3, which is a 32-bit transfer mode that
can nearly double throughput. You might want to try 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;hdparm -c3 -d1/dev/hda&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Then rerun the speed check to see the difference. Check out the modes
your hardware will support, and the hdparm man pages for how to set
them. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Uptime_on_your_hands&quot;&gt;&lt;/a&gt;Uptime on your
hands&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Expert 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: Perl 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;In computing, wasted resources are resources that could be better
spent helping you. Why not run a process that updates the titlebar of
your terminal with the current load average in real-time, regardless
of what else you&#39;re running? 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Save this as a script called tl, and save it to your ~/bin
directory: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;#!/usr/bin/perl -w

use strict;
$|++;

my $host=`/bin/hostname`;
chomp $host;

while(1) {

open(LOAD,&quot;/proc/loadavg&quot;) || die &quot;Couldn&#39;t open /proc/loadavg: $!\n&quot;;

my @load=split(/ /,);
close(LOAD);
print &quot;\033]0;&quot;;
print &quot;$host: $load[0] $load[1] $load[2] at &quot;, scalar(localtime);
print &quot;\007&quot;;

sleep 2;
}&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
When you&#39;d like to have your titlebar replaced with the name, load
average, and current time of the machine you&#39;re logged into, just run
tl&amp;amp;. It will happily go on running in the background, even if
you&#39;re running an interactive program like Vim. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Grabbing_a_screenshot_without_X&quot;&gt;&lt;/a&gt;Grabbing
a screenshot without X&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: Shell 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;There are plenty of screen-capture tools, but a lot of them are
based on X. This leads to a problem when running an X application
would interfere with the application you wanted to grab - perhaps a
game or even a Linux installer. If you use the venerable ImageMagick
import command though, you can grab from an X session via the
console. Simply go to a virtual terminal (Ctrl+Alt+F1 for example)
and enter the following: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;chvt 7; sleep 2; import -display&amp;nbsp;:0.0 -window root sshot1.png; chvt 1;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
The chvt command changes the virtual terminal, and the sleep command
gives it a while to redraw the screen. The import command then
captures the whole display and saves it to a file before the final
chvt command sticks you back in the virtual terminal again. Make sure
you type the whole command on one line. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;This can even work on Linux installers, many of which leave a
console running in the background - just load up a floppy/CD with
import and the few libraries it requires for a first-rate
run-anywhere screen grabber. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Access_your_programs_remotely&quot;&gt;&lt;/a&gt;Access
your programs remotely&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: X 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;If you would like to lie in bed with your Linux laptop and access
your applications from your Windows machine, you can do this with
SSH. You first need to enable the following setting in
/etc/ssh/sshd_config: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;X11Forwarding yes&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
We can now run The GIMP on 192.168.0.2 with: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;ssh -X 192.168.0.2 gimp&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Making_man_pages_useful&quot;&gt;&lt;/a&gt;Making man pages useful&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: man 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;If you are looking for some help on a particular subject or
command, man pages are a good place to start. You normally access a
man page with man &lt;command&gt;&lt;/command&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;man -k login&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
When you access a man page, you can also use the forward slash key to
search for a particular word within the man page itself. Simply press
/ on your keyboard and then type in the search term. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Talk_to_your_doctor.21&quot;&gt;&lt;/a&gt;Talk to your
doctor!&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: Emacs 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;To say that Emacs is just a text editor is like saying that a
Triumph is just a motorcycle, or the World Cup is just some
four-yearly football event. True, but simplified juuuust a little
bit. An example? Open the editor, press the Esc key followed by X and
then enter in doctor: you will be engaged in a surreal conversation
by an imaginary and underskilled psychotherapist. And if you want to
waste your time in a better way 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Esc-X tetris&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
will transform your &#39;editor&#39; into the old favourite arcade game. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Does the madness stop there? No! Check out your distro&#39;s package
list to see what else they&#39;ve bundled for Emacs: here at LXF Towers
we&#39;ve got chess, Perl integration, IRC chat, French translation, HTML
conversion, a Java development environment, smart compilation, and
even something called a &quot;semantic bovinator&quot;. We really
haven&#39;t the first clue what that last one does, but we dare you to
try it out anyway! (Please read the disclaimer first!) 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Super_cow_powers&quot;&gt;&lt;/a&gt;Super cow powers&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: Debian 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;A strange but endearing hidden feature within the highly regarded
apt-get tool in Debian is its secret cow powers. Type the following
command to experience the wrath of the super cow powers: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;apt-get moo&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Some people really have too much time on their hands... 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Generating_package_relationship_diagrams&quot;&gt;&lt;/a&gt;
Generating package relationship diagrams&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: Debian 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;The most critical part of the Debian system is the ability to
install a package and have the dependencies satisfied automatically.
If you would like a graphical representation of the relationships
between these packages (this can be useful for seeing how the system
fits together), you can use the Graphviz package from Debian non-free
(apt-get install graphviz) and the following command: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;apt-cache dotty &amp;gt; debian.dot&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
The command generated the graph file which can then be loaded into
dotty: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;dotty debian.dot&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Unmount_busy_drives&quot;&gt;&lt;/a&gt;Unmount busy drives&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: bash 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;You are probably all too familiar with the situation - you are
trying to unmount a drive, but keep getting told by your system that
it&#39;s busy. But what application is tying it up? A quick one-liner
will tell you: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;lsof +D /mnt/windows&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
This will return the command and process ID of any tasks currently
accessing the /mnt/windows directory. You can then locate them, or
use the kill command to finish them off. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Text_file_conversion&quot;&gt;&lt;/a&gt;Text file
conversion&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: recode 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;recode is a small utility that will save you loads of effort when
using text files created on different platforms. The primary source
of discontent is line breaks. In some systems, these are denoted with
a line-feed character. In others, a carriage return is used. In still
more systems, both are used. The end result is that if you are
swapping text from one platform to another, you end up with too many
or too few line breaks, and lots of strange characters besides. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;However, the command parameters of recode are a little arcane, so
why not combine this hack with HACK 26 in this feature, and set up
some useful aliases: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;alias dos2unix=&#39;recode dos/CR-LF..l1&#39;
alias unix2win=&#39;recode l1..windows-1250&#39;
alias unix2dos=&#39;recode l1..dos/CR-LF&#39;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
There are plenty more options for recode - it can actually convert
between a whole range of character sets. Check out the man pages for
more information. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Listing_today.27s_files_only&quot;&gt;&lt;/a&gt;Listing
today&#39;s files only&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: Various 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;You are probably familiar with the problem. Sometime earlier in
the day, you created a text file, which now is urgently required.
However, you can&#39;t remember what ridiculous name you gave it, and
being a typical geek, your home folder is full of 836 different
files. How can you find it? Well, there are various ways, but this
little tip shows you the power of pipes and joining together two
powerful shell commands: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;ls -al --time-style=+%D | grep `date +%D`&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
The parameters to the ls command here cause the datestamp to be
output in a particular format. The cunning bit is that the output is
then passed to grep. The grep parameter is itself a command (executed
because of the backticks), which substitutes the current date into
the string to be matched. You could easily modify it to search
specifically for other dates, times, filesizes or whatever. Combine
it with HACK 26 to save typing! 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Avoid_common_mistypes_and_long_commands&quot;&gt;&lt;/a&gt;
Avoid common mistypes and long commands&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: Shell 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;The alias command is useful for setting up shortcuts for long
commands, or even more clever things. From HACK 25, we could make a
new command, lsnew, by doing this: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;alias lsnew=&quot; ls -al --time-style=+%D | grep `date +%D` &quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
But there are other uses of alias. For example, common mistyping
mistakes. How many times have you accidentally left out the space
when changing to the parent directory? Worry no more! 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;alias cd..=&quot;cd ..&quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Alternatively, how about rewriting some existing commands? 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;alias ls=&quot;ls -al&quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
saves a few keypresses if, like us, you always want the complete
list. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;To have these shortcuts enabled for every session, just add the
alias commands to your user .bashrc file in your home directory. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Alter_Mozilla.27s_secret_settings&quot;&gt;&lt;/a&gt;Alter
Mozilla&#39;s secret settings&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: Mozilla 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;If you find that you would like to change how Mozilla works but
the preferences offer nothing by way of clickable options that can
help you, there is a special mode that you can enable in Mozilla so
that you can change anything. To access it, type this into the
address bar: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;about:config&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
You can then change each setting that you are interested in by
changing the Value field in the table. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Other interesting modes include general information (about:),
details about plugins (about:plugins), credits information
(about:credits) and some general wisdom (about:mozilla). 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;A_backdrop_of_stars&quot;&gt;&lt;/a&gt;A backdrop of
stars&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: KStars 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;You may already have played with KStars, as it was included with
the astronomy software that featured in LXF50&#39;s Roundup; but how
about creating a KStars backdrop image that&#39;s updated every time you
start up? 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;KStars can be run with the --dump switch, which dumps out an image
from your startup settings, but doesn&#39;t load the GUI at all. You can
create a script to run this and generate a desktop image, which will
change every day (or you can just use this method to generate
images). 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Run KStars like this: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;kstars --dump --width 1024 --height 768 --filename = ~/kstarsback.png&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
You can add this to a script in your ~/.kde/Autostart folder to be
run at startup. Find the file in Konqueror, drag it to the desktop
and select &#39;Set as wallpaper&#39; to use it as a randomly generated
backdrop. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Open_an_SVG_directly&quot;&gt;&lt;/a&gt;Open an SVG
directly&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: Inkscape 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;You can run Inkscape from a shell and immediately edit a graphic
directly from a URL. Just type: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;inkscape &lt;a href=&quot;http://www.somehost.com/graphic.svg&quot;&gt;http://www.somehost.com/graphic.svg&lt;/a&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Remember to save it as something else though! 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Editing_without_an_editor&quot;&gt;&lt;/a&gt;Editing
without an editor&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Intermediate 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: Various 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Very long files are often hard to manipulate with a text editor.
If you need to do it regularly, chances are you&#39;ll find it much
faster to use some handy command-line tools instead, like in the
following examples. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;To print columns eg 1 and 3 from a file file1 into file2, we can
use awk: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;awk &#39;{print $1, $3}&#39; file1 &amp;gt; file2&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
To output only characters from column 8 to column 15 of file1, we can
use cut: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;cut -c 8-15 file1 &amp;gt; file2&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
To replace the word word1 with the word word2 in the file file1, we
can use the sed command: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;sed &quot;s/word1/word2/g&quot; file1 &amp;gt; file2&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
This is often a quicker way to get results than even opening a text
editor. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Backup_selected_files_only&quot;&gt;&lt;/a&gt;Backup
selected files only&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Intermediate 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: tar 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Want to use tar to backup only certain files in a directory? Then
you&#39;ll want to use the -T flag as follows. First, create a file with
the file you want to backup: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;cat &amp;gt;&amp;gt; /etc/backup.conf
# /etc/passwd
# /etc/shadow
# /etc/yp.conf
# /etc/sysctl.conf
EOF&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Then run tar with the -T flag pointing to the file just created: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;tar -cjf bck-etc-`date +%Y-%m-%d`.tar.bz2 -T /etc/backup.conf&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Now you have your backup. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Merging_columns_in_files&quot;&gt;&lt;/a&gt;Merging
columns in files&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Intermediate 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: bash 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;While splitting columns in files is easy enough, merging them can
be complicated. Below is a simple shell script that does the job: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;#!/bin/sh
length=`wc -l $1 | awk &#39;{print $1}&#39;`
count=1
[ -f $3 ] &amp;amp;&amp;amp; echo &quot;Optionally removing $3&quot; &amp;amp;&amp;amp; rm -i $3
while [ &quot;$count&quot; -le &quot;$length&quot; ]&amp;nbsp;; do
      a=`head -$count $1 | tail -1`
      b=`head -$count $2 | tail -1`
      echo &quot;$a      $b&quot; &amp;gt;&amp;gt; $3
      count=`expr $count + 1`
done&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Give to this script the name merge.sh and make it executable with: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;chmod u+x merge.sh&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Now, if you want to merge the columns of file1 and file2 into file3,
it&#39;s just matter of executing 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;/path/to/merge.sh file1 file2 file3&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
where /path/to has to be replaced with the location of merge.sh in
your filesystem. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Case_sensitivity&quot;&gt;&lt;/a&gt;Case sensitivity&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Intermediate 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: bash 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Despite the case of a word not making any difference to other
operating systems, in Linux &quot;Command&quot; and &quot;command&quot;
are different things. This can cause trouble when moving files from
Windows to Linux. tr is a little shell utility that can be used to
change the case of a bunch of files. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;#!/bin/sh
for i in `ls -1`; do
        file1=`echo $i | tr [A-Z] [a-z] `
        mv $i $file1 2&amp;gt;/dev/null
done&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
By executing it, FILE1 and fiLe2 will be renamed respectively file1
and file2. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Macros_in_Emacs&quot;&gt;&lt;/a&gt;Macros in Emacs&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Intermediate 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: Emacs 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;When editing files, you will often find that the tasks are tedious
and repetitive, as LXF&#39;s Production Editor knows only too well! To
spare your time, you can record a macro. In Emacs, you will have to
go through the following steps: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ol&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Press Ctrl+X to start recording. 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Insert all the keystrokes and
	commands that you want 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Press Ctrl+X to stop when you&#39;re done. 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Now, you can execute that with 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Ctrl -u  Ctrl -x e&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
where  is the number of times you want to execute the
macro. If you enter a value of 0, the macro will be executed until
the end of the file is reached. Ctrl -x e is equivalent to Ctrl -u 1
Ctrl-x e. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Replacing_same_text_in_multiple_files&quot;&gt;&lt;/a&gt;
Replacing same text in multiple files&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Intermediate 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: find/Perl 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;If you have text you want to replace in multiple locations, there
are several ways to do this. To replace the text Windows with Linux
in all files in current directory called test[something] you can run
this: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;perl -i -pe &#39;s/Windows/Linux/;&#39; test*&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
To replace the text Windows with Linux in all text files in current
directory and down you can run this: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;find . -name &#39;*.txt&#39; -print | xargs perl -pi -e&#39;s/Windows/Linux/ig&#39; *.txt&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Or if you prefer this will also work, but only on regular files: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;find -type f -name &#39;*.txt&#39; -print0 | xargs --null perl -pi -e &#39;s/Windows/Linux/&#39;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Saves a lot of time and has a high guru rating! 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Simple_spam_killing&quot;&gt;&lt;/a&gt;Simple spam
killing&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Intermediate 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: KMail 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Spam, or unsolicited bulk email, is such a widespread problem that
almost everyone has some sort of spam protection now, out of
necessity. Most ISPs include spam filtering, but it isn&#39;t set to be
too aggressive, and most often simply labels the spam, but lets it
through (ISPs don&#39;t want to be blamed for losing your mails). The
result is that, while you may have anti-spam stuff set up on the
client-side, you can make its job easier by writing a few filters to
remove the spam that&#39;s already labelled as such. The label is
included as a header. In KMail, you can just create a quick filter to
bin your mail, or direct it to a junk folder. The exact header used
will depend on the software your ISP is using, but it&#39;s usually
something like X-Spam-Flag = YES for systems like SpamAssassin.
Simply create a filter in KMail, choose Match Any of the Following
and type in the header details and the action you require. Apply the
filter to incoming mail, and you need never be troubled by about half
the volume of your spam ever again. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Read_OOo_docs_without_OOo&quot;&gt;&lt;/a&gt;Read OOo
docs without OOo&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Intermediate 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: &lt;a href=&quot;http://www.linuxformat.com/wiki/index.php/OpenOffice.org&quot;&gt;OpenOffice.org&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Have you ever been left with an OOo document, but no
OpenOffice.org in which to read it? Thought you saved it out as plain
text (.txt), but used the StarOffice .sxw format instead? The text
can be rescued. Firstly, the sxw file is a zip archive, so unzip it: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;unzip myfile.sxw&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
The file you want is called &#39;content.xml&#39;. Unfortunately, it&#39;s so
full of xml tags it&#39;s fairly illegible, so filter them out with some
Perl magic: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;cat content.xml | perl -p -e  &quot;s/&amp;lt;[^&amp;gt;]*&amp;gt;/ /g;s/\n/ /g;s/ +/ /;&quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
It may have lost lots of formatting, but at least it is now readable.
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Find_and_execute&quot;&gt;&lt;/a&gt;Find and execute&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Intermediate 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: find 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;The find command is not only useful for finding files, but is also
useful for processing the ones it finds too. Here is a quick example.
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Suppose we have a lot of tarballs, and we want to find them all: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;find . -name &#39;*.gz&#39;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
will locate all the gzip archives in the current path. But suppose we
want to check they are valid archives? The gunzip -vt option will do
this for us, but we can cunningly combine both operations, using
xargs: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;find . -name &#39;*.gz&#39; | xargs gunzip -vt&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
In case the files contain spaces, these commands won&#39;t work. The
following variant takes care about this case: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;find . -name &#39;*.gz&#39; -print0 | xargs -0 gunzip -vt&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Use_the_correct_whois_server&quot;&gt;&lt;/a&gt;Use the correct whois
server&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Intermediate 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: whois 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;The whois command is very useful for tracking down Internet
miscreants and the ISPs that are supplying them with service.
Unfortunately, there are many whois servers, and if you are querying
against a domain name, you often have to use one which is specific to
the TLD they are using. However, there are some whois proxies that
will automatically forward your query on to the correct server. One
of these is available at &lt;a href=&quot;http://whois.geektools.com/&quot;&gt;http://whois.geektools.com&lt;/a&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;whois -h whois.geektools.com  plop.info&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Where_did_that_drive_mount.3F&quot;&gt;&lt;/a&gt;Where did that drive
mount?&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Intermediate 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: bash 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;A common problem with people who have lots of mountable devices
(USB drives, flash memory cards, USB key drives) is working out where
that drive you just plugged in has ended up? 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Practically all devices that invoke a driver - such as usb-storage
- will dump some useful information in the logs. Try 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;dmesg | grep SCSI&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
This will filter out recognised drive specs from the dmesg output.
You&#39;ll probably turn up some text like: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;SCSI device sda: 125952 512-byte hdwr sectors (64 MB)&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
So your device is at sda. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Autorun_USB_devices&quot;&gt;&lt;/a&gt;Autorun USB
devices&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Expert 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: hotplug scripts 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Want to run a specific application whenever a particular device is
added? The USB hotplug daemon can help you! This service is notified
when USB devices are added to the system. For devices that require
kernel drivers, the hotplug daemon will call a script by the same
name in /etc/hotplug/usb/, for example, a script called usb-storage
exists there. You can simply add your own commands to the end of this
script (or better still, tag a line at the end of it to execute a
script elsewhere). Then you can play a sound, autosync files, search
for pictures or whatever. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;For devices that don&#39;t rely on kernel drivers, a lookup table is
used matching the USB product and manufacturer ID. Many distros
already set this up to do something, but you can customise these
scripts pretty easily. See &lt;a href=&quot;http://jphoto.sourceforge.net/?selected=sync&quot;&gt;http://jphoto.sourceforge.net/?selected=sync&lt;/a&gt;
for an example of what can be done. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Rename_and_resize_images&quot;&gt;&lt;/a&gt;Rename and
resize images&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Expert 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: bash 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Fond of your new camera but can&#39;t put up with the terrible names?
Do you want also to prepare them for publishing on the web? No
problem, a simple bash script is what you need: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;#!/bin/sh
counter=1
root=mypict
resolution=400x300
for i in `ls -1 $1/*.jpg`; do
        echo &quot;Now working on $i&quot;
        convert -resize $resolution $i ${root}_${counter}.jpg
        counter=`expr $counter + 1`
done&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Save the script in a file called picturename.sh and make it
executable with 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;chmod u+x picturename.sh&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
and store it somewhere in your path. Now, if you have a bunch of .jpg
files in the directory /path/to/pictdir, all you have to do is to
execute 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;picturename.sh /path/to/pictdir&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
and in the current directory you&#39;ll find mypict_1.jpg, mypict_2.jpg
etc, which are the resized versions of your original ones. You can
change the script according to your needs. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Secure_logout&quot;&gt;&lt;/a&gt;Secure logout&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: bash 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;When you are using a console on a shared machine, or indeed, just
on your own desktop, you may find that when you logout, the screen
still shows a trace of who was logged in and what you were doing. A
lot of distros will clear the screen, but some don&#39;t. You can solve
this by editing your ~/.bash_logout file and adding the command: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;clear&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
You can add any other useful commands here too. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Transferring_files_without_ftp_or_scp&quot;&gt;&lt;/a&gt;
Transferring files without ftp or scp&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: netcat 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Need to transfer a directory to another server but do not have FTP
or SCP access? Well this little trick will help out using the netcat
utility. On the destination server run: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;nc -l -p 1234 | uncompress -c | tar xvfp -&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
And on the sending server run: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;tar cfp - /some/dir | compress -c | nc -w 3 [destination] 1234&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Now you can transfer directories without FTP and without needing root
access. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Backing_up_a_Debian_package_list&quot;&gt;&lt;/a&gt;Backing
up a Debian package list&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: Debian 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;If you are running Debian and have lost track of which packages
you are running, it could be useful to get a backup of your currently
installed packages. You can get a list by running: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;dpkg --get-selections &amp;gt; debianlist.txt&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
This will put the entire list in debianlist.txt. You could then
install the same packages on a different computer with: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;dpkg --set-selections &amp;lt; debianlist.txt&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
You should bear in mind that you would also need to copy over
configuration files from /etc when copying your system to a new
computer. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;To actually install the selections, use: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;apt-get -u dselect-upgrade. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Hardening_ssh&quot;&gt;&lt;/a&gt;Hardening ssh&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: ssh 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Although SSH is a pretty secure way to connect to your server,
there are two simple changes you can make that will boost its
security even further. First, you almost certainly don&#39;t want people
logging in directly as root - instead, they should logon as a normal
user, then use the su command to switch over. You can change this
simply in the /etc/ssh/ssh_config file by adding the line: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;PermitRootLogin  no&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Now the only way to get root privilges is through su, which means
crackers now need to break two passwords to get full access. While
you are editing that file, find the line which says: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Protocol 2, 1&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
And change it to: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Protocol 2&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
This removes the option to fallback on the original SSH protocol, now
considered very vulnerable. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Stop_replying_to_pings&quot;&gt;&lt;/a&gt;Stop
replying to pings&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: sysctl 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;While ping is a very useful command for discovering network
topology, the disadvantage is that it does just that, and makes it
easier for hackers on the network to target live servers. But you can
tell Linux to ignore all pings - the server simply won&#39;t respond.
There are a number of ways to achieve this, but the best is to use
sysctl. To turn off ping replies: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;sysctl -w net.ipv4.icmp_echo_ignore_all=1&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
To turn it back on, again use: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;sysctl -w net.ipv4.icmp_echo_ignore_all=0&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
If turning off ping is too severe for you, take a look at the next
hack. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Slow_down_ping_rates&quot;&gt;&lt;/a&gt;Slow down ping
rates&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: sysctl 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;You may want to keep the ability to reply to pings, but protect
yourself from a form of attack known as a &#39;ping flood&#39;. So how can
you manage such a feat? The easiest way is to slow down the rate at
which the server replies to pings. They are still valid, but won&#39;t
overload the server: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;sysctl -w net.ipv4.icmp_echoreply_rate=10&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
This slows the rate at which replies are sent to a single address. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Clean_up_KDE_on_logout&quot;&gt;&lt;/a&gt;Clean up KDE
on logout&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Easy 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: bash 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;On Windows there are plenty of programs that do stuff like clean
out your web cache, remove temporary files and all sorts of other
stuff when you logout. Wouldn&#39;t it be cool to do this on Linux too?
With KDE, you don&#39;t need to even install any new software, as the
startkde script will automatically run scripts you put in special
places. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;First, you need to create a directory called shutdown in your .kde
directory: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;mkdir /home/username/.kde/shutdown&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Now create a script to do any stuff you like on shutdown. Here is an
example: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;#!/bin/bash
#clear up temp folder
rm -rf ~/tmp/*
#clear out caches
rm -rf ~/.ee/minis/*
rm -rf ~/.kde/share/cache/http/*
# delete konqueror form completions
rm ~/.kde/share/apps/khtml/formcompletions&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Now make sure you set the correct permissions: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;chmod ug+x ~/.kde/shutdown/cleanup.sh&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
(or whatever you called it). As well as cleaning up sensitive files,
you can also have global shutdown scripts for all users, by placing
the script in your default KDE folder, in a subfolder called
shutdown. To find out which is your default KDE directory, try: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;kde-config --path exe&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Password-less_ssh&quot;&gt;&lt;/a&gt;Password-less ssh&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Intermediate 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: ssh 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Tired of typing your password every time you log into the server?
ssh also supports keys, so you&#39;ll only have to type in your password
when you log in to the desktop. Generate a keypair on your desktop
machine: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;ssh-keygen -t dsa -C your.email@ddress&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Enter a passphrase for your key. This puts the secret key in
~/.ssh/id_dsa and the public key in ~/.ssh/id_dsa.pub. Now see
whether you have an ssh-agent running at present: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;echo $SSH_AGENT_PID&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Most window managers will run it automatically if it&#39;s installed. If
not, start one up: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;eval $(ssh-agent)&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Now, tell the agent about your key: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;ssh-add&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
and enter your passphrase. You&#39;ll need to do this each time you log
in; if you&#39;re using X, try adding 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;SSH_ASKPASS=ssh-askpass ssh-add&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
to your .xsession file. (You may need to install ssh-askpass.) Now
for each server you log into, create the directory ~/.ssh and copy
the file ~/.ssh/id_dsa.pub into it as ~/.ssh/authorized_keys . If you
started the ssh-agent by hand, kill it with 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;ssh-agent -k&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
when you log out. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Using_rsync_over_ssh&quot;&gt;&lt;/a&gt;Using rsync
over ssh&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Intermediate 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: Shell 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Keep large directory structures in sync quickly with rsync. While
tar over SSH is ideal for making remote copies of parts of a
filesystem, rsync is even better suited for keeping the filesystem in
sync between two machines. To run an rsync over SSH, pass it the -e
switch, like this: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;rsync -ave ssh greendome:/home/ftp/pub/ /home/ftp/pub/&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Note the trailing / on the file spec from the source side (on
greendome.) On the source spec, a trailing / tells rsync to copy the
contents of the directory, but not the directory itself. To include
the directory as the top level of what&#39;s being copied, leave off the
/: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;rsync -ave ssh bcnu:/home/six .&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
This will keep a copy of the ~/six/ directory on village in sync with
whatever is present on bcnu:/home/six/. By default, rsync will only
copy files and directories, but not remove them from the destination
copy when they are removed from the source. To keep the copies exact,
include the --delete flag: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;rsync -ave ssh  --delete greendome:~one/reports .&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Now when old reports are removed from ~one/reports/ on greendome,
they&#39;re also removed from ~six/public_html/reports/ on the synced
version, every time this command is run. If you run a command like
this in cron, leave off the v switch. This will keep the output quiet
(unless rsync has a problem running, in which case you&#39;ll receive an
email with the error output). Using SSH as your transport for rsync
traffic has the advantage of encrypting the data over the network and
also takes advantage of any trust relationships you already have
established using SSH client keys. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Asset_scanning&quot;&gt;&lt;/a&gt;Asset scanning&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Intermediate 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: nmap 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Normally, when people think of using nmap, they assume it&#39;s used
to conduct some sort of nefarious network reconnaissance in
preparation for an attack. But as with all powerful tools, nmap can
be made to wear a white hat, as it&#39;s useful for far more than
breaking into networks. For example, simple TCP connect scans can be
conducted without needing root privileges: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;nmap rigel&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
nmap can also scan ranges of IP addresses by specifying the range or
using CIDR notation: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;nmap 192.168.0.1-254
nmap 192.168.0.0/24&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
nmap can provide much more information if it is run as root. When run
as root, it can use special packets to determine the operating system
of the remote machine by using the -O flag. Additionally, you can do
half-open TCP scanning by using the -sS flag. When doing a half-open
scan, nmap will send a SYN packet to the remote host and wait to
receive the ACK from it; if it receives an ACK, it knows that the
port is open. This is different from a normal three-way TCP
handshake, where the client will send a SYN packet and then send an
ACK back to the server once it has received the initial server ACK.
Attackers typically use this option to avoid having their scans
logged on the remote machine. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;nmap -sS -O rigel
Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Interesting ports on rigel.nnc (192.168.0.61):
(The 1578 ports scanned but not shown below are in state: filtered)
Port       State       Service
7/tcp      open     echo 
9/tcp      open     discard 
13/tcp     open     daytime 
19/tcp     open     chargen 
21/tcp     open     ftp 
22/tcp     open     ssh 
23/tcp     open     telnet 
25/tcp     open     smtp 
37/tcp     open     time 
79/tcp     open     finger 
111/tcp    open     sunrpc 
512/tcp    open     exec 
513/tcp    open     login 
514/tcp    open     shell 
587/tcp    open     submission 
7100/tcp   open     font-service 
32771/tcp  open     sometimes-rpc5 
32772/tcp  open     sometimes-rpc7 
32773/tcp  open     sometimes-rpc9 
32774/tcp  open     sometimes-rpc11 
32777/tcp  open     sometimes-rpc17 
Remote operating system guess: Solaris 9 Beta through Release on SPARC
Uptime 44.051 days (since Sat Nov  1 16:41:50 2003)
Nmap run completed -- 1 IP address (1 host up) scanned in 166 seconds&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
With OS detection enabled, nmap has confirmed that the OS is Solaris,
but now you also know that it&#39;s probably Version 9 running on a SPARC
processor. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;One powerful feature that can be used to help keep track of your
network is nmap&#39;s XML output capabilities. This is activated by using
the -oX command-line switch, like this: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;nmap -sS -O -oX scandata.xml rigel&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
This is especially useful when scanning a range of IP addresses or
your whole network, because you can put all the information gathered
from the scan into a single XML file that can be parsed and inserted
into a database. Here&#39;s what an XML entry for an open port looks
like: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;


&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
nmap is a powerful tool. By using its XML output capabilities, a
little bit of scripting, and a database, you can create an even more
powerful tool that can monitor your network for unauthorized services
and machines. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Backup_your_bootsector&quot;&gt;&lt;/a&gt;Backup your
bootsector&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty Expert 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application Shell 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Messing with bootloaders, dual-booting and various other scary
processes can leave you with a messed up bootsector. Why not create a
backup of it while you can: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;dd if=/dev/hda of=bootsector.img bs=512 count=1&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Obviously you should change the device to reflect your boot drive (it
may be sda for SCSI). Also, be very careful not to get things the
wrong way around - you can easily damage your drive! To restore use: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;dd if=bootsector.img of=/dev/hda &lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Protect_log_files&quot;&gt;&lt;/a&gt;Protect log files&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Expert 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: Various 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;During an intrusion, an attacker will more than likely leave
telltale signs of his actions in various system logs: a valuable
audit trail that should be protected. Without reliable logs, it can
be very difficult to figure out how the attacker got in, or where the
attack came from. This info is crucial in analysing the incident and
then responding to it by contacting the appropriate parties involved.
But, if the break-in is successful, what&#39;s to stop him from removing
the traces of his misbehaviour? 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;This is where file attributes come in to save the day (or at least
make it a little better). Both Linux and the BSDs have the ability to
assign extra attributes to files and directories. This is different
from the standard Unix permissions scheme in that the attributes set
on a file apply universally to all users of the system, and they
affect file accesses at a much deeper level than file permissions or
ACLs. In Linux, you can see and modify the attributes that are set
for a given file by using the lsattr and chattr commands,
respectively. At the time of this writing, file attributes in Linux
are available only when using the ext2 and ext3 filesystems. There
are also kernel patches available for attribute support in XFS and
ReiserFS. One useful attribute for protecting log files is
append-only. When this attribute is set, the file cannot be deleted,
and writes are only allowed to append to the end of the file. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;To set the append-only flag under Linux, run this command: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;chattr +a  filename&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
See how the +a attribute works: create a file and set its append-only
attribute: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;touch /var/log/logfile
echo &quot;append-only not set&quot; &amp;gt; /var/log/logfile
chattr +a /var/log/logfile
echo &quot;append-only set&quot; &amp;gt; /var/log/logfile
bash: /var/log/logfile: Operation not permitted&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
The second write attempt failed, since it would overwrite the file.
However, appending to the end of the file is still permitted: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;echo &quot;appending to file&quot; &amp;gt;&amp;gt; /var/log/logfile
cat /var/log/logfile
append-only not set
appending to file&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Obviously, an intruder who has gained root privileges could realise
that file attributes are being used and just remove the append-only
flag from our logs by running chattr -a. To prevent this, we need to
disable the ability to remove the append-only attribute. To
accomplish this under Linux, use its capabilities mechanism. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;The Linux capabilities model divides up the privileges given to
the all-powerful root account and allows you to selectively disable
them. In order to prevent a user from removing the append-only
attribute from a file, we need to remove the CAP_LINUX_IMMUTABLE
capability. When present in the running system, this capability
allows the append-only attribute to be modified. To modify the set of
capabilities available to the system, we will use a simple utility
called lcap (&lt;a href=&quot;http://packetstormsecurity.org/linux/admin/lcap-0.0.3.tar.bz2&quot;&gt;http://packetstormsecurity.org/linux/admin/lcap-0.0.3.tar.bz2&lt;/a&gt;).
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;To unpack and compile the tool, run this command: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;tar xvfj lcap-0.0.3.tar.bz2 &amp;amp;&amp;amp; cd lcap-0.0.3 &amp;amp;&amp;amp; make&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Then, to disallow modification of the append-only flag, run: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;./lcap CAP_LINUX_IMMUTABLE
./lcap CAP_SYS_RAWIO&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
The first command removes the ability to change the append-only flag,
and the second removes the ability to do raw I/O. This is needed so
that the protected files cannot be modified by accessing the block
device they reside on. It also prevents access to /dev/mem and
/dev/kmem, which would provide a loophole for an intruder to
reinstate the CAP_LINUX_IMMUTABLE capability. To remove these
capabilities at boot, add the previous two commands to your system
startup scripts (eg /etc/rc.local). You should ensure that
capabilities are removed late in the boot order, to prevent problems
with other startup scripts. Once lcap has removed kernel
capabilities, they can be reinstated only by rebooting the system. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Before doing this, you should be aware that adding append-only
flags to your log files will most likely cause log rotation scripts
to fail. However, doing this will greatly enhance the security of
your audit trail, which will prove invaluable in the event of an
incident. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Automatically_encrypted_connections&quot;&gt;&lt;/a&gt;
Automatically encrypted connections&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Expert 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: FreeS/WAN 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;One particularly cool feature supported by FreeS/WAN is
opportunistic encryption with other hosts running FreeS/WAN. This
allows FreeS/WAN to transparently encrypt traffic between all hosts
that also support opportunistic encryption. To do this, each host
must have a public key generated to use with FreeS/WAN. This key can
then be stored in a DNS TXT record for that host. When a host that is
set up for opportunistic encryption wishes to initiate an encrypted
connection with another host, it will look up the host&#39;s public key
through DNS and use it to initiate the connection. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;To begin, you&#39;ll need to generate a key for each host that you
want to use this feature with. You can do that by running the
following command: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;ipsec newhostkey --output /tmp/`hostname`.key&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Now you&#39;ll need to add the contents of the file that was created by
that command to /etc/ipsec.secrets: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;cat /tmp/`hostname`.key &amp;gt;&amp;gt; /etc/ipsec.secrets&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Next, you&#39;ll need to generate a TXT record to put into your DNS zone.
You can do this by running a command similar to this one: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;ipsec showhostkey --txt @colossus.nnc&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Now add this record to your zone and reload it. You can verify that
DNS is working correctly by running this command: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;ipsec verify
Checking your system to see if IPsec got installed and started correctly
Version check and ipsec on-path  [OK]
Checking for KLIPS support in kernel   [OK]
Checking for RSA private key (/etc/ipsec.secrets)   [OK]
Checking that pluto is running   [OK]
DNS checks. 
Looking for TXT in forward map: colossus   [OK]
Does the machine have at least one non-private address   [OK]&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Now just restart FreeS/WAN - you should now be able to connect to any
other host that supports opportunistic encryption. But what if other
hosts want to connect to you? To allow this, you&#39;ll need to create a
TXT record for your machine in your reverse DNS zone. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;You can generate the record by running a command similar to this: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;ipsec showhostkey --txt 192.168.0.64&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Add this record to the reverse zone for your subnet, and other
machines will be able to initiate opportunistic encryption with your
machine. With opportunistic encryption in use, all traffic between
the hosts will be automatically encrypted, protecting all services
simultaneously. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Eliminate suid binaries&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Intermediate 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: find 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;If your server has more shell users than yourself, you should
regularly audit the setuid and setgid binaries on your system.
Chances are you&#39;ll be surprised at just how many you&#39;ll find. Here&#39;s
one command for finding all of the files with a setuid or setgid bit
set: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;find / -perm +6000 -type f -exec ls -ld {} \; &amp;gt; setuid.txt &amp;amp;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
This will create a file called setuid.txt that contains the details
of all of the matching files present on your system. To remove the s
bits of any tools that you don&#39;t use, type: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;chmod a-s program&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Mac_filtering_Host_AP&quot;&gt;&lt;/a&gt;Mac filtering Host AP&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Expert 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: iwpriv 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;While you can certainly perform MAC filtering at the link layer
using iptables or ebtables, it is far safer to let Host AP do it for
you. This not only blocks traffic that is destined for your network,
but also prevents miscreants from even associating with your station.
This helps to preclude the possibility that someone could still cause
trouble for your other associated wireless clients, even if they
don&#39;t have further network access. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;When using MAC filtering, most people make a list of wireless
devices that they wish to allow, and then deny all others. This is
done using the iwpriv command. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;iwpriv wlan0 addmac 00:30:65:23:17:05
iwpriv wlan0 addmac 00:40:96:aa:99:fd
  ...
iwpriv wlan0 maccmd 1
iwpriv wlan0 maccmd 4&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
The addmac directive adds a MAC address to the internal table. You
can add as many MAC addresses as you like to the table by issuing
more addmac commands. You then need to tell Host AP what to do with
the table you&#39;ve built. The maccmd 1 command tells Host AP to use the
table as an &quot;allowed&quot; list, and to deny all other MAC
addresses from associating. Finally, the maccmd 4 command boots off
all associated clients, forcing them to reassociate. This happens
automatically for clients listed in the table, but everyone else
attempting to associate will be denied. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Sometimes, you only need to ban a troublemaker or two, rather than
set an explicit policy of permitted devices. If you need to ban a
couple of specific MAC address but allow all others, try this: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;iwpriv wlan0 addmac 00:30:65:fa:ca:de
iwpriv wlan0 maccmd 2
iwpriv wlan0 kickmac 00:30:65:fa:ca:de&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
As before, you can use addmac as many times as you like. The maccmd 2
command sets the policy to &quot;deny,&quot; and kickmac boots the
specified MAC immediately, if it happens to be associated. This is
probably nicer than booting everybody and making them reassociate
just to ban one troublemaker. Incidentally, if you&#39;d like to remove
MAC filtering altogether, try maccmd 0. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;If you make a mistake typing in a MAC address, you can use the
delmac command just as you would addmac, and it (predictably) deletes
the given MAC address from the table. Should you ever need to flush
the current MAC table entirely but keep the current policy, use this
command: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;iwpriv wlan0 maccmd 3&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Finally, you can view the running MAC table by using /proc: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;cat /proc/net/hostap/wlan0/ap_control &lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
The iwpriv program manipulates the running Host AP driver, but
doesn&#39;t preserve settings across reboots. Once you are happy with the
contents of your MAC filtering table, be sure to put the relevant
commands in an rc script to run at boot time. 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Note that even unassociated clients can still listen to network
traffic, so MAC filtering actually does very little to prevent
eavesdropping. To combat passive listening techniques, you will need
to encrypt your data.&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;h2 align=&quot;left&quot; class=&quot;western&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; name=&quot;Check_processes_not_run_by_you&quot;&gt;&lt;/a&gt;Check
processes not run by you&lt;/span&gt;&lt;/h2&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;div style=&quot;margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Difficulty: Expert 
	&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000033;&quot;&gt;Application: bash 
	&lt;/span&gt;&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Imagine the scene - you read our list of Linux Format Awards
nominees this month, saw Crack Attack! on there, and took it upon
yourself to give it a (very) thorough testing before casting your
vote in its favour. Sadly, to your shock, the game drags to a halt
just as you&#39;re about to beat your uppity subordinate - what could be
happening to make your machine so slow? It must be some of those
other users, stealing your precious CPU time with their scientific
experiments, webservers or other weird, geeky things! 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;OK, let&#39;s list all the processes on the box not being run by you! 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;ps aux | grep -v `whoami`&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
Or, to be a little more clever, why not just list the top ten
time-wasters: 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;pre class=&quot;western&quot; style=&quot;margin-bottom: 0.2in;&quot;&gt;&lt;span style=&quot;color: #000033;&quot;&gt;ps aux  --sort=-%cpu | grep -m 11 -v `whoami` &lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;
It is probably best to run this as root, as this will filter out most
of the vital background processes. Now that you have the information,
you could just kill their processes, but much more dastardly is to
run xeyes on their desktop. Repeatedly! 
&lt;/span&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;color: #000033;&quot;&gt;Courtesy: linuxformat&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
                                                                                                &lt;td valign=&quot;top&quot; width=&quot;2%&quot;&gt;&amp;nbsp;&lt;/td&gt;
                                                                                                &lt;td valign=&quot;top&quot; width=&quot;23%&quot;&gt;
                                                                                                    
                                                                                                &lt;/td&gt;
                                                                                            &lt;/tr&gt;
&lt;tr&gt;
                                                                                                &lt;td class=&quot;font_sml&quot;&gt;
                                                                                                    &amp;nbsp; 
                    &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/143339371660555549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/143339371660555549' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/143339371660555549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/143339371660555549'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2014/04/58-cool-linux-hacks.html' title='58 Cool Linux Hacks!'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-5819737258252448831</id><published>2014-04-30T08:52:00.000-07:00</published><updated>2014-04-30T09:45:27.316-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><title type='text'>Here Are 15 Things You Should Do After Installing ubuntu 14.04 Trusty Tahr</title><content type='html'>&lt;span style=&quot;color: black; font-family: verdana; font-size: x-small;&quot;&gt;&lt;b&gt;1.Update your system&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Here&#39;s how you can do that:&lt;br /&gt;&lt;br /&gt;$ sudo apt-get update&lt;br /&gt;&lt;br /&gt;$ sudo apt-get upgrade&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2.Consider installing Aptitude, Synaptic and Gdebi&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Here&#39;s how you can do that:&lt;br /&gt;&lt;br /&gt;$ sudo apt-get install aptitude synaptic gdebi-core&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3.Installing Gnome System Monitor&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Here&#39;s how you can do that:&lt;br /&gt;&lt;br /&gt;$ sudo apt-get install gnome-system-monitor&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4.Get LibreOffice&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Here&#39;s how you can do that:&lt;br /&gt;&lt;br /&gt;$ sudo apt-get install libreoffice&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5.Installing the VLC player&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Here&#39;s how you can do that:&lt;br /&gt;&lt;br /&gt;$ sudo apt-get install vlc&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6.Installing extra codecs to play a variety of video/audio formats&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Here&#39;s how you can do that:&lt;br /&gt;&lt;br /&gt;$ sudo apt-get install xubuntu-restricted-extras libavcodec-extra&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7.Install the libdvdread4 package to play encrypted dvds&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Here&#39;s how you can do that:&lt;br /&gt;&lt;br /&gt;$ sudo apt-get install libdvdread4&lt;br /&gt;&lt;br /&gt;$ sudo /usr/share/doc/libdvdread4/install-css.sh&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8.Installing Adobe Acrobat Reader&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;You can install Adobe Acrobat Reader from canonical partner repository:&lt;br /&gt;&lt;br /&gt;$ sudo add-apt-repository &quot;deb http://archive.canonical.com/ raring partner&quot;&lt;br /&gt;&lt;br /&gt;$ sudo apt-get update&lt;br /&gt;&lt;br /&gt;$ sudo apt-get install acroread&lt;br /&gt;&lt;br /&gt;&lt;b&gt;9.Installing Uget download manager: perhaps one of the best file download managers for linux&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Here&#39;s how you can do that:&lt;br /&gt;&lt;br /&gt;$ sudo apt-get install uget&lt;br /&gt;&lt;br /&gt;&lt;b&gt;10.Speeding up the user interface&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Here&#39;s how you can do that:&lt;br /&gt;&lt;br /&gt;Create a file named .gtkrc-2.0 in home directory and paste in the following lines:&lt;br /&gt;&lt;br /&gt;gtk-menu-popup-delay = 0 &lt;br /&gt;gtk-menu-popdown-delay = 0 &lt;br /&gt;gtk-menu-bar-popup-delay = 0 &lt;br /&gt;gtk-enable-animations = 0 &lt;br /&gt;gtk-timeout-expand = 0&lt;br /&gt;gtk-timeout-initial = 0&lt;br /&gt;gtk-timeout-repeat = 0&lt;br /&gt;&lt;br /&gt;Save file &amp;gt; close &amp;gt; Logout &amp;gt; Login back&lt;br /&gt;&lt;br /&gt;&lt;b&gt;11.Install Gksudo to run gui apps as root&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Here&#39;s how you can do that:&lt;br /&gt;&lt;br /&gt;$ sudo apt-get install gksu&lt;br /&gt;&lt;br /&gt;&lt;b&gt;12.Install the rar package&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Here&#39;s how you can do that:&lt;br /&gt;&lt;br /&gt;$ sudo apt-get install icedtea-plugin&lt;br /&gt;&lt;br /&gt;&lt;b&gt;13.Turn off Apport&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Particularly useful in case you get frequent error messages saying &quot;System program problem detected&quot;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;14.Install Skype&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Here&#39;s how you can do that:&lt;br /&gt;&lt;br /&gt;$ wget http://download.skype.com/linux/skype-ubuntu-precise_4.2.0.13-1_i386.deb&lt;br /&gt;&lt;br /&gt;&lt;b&gt;15.Install Chrome and Chromium browsers&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;To install chromium browser:&lt;br /&gt;&lt;br /&gt;$ sudo apt-get install chromium-browser chromium-codecs-ffmpeg-extra&lt;br /&gt;&lt;br /&gt;To install chrome browser:&lt;br /&gt;&lt;br /&gt;64 bit&lt;br /&gt;$ wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb&lt;br /&gt;&lt;br /&gt;# 32 bit&lt;br /&gt;$ wget https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/5819737258252448831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/5819737258252448831' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/5819737258252448831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/5819737258252448831'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2014/04/here-are-15-things-you-should-do-after.html' title='Here Are 15 Things You Should Do After Installing ubuntu 14.04 Trusty Tahr'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-5996999072800223677</id><published>2014-04-19T17:19:00.000-07:00</published><updated>2014-04-19T17:44:23.958-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><title type='text'>automount hardisk</title><content type='html'>&lt;code&gt;# cp /etc/fstab /etc/fstab.old&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;# &lt;/code&gt;&lt;code&gt;blkid&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;/dev/sda1: LABEL=&quot;System Reserved&quot; UUID=&quot;40106FB6106FB198&quot; TYPE=&quot;ntfs&quot; &lt;br /&gt;/dev/sda2: UUID=&quot;D2CE71FACE71D767&quot; TYPE=&quot;ntfs&quot; &lt;br /&gt;/dev/sda3: UUID=&quot;e6f5cc11-97d4-443f-b97b-71e59fa1c14b&quot; TYPE=&quot;swap&quot; &lt;br /&gt;/dev/sda4: UUID=&quot;67b386bf-faa5-4685-8b9b-d2ed82c4efc8&quot; TYPE=&quot;ext4&quot; &lt;br /&gt;/dev/sdb1: UUID=&quot;5c43644c-67f1-4d85-8685-70fa4c7f55c9&quot; TYPE=&quot;ext4&quot; &lt;br /&gt;/dev/sdb5: UUID=&quot;4177bb75-437d-4408-b360-ff4f802d6bb1&quot; TYPE=&quot;swap&quot;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;&lt;/code&gt;
&lt;code&gt;# vi &lt;/code&gt;&lt;code&gt;/etc/fstab&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;code&gt;UUID=&amp;lt;uuid&amp;gt; &amp;lt;pathtomount&amp;gt; &amp;lt;file system&amp;gt; uid=&amp;lt;userid&amp;gt;,gid=&amp;lt;groupid&amp;gt;,umask=0022,sync,auto,rw 0 0&lt;/code&gt; &lt;/code&gt;&lt;br /&gt;
&lt;code&gt;UUID=D2CE71FACE71D767 /home/data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nfts&amp;nbsp;&amp;nbsp;&amp;nbsp; uid=1000,gid=1000,umask=0022,sync,auto,rw 0 0&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;more info at :&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;http://www.linuxstall.com/fstab/ &lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/5996999072800223677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/5996999072800223677' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/5996999072800223677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/5996999072800223677'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2014/04/automount-hardisk.html' title='automount hardisk'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-4465426169815476259</id><published>2014-04-19T08:26:00.002-07:00</published><updated>2014-04-19T08:36:58.173-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><title type='text'>Ubuntu 14.4 : Best thing to install</title><content type='html'>&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;VLC&lt;/strong&gt; – Versatile media player&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Steam&lt;/strong&gt; – Game distribution platform&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dropbox&lt;/strong&gt;&amp;nbsp;- Popular, cross-platform cloud storage service&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GIMP&lt;/strong&gt; – Advanced image editor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chromium&lt;/strong&gt; – open-source version of Google Chrome&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/4465426169815476259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/4465426169815476259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/4465426169815476259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/4465426169815476259'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2014/04/ubuntu-144-install-mysql-workbench.html' title='Ubuntu 14.4 : Best thing to install'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-2492792661576910519</id><published>2013-08-25T21:33:00.001-07:00</published><updated>2013-08-25T21:33:54.686-07:00</updated><title type='text'>Change LAMP Server IP Address</title><content type='html'>For ubuntu 13.4&lt;br /&gt;
&lt;br /&gt;
File to change ::&lt;br /&gt;
&lt;br /&gt;
1.&amp;nbsp; /etc/hosts&lt;br /&gt;
2. /etc/mysql/my.cnf&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; bind-address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 131.107.2.222&lt;br /&gt;
&lt;br /&gt;
3. restart apache2&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; service apache2 restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/2492792661576910519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/2492792661576910519' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/2492792661576910519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/2492792661576910519'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2013/08/change-lamp-server-ip-address.html' title='Change LAMP Server IP Address'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-4591646198332731582</id><published>2013-08-14T20:53:00.002-07:00</published><updated>2013-08-14T20:53:46.873-07:00</updated><title type='text'>Best Hosting</title><content type='html'>Best Hosting&lt;br /&gt;
&lt;br /&gt;
1. &lt;a href=&quot;http://angel.exabytes.com.my/idevaffiliate.php?id=3206509&quot;&gt;Exabytes - Malaysia best hosting&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
2. Ipage - Cheap &amp;amp; best value for Money Hosting&lt;br /&gt;
&lt;br /&gt;
3. </content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/4591646198332731582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/4591646198332731582' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/4591646198332731582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/4591646198332731582'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2013/08/best-hosting.html' title='Best Hosting'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-2981554341565886516</id><published>2013-08-14T20:53:00.001-07:00</published><updated>2013-08-14T20:53:35.103-07:00</updated><title type='text'>php cli</title><content type='html'>&lt;pre&gt;PHP CLI &lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;checking PHP version &lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;php --version&lt;/pre&gt;
&lt;pre&gt;find / -name &quot;php53&quot; -print&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/2981554341565886516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/2981554341565886516' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/2981554341565886516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/2981554341565886516'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2013/08/php-cli.html' title='php cli'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-513559611023987225</id><published>2013-08-13T17:33:00.004-07:00</published><updated>2013-08-13T17:33:27.492-07:00</updated><title type='text'>Date</title><content type='html'>Format : date(&lt;i&gt;format&lt;/i&gt;,&lt;i&gt;timestamp&lt;/i&gt;)&lt;br /&gt;
&lt;br /&gt;
$today = date(&quot;Y-m-d&quot;);&lt;br /&gt;
&lt;br /&gt;
format time stamp : mktime(hour,minute,second,month,day,year,is_dst)

&lt;br /&gt;
&lt;br /&gt;
$tomorrow = mktime(0,0,0,date(&quot;m&quot;),date(&quot;d&quot;)+1,date(&quot;Y&quot;)); &lt;br /&gt;
&lt;br /&gt;
$nextweek = date(&quot;Y-m-d&quot;,mktime(0,0,0,date(&quot;m&quot;),date(&quot;d&quot;)+7,date(&quot;Y&quot;)));</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/513559611023987225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/513559611023987225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/513559611023987225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/513559611023987225'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2013/08/date.html' title='Date'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-4839447691226124114</id><published>2013-08-12T23:57:00.001-07:00</published><updated>2013-08-14T20:53:03.289-07:00</updated><title type='text'>PHP : load combo (static option)</title><content type='html'>/*&lt;br /&gt;
FUNCTION FUNCTION load_visit_type($field_name,$form_name,$curr_item,$add_blank=false,$auto_submit=false,$readonly=&#39;&#39;,$disabled=&#39;&#39;) { &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; $a_code = array();&lt;br /&gt;
&amp;nbsp;&amp;nbsp; $a_desc = array();&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; $a_code[]=&quot;1&quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; $a_code[]=&quot;2&quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; $a_code[]=&quot;3&quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; $a_code[]=&quot;4&quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; $a_desc[]=&quot;Initial Home Assessment&quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; $a_desc[]=&quot;Follow up Home Assessment&quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; $a_desc[]=&quot;Routine Home Visist Assessment&quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; $a_desc[]=&quot;Emergency&quot;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; $opt=&quot;&quot;; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; if ($auto_submit==true) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $opt=&quot;&amp;lt;select name=&#39;$field_name&#39; onchange=&#39;document.&quot;.$form_name. &quot;.submit();&#39;&amp;gt;&quot; ;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $opt=&quot;&amp;lt;select name=&#39;$field_name&#39; &quot;.$readonly.&quot; &quot; .$disabled.&quot;&amp;gt;&quot; ;&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; if ($add_blank==true) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $opt .= &quot;&amp;lt;option value=&#39;&#39;&quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( $curr_item == &#39;&#39; ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $opt .= &#39; selected=&quot;selected&quot; &#39;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $opt .= &#39; &amp;gt;&amp;lt;/option&amp;gt;&#39; ;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; $no_of_element=count($a_code);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; for ($i = 0; $i &amp;lt; $no_of_element; $i++) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $opt .= &quot;&amp;lt;option value=&#39;&quot; . $a_code[$i] .&quot;&#39;&quot;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( trim($curr_item) == $a_code[$i] ) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $opt .= &#39; selected=&quot;selected&quot;&#39;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $opt .= &quot;&amp;gt;&quot;. $a_desc[$i]. &quot;&amp;lt;/option&amp;gt;&quot;;&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; $opt .=&quot;&amp;lt;/select&amp;gt;&quot;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; return $opt;&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$add_blank=true;&lt;br /&gt;
$auto_submit=false;&lt;br /&gt;
&lt;br /&gt;
call by :&lt;br /&gt;
&lt;br /&gt;
$this-&amp;gt;load_visit_type(&quot;visit_type&quot;,&quot;form1&quot;,$this-&amp;gt;visit_type,$add_blank,$auto_submit)&lt;br /&gt;
&lt;br /&gt;
$vtype = $this-&amp;gt;load_visit_type(&quot;visit_type&quot;,&quot;form1&quot;,$db-&amp;gt;record[&#39;visit_type&#39;],true,false,&#39;readonly&#39;,&#39;disabled&#39;);&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
*/</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/4839447691226124114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/4839447691226124114' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/4839447691226124114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/4839447691226124114'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2013/08/php-load-combo-static-option.html' title='PHP : load combo (static option)'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2003346800207305155.post-2612458292230362311</id><published>2013-07-26T19:08:00.001-07:00</published><updated>2014-04-29T04:31:01.409-07:00</updated><title type='text'>Common Linux Command</title><content type='html'>tar&lt;br /&gt;
tar -czvf myarchive.tgz mydirectory/&lt;br /&gt;
&lt;br /&gt;
untar&lt;br /&gt;
tar -xzvf mystuff.tgz&lt;br /&gt;
&lt;br /&gt;
mount cdrom&lt;br /&gt;
&lt;pre&gt;wodim --devices : find the cdrom device&lt;/pre&gt;
&lt;pre&gt; if wodim not found : apt-get install cdrecord&lt;/pre&gt;
&lt;pre&gt;mkdir /media/cdrom &amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;mount -t iso9660 /dev/scd0 /media/cdrom : mount cdrom&lt;/pre&gt;
&lt;pre&gt;mount -t iso9660 /dev/hdc /media/cdrom0/  : mount audio cd&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;kill gnome screen saver :&lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;font-family: Arial,Helvetica; font-size: small;&quot;&gt;&lt;code&gt; ps -ef | grep amanda | grep gnome-screensaver&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;font-family: Arial,Helvetica; font-size: small;&quot;&gt;&lt;code&gt; kill -9 {screen saver id}&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;font-family: Arial,Helvetica; font-size: small;&quot;&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;font-family: Arial,Helvetica; font-size: small;&quot;&gt;&lt;code&gt;logout user from gnome&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica;&quot;&gt; &lt;span style=&quot;font-size: small;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;font-family: Arial,Helvetica; font-size: small;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;code&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;font-family: Arial,Helvetica; font-size: small;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;code&gt;&lt;code&gt;   gnome-session-quit&lt;/code&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;font-family: Arial,Helvetica; font-size: small;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;code&gt;&lt;code&gt;&lt;/code&gt;&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;font-family: Arial,Helvetica; font-size: small;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;code&gt;&lt;code&gt;or&amp;nbsp;&lt;/code&gt; &lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;font-family: Arial,Helvetica; font-size: small;&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial,Helvetica;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;code&gt;   pkill -u username&lt;/code&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/code&gt;&lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span style=&quot;color: black; font-family: verdana; font-size: x-small;&quot;&gt;1. &lt;b&gt;arch&lt;/b&gt;

This command will show you the architecture of your system.

2. &lt;b&gt;uname-m&lt;/b&gt;

This is another command to view the architecture of the system.

3. &lt;b&gt;uname-r&lt;/b&gt;

This command is used to check the kernel version that is being used in the system.

4. &lt;b&gt;dmidecode-q&lt;/b&gt;

This command give you the hardware components in your system.

5. &lt;b&gt;hdparm-i / dev / hda&lt;/b&gt;

This is the command that shows the characteristics of your hard disk.

6. &lt;b&gt;hdparm-tT / dev / sda&lt;/b&gt;

This command is used in order to conduct tests readings on hard drives.

7. &lt;b&gt;cat / proc / cpuinfo&lt;/b&gt;

These commands can help you in getting CPU information.

8. &lt;b&gt;cat / proc / interrupts&lt;/b&gt;

These commands are used to interrupt a process.

9. &lt;b&gt;cat / proc / meminfo&lt;/b&gt;

This command verifies the memory usage in your system.

10. &lt;b&gt;cat / proc / swaps&lt;/b&gt;

These commands are used in order to swap files.

11. &lt;b&gt;cat / proc / version&lt;/b&gt;

These three commands can display the kernel version for your system.

12. &lt;b&gt;cat / proc / net / dev&lt;/b&gt;

These four commands are used to view the network adapters and display statistics of the system.

13. &lt;b&gt;cat / proc / mounts&lt;/b&gt;

This command shows you the mounted file system.

14. &lt;b&gt;lspci-tv&lt;/b&gt;

If you need to view the PCI display devices then this is the command to use.

15. &lt;b&gt;lsusb-tv&lt;/b&gt;

This is the command for displaying USB devices.



&lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Times New Roman;&quot;&gt;How to use tcpdump to detect Network 
Port Traffic&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Times New Roman;&quot;&gt;tcppdump dst mail.terangnusa.com and tcp port 
587 &lt;/span&gt;&lt;br /&gt;
tcpdump port 80tcpdump -i eth0&lt;br /&gt;
&lt;span style=&quot;font-family: Times New Roman;&quot;&gt;tcppdump -i eth0 dst port 25&lt;/span&gt;&lt;br /&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://kjubuntu.blogspot.com/feeds/2612458292230362311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2003346800207305155/2612458292230362311' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/2612458292230362311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2003346800207305155/posts/default/2612458292230362311'/><link rel='alternate' type='text/html' href='http://kjubuntu.blogspot.com/2013/07/common-linux-command.html' title='Common Linux Command'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/16340503845502165043</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>