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://fedoraproject.org/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://spins.fedoraunity.org/
Apache
- 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
- 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'
- After installation, the service must be configured to start
automatically.
[renich@introdesk ~]$ su -c '/sbin/chkconfig httpd on'
- To start the server process immediately:
[renich@introdesk ~]$ su -c '/sbin/service httpd start'
- 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
- 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'
- 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'
- 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)
PHP interprets the scripts of your favorite web site or
application, running on top of the other parts of the LAMP stack.
- 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'
- 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.
- 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'
- 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.
- 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://192.168.1.100/ to access the
page, use http://192.168.1.100/#module_mysql to skip down to the
relevant part.) You should see various options about MySQL
enumerated.
- 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
https://help.ubuntu.com/community/ApacheMySQLPHP# Mandriva
http://www.howtoforge.com/perfect_server_mandriva_2008.0# Gentoo
http://gentoo-wiki.com/LAMPCredits
Original HowTo from:
http://fedorasolved.org/server-solutions/lamp-stack/?searchterm=lampCopyright (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://www.opencontent.org/openpub/).