Fedora下搭建LAMP开发环境

时间:2022-03-25 20:26:50

      LAMP是Linux + Apache + MySQL +PHP/Python的缩写,是一组常用来搭建动态网站服务器的开源软件。它们本身都是各自独立的程序,但是因为开源并且常放在一起使用,所以拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序开发平台。

  • Linux:Linux 处在最底层,提供操作系统。它的灵活性和可定制化的特点意味着它能够产生一种高度定制的平台,让其它组件在上面运行。
  • Apache:Apache位于第二层,它是一个Web 服务器软件,提供可让用户获得 Web 页面的机制。Apache 是一款功能强大、稳定、可支撑关键任务的Web服务器,Internet 上超过50%的网站都使用它作为 Web 服务器。(开源的主流服务器还有Nginx)
  • MySQL:MySQL是最流行的开源关系数据库管理系统,是LAMP的数据存储端。它分为社区版和商业版,由于其开源、体积小、速度快、总体拥有成本低,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。
  • PHP:PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤其适合 web动态网站开发。Perl 和 Python 类似。

一、安装Apache2

     在终端运行下面的命令:

sudo yum install httpd
配置开机启动Apache,输入命令:

sudo systemctl enable httpd.service
启动Apache服务器:

sudo systemctl start httpd.service
// 重启为systemctl restart httpd.service

打开浏览器,访问http://localhost ,如果看到下面的页面,说明安装成功!

Fedora下搭建LAMP开发环境


二、安装PHP5

       虽说在web应用上Python比PHP有优势,而且更有前景,但是就目前国内来看,Web应用开发的主流还是PHP,所以我就决定学PHP了。

       需要安装 PHP5 和 Apache PHP5 模块,运行命令:

sudo yum install php
重启Apache服务器:

sudo systemctl restart httpd.service
我的Fedora20上Apache默认站点根目录是 /var/www/html/ ,当然你可以修改Apache配置文件 /etc/httpd/conf/httpd.conf改变它的 DocumentRoot,这里我们在默认目录下新建一个info.php文件来测试PHP5:

<?php
phpinfo();
?>
在浏览器里访问 http://localhost/info.php,你会看见下面的页面:

Fedora下搭建LAMP开发环境

phpinfo()会输出PHP当前状态的大量信息,包含了 PHP 编译选项、启用模块、PHP 版本、服务器信息、PHP环境变量、操作系统版本信息、path 变量、配置选项的本地值和主值、HTTP 头和PHP授权信息(License)。当你看到这个页面,说明PHP5正在运行。查看PHP5中已经启用的模块,MySQL没有被列入其中,这意味着现在还不支持MySQL。


三、让PHP支持MySQL

      我们需要安装一个模块使得php5支持Mysql(Mysql数据库的安装看我上一篇文章:Linux下C++访问Mysql数据库),你可以先使用yum search php查询一下安装包,我们需要安装的是下面几个包:

sudo yum install php-mysqlnd php-mssql php-opcache
重启Apache服务器,然后刷新 http://localhost/info.php页面,看PHP5是否已经支持MySQL:

Fedora下搭建LAMP开发环境

当然我们可以在/var/www/html/目录下写个test.php测试一下:

<?php
$link=mysql_connect('localhost','root','songlee');
if(!$link)
echo "fail!";
else
echo "success!";
mysql_close();
?>
重启Apache服务,访问 http://localhost/test.php,如果看到页面输出 success!,表示php连接mysql数据库成功。


另外,为了方便我们可以安装phpMyAdmin(一款基于php语言编写的管理 MySQL数据库的图形化软件)来管理Mysql数据库。