centos 6.6下搭建lamp
- 步骤如下
- apache安装
- mysql安装
- php安装
- 问题及解决方案
- 安装apache相关问题
- 安装mysql相关问题
- 安装php相关问题
环境展示(以示清白)
搭建步骤
- apache的安装
下载apache
下载apache安装时所需依赖(apr,apr-util,pcre)
下载这些依赖的原因,在此不表(每个依赖包作用不一,请自行百度),以上截图是我安装环境时下载的所有依赖和部分安装包,apache只用到apr,apr-util,pcre,注意:安装php时仅有这些依赖应该还不够。
执行tar -zxvf解压各个安装包并安装(本人安装顺序apr,apr-util,pcre)
首先说明一点,我所用到的命令行,全部都是在root用户下执行的,解压之后,cd到对应目录,执行命令
1:./configure –prefix=/usr/local/[对应的安装包名] (配置)
2: make&&make install(编译&&安装)
在此说明一下,我个人是安装在这个目录的,但是如果你不需要这样安装也可以,不过建议是在比较了解linux系统的情况下。
还需要说明一点就是所有安装步骤必定要遵循先安装依赖,再安装软件的顺序安装,请不要问为什么,因为这好比一句成语,巧妇难为无米之炊,没有米,怎么炊
如果有同学对./configure命令不了解怎么使用,举个例子给大家:
./configure --prefix=/usr/local/apr
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
./configure --prefix=/usr/local/pcre
./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre
如果问后面的那一串是啥,是依赖,从哪里来,从./configure文件里来,如果你会shell脚本的话可以vi打开看一看,就知道为什么是这么写了(忘了说一件重要的事,我安装的是apache 2.4.18,安装它时是需要安装这些依赖的,其他版本就不知道了,不过如果配置编译时报错的话,那说明就需要安装,还有就是我测试过用yum这种省事的方法安装,但是配置apache时报错找不到apr-configure依赖,所以我这里没有用yum安装)
安装mysql
下载mysql
按照官方文档进行如下步骤
官方英文版步骤
使用rpm将mysql安装文件导入到yum库中(这两句是一个脚本,下面的那句是案例)
检查yum库中是否已经存在mysql安装源
检查可用的mysql版本库源
安装mysql
开启mysql服务
检查mysql开启状态(可省略)
利用第一句找到mysql初始密码,然后登录并修改密码(由于mysql的安全机制,新密码必须包含大写或小写字母,数字和特殊符号,长度必须>=8)安装php
根据之前的经验,安装php前先安装依赖,这里的依赖就是最开始的图片中的(libmcrypt,mcrypt,mhash)本人是按照这个顺序安装的,其他的安装语句就不写了,只写最关键的配置语句,因为这是最容易报错的。
需要注意的是安装libmcrypt,mcrypt,mhash不需要指定目录,指定目录的话,配置php时报找不到mcrypt,原因我不太清楚,有清楚的大牛,可以留言告诉我一下,所以前三句configure没有指定安装目录,根据我的理解是好像就算是指定了目录,他也只会去libmcrypt默认安装路径去找(在我的机器上默认安装路径是在/usr/local/lib/)
./configure
./configure
./configure
//以下配置是我个人服务器上的配置
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --disable-cli --enable-shared --with-libxml-dir --with-gd --with-openssl --enable-mbstring --with-mcrypt --with-mysqli --with-mysql --enable-opcache --enable-mysqlnd --enable-zip --enable-exif --with-zlib-dir --with-pdo-mysql --with-jpeg-dir --with-freetype-dir --with-curl --without-pdo-sqlite --without-sqlite3
//第二台服务器php配置
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-zlib-dir --with-bz2 --with-tiff-dir --with-libxml-dir --with-gd=/usr/local/ --with-freetype-dir --with-jpeg-dir --with-png-dir --with-ttf --enable-mbstring --enable-exif --with-curl --with-mcrypt --with-gd --with-mysql=/usr/lib/mysql --with-config-file-path=/etc --disable-ipv6
遇到的问题
apache相关问题
一般也就是依赖找不到,或者没有安装的错误,只要把依赖安装对,就不会有什么问题了,前面也提到了,我用yum安装依赖,编译apache时失败,报找不到apr-config,所以如果你也遇到此类错误的话,建议是用笨方法(./configure)安装一遍
关于apache局域网无法访问的问题解决思路:
1:首先确定httpd.conf配置文件,Directory配置是否正确
2:其次确定iptables(防火墙端口是否打开)配置/etc/sysconf/iptables端口映射mysql相关问题
上面也交代了,修改密码的时候会出现报错,只要按照官方的要求(长度>=8+特殊字符+大小写字母+数字)应该就没问题了- php遇到的问题
yum安装依赖,没有测试过,手动安装的话不要再指定目录了,至于为什么,我也不清楚,有清楚的大牛可以留言告诉我,我会更新到此文章
忘了一件重要的事儿,如何使php跟apache关联,在httpd.conf里搜索AddType,然后在搜到的结果的下面加上这一句
AddType application/x-httpd-php .php .phtml
开启vhosts的方法也很简单,搜索httpd.conf里的vhosts然后去掉include前面的注释符#,在对应的目录找到httpd_vhosts文件,配置你的虚拟主机就可以了,配置虚拟主机
//第一种方式基于ip配置
<VirtualHost 192.168.1.12:80>
ServerName www.test1.com
DocumentRoot /www/test2/
<Directory "/www/test2">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
</Directory>
</VirtualHost>
//第二种方式 基于主机名
<VirtualHost *:80>
ServerName www.test2.com
DocumentRoot /www/test2/
<Directory "/www/test2">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
两种方式挑一种合适自己的就好了,但是要对应的配置/etc/hosts文件
关于php依赖安装的问题,也有了新的发现,第二台服务器编译php的时候出现了很多错误,多数都可以用yum来解决,经常性的是因为-devel这个文件没有安装,所以我猜想是不是之前的依赖包没有起效果的原因是不是也是因为没有安装-devel(有待于测试)
关于php编译参数自定义的知识请参考下面这篇
php编译参数详解
关于php编译报错解决方案请参考下面这篇
php编译报错解决