1.Apache
源码包安装apche过程中需要依赖一下的包:
apr-1.4.5.tar.gz
apr-util-1.3.12.tar.gz
pcre-8.30.tar.gz
httpd-2.2.4.tar.gz
1.下载apr的源码包(http://apr.apache.org/download.cgi),解压
tar -zxf apr-1.4.5.tar.gz
指定安装目录:
./configure --prefix=/home/software/apr
编译安装
make
make install
2下载apr-util的源码包(http://apr.apache.org/download.cgi)
解压
tar -zxf apr-util-1.3.12.tar.gz
编译安装:
./configure --prefix=/home/sofware/apr-util--with-apr=/home/software/apr
3.下载pcre源码包(pcre.org)
解压:
tar -zxfpcre-8.30.tar.gz
编译安装:
./configure --prefix=/home/serapy
make
make install
注:编译过程中可能出下如下错误
make libtool: compile: unrecognized option`-DHAVE_CONFIG_H’
这是需要安装gcc-c++
yum -y install gcc-c++
然后在重新编译安装
4.安装apache
下载httpd-2.2.4.tar.gz
./configure --prefix=/home/software/apache--with-apr=/home/software/apr--with-apr-util=/home/software/apr-util/ --with-pcre=/home/software/
make
make install
编辑apache/conf/httpd.conf ,注销掉ServerName的注视,将ServerName 后的主机名更改为本机名
vim httpd.conf
启动apache
/home/software/apache/bin/apachectl start
注:RHEL可能默认安装了httpd2.2.3
[root@slave1 ~]#rpm -qa |grep httpd
httpd-2.2.3-43.el5
可以将其删除,以免和新安装的apache混淆。
注:可能会出现如下的错误:
(13)Permission denied: make_sock: could not bind to address[::]:80
(13)Permissiondenied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shuttingdown
Unable to open logs
这是由于普通账号默认无权启动监听80端口的
还有可能在访问过程中出现:you don't have permission to access / onthis server
这可能是由于:/home/software其他人没有读和可执行权限的原因
2.MySQL
采用源码安装的方式,需要以下依赖包
cmake-2.8.8.tar.gz
ncurses-devel
mysql-5.5.28.tar.gz
1.安装cmake 和 ncurses-devel
I>
下载cmake源码包: cmake-2.8.8.tar.gz
解压,进入解压目录,编译安装
./configure --prefix=/home/mango/cmake
make
makeinstall
II>
cmake mysql时需要依赖包:ncurses-devel ,先确认系统安装了该包
2.安装mysql
下载mysql源码包:mysql-5.5.25.tar
解压 ,重命名为mysql ,move 到/home/mango/ 目录下 (注:这里希望mango用户来管理mysql,将mysql安装到了mango用户的home目录,要确保安装目录有755权限)
进入解压目录,编写编译脚本:mysql.sh,内容如下(使用时,将注释删除掉)
#!/bin/sh
/home/software/cmake/bin/cmake-DCMAKE_INSTALL_PREFIX=/home/mango/mysql \#安装目录
-DMYSQL_DATADIR=/home/mango/mysql/mysqldata\#据库存放地址
-DSYSCONFDIR=/home/mango/mysql/mysql/ect \#配置文件存放地址
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/home/mango/mysql/tmp/mysqld.sock\#UNIX套接字文件地址
-DENABLED_LOCAL_INFILE=1 \#许从本地导入数据
-DEXTRA_CHARSETS=all \#装所有扩展字符集
-DMYSQL_USER=mango \
-DDEFAULT_CHARSET=utf8 \#据库的编码配置
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_TCP_PORT=3306 #听端口
###################################################################################
然后编译:
bash mysql.sh
期间可能出错需要安装:ncurses-devel
之后删除CMakeCatche,安装ncurses-devel
重新编译:
bash mysql.sh
make
make install
进入mysql安装目录下的脚本目录
cd/home/mango/mysql/scripts
安装mysql默认数据库
./mysql_install_db--basedir=/home/mango/mysql --datadir=/home/mango/mysql/mysqldata--user=mango
配置文件
cp support-files/my-medium.cnf/home/mango/mysql/my.cnf
注:是将my.cnf直接放到mysql的安装目录下,而非mysql/etc/下
//这个配置仅适合小内存系统(32M - 64M)
打开如下注释:
innodb_data_home_dir = /usr/local/mysql/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir= /usr/local/mysql/data
innodb_buffer_pool_size= 16M
innodb_additional_mem_pool_size= 2M
innodb_log_file_size= 5M
innodb_log_buffer_size= 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout= 50
skip-name-resolve #这个很重要,能提升远程主机访问mysql的速度
添加默认字字符集:(测试的时候,启动Mysql报错,提示unknown variable'default-character-set=utf8';好像系统默认就是utf8的)
[client]
default-character-set = utf8 // 添加编码支持
[mysqld]
default-character-set= utf8 // 添加编码支持
basedir = /usr/local/mysql
//设置安装目录,这样在系统启动时才能正确运行到/etc/rc.d/init.d/mysql start
可能还需要添加
[mysqld_safe]
log-error =/home/mango/mysql/var/log/mysqld.log
pid-file = /home/mango/mysql/var/mysqld.pid
启动和关闭:
sumango #进入安装mysql的账户,编辑~./bashrc 将mysql路径添加到PATH变量
./bin/mysqld_safe --basedir=/home/mango/mysql--datadir=/home/mango/mysql/mysqldata --user=mango& //启动MySQL
注:首次启动MySql后,root密码为空,可以通过如下命令进入
mysqladmin -u root -p shutdown
//这里Mysql的root用户还没有配置密码,所以为空值
Mysql创建用户及权限设置:
1.用root用户登录mysql
mysql –uroot –p
2.创建用户 mango
#创建用户mango,可以从localhost主机登录数据库。
create user'mango'@'localhost' identified by 'mango';
#赋予权限,可以从任意主机登录数据库(使用了通配符:%);
grantall privileges on *.* to 'mango'@'%' identified by'mango';
有3种命令行参数可以影响mysql读取配置文件的行为:
--no-defaults:mysql不读取任何配置文件
--defaults-file=/path/to/file:mysql只读取该指定文件,--defaults-extra-file指定的其它文件
--defaults-extra-file=/path/to/file:mysql读取/etc/my.cnf全局配置文件之后再读取指定文件
注:
1.启动过程中可能出现权限问题,这是可能在系统的/etc/目录下也有一个my.cnf配置文件,删除即可
2.还可能出现执行语句:
./mysqladmin-u mango -p shutdown 没有权限的问题
这样即可:
./mysqladmin-u root -p shutdown
3.mysql.sock丢失恢复,突然mysql.sock没有了。数据库崩溃了启不来。
解决方法如下:
Mysql文件mysql.sock丢失的原因一般是因为配置文件不一致的原因,mysqld 错误启动,mysqld_safe 会清除一次mysql.sock 。判断解决故障时没有切换到mysql用户,造成权限有问题,无法创建mysql授权表,所以也就无法创建/tmp/mysql.sock 和hostname.pid文件。
因此,总结解决方法如下:
mysql_install_db//重建授权表
mysqld_safe&
mysql//测试
mysq>bye;
文件已经解决,重新生成新的 tmp/mysql.sock 和 hostname.pid
4.启动报错:unknown variable'default-character-set=utf8'
是default-character-set=utf8这个设置项惹得祸....
因为MYSQL 5.5修改了字符集设置参数
应该改成:
用character_set_server=utf8 取代default-character-set=utf8
3.PHP
1.下载源码包php-5.4.3.tar.gz
2.解压
3.编译安装
./configure--prefix=/home/mango/php --with-apxs2=/home/mango/apache/bin/apxs--with-mysql=/home/mango/mysql
注:编译时,提示错误:configure: error: xml2-config not found. Pleasecheck your libxml2 installation ,需要安装libxml2 和 libxml2-devel
重新编译
make
make install
配置文件:
cp php.ini-development /home/mango/php/php.ini
可以参考一下方式:
./configure --prefix=/home/mango/php //安装位置
--enable-mbstring //设置phh支持多字节字符串
--with-apxs2=/home/mango/apache/bin/apxs //设置apache服务支持apxs位置
--with-mysql=/home/mango/mysql //设置 mysql 程序安装位置
--with-config-file-path=/home/mango/php //设置php 程序配置文件位置
4.配置APACHE,支持 .PHP
编辑APACHE配置 vim/home/software/apache2/conf/httpd.conf
搜索 AddType 找到类似AddType application/x-compress .Z
在其下增加一行
AddType application/x-httpd-php .php.phtml
AddType application/x-httpd-php-source .phps
5.重启apache
6.写如下测试页测试:
cd/home/software/apache2/htdocs
#注(apache2网页文档地址由apache2/conf/httpd.conf中的DocumentRoot指定 )
viminfo.php
写入以下内容:
<?php
phpinfo();
?>
访问 localhost/info.php 出现版本信息界面
4.phpMyAdmin
1.下载源码包
phpMyAdmin-3.3.1-all-languages.tar.gz
2.解压
3.把解压后的文件放到apache网页的存放路径下
#重命名为phpadmin,并放到apache网页的存放路径
mv phpMyAdmin-3.3.1-all-languages phpadmin
mv phpadmin /home/software/apache2/htdocs/
4.更改配置
cd /home/software/apache2/htdocs/phpadmin
cp config.sample.inc.php config.inc.php
编辑 配置文件
vi config.inc.php
对如下的字段进行配置即可,没有的可以自己添加:
$cfg['Servers'][$i]['auth_type'] ='http';//认证模式,可以有cookie、http和config
$cfg['Servers'][$i]['host'] ='localhost';//设置你的数据库服务器的访问IP
$cfg['Servers'][$i]['user'] = 'root';//config认证模式时的访问用户名
$cfg['Servers'][$i]['connect_type'] ='tcp';// 连接方式,tcp(默认)或socket
$cfg['Servers'][$i]['extension'] = 'mysqli'; //MYSQL扩展,可以为mysql和mysqli(推荐mysql4.1.0以上版本
注:登录过程中可能出现的问题:
1.PHPMYADMIN打开登录页面的时候提示缺少mysqli 扩展,请检查 PHP配置
在系统里搜索了下mysqli.so文件,结果没有,于是只有手动编译mysqli扩展文件
进入开始安装php环境时的php源码包,如果已经删除的话可以再下载一个相同版本php包解压即可
[root@test soft]#cd php-5.2.1
[root@testphp-5.2.1]# cd ext/mysqli/
[root@testmysqli]# /usr/local/php/bin/phpize
Configuringfor:
PHP ApiVersion: 20041225
Zend Module ApiNo: 20060613
Zend Extension ApiNo: 220060519
[root@testmysqli]# ./configure --prefix=/usr/local/mysqli--with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/mysql/bin/mysql_config
[root@testmysqli]# make
[root@testmysqli]# make test
[root@testmysqli]# make install
Installing sharedextensions: /usr/local/php/lib/php/extensions/no-debug-zts-20060613/然后编辑php.ini文件
[root@testmysqli]# vi /etc/php.ini找到extension_dir = "./"修改为
extension_dir ="/usr/local/php/lib/php/extensions/no-debug-zts-20060613/"
extension ="mysqli.so"重新启动apache即可看到已经加载mysqli成功,我的环境下重启apache没有成功,重启下服务器即可生效
其他扩展也是同样的方法
2.总是无法登录,即使输入正确密码,也只是刷新一下页面,登录不成,并且最要命的是没有任何错误提示
打开config.inc.php:
$cfg['Servers'][$i]['auth_type'] = 'cookie';
改成:
$cfg['Servers'][$i]['auth_type'] = 'http';