Jump To Content

LearnHub




Linux, Apache, MySQL and PHP (LAMP) Server configuration

Introduction

This lesson will be about the usual configuration of a LAMP server in Fedora 9. Feel free to add links to other distro HowTo's or contribute a lesson based on another distro.

Procedure

Linux

Go get Fedora from the site.
http://learnhub.com/redirect?u=http%3A%2F%2Ffedoraproject.org%2F

You might, also, want to try and download a respin, since they have the up-to-date versions of packages and updates available for the current distribution version.
http://learnhub.com/redirect?u=http%3A%2F%2Fspins.fedoraunity.org%2F

Apache

  1. Installing Apache means installing the program which will handle requests to your web server. For most people, Apache itself is the web server, terminologically speaking. In your Fedora Core installation, depending on the choices you made during the install process, you may or may not have Apache already installed. Just use the following command to check:
    [renich@introdesk ~]$ rpm -q httpd
  2. If it tells you a version number, then it's installed and we can progress to the next step. Otherwise, we need to install it:
    [renich@introdesk ~]$ su -c 'yum install httpd'
  3. After installation, the service must be configured to start automatically.
    [renich@introdesk ~]$ su -c '/sbin/chkconfig httpd on'
  4. To start the server process immediately:
    [renich@introdesk ~]$ su -c '/sbin/service httpd start'
  5. Finally, it's important to make sure that port 80 is remotely accessible, by configuring iptables to open the port (and to leave it open by default from the outside). The following commands will remember the rule for you across reboots and apply it immediately:
    [renich@introdesk ~]$ su -c '/sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT'

    [renich@introdesk ~]$ su -c '/sbin/service iptables save'

    [renich@introdesk ~]$ su -c '/sbin/service iptables restart'

    You can put in the hostname or IP address of the server in the address bar of a web browser (whether on the same host or elsewhere in the network) to test the installation. You'll see a welcome page if everything was successful. Otherwise, refer to troubleshooting.

MySQL

  1. Installing and running the database component of the LAMP stack, called MySQL, is at least as easy. The following command will install the database and the server process.
    [renich@introdesk ~]$ su -c 'yum install mysql mysql-server'
  2. The server process must likewise be running and accessible.
    [renich@introdesk ~]$ su -c '/sbin/chkconfig  mysqld on'

    [renich@introdesk ~]$ su -c '/sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT'

    [renich@introdesk ~]$ su -c '/sbin/service iptables save'

    [renich@introdesk ~]$ su -c '/sbin/service iptables restart'

    [renich@introdesk ~]$ su -c '/sbin/service mysqld start'
  3. To test that everything is working okay so far, run this command to print out some information and check its status:
     # mysqladmin version status

PHP (or Perl or Python)

  1. PHP interprets the scripts of your favorite web site or application, running on top of the other parts of the LAMP stack.

  2. The following command will install PHP, along with the needed stuff to glue it together with the web server and the database.
    [renich@introdesk ~]$ su -c 'yum install php php-mysql'
  3. PHP is pretty much ready to run after that, although you may need to restart the web server to make sure it loads the PHP module.
    [renich@introdesk ~]$ su -c '/sbin/service httpd restart'
    If you'd like to use another 'P' in the place of PHP (or install alongside), the steps are pretty similar. Both Perl and Python come with ways to access MySQL and modules to allow them to run smoothly and quickly inside of Apache.

  4. To run Python on your web server, run the following. (Python is already installed on all Fedora installations, so it's not needed to install that as well.)
    [renich@introdesk ~]$ su -c 'yum install mod_python MySQL-python'
  5. For Perl, the following will get you started:
    [renich@introdesk ~]$ su -c 'yum install perl mod_perl perl-DBD-mysql'
    Don't forget to restart the web server after either (or both) of these commands to make sure the relevant modules will be loaded by Apache.

Troubleshooting

Definitively testing the whole thing is pretty easy. You can create a small test PHP file and try to access it.
  1. Create the test script:
    [renich@introdesk ~]$ su -c 'echo "<?php phpinfo(); ?>" > /var/www/html/index.php'
    Then access the web server by putting the address in any web browser that can access the server. If your server's IP address is 192.168.1.100, put that in the address bar. By going to that address, you should see a long detailed page describing PHP's configuration and status in detail.

    You can skip down to the MySQL section by putting a jump in the address bar to it. (If you used http://learnhub.com/redirect?u=http%3A%2F%2F192.168.1.100%2F to access the page, use http://learnhub.com/redirect?u=http%3A%2F%2F192.168.1.100%2F#module_mysql to skip down to the relevant part.) You should see various options about MySQL enumerated.

  2. If all this is successful, you should delete the script you just created.
    [renich@introdesk ~]$ su -c 'rm -f /var/www/html/index.php'
    Now it's time to install your favorite web application (phpBB, mediawiki, squirrelmail/roundcube) or learn PHP.

References

Here are some LAMP references from other distributions:

# Ubuntu
http://learnhub.com/redirect?u=https%3A%2F%2Fhelp.ubuntu.com%2Fcommunity%2FApacheMySQLPHP

# Mandriva
http://learnhub.com/redirect?u=http%3A%2F%2Fwww.howtoforge.com%2Fperfect_server_mandriva_2008.0

# Gentoo
http://learnhub.com/redirect?u=http%3A%2F%2Fgentoo-wiki.com%2FLAMP

Credits

Original HowTo from: http://learnhub.com/redirect?u=http%3A%2F%2Ffedorasolved.org%2Fserver-solutions%2Flamp-stack%2F%3Fsearchterm%3Dlamp

Copyright (c) 2008 by hypodermia. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, vX.Y or later (the latest version is presently available at http://learnhub.com/redirect?u=http%3A%2F%2Fwww.opencontent.org%2Fopenpub%2F).

  1. Renich saidTue, 08 Jul 2008 19:51:58 -0000 ( Link )

    It would be cool if somebody could contribute some other distro’s specialized lesson!

    I’m a Fedoran!

    Actions
    Vote
    Current Rating
    1
    Rate Up
    Rate Down
    1 Total Vote

    Post Comments

  2. Sara_Pall saidMon, 10 Aug 2009 04:43:59 -0000 ( Link )

    Hey what a cool website and the look of this website is just oh-some man and i wana ask that this code really works actually i am a student and i love reading blogs and i got CISSP certification and that is the best part of my life…i cant understand how Apache web server works so please do post some information on this i really need to understand this..!!!!!!!!

    Actions
    Vote
    Current Rating
    1
    Rate Up
    Rate Down
    1 Total Vote

    Post Comments

Your Comment
Textile is Enabled (View Reference)