LAMP 目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP/Perl/Python)
,它们免费开源。
下面我们来看一下他们的安装。
Lamp 源码搭建的环境必须有
Development Libraries
#开发库
Development Tools
#开发工具
X Software Development
#X软件开发
Legacy Software Development
#传统软件开发
这四个组件。
我们可以通过yum来查看,所以要配置yum
可以通过
yum grouplist
查看
我的都装过了,如果你的没装,可以通过
yum groupadd
安装(如
yum groupadd "Legacy Software Development"
)
1、
我们来安装apache
(1)可以在
http://httpd.apache.org/
官网上下载最新的
apache,如
httpd-2.4.4.tar.bz2
(
2
)环境需要
apr
、
apr-util
支持:
apr
apache的可移植的运行库
apr-util
apache的可运行工具
解压
[root@zlj ~]# tar -zxvf apr-1.4.5.tar.gz -C /usr/local/src/
[root@zlj ~]# tar -zxvf apr-util-1.3.12.tar.gz -C /usr/local/src/
[root@zlj ~]# tar -jxvf httpd-2.4.4.tar.bz2 -C /usr/local/src/
可以通过
[root@zlj apr-1.4.5]# ./configure --help |less
查看可以跟哪些参数
[root@zlj apr-1.4.5]# ./configure --prefix=/usr/local/apr
#将其安装在
/usr/local/apr
目录下
[root@zlj apr-1.4.5]# make && make install
#编译安装
(
3
)可以通过
[root@zlj apr-util-1.3.12]# ./configure --help |less
查看可以跟哪些参数
--with-apr=PATH prefix for installed APR or the full path to
apr-config
指定
apr-config的目录
[root@zlj
apr-util-1.3.12]# ./configure --with-apr=/usr/local/apr/bin/apr-1-config
[root@zlj apr-util-1.3.12]# make && make install
可以通过
[root@zlj httpd-2.4.4]# ./configure --help |less
查看可以跟哪些参数
./configure常用的选项有如下
--prefix=/usr/local/apache
#安装目录(填写这个有助对apache单独管理)
--sysconfdir=/etc/httpd
#apache的配置脚本所在的目录
--enable=so
#
启用以dso模式加载模块 动态共享对象
--enable-ssl
#
Secure Sockets Layer
(对网络传输数据加密)
--with-ssl=/usr/local/ssl
--enable-rewrite 支持URL重写
--with-z 使用zlib 压缩工具
--enable-mods-shared=most
--enable-suexec
--with-suexec-caller=daemon(用户名)
生成配置文件
[root@zlj httpd-2.4.4]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-rewrite
--with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-pcre -with-z --enable-mpms-shared=all
[root@zlj httpd-2.4.4]# make && make install
# 编译安装
(
4
)添加
man手册
[root@zlj ~]# vim /etc/man.config
(
5
)因为
apache头文件总是被使用,所以
创建头文件连接
[root@zlj ~]# ln -s /usr/local/apache/include/ /usr/include/apache
(
6
)启用
apache
[root@zlj ~]# /usr/local/apache/bin/httpd -k start
2、
安装mysql
(1) 我们可以在
http://www.mysql.com
官网上下载
查看安装手册
[root@zlj mysql-5.6.10]# vim INSTALL-SOURCE
根据配置文件,需要执行
cmake .
Make
make install
(2)环境需要用到CMAKE
将其拆包
[root@zlj ~]# tar -zxvf cmake-2.8.10.2-Linux-i386.tar.gz -C /usr/local/src/
由于它是二进制文件,就不需要安装了,我们将它写入环境变量
[root@zlj tmp]# vim /etc/profile
(
3
)
[root@zlj mysql-5.6.10]# cmake .
(
4
)
[root@zlj mysql-5.6.10]# make && make install
(
5
)创建用户和用户组
[root@zlj mysql]# groupadd mysql
#创建用户
[root@zlj mysql]# useradd -r -g mysql mysql
#创建系统用户
[root@zlj mysql]#
(
6
)改变文件的所有者和所属组
[root@zlj mysql]# chown -R mysql .
[root@zlj mysql]# chgrp -R mysql .
(
7
)执行脚本
[root@zlj mysql]# scripts/mysql_install_db --user=mysql
(
8
)修订所有者所属组
[root@zlj mysql]# chown -R root .
[root@zlj mysql]# chown -R mysql data
(9)创建配置文件
[root@zlj mysql]# cp support-files/my-default.cnf /etc/my.cnf
(
10
)创建管理脚本
[root@zlj mysql]# cp support-files/mysql.server /etc/init.d/mysqld
(
11
)修改权限,给它执行权
[root@zlj mysql]# chmod a+x /etc/init.d/mysqld
(
12
)启动
(
13
)添加环境变量
PATH=$PATH:/usr/local/src/cmake-2.8.10.2-Linux-i386/bin:/usr/local/mysql/bin/
[root@zlj tmp]# vim /etc/profile
(
14
)为了让它能够加载
mysql的动态链接库,我们就编辑配置文件
[root@zlj ~]# vim /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib/
[root@zlj ~]# ldconfig
(
15
)让它加载
让它的头文件能够被系统引用,创建软连接
[root@zlj ~]# ln -s /usr/local/mysql/include/ /usr/include/mysql
3、安装php
(1)我们可以在
http://www.php.net/
官网上下载最新的
php-5.4.14.tar.bz2
解压
[root@zlj ~]# tar -jxvf php-5.4.14.tar.bz2 -C /usr/local/src/
(
2
)
php的配置选项
--prefix=/usr/local/php
#指定安装目录
--with-apxs2=/usr/local/apache/bin/apxs
#是一个程序,告诉apache php装在哪(同时加入模块)
--with-mysql=/usr/local/mysql
#
指明mysql的安装位置
--with-mysqli=/usr/local/mysql/bin/mysql_config
#
调用myql接口
-enable-mbstring=all
#画图工具
--with-xml
#文件存储
--with-png
#图片
--with-jpeg
#图片
--with-zlib
#压缩
--with-gd
--with-freetype
执行
[root@zlj php-5.4.14]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --enable-xml --with-png-dir --with-jpeg-dir --with-zlib --enable-mbstring --with-freetype-dir
生成配置文件成功
(
3
)
root@zlj php-5.4.14]# make $$ make install
warning: pear/PEAR requires package "pear/Structures_Graph" (recommended version 1.0.4)
warning: pear/PEAR requires package "pear/XML_Util" (recommended version 1.2.1)
[PEAR] PEAR - installed: 1.9.4
Wrote PEAR system config file at: /usr/local/php/etc/pear.conf
You may want to add: /usr/local/php/lib/php to your php.ini include_path
[PEAR] Structures_Graph- installed: 1.0.4
[PEAR] XML_Util - installed: 1.2.1
/usr/local/src/php-5.4.14/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin
ln -s -f /usr/local/php/bin/phar.phar /usr/local/php/bin/phar
Installing PDO headers: /usr/local/php/include/php/ext/pdo/
它提示两条警告,不用管它
(
4
)让
php加入到环境变量中
在
/etc/profile
中添加
/usr/local/php/bin/
[root@zlj php-5.4.14]# vim /etc/profile
(
5
)配置库文件,能够被系统调用
[root@zlj php-5.4.14]# vim /etc/ld.so.conf.d/php.conf
/usr/local/php/lib
[root@zlj php-5.4.14]# ldconfig
#刷新环境变量
(
6
)
[root@zlj php-5.4.14]# ln -s include /usr/include/php
#创建头文件的链接
(7)让apache 能够加载php页面,编辑httpd.conf
4、
测试
(1)启用apache 、mysql
[root@zlj php-5.4.14]# /usr/local/apache/bin/httpd -k start
[root@zlj php-5.4.14]# service mysqld start
访问
能够访问,说明
apache正常
(2)看看php能否正常工作
[root@zlj htdocs]# mv index.html index.php
[root@zlj htdocs]# vim index.php
<?php
phpinfo();
?>
访问,看到下面的页面说明
php
正常
(
3
)查看数据库连接是否正常
创建管理员密码
[root@zlj htdocs]# mysqladmin --u root -p password '123'
由于新安装的,没有密码直接回车
编辑网页文件
[root@zlj htdocs]# vim index.php
<?php
$link=mysql_connect('127.0.0.1','root','123');
if($link)
echo "ok";
else
echo "not";
?>
再次访问
可以看到
php与mysql连接正常
5、
优化
a.我们可以写脚本让server 能够管理我们的apache
[root@zlj ~]# vim httpd
#/bin/bash
# chkconfig: 2345 90 60
# description: A very good web server
function start(){
echo -n "httpd is start ."
sleep 1
echo -n " ."
sleep 1
if [ -e /var/lock/subsys/httpd ];then
sleep 1
echo -e "\033[31m [faile]\033[0m"
else
/usr/local/apache/bin/httpd -k start
sleep 1
echo -e "\033[32m [ok]\033[0m"
touch /var/lock/subsys/httpd
fi
}
function stop(){
echo -n "httpd is stoping ..."
if [ -e /var/lock/subsys/httpd ];then
/usr/local/apache/bin/httpd -k stop
sleep 1
echo -e "\033[32m [ok]\033[0m"
rm -f /var/lock/subsys/httpd
else
sleep 1
echo -e "\033[31m [faile]\033[0m"
fi
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop;start
;;
*)
echo "Usage {start|stop|restart}"
;;
esac
将其移动到 /etc/init.d/目录下
[root@zlj ~]# mv httpd /etc/init.d/
[root@zlj ~]# chmod a+x /etc/init.d/httpd
#给它执行权
让它开机自动启动
[root@zlj ~]# chkconfig --add httpd
说明我们的脚本能正常工作
b、为了方便管理数据库,我们安装phpmyadmin
在这个官网上
http://sourceforge.net/projects/phpmyadmin/
下载最新的
我的是
phpMyAdmin-3.5.8-all-languages.zip
解压
[root@zlj ~]# unzip phpMyAdmin-3.5.8-all-languages.zip
[root@zlj phpMyAdmin-3.5.8-all-languages]# mkdir /usr/local/apache/htdocs/phpmyadmin
#创建目录
[root@zlj phpMyAdmin-3.5.8-all-languages]# cp -r * /usr/local/apache/htdocs/phpmyadmin/
#将其拷到apache目录下
访问
http://192.168.102.7/phpmyadmin/
填写
mysql的用户名和密码 ,执行后
提示我:
配置文件现在需要一个短语密码。
缺少
mcrypt
扩展。请检查 PHP 配置。
1、
原因是
cookie
缺少值
打开
/usr/local/apache/htdocs/phpmyadmin/libraries/config.default.php
在
$cfg['blowfish_secret'] = '这里就是需要的短语密码';(短语密码请随意填写)
[root@zlj phpMyAdmin-3.5.8-all-languages]# vim /usr/local/apache/htdocs/phpmyadmin/libraries/config.default.php
2、缺少
mcrypt
安装
mcrypt
在官网
http://www.rpmfind.net上下载
[root@zlj ~]# rpm -ivh mcrypt-2.6.4-3.el5.remi.i386.rpm
warning: mcrypt-2.6.4-3.el5.remi.i386.rpm: Header V3 DSA signature: NOKEY, key ID 00f97f56
error: Failed dependencies:
libmcrypt.so.4 is needed by mcrypt-2.6.4-3.el5.remi.i386
libmhash.so.2 is needed by mcrypt-2.6.4-3.el5.remi.i386
[root@zlj ~]#
提示我们缺少
libmcrypt
、
libmhash
在官网
http://www.rpmfind.net上下载
下载安装
[root@zlj ~]# rpm -ivh libmcrypt-2.5.7-3.el5.remi.i386.rpm
[root@zlj ~]# rpm -ivh libmcrypt-devel-2.5.7-3.el5.remi.i386.rpm
#同样将
libmcrypt
的开发库装上
[root@zlj ~]# rpm -ivh mhash-0.9.9-1.el5.rf.i386.rpm
[root@zlj ~]# rpm -ivh mcrypt-2.6.4-3.el5.remi.i386.rpm
然后,重新编译安装
php
清除配置文件
[root@zlj php-5.4.14]# make clean
添上
--with-mcrypt
再编译
[root@zlj php-5.4.14]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --enable-xml --with-png-dir --with-jpeg-dir --with-zlib --enable-mbstring --with-freetype-dir --with-mcrypt
编译成功
再次登录看看
能够正常。