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目录下
填写mysql的用户名和密码 ,执行后
提示我:
配置文件现在需要一个短语密码。
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
编译成功
再次登录看看
能够正常。