前些日子,获得一枚阿里云的优惠券,于是弄了台低配服务器,装centos6.2安全加固版。本来想用yum方式搭建lamp环境,结果装完php页面无法解析,搜索半天也不知道怎么解决,于是索性用源码包搭建lamp环境。手头有一个lamp源码安装的笔记,但是里边软件版本都很低,而且有些软件是用不着的,所以我边参考各软件官方的安装文档边写下此文。
1. 安装编译环境
软件编译需要用到gcc,但是阿里云的服务器默认不允许安装编译软件,修改/etc/yum.conf
将下面一句话注释掉即可:exclude=kernel
.之后yum install gcc gcc-c++ make
安装好编辑环境。
2. 安装apache
apache依赖以下几个包
apr
apr-util
pcre
apr和apr-util可以从http://apr.apache.org/download.cgi获取相应源码,通过以下两条命令将它们解压到apache源码包的srclib目录里执行
1
2
|
tar zxvf apr-util-1.5.1.tar.gz -C ./httpd-2.4.3/srclib/
tar zxvf apr-1.4.6.tar.gz -C ./httpd-2.4.3/srclib/`
|
再进入srclib目录下将这两个文件夹改名,去掉版本号(安装文档要求)。
1
2
3
|
cd httpd-2.4.3/srclib/
mv apr-1.4.6 apr
mv apr-util-1.5.1 apr-util
|
至于pcre,为了省事,直接yum安装就好了yum install pcre pcre-devel
现在,进入apache源码包目录,执行以下命令进行安装
1
2
3
4
|
./configure --prefix=/usr/local/apache --with-included-apr
//两个参数分别指定安装目录,包含apr和apr-util包
make
make install
|
到此,apache已安装完成,运行apache/usr/local/apache2/bin/apachectl start
通过浏览器访问,apache正常工作。
3.安装mysql
mysql的源码可以从http://www.mysql.com/downloads/mysql/获取,注意选择下载源码包。
从5.5版本开始,编译mysql需要使用cmake,直接yum intall cmake搞定
通过以下命令安装mysql。参考了《Linux安装mysql——源码安装》
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# 安装前的设置
shell> groupadd mysql
shell> useradd -r -g mysql mysql #新建用户组和用户,方便管理
shell> mkdir -p /usr/local/mysql/data #建立数据库存放目录
# 开始安装
shell> tar zxvf mysql-VERSION.tar.gz
shell> cd mysql-VERSION
shell> yum install ncurses-devel #cmake需要这玩意,直接yum搞定
shell> cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1
#mysql默认安装到/usr/local/mysql下,所以此处可以不设置
shell> make
shell> make install
# 安装后的设置
shell> cd /usr/local/mysql
shell> chown -R root:mysql . #更改属主为root,属组为mysql
shell> chown -R mysql:mysql data #更改data目录属主为mysql,所属组为mysql
shell> scripts/mysql_install_db --user=mysql #生成测试数据库
# 可选命令
shell> cp support-files/my-medium.cnf /etc/my.cnf #复制配置文件
shell> bin/mysqld_safe --user=mysql & #启动mysql
shell> cp support-files/mysql.server /etc/init.d/mysql #这样就可以service命令调用mysql服务了
|
cmake参数说明:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql //安装目录
-DINSTALL_DATADIR=/usr/local/mysql/data //数据库存放目录
-DDEFAULT_CHARSET=utf8 //使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci //校验字符
-DEXTRA_CHARSETS=all //安装所有扩展字符集
-DENABLED_LOCAL_INFILE=1 //允许从本地导入数据
注意事项:
重新编译时,需要清除旧的对象文件和缓存信息。
1
2
3
|
make clean
rm -f CMakeCache.txt
rm -rf /etc/my.cnf
|
启动mysql后,记得要给mysql的root用户加密码
1
2
3
4
5
6
7
|
mysql>use mysql;
mysql>desc user;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root"; //为root添加远程连接的能力。
mysql>update user set Password = password('xxxxxx') where User='root';
mysql>select Host,User,Password from user where User='root';
mysql>flush privileges;
mysql>exit
|
4.安装php
安装php的关键在于configure时指定apache的目录和mysql的目录及开启一些常用功能
1
2
3
4
|
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc/ --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets --with-pdo-mysql
#这里提示libxml2库有问题,直接yum install libxml2 libxml2-devel搞定
make
make install
|
参数说明:
-prefix=/usr/local/php 指定安装目录
-with-config-file-path=/usr/local/php/etc/ 指定配置文件目录
-with-apxs2=/usr/local/apache/bin/apxs 指定apache目录
-with-mysql=/usr/local/mysql/
-with-mysqli=/usr/local/mysql/bin/mysql_config 指定mysql目录和mysqli目录
-enable-soap 开启soap协议支持,可选
-enable-mbstring=all 开启多字节支持
-enable-sockets 开启socket,可选
-with-pdo-mysql 这个最好加上,不然将来用pdo时是个麻烦
安装完php后,将配置文件复制到指定的目录下,进行相关设置
之后,修改apache的配置文件,使其支持php
重启apache服务,在htdocs里写个经典的phpinfo.php,测试成功。
至此,lamp环境搭建完成。有些库比如gd库等并不是lamp环境必须的东西,所以没有出现在本文中,将来需要的时候可以自行添加。