LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 930|回复: 7

LAMP安装的艰难历程

[复制链接]
发表于 2008-1-20 10:29:24 | 显示全部楼层 |阅读模式
LAMP=Linux+apache+mysql+php
linux我就不多说了,n早前就装好了的,最近开始学习php,自然要有个本地测试环境,但安装AMP的过程还是感觉比较艰难的,特地些出来,与大家分享。
先在apache的官方站上下载httpd-2.2.6,解压后开始编译,注意要使用dso

./configure --enable-so
make
make install

第一次安装的时候我就忘了make install,老是不成功,安装以后可以使用以下命令启动和停止apache

/usr/local/apache2/bin/apachectl start
/usr/local/apache2/bin/apachectl stop

正常的话访问127.0.0.1会出现It works的字样,不同系统可能会有差别。
停掉apache,开始安装mysql,因为php编译中需要指定mysql路径,所以先装这个。先要建立帐号

useradd mysql
groupadd -g mysql mysql

编译过程大同小异

./configure
make
make install

然后进行设置

/usr/local/mysql/scripts/mysql_install_db --user=mysql
chown -R root /usr/local/mysql
chown -R root /usr/local/bin
chown -R mysql /usr/local/mysql
chgrp -R mysql /usr/local/mysql

然后就可以启动数据库了

/usr/local/mysql/bin/mysqld_safe --user=mysql

再运行mysql时可能会提示出错

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'

这种情况,有可能是selinux造成的,也有可能是mysql.sock在别处,搜索以后在/tmp下做个连接就可以了
最后安装php

./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysql=/usr/local/mysql
make
make install

如果你要装zlib之类的自己在编译选项中加入就可以了
安装完后启动apache,不料提示出错
Document root must be a directory

上gg搜索了半天,得知这个是selinux造成的
检查 avc message,查看 /var/log/messages文件,发现有类似以下内容的这样一段:

hostname kernel: audit(1098222899.827:0): avc: \
denied { getattr } for pid=19029 exe=/usr/sbin/httpd \
path=/home/httpd/index.php dev=dm-0 ino=373900 \
scontext=root:system_r:httpd_t tcontext=user_ubject_r:user_home_t \
tclass=file

果然是SELinux的新特性搞的鬼。我把目录或文件设成了user_home_t类型,因此apache的进程没有权限,无法访问。针对 Apache的进程所使用的SELinux target policy规定了apache的进程只能访问httpd_sys_content_t类型的目录或文件。
解决办法:
很简单,把目录或文件的策略类型改成 httpd_sys_content_t 就可以了
使用root用户
# chcon -t httpd_sys_content_t 目录名或文件名

然后可以用 ls -laZ 命令查看文件目录的策略类型
然后配置httpd.conf,这方面的内容网上也比较多,我也懒得打了,就此完工,mysql以后在解决吧
发表于 2008-1-20 10:30:41 | 显示全部楼层
我是直接yum安装的,还算顺利
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-20 10:40:11 | 显示全部楼层
yum后的mysql可以用马?我真想关掉selinux,但又怕不安全
回复 支持 反对

使用道具 举报

发表于 2008-1-20 13:19:48 | 显示全部楼层
可以用啊,我就直接用源里的httpd+mysql+php建了一个小型论坛和一个个人博客。
回复 支持 反对

使用道具 举报

发表于 2008-1-20 21:26:59 | 显示全部楼层
fedora 8在安装的时候可以选择装不装mysql,apache, php的吧。我也遇到Document root must be a directory 这个问题,很想解除SeLinux对apache的控制,大家知道怎么解除吗?
回复 支持 反对

使用道具 举报

发表于 2008-1-20 23:08:23 | 显示全部楼层
有人总喜欢自讨苦吃呵呵,不过还是支持一下
回复 支持 反对

使用道具 举报

发表于 2008-1-22 10:13:59 | 显示全部楼层
我也是直接用yum源里面的apache,mysql,php,一切都比较正常。再装上个phpMyAdmin就方便很多了。这个东西yun源里面也有。
回复 支持 反对

使用道具 举报

发表于 2008-1-22 11:31:34 | 显示全部楼层
...我关掉了selinux

我就用了yum的mysql 反正当时觉得版本刚好够用
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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