http://os.51cto.com 2008-02-25 14:56 crccw
Linux公社 我要评论(0) ·
摘要:Linux安装我就不多说了,N早前就装好了的,最近开始学习php,自然要有个本地测试环境,但安装AMP的过程还是感觉比较艰难的,特地些出来,与大家分享。 Linux安装我就不多说了,N早前就装好了的,最近开始学习php,自然要有个本地测试环境,但安装AMP的过程还是感觉比较艰难的,特地些出来,与大家分享。 编者注:LAMP就是Linux+apache+mysql+php的缩写。 先在apache的官方站上下载httpd-2.2.6,解压后开始编译,注意要使用dso ./configure --enable-so 第一次安装的时候我就忘了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 然后进行设置 /usr/local/mysql/scripts/mysql_install_db
--user=mysql chown -R root /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下做个连接就可以了 ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs \ --with-mysql=/usr/local/mysql make 如果你要装zlib之类的自己在编译选项中加入就可以了. 安装完后启动apache,不料提示出错 Document root must be a directory 上gg搜索了半天,得知这个是selinux造成的。 检查 avc message,查看 /var/log/messages文件,发现有类似以下内容的这样一段: hostname kernel: audit(1098222899.827:0):
avc: \ 果然是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以后在解决吧 |
|