Setting up a LAMP stack
来源:互联网 发布:鸿合电子白板测试软件 编辑:程序博客网 时间:2024/05/17 07:56
原文: http://fedorasolved.org/server-solutions/lamp-stack
The so-called LAMP stack is one of the most compelling reasons toinstall Linux in the first place and probably the one primary purpose for many Fedora server-basedinstallations. The combination of Linux/Apache/MySQL/PHP (or Perl, or even Python)allows webmasters to build websites and run complex applications such as a webmail interface or a wiki.
Requirements
The requirements for a server running Fedora can rangesomewhat more widely than those recommended in the release notes,depending on the use case. A small, private server with light usecan easily handle its expected load with even lessmemory/storage/speed than the release notes necessarily call for.On the other hand, a server designed to withstand huge amounts oftraffic can benefit from multiple processors, several gigabytes ofRAM, and large arrays of disk drives. As a server administrator,you'll need to use your best judgment for your use case.
Hardware aside, this article assumes nothing more than a freshFedora installation and shell access as root (all commandslisted here assume you execute them as root). Configuring forspecific uses (setting up Virtual Hosts,installing webapplications or creating websites, or learning PHP) are beyond thescope of this article, which only covers setup.
For people who want to install xampp follow this howto instead of trying toinstall the xampp blob of unmanageable crap.
Doing the work
The best way to install a LAMP stack is to install each letter insequence; to spell out the wordLAMP, in effect.
Linux
If you've already got Fedora installed, then you'veaccomplished this step. If you haven't, check outInstall Solutions
for more details on installing andconfiguring Fedora.
Apache
- Installing Apache means installing the program which will handlerequests to your web server. For most people, Apache itself is theweb server, terminologically speaking. In your Fedorainstallation, depending on the choices you made during theinstallprocess, you may or may not have Apache alreadyinstalled. Just usethe following command to check:
# rpm -q httpd
- If it tells you a version number, then it's installed and we canprogress to the next step. Otherwise, we need to install it:
# yum install httpd
- After installation, the service must be configured to startautomatically.
# /sbin/chkconfig httpd on
- To start the server process immediately:
# /sbin/service httpd start
- (F10 or older) Finally, it's important to make sure that port 80 is remotelyaccessible, by configuring iptables to open the port (and to leaveit open by default from the outside). The following commands willremember the rule for you across reboots and apply itimmediately:
# echo '-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT' >> /etc/sysconfig/iptables# /sbin/service iptables restart
You can put in the hostname or IP address of the server in theaddress bar of a web browser (whether on the same host or elsewherein the network) to test theinstallation. You'll see a welcome pageif everything was successful. Otherwise, refer totroubleshooting. - (F11 or newer) 1. Execute the 'system-config-firewall-tui' command as root:
# system-config-firewall-tui
2. Use tab to navigate to "customize" and press [enter].
3. Use the arrow keys to navigate to WWW (HTTP) and press the space bar or [enter].
4. Use tab to navigate to 'forward' and press [enter].
--- httpd is allowed now once we save
--- mysql steps
5. On the "Other Ports" screen, use tab to select 'add'.
6. For the Port/Port-Range, enter 3306. For the protocol, enter tcp. Use tab to navigate to 'OK' and press [enter].
7. Use tab to navigate to 'close' and press [enter].
8. Use tab to navigate to 'OK' and press [enter].
9. Use tab to navigate to 'Yes' and press [enter].
MySQL
NOTE:This is the abbreviated process to setup MySQL.
- Installing and running the database component of theLAMP stack,called MySQL, is at least as easy. The following command willinstall the database and the server process.
# yum install mysql mysql-server
- (F10 or older only) The server process must likewise be running and accessible.
# /sbin/chkconfig mysqld on# echo '-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT' >> /etc/sysconfig/iptables# /sbin/service iptables restart# /sbin/service mysqld start
- To test that everything is working okay so far, run this commandto print out some information and check its status:
# mysqladmin version status
PHP (or Perl or Python)
- The following command will install PHP, along with the needed stuffto glue it together with the web server and the database.
# yum install php php-mysql
- PHP is pretty much ready to run after that, although you may needto restart the web server to make sure it loads the PHP module.
# /sbin/service httpd restart
If you'd like to use another 'P' in the place of PHP (or installalongside), the steps are pretty similar. Both Perl and Python comewith ways to access MySQL and modules to allow them to run smoothlyand quickly inside of Apache. - To run Python on your web server, run the following. (Python isalready installed on all Fedora installations, so it's notneeded toinstall that as well.)
# yum install mod_python MySQL-python
- For Perl, the following will get you started:
# yum install perl mod_perl perl-DBD-mysql
Don't forget to restart the web server after either (or both) ofthese commands to make sure the relevant modules will be loaded byApache.
PHP interprets the scripts of your favorite web site orapplication, running on top of the other parts of theLAMP stack.
Troubleshooting
Definitively testing the whole thing is pretty easy. You can createa small test PHP file and try to access it.
- Create the test script:
# echo "<?php phpinfo(); ?>" > /var/www/html/index.php
Then access the web server by putting the address in any webbrowser that can access the server. If your server's IP address is192.168.1.100, put that in the address bar. By going to thataddress, you should see a long detailed page describing PHP'sconfiguration and status in detail.
You can skip down to the MySQL section by putting a jump in theaddress bar to it. (If you used http://192.168.1.100/ to access thepage, use http://192.168.1.100/#module_mysql to skip down to therelevant part.) You should see various options about MySQLenumerated. - If all this is successful, you should delete the script you justcreated.
# rm -f /var/www/html/index.php
Now it's time to install your favorite web application (phpBB,mediawiki, squirrelmail/roundcube) or learn PHP.
Bugs
Since I don't personally use Perl for web development, I'm not surewhat exactly is needed to use it with a database.
Disclaimer
We test this stuff on our own machines, really we do. But you may run into problems, if you do, come to #fedora on irc.freenode.net
- Setting up a LAMP stack
- Setting up a LAMP stack
- Setting Up a RequestQueue
- Setting Up a Maven Repository
- Setting up a Library Project
- Setting up a Database Connection
- Setting up a Storm Cluster
- Setting up a Custom Membership Provider
- A great article about setting up exim
- Setting Up a Telnet Server in Ubuntu
- Setting up a new remote git repository
- Setting Up a Selenium-WebDriver Project
- Setting up a Device for Development
- Setting up SSH for a Hadoop cluster
- Setting up a Keystone development environment
- Setting up a Linux build environment
- Setting Up a Simple OCR Server
- Hadoop: Setting up a Single Node Cluster
- 霍夫曼编码压缩算法
- 没有标题可以吗
- MySQL常见版本简绍
- 寒假第一天 水题 Steps
- 一些基于ExtJS的Desktop特效应用的网站
- Setting up a LAMP stack
- 设置QQ空间背景音乐
- 教你如何去掉优酷网的30秒广告
- svn 报 Previous operation has not finished; run 'cleanup' if it was interrupted
- MATLAB实现频数直方图——hist的使用
- 第一天 The ? 1 ? 2 ? ... ? n = k problem
- ios UIApplication sharedApplication详细解释
- hdu 1086 求线段交点
- 今日又下雪