设为首页 收藏本站
查看: 1650|回复: 0

[转]Fedora 15搭建LAMP环境中可能遇到的问题

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-15 16:10:05 | 显示全部楼层 |阅读模式
  本文转自:http://www.liyaos.com/blog/lamp-of-fedora-15/
  
  LAMP是Linux + Apache + MySQL + PHP这组黄金组合的简称,在网站开发中极为流行。在Fedora这个红帽系的Linux发行版下面搭建LAMP环境是非常简单的,只需要使用yum就可以轻松安装Apache、MySQL以及PHP。但是实际上仅仅使用yum安装这些东西往往是不够的,譬如你可能会发现你所安装的PHP缺少很多扩展,或者MySQL数据库里的表名存在大小写敏感不符合你的习惯,或者在Apache对文件的读写权限上遇到一些非所期的结果,等等。这篇文章记录了一些我在自己的Fedora 15系统上搭建LAMP环境时所遇到的问题和最后的解决方法,因为我这人比较懒散,所以这些方法都是我自己看来最简单的解决方法。其他Linux发行版也可以以此为参考(只是参考!)。
  索引:

  • Apache

    • 安装Apache(yum安装)
    • 诡异的写权限

  • PHP

    • 安装PHP(yum安装)
    • 安装扩展(mbstring,gd,xmlwriter)

  • MySQL

    • 安装MySQL(yum安装)
    • MySQL表名大小写敏感
    • 安装phpMyAdmin

  
Apache
      

  • 安装Apache
      安装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的详细信息可以参考鳥哥的 Linux 私房菜上的介绍:
      http://linux.vbird.org/linux_basic/0560daemons.php#chkconfig
      Runlevel的信息则可以参考wikipedia上的说明:
      http://en.wikipedia.org/wiki/Runlevel
      

  • 诡异的写权限
      这是个曾经折腾了我半天的问题。具体来说,便是在自己的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
    <?php 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  结果终于成功了!如此结果实在是令人生疼啊!“睫在眼前长不见”,“蓦然回首,那人却在灯火阑珊处”,盖此之谓也!
  
PHP
      

  • 安装PHP
      安装PHP可以下载源码在自己的系统上编译,也可以直接使用yum安装已经编译好的版本。
      这里推荐直接使用yum安装已经编译好的版本,安装简单,更新也很方便。不过这种方法安装的PHP有一个缺点,那就是缺少很多扩展,不过这并不是什么无法弥补的事情,我们完全可以再根据需求安装那些需要使用的扩展,安装扩展的方法将会在下面一部分里介绍。
      使用yum安装PHP的命令如下:
    1
    sudo yum install php  如果权限不足请使用su或sudo命令。
      

  • 安装扩展
      无论是使用源码编译安装的还是使用yum安装的PHP,都有可能面临需要安装一些扩展的情况。这里介绍一下通常情况下为PHP安装扩展的方法。
      首先以mbstring为例。你可以在编译PHP的时候使用–enable-mbstring激活这项扩展,但如果你在编译的时候并没有激活它,或者你的PHP是使用yum安装的,那么你就需要再安装该扩展。
      幸运的是mbstring扩展也是可以直接通过yum安装的,命令如下:
    1
    sudo yum install php-mbstring  不过仅仅这条命令是不够的,还需要在PHP的配置文件中激活这项插件。默认情况下,PHP的配置文件路径是/etc/php.ini。你需要调用管理员权限来编辑该文件,譬如像这样:
    1
    sudo vim /etc/php.ini  在php.ini中找到Dynamic Extensions这一块,譬如,在vim中你可以使用如下命令:
    1
    2
    gg
    /Dynamic Extensions  然后在这一块的末尾添加一行内容:
    1
    extension=mbstring.so  这样mbstring这项扩展就被加载到PHP当中了。不过可能你需要在终端中重启Apache才能看到它被激活:
    1
    sudo service httpd restart  或者
    1
    sudo /etc/init.d/httpd restart  下面的PHP代码可以显示php的相关信息:
    1
    <?php echo phpinfo(); ?>  如果安装成功的话你应该可以在上面的代码输出的结果里找到mbstring的相关信息。此外其他扩展也是同样的道理,像gd,或者xmlwriter。先用yum安装,再在/etc/php.ini里配置下就好了。
      gd的安装命令如下:
    1
    sudo yum install php-gd  xmlwriter则是在php-xml当中:
    1
    sudo yum install php-xml  /etc/php.ini里的相关内容如下:
    1
    2
    extension=gd.so
    extension=xml.so
  
MySQL
      

  • 安装MySQL
      继续按照我们懒人的惯例,只介绍使用yum安装MySQL的方法。
    1
    sudo yum install mysql mysql-server php-mysql  其中mysql只是MySQL的客户端程序,想要拿自己的机器做数据库服务器还要安装mysql-server;而php-mysql则是在php中用来连接MySQL数据库的模组,不过奇怪的是我不记得有在php里为php-mysql做任何配置就可以正常使用,所以此处是否需要配置什么暂且存疑。
      启动mysql-server的方法是:
    1
    sudo service mysqld start  或者:
    1
    sudo /etc/init.d/mysqld start  同样可以使用chkconfig命令把mysqld服务设置为开机自动启动:
    1
    sudo chkconfig --level 235 mysqld  默认情况下自己的MySQL是没有密码的,可以直接使用root账户登录:
    1
    mysql -u root  当然最好还是给自己的MySQL的root账户设一个密码,方法是用上面的指令登录MySQL,然后使用输入下面的命令:
    1
    2
    3
    USE mysql;
    UPDATE user SET Password=PASSWORD(&quot;your password&quot;) WHERE User=&quot;root&quot;;
    FLUSH PRIVILEGES;  

  • MySQL表名大小写敏感
      曾经在Windows上使用MySQL的用户初次尝试Linux上的MySQL存在一个很疼的表名大小写敏感问题,这个只是一个设置问题,如果不习惯的话完全可以把它修改为无视大小写。
      方法很简单,只要使用文本编辑器打开/etc/my.cnf文件,譬如:
    1
    sudo vim /etc/my.cnf  在mysqld这一块的末尾添加如下一句:
    1
    lower_case_table_names=1  然后保存并退出,并重新启动mysqld服务:
    1
    sudo service mysqld restart  或者
    1
    sudo /etc/init.d/mysqld restart  然后再打开MySQL,就会发现再创建表和查询表的时候,表名一律被变成小写了!
      

  • 安装phpMyAdmin
      常用的图形化数据库管理和查询工具phpMyAdmin也可以直接通过yum安装:
    1
    sudo yum install phpMyAdmin  然后重新启动httpd,就可以通过http://localhost/phpmyadmin来查看你的数据库了!
    DSC0000.gif
    DSC0001.gif

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-139608-1-1.html 上篇帖子: 如何在Ubuntu上安装LAMP服务器系统 下篇帖子: Ubuntu_Installing Apache2 With PHP5 And MySQL Support On Ubuntu 12.04 LTS (LAMP)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表