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
- 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'
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.
[renich@introdesk ~]$ su -c '/sbin/service iptables save'
[renich@introdesk ~]$ su -c '/sbin/service iptables restart'
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://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.
- 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
Post Comments