当前位置:  首页  >  服务器技术  >  Linux/unix  >  Linux教程

Fedora15搭建LAMP环境中可能遇到的问题

LAMP是Linux+Apache+MySQL+PHP这组黄金组合的简称,在网站开发中极为流行。在Fedora这个红帽系的Linux发行版下面搭建LAMP环境是非常简单的,只需要使用yum就可以轻松安装Apache、MySQL以及PHP。但是实际上仅仅使用yum安装这些东西往往是不够的,譬如你

LAMP是Linux + Apache + MySQL + PHP这组黄金组合的简称,在网站开发中极为流行。在Fedora这个红帽系的Linux发行版下面搭建LAMP环境是非常简单的,只需要使用yum就可以轻松安装Apache、MySQL以及PHP。但是实际上仅仅使用yum安装这些东西往往是不够的,譬如你可能会发现你所安装的PHP缺少很多扩展,或者MySQL数据库里的表名存在大小写敏感不符合你的习惯,或者在Apache对文件的读写权限上遇到一些非所期的结果,等等。这篇文章记录了一些我在自己的Fedora 15系统上搭建LAMP环境时所遇到的问题和最后的解决方法,因为我这人比较懒散,所以这些方法都是我自己看来最简单的解决方法。其他Linux发行版也可以以此为参考(只是参考!)。

索引:

  • Apache
    1. 安装Apache(yum安装)
    2. 诡异的写权限
  • PHP
    1. 安装PHP(yum安装)
    2. 安装扩展(mbstring,gd,xmlwriter)
  • MySQL
    1. 安装MySQL(yum安装)
    2. MySQL表名大小写敏感
    3. 安装phpMyAdmin

Apache

  1. 安装Apache
  2. 安装Apache服务器(httpd)可以下载源码在自己的系统上编译,也可以直接使用yum安装已经编译好的版本。这里推荐直接使用yum安装已经编译好的版本,安装简单,更新也很方便。使用yum安装Apache服务器的命令如下:

    1
    sudo yum install httpd

    启动httpd的命令如下:

    1
    sudo service httpd start

    或者:

    1
    sudo /etc/init.d/httpd start

    默认情况下网站路径是/var/www/html。如果你在该目录下新建一个xxx.html,那么就可以通过http://localhost/xxx.html来查看该网页。

    如果在你自己的电脑上你可以访问自己的网站,但是通过别人的却不可以,很有可能是你的防火墙关闭了80端口,把它打开即可。

    可以使用chkconfig命令设置httpd为开机自动启动:

    1
    sudo chkconfig --level 235 httpd

    关于chkconfig的详细信息可以参考:

    http://www.linuxidc.com/Linux/2011-08/40085p4.htm

    诡异的写权限

  3. 这是个曾经折腾了我半天的问题。具体来说,便是在自己的LAMP环境下搭建一个现成的PHP程序,但是在运行它的安装脚本的时候被提示某些目录是不可写的。举例来说,提示/var/www/html/something这个目录不可写,那么执行chmod命令:

    1
    sudo chmod a+w /var/www/html/something

    然后使用ls命令查看该目录的权限:

    1
    ls -al /var/www/html

    你所看到的something目录的权限可能是drwxrwxrwx,也有可能是其他的,但只要有3个w,就说明chmod命令执行成功了,那么理论上这个目录已经是可写的了。但是运行安装脚本的时候提示并没有消失,于是尝试递归的chmod命令:

    1
    sudo chmod -R a+w /var/www/html/something

    这也不能为我们的情况带来什么改善。有人说可能是Apache服务器的用户的权限问题,例如在httpd的目录下新建一个php文件,里面加入如下的php代码:

    1
    echo exec('whoami'); ?>

    得到的结果是apache。打开/etc/httpd/conf/下的httpd.conf文件,可以看到里面有对用户信息的记载:

    1
    2
    User apache
    Group apache

    于是又尝试了用chown命令把文件所有者变更为apache:

    1
    chown -Rf apache.apache /var/www/html/something

    结果依然是令人失望的。就在山穷水尽的时候,经人点拨,才恍然意识到问题的根本所在——根本不是文件读写权限设置上出了什么问题,一切的始作俑者是SELinux!

    于是尝试关掉SELinux:

    1
    sudo setenforce 0

    结果终于成功了!如此结果实在是令人生疼啊!“睫在眼前长不见”,“蓦然回首,那人却在灯火阑珊处”,盖此之谓也!

吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有