需要网上下载的源文件包下载地址:
http://download.mysql.cn/download_file/gz/5.0/mysql-5.0.22.tar.gz
http://cn.php.net/distributions/php-5.3.4.tar.gz
http://mirror.bjtu.edu.cn/apache//httpd/httpd-2.2.17.tar.gz
http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.6.tar.gz
利用ssh远程管理工具,将从上述地址下载的软件上传到/usr/src
Linux文件系统不存在以后缀来区分类型的,一般以目录来区分,所以最好将源代码包存放在/usr/local/src,可以将解压的后的文件存放在/usr/local/
Lamp平台的安装最好,最好按照linux,apache,mysql,php的顺序安装,方便编译的时候相互联系调用,当然假如你水平够高了,也可以不需要安装这个顺序安装,但是想必你也就不需要看这份文档了。
第一部,apache的安装
cd /usr/src 进入源文件存放文件夹
tar zxvf httpd-2.2.17.tar.gz 解压释放源文件,默认是释放在当前文件夹下
cd /httpd-2/2/17 进入释放后的文件夹
./configure \
--prefix=/usr/local/apache/ \ /*配置apache服务存放的位置*/
--enable-so \ /*以动态共享对象(DSO)编译*/
--enable-rewrite /*基于规则的URL操控*/
/**/ 之间的东西为注释,这些命令本来可以写并为一行, 但是为了方便学习,将一条命令,做为一行,便于查看。
make 编译,必须做这一步,不编译就不能进行下一步的安装
make install 编译安装。Q
编译安装完整之后,最好对安装的结果进行测试,给自己的主机一个ip,ip的设置可以通过netconfig图形化的设置,也可以在/etc/sysconfig/network-scripts/ifcfg-eth0下直接修改网卡的配置文件。选一台客户机测试,当页面出现it works! 则说明服务成功建立。
第二部,安装mysql
useradd mysql
cd /usr/src
tar zxvf mysql-5.0.22.tar.gz
cd mysql-5.0.22
cp Support-files/my-medium.cnf.sh /etc/my.cnf
Support-files文件下有多个文件库,是适合不同大小类型的数据库模版,可以分析自己的工作环境自己选择,我这里选择中型的搭建,将它复制为/etc/my.cnf。名字必须为my.conf。回车后可能出现overwrite,选择Y,因为有些linux原先默认是安装了这个的。
配置编译
Mysql的安装需要依赖1个库文件,所以在编译之前先将这个库安装好,也就之前下载的ncurses-5.6.库
tar zxvf /usr/src/ncurses-5.6.tar.gz -C /usr/src/ /*大C后面跟着的是解压释放的位置*/
cd /usr/src/ncurses-5.6
./configure \
> --prefix=/usr/ \ /*配置ncurses库存放的位置*/
> --with-shared \ /*配置ncurses为共享库*/
> --without-debug /*配置ncurses库不测试*/
make
make install
ncurses库文件安装完成后,就可以对mysql进行安装了。
./configure \
--prefix=/usr/local/mysql
make
make install
编译安装好后,首先要初始化数据库,让一些数据库系统本身需要的文件建立起来。
./scripts/mysql_install_db 初始化数据库
cd /usr/lo cal/mysql
修改mysql文件的权限,将权限赋予给mysql用户,和mysql组
chown -R mysql.mysql . /*最后那一点代表着当前文件夹*/
cd bin
运行mysql服务,
./mysqld_safe --user=mysql & /*命令后面加上&,代表后台运行*/
后台运行mysql 成功会提示Starting mysqlddaemonwithdatabases from/usr/local/mysql/var
netstat -ntl 查看端口状态
3306端口,mysql的监听端口,次端口启用,则说明mysql配置成功
./mysqladmin -u root password '123' 修改数据库管理员的密码,默认是没有设置密码的,很危险,所以必须设置一个密码,此处设置为123.
客户端登陆测试
./mysql -u root -p 后面跟回车,回车之后会提示你输入密码,此处密码123
出现mysql> , 则说明进入mysql 数据库了,此时你可以输入写命令测试,比如查看数据库show databases;
到此,mysql 的安装结束
第三部,php的安装
安装php之前,需要安装3个库文件。分别是
libxml2
libxml2-devel
zlib-devel
这个3库文件安装光碟里面有,连接光碟,再挂载光碟到/mnt
3个库文件的安装是有先后顺序要求的,他们之间存在依赖关系,libxml2-devel的安装必须依赖于zlib-devel。所以最先安装zlib-devel
mount /dev/cdrom /mnt
cp /mnt/CentOS/zlib-devel-1.2.3-3.i386.rpm /usr/src/
rpm -ivh /usr/src/zlib-devel-1.2.3-3.i386.rpm
cp /mnt/CentOS/libxml2-2.6.26-2.1.2.8.i386.rpm /usr/src/
rpm -ivh /usr/src/libxml2-2.6.26-2.1.2.8.i386.rpm
cp /mnt/CentOS/libxml2-devel-2.6.26-2.1.2.8.i386.rpm /usr/src/
rpm -ivh /usr/src/libxml2-devel-2.6.26-2.1.2.8.i386.rpm
cd /usr/src
tar zxvf php-5.3.4.tar.gz
cd php-5.3.4
./configure \
> --prefix=/usr/local/php \
> --with-apxs2=/usr/local/apache/bin/apxs \ /*告诉php用apache下的这个进程加载
php动态共享对象*/
> --with-mysql=/usr/local/mysql/ \ /*告诉php,mysql在什么位置*/
> --with-config-file-path=/usr/local/php /*告诉php在哪去寻找配置文件*/
make
make install
cp php.ini-development /usr/local/php/php.ini 建立php 的配置文件
这个版本的php有2个版本的php配置模板,php.ini-production和php.ini-development,选择其中一个就可以了,还有写版本的php,其配置文件模板是php.ini-dist。效果是一样的,复制到php安装文件下php.ini就可以了。
修改apache配置文件对php的支持
动态共享对象的加载,apache能够自己加载不需要我们去设置了,我们只需要在应用程序对象处加载一行对php的支持
Vi /us/local/apache/conf/http.conf
在命令行模式下输入“/”再输入"AddTyepe"找到应用程序对象,再加上一行
ADDType application/x-httpd-php .php
保存退出,重启apache服务
/usr/local/apache/bin/apachectl stop
/usr/local/apache/bin/apachectl start
在这里重启apache服务可能遇到一个问题Permission denied。在做很多其他服务也会碰到这个问题,一般的解决方法是。
首先关闭selinux,编辑/etc/sysconfig/selinux
vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing
如果SELINUX已经是 SELINUX=disabled,那么就不用改了,否则就把SELINUX=enforcing 注释掉,新加一行:
SELINUX=disabled
保存,退出
如果还没有解决在你保证SElinux 被disable后.还执行下chcon -t texrel_shlib_t如: chcon -t texrel_shlib_t /路径/路径/名字.so (这个文件视具体执行文件.)
我这里是执行chcon -t texrel_shlib_t /usr/local/apache/modules/libphp5.so
然后就可以重新启动apache服务了。
最后测试
你可以在/usr/local/apache/htdocs/下建立一个最简单的php文件进行测试
vi test.php
<?php
Phpinfo();
?>
在你的客户机上输入本地的ip/test.php如果不能够成功,则检查之前的步骤,不仔细修改再测试.
到此lamp架构的搭建已经完成,希望对你能够有点帮忙,愿大家在这条路上能够走的更远,更深。