第一部分
一、相关包的下载
zlib(支持压缩的工具) 官方http://www.zlib.net/
jpeg(支持jpg格式的图片) 官方ftp://ftp.uu.net/graphics/jpeg
ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
libpng(支持png 格式的图片) 官方http://www.libpng.org
ftp://ftp.simplesystems.org/pub/ ... ibpng-1.2.34.tar.gz
freetype 官方http://www.freetype.org
http://download.savannah.gnu.org ... eetype-2.3.5.tar.gz
gd 官方http://www.libgd.org/
http://www.libgd.org/releases/gd-2.0.35.tar.gz
Curl库 官方http://curl.haxx.se
http://curl.haxx.se/download/curl-7.18.1.tar.gz
libxml 官方ftp://xmlsoft.org/libxml2/
ftp://xmlsoft.org/libxml2/libxml2-2.6.32.tar.gz
libxslt 官方http://ftp.gnome.org/pub/GNOME/sources/libxslt/
http://ftp.gnome.org/pub/GNOME/s ... bxslt-1.1.22.tar.gz
mysql 官方http://www.mysql.cn/
http://download.mysql.cn/download_file/gz/5.0/mysql-5.0.22.tar.gz
apache 官方 http://www.apache.org
http://apache.mirror.phpchina.com/httpd/httpd-2.2.8.tar.gz
php 官方 http://www.php.net
http://cn.php.net/distributions/php-5.2.5.tar.bz2
phpmyadmin(MYSQL可视化制作) 官方http://www.phpmyadmin.net/
http://jaist.dl.sourceforge.net/ ... s-utf-8-only.tar.gz
ZendOptimizer(PHP加速) 官方www.zend.com
http://downloads.zend.com/optimi ... glibc21-i386.tar.gz
二、安装Mysql
# tar zxf mysql-5.0.21.tar.gz
# cd mysql-5.0.21
#./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql/(local/mysql&/var/lib/mysql最好事先建好)
(./configure \
--prefix=/opt/mysql \
--with-unix-socket-path=/opt/mysql/tmp/mysql.sock \
--localstatedir=/opt/mysql/database/mysql_data \
--enable-assembler \
--with-mysqld-ldflags=-all-static \
--with-mysqld-user=mysql
编译选项说明:
--prefix=/opt/mysql:将所有文件安装到/opt/mysql目录下
--with-unix-socket-path=/opt/mysql/tmp/mysql.sock: 指定MySQL的
Unix socket文件存放的目录。
--localstatedir=/opt/mysql/database/mysql_data指定mysql的日志存放位置和数据库位置。
--enable-assembler:允许使用汇编模式(优化性能)
--with-mysqld-ldflags=-all-static:服务器使用静态库(优化性能)
--with-mysqld-user=mysql:指定MySQL的运行用户。
其它常用编译选项说明:
--without-server:仅编译安装客户端工具。
--with-client-ldflags=-all-static:客户端使用静态库。
--with-charset=CHARSET:指定MySQL使用的默认字符集。CHARSET可以是:
big5、cp1251、cp1257、czech、danish、dec8、dos、euc_kr、gb2312、gbk、german1、hebrew、hp8、hungarian、koi8_ru、koi8_ukr、latin1、latin2、sjis、swe7、tis620、ujis、usa7或win1251ukr。如果不指定,默认使用latin1。
)
说明:
#prefix=/usr/local/mysql mysql安装的目标目录
#sysconfdir=/etc my.ini配置文件的路径
#localstatedir=/var/lib/mysql 数据库存放的路径
# make
# make install
# groupadd mysql
# useradd mysql -g mysql
# cp support-files/my-medium.cnf /etc/my.cnf
#(这个文件夹是原来编译的目录下的)询问你是否要覆盖时,输入"y"
#/usr/local/mysql/bin/mysql_install_db --user=mysql
(出错时The host 'rich.com' could not be looked up with resolveip修改hosts文件
127.0.0.1 rich.com)
# cd /usr/local/mysql 然后设置权限
# chown -R root . #设定root能访问/usr/local/mysql
# chown -R mysql /var/lib/mysql #设定mysql用户能够访问/var/lib/mysql
# chgrp -R mysql /usr/local/mysql #设定mysql组能访问/usr/local/mysql
# /usr/local/mysql/bin/mysqld_safe --user=mysql & #安全启动mysql
#如果这里没什么问题的话,应该是可以了,安装好了。
如果要使用本地的客户端工具,并且不想每次都输入完整路径,就需要设置
PATH变量。
export PATH=$PATH:/opt/mysql/bin
设置mysql开机自启动:
# cp /usr/local/src/mysql-5.0.21/support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod 700 /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# chkconfig --level 345 mysqld on #设置开机启动mysqld服务
三、———————————————————————————————————————
# /usr/local/mysql/bin/mysqladmin -u root password 123456 #修改数据库root用户密码为123456
# mysql -u root -p
Enter password: #输入你刚才设置mysql root的管理密码
备份数据库:
mysqldump这个命令用于备份mysql:mysqldump -u root -p 数据库名 > 备份路径
如: mysqldump -u root -p mysql > /root/cc.sql
输入密码
注意备份数据库要以管理员身份
导入数据库:
mysql -u root -p 数据库名 < 数据库文件
输入密码
修复、检查和优化.ism后缀的数据库文件:
isamchk
用来修复.myi后缀的数据库文件:
myisamchk /var/lib/mysql/mysql/*.MYI 检查msyql数据库中所有的.MYI文件
如果有问题用-r参数来修复
myisamchk -r /var/lib/mysql/mysql/*.MYI
显示用户选择的数据库和表:mysqlshow
mysqlshow -u root -p 数据库名
mysql的一些常用命令:
1、显示数据库列表。
格式:show databases;
2、显示库中的数据表:
格式:use mysql;show tables;
3、建库:
格式:create database 库名;
4、显示数据表的结构:
格式:describe/desc 表名;
5、建表:
格式:use 库名;create table 表名 (字段设定列表);
mysql> use testdb;
mysql> create table user
-> (
-> userid int not null,
-> username varchar(20) not null,
-> password varchar(50) not null,
-> email varchar(50),
-> primary key (userid)
-> );
6、删库和删表:
格式:drop database 库名; drop table 表名;
7、删除表中记录清空:
格式:delete from 表名 where 条件;
delete from dtgrp where dt_id>=551801;
delete from systerm where term_id>551801 and term_id<5518120;
8、查询表中的记录:
格式:select * from 表名 where 条件;
9、插入字段:
insert into dtgrp values ('6572002','1');
10、更新字段:
格式:update 表名 set 列名1=值,列名2=值,... where 条件;
update systerm set term_id="2008001" where term_type="M";
11、将文件数据导入到数据库中
注意:文本数据应符合的格式:字段数据之间用 tab 键隔开,null 值用 \n 来代替
数据传入命令
load data local infile "文件名" into table 表名;
load data local infile "c:\\data.txt" into table user;
数据传出命令
select * from 表名 into outfile "文件名";
mysql的导入 mysql -u root -p 密码 库名< 要导入的库名.sql
mysql的导出 mysqldump -u root -p 密码 库名> 要保存的库名.sql
整个mysql数据库的备份 mysqldump -u root -p 密码 -A >all.sql
三、安装Apache
# tar zxf httpd-2.2.11.tar.gz
# cd httpd-2.2.11
# ./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --enable-mods-shared=most
说明:
--enable-so选项:让Apache可以支持DSO模式,注意,这里采用的是Apache2.0的语法。如果你的Apache是1.3版本,应改为--enable-module=so。
--enable-mods-shared=most选项:告诉编译器将所有标准模块都编译为DSO模块。你要是用的是Apache1.3,改为--enable-shared=max就可以。
--enable-rewrite选项:支持地址重写功能,使用1.3版本的朋友请将它改为--enable-module=rewrite。
# make
# make install
# vi /usr/local/apache/conf/httpd.conf #启动Apache中的php选项,找到下面两行
DirectoryIndex index.php #修改默认启动页
DocumentRoot #指定主目录(/usr/local/apache2/htdocs)
ServerName 127.0.0.1:80
# /usr/local/apache/bin/apachectl stop/start
———————————————————————————————————————
开机启动方法
1、在/etc/rc.d/rc.local中增加启动apache的命令
例如:/usr/local/httpd/bin/apachectl start
2、注册服务
# cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd目录下,改名为httpd
# vi /etc/rc.d/init.d/httpd文件,并在第一行#!/bin/sh下增加两行文字如下
# chkconfig: 35 70 30
# description: Apache
接着注册该服务 chkconfig --add httpd
service httpd start
———————————————————————————————————————
四、安装相关库文件
1、安装 jpeg6
建立目录
# mkdir /usr/local/jpeg6
# mkdir /usr/local/jpeg6/bin
# mkdir /usr/local/jpeg6/lib
# mkdir /usr/local/jpeg6/include
# mkdir /usr/local/jpeg6/man
# mkdir /usr/local/jpeg6/man/man1
# tar -zxvf jpegsrc.v6b.tar.gz
# cd jpeg-6b
# ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
# make; make install
2、安装libpng
# tar -zxvf libpng-1.2.8.tar.gz
# cd libpng-1.2.8
# cp scripts/makefile.std makefile
# make; make install
3、安装 freetype
# tar -zxvf freetype-2.1.10.tar.gz
# cd freetype-2.1.10
# ./configure --prefix=/usr/local/freetype
# make;make install
4、install zlib
tar xzvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure
make
make install
5、安装最新的Curl库
# tar -zxvf curl-7.15.0.tar.gz
# ./configure --prefix=/usr/local/curl
# make; make install
6、安装最新的GD库
# tar -zxvf gd-2.0.33.tar.gz
# cd gd-2.0.33
# ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6/ --with-png --with-zlib --with-freetype=/usr/local/freetype/
# make; make install
7、由于php5需libxml2的支持, 所以先下载并安装libxml2
# tar -zxvf libxml2-2.6.19.tar.gz
# cd libxml2-2.6.19
# ./configure --prefix=/usr/local/libxml2
# make; make install
8、安装 libxslt
# tar -zxvf libxslt-1.1.15.tar.gz
# cd libxslt-1.1.15
# ./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2
# make; make install
五、安装PHP
# tar -zxvf php-5.0.5.tar.gz
# cd php-5.05
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql/ --with-curl=/usr/local/curl --enable-ftp--with-libxml-dir=/usr/local/libxml2 --with-expat-dir=/usr/lib --enable-soap --with-xsl=/usr/local/libxslt --enable-xslt --with-gd=/usr/local/gd2/ --with-jpeg-dir=/usr/local/jpeg7/ --with-zlib-dir=/usr/lib --with-png --with-freetype-dir=/usr/local/freetype --enable-mbstring --with-mcryp(编译先看第九项)
# make
# make test
# make install
其中./configure 后的是必要的选项
--prefix=/usr/local/php
--with-apxs2=/usr/local/apache/bin/apxs
--with-mysql=/usr/local/mysql/
--with-libxml-dir=/usr/local/libxml2
这是让PHP支持GD库的配置选项
--with-gd=/usr/local/gd2/
--with-jpeg-dir=/usr/local/jpeg6/
--with-png
--with-zlib-dir=/usr/lib
--with-freetype-dir=/usr/local/freetype
--with-curl=/usr/local/curl 支持CURL库
--enable-ftp 打开FTP库函数支持
--enable-soap --with-xsl=/usr/local/libxslt --enable-xslt
让PHP支持SOAP, 上面这些一般用得少, 可以去掉!
# cp php.ini-dist /usr/local/php/lib/php.Ini
——————————————————————————————————————
# vi php.ini 修改配置文件
register_globals = On 一般在414行
max_execution_time = 30 ; // 改为600 (增加处理脚本的时间限制)
max_input_time = 600 ; //最大输出时间600秒
memory_limit = 8M ; //改为40M (这样才能发10M的附件)
register_global =On
post_max_size = 2M ; //php可接受的 post 方法大小 2M
file_uploads = On ; //允许上载文件
upload_max_filesize = 2M ; //最大上载文件2M
session.auto_start = 1 ; //session自动启动
———————————————————————————————————————
整合PHP与Apache
# vi /usr/local/apache/conf/httpd.conf 修改apache的配置文件
添加: AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps //注意将这两行添加在其它AddType后面
确保文件中有下面一段,如果没有的话就添加在所有LoadModule之后
LoadModule php5_module modules/libphp5.so
*****************************************************************
由于我装的版本较高所以是php5,如果是LoadModule php4_module modules/libphp4.so的话也可以
# /usr/local/apache/bin/apachectl start //如果这地方报如下错
httpd: Syntax error on line 53 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied
原因:是Linux有一个SELinux保护模式引起的。
解决办法:
1关闭SELINUX的方法:
vi /etc/selinux/config 将SELINUX=enforcing 改成SELINUX=disabled 需要重启
这个方法可能会对服务器带来风险。
2不关闭SELINUX的方法:
# setenforce 0
# chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache/modules/libphp5.so
# service httpd restart
# setenforce 1
server httpd start 报错:启动 httpd:[Wed May 07 02:17:20 2008] [warn] module php4_module is already loaded, skipping
解决办法:查看# vi /usr/local/apache/conf/httpd.conf
是否有二条相同指令LoadModule php4_module modules/libphp4.so 删除一条,即可
****************************************************************************
# vi /usr/local/apache/conf/httpd.conf
AddType application/x-httpd-php .php #x-httpd-php .php 注意有空格
AddType application/x-httpd-php-source .phps # x-httpd-php-source .phps注意有空格
六、安装ZendOptimizer
1.执行 cd /usr/down
回到 ZendOptimizer 源码所在目录。
2.执行 tar -zxvf ZendOptimizer-3.3.0a-linux-glibc21-i386.tar.gz
3.执行 cd ZendOptimizer-3.3.0a-linux-glibc21-i386
4.执行 ./install
5.进入ZendOptimizer安装界面.点击回车
6.回车
7.yes 上点回车。(使用Tab切换)
8.填写ZendOptimizer安装路径.我们将它安装在 /usr/local/zend下.填点击回车。
9.这里选择php.ini所在位置。/usr/local/php/lib/ 在ok上点击回车。
10.是否使用apache。选yes
11.这里填写apachectl的位置.在/server/apache/bin/apachectl
输入 /usr/local/apache/bin/apachectl 后,点击 Tab 键移动光标到 OK 上.然后点击回车
如果安装成功,在php的信息,可以找到Zend Optimizer的相关参数
七、安装phpMyAdmin
# tar -zxf phpMyAdmin-2.8.2-pl3.tar.gz
# mv phpMyAdmin-2.8.2-pl3.tar.gz /opt/apache/htdocs/phpmyadmin
# cd /opt/apache/htdocs/phpmyadmin
# vi config.inc.php 修改这个文件
$cfg['Servers'][$i]['auth_type'] = 'cookie'; #表示,需要输入密码
$cfg['Servers'][$i]['host'] = 'localhost'; //改成你数据库服务器的主机名或IP地址;
http://IP/phpmyadmin 看能否显示,输入mysql的用户名、密码登陆 (root 123456)
如果提示:202错误,看mysql是否没有启动,用/opt/mysql/bin/mysqld_safe --user=mysql &启动mysql
八、环境测试
1、测试php与apache
在apache/htdoc/目录下写个php测试页phpinfo.php:内容如下
<?php
phpinfo();
?>
在浏览器中输入http://IP/phpinfo.php 看能否显示php的信息。如果正常显示说明没有问题。
2、测试PHP是否和mysql关联
在/apache/htdoc/下新建网页test.php输入:
<?php
$conn = mysql_connect("localhost","root","填上你的密码");
if($conn) echo "<h1>succeed</h1>";
else echo "<h1>fail</h1>";
?>
打开浏览器,如果显示succeed则表示成功,显示fail表示失败
九、问题
1、phpadmin 中出现的红字“无法加载 mcrypt 扩展,请检查您的 PHP 配置。”
解决:安装libmcrypt后,再重新编译php时加上--with-mcrypt后,此错误已解决。
2、进入phpadmin ,下方出现红字“没有找到 PHP 扩展 mbstring,而您现在好像在使用多字节字符集。没有 mbstring 扩展的 phpMyAdmin 不能正确分割字符串,可能产生意想不到的结果”
解决:安装php-mbstring ,编译的时候加上--enable-mbstring (网上没有正确的解决办法)
3、配置文件现在需要一个短语密码。
解决:在phpmyadmin中打开config.inc.php 找到
$cfg['blowfish_secret']
在 $cfg['blowfish_secret'] = ' ' 里随便填个字符串即可
改完后重启apache就可以了
错误解决办法:
CentOS下安装Mysql出现error: No curses/termcap library found 在centos下把原来的mysql给rpm -e –nodeps了,然后下了个mysql-5.1.28
./configure –with-plugins=sphinx –prefix=/usr/local/mysql-search/ –enable-assembler –with-extra-charsets=complex –enable-thread-safe-client –with-big-tables –with-readline –with-ssl -with-embedded-server –enable-local-infile
时,出现错误:
checking for termcap functions library… configure: error: No curses/termcap library found
网上大都说是缺少ncurses,我rpm -qa |grep ncurses了一下发现已经安装了ncurses
后来发现原来少的是:ncurses-devel
到光盘里找到
rpm -ivh ncurses-devel-5.5-24.20060715.i386.rpm
发现不在提示上述错误了