1、删除系统自带老版本:
删除apache+php+mysql,判断是不是rpm安装如:
- rpm -q php
返回php版本,则是rpm安装,用 rpm -e php --nodeps 即可彻底删除系统自带的php
如果不返回PHP版本则是二进制安装,直接删除目录就可以!同理apache mysql也一样!
2、安装Apache
下载地址:http://httpd.apache.org/
- # tar xzvf httpd-2.2.4.tar.gz
- # cd httpd-2.2.4
- # ./configure --prefix=/usr/local/apache2 --enable-so --enable-mods-shared=all --enable-cgi --enable-rewrite --enable-deflate --with-mpm=worker
- # make
- # make install
3、安装Mysql
下载地址:
- # chmod 755 mysql-5.0.45-linux-i686-glibc23.tar.gz //设置mysql-5.0.45-linux-i686-glibc23.tar.gz属性为755
- # tar xzvf mysql-5.0.45-linux-i686-glibc23.tar.gz //解压
- # cp -r mysql-5.0.45-linux-i686-glibc23 /usr/local //
- # mv mysql-5.0.45-linux-i686-glibc23 mysql //
- # cd mysql //
- # groupadd mysql // 建立mysql组
- # useradd mysql -g mysql //建立mysql用户并且加入到mysql组中
- # cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
- 在 support-files目录下有4个模版文件,我们选择其中一个座位Mysql的配置文件,覆盖/etc/my.cnf(系统默认的配置,其中设置了性能参数和Mysql的一些路径参数)
- # cd /usr/local/mysql 进入mysql目录
- # ./scripts/mysql_install_db --user=mysql //初试化表并且规定用mysql用户来访问。初始化表以后就开始给mysql和root用户设定访问权限
- # chown -R root . //设定root能访问/usr/local/mysql
- # chown -R mysql data //设定mysql用户能访问/usr/local/mysql/data 里面存的是mysql的数据库文件.这个目录是在/etc/my.cnf中有配置,在mysql_install_db时产生。
- # chown -R mysql data/ //设定mysql用户能访问/usr/local/mysql/data/mysql下的所有文件
- # chgrp -R mysql . //设定mysql组能够访问/usr/local/mysql
- # /usr/local/mysql/bin/mysqld_safe --user=mysql & 运行mysql 如果没有问题的话,应该会出现类似这样的提示:
- [1] 42264
- # Starting mysqld daemon with databases from /usr/local/mysql/var
- 如果出现 mysql ended这样的语句,表示Mysql没有正常启动,你可以到log中查找问题,Log文件的通常在/etc/my.cnf中配置。大多数问题是权限设置不正确引起的。
- # /usr/local/mysql/bin/mysqladmin -u root password yourpassword //默认安装密码为空,为了安全你必须马上修改.
- # cp support-files/mysql.server /etc/rc.d/init.d/mysqld 设置使mysql每次启动都能自动运行
- # chmod 700 /etc/init.d/mysqld
- # chkconfig --add mysqld
- # chkconfig --level 345 mysqld on
- # service mysqld start //启动mysqld服务
- # netstat -atln //查看3306端口是否打开。要注意在防火墙中开放该端口。
4、安装PHP
(1). 安装zlib (安装libpng和gd前需要先安装zlib),
- # tar zxvf zlib-1.2.3.tar.gz
- # cd zlib-1.2.3
- # ./configure
- # make;make install
(2). 安装libpng,
- # tar zxvf libpng-1.2.12.tar.gz
- # cd libpng-1.2.12
- # ./configure
- # make;make install
(3). 安装freetype,
- # tar zxvf freetype-2.2.1.tar.gz
- # cd freetype-2.1.10
- # ./configure --prefix=/usr/local/freetype
- # make;make install
(4). 安装jpeg,
- # tar zxvf jpegsrc.v6b.tar.gz
- # cd jpeg-6b
- # mkdir /usr/local/jpeg
- # mkdir /usr/local/jpeg/bin
- # mkdir /usr/local/jpeg/lib
- # mkdir /usr/local/jpeg/include
- # mkdir /usr/local/jpeg/man
- # mkdir /usr/local/jpeg/man/man1
- # ./configure --prefix=/usr/local/jpeg --enable-shared --enable-static
- # make;make install
(5). 安装gd,
- # tar zxvf gd-2.0.35.tar.gz
- # cd gd-2.0.35
- # ./configure --prefix=/usr/local/gd --with-jpeg=/usr/local/jpeg --with-freetype=/usr/local/freetype --with-png --with-zlib
- //编译过程中会看到如下信息
- ** Configuration summary for gd 2.0.33:
- Support for PNG library: yes
- Support for JPEG library: yes
- Support for Freetype 2.x library: yes
- Support for Fontconfig library: no
- Support for Xpm library: no
- Support for pthreads: yes
- //可以看到png 、 jpeg 、 freetype都已经安装上了
- # make
- # make install
(6). 正式安装php
- # tar zxvf php-5.2.3.tar.gz
- # cd php-5.2.3
- # ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-gd=/usr/local/gd --with-zlib --with-libpng --with-jpeg=/usr/local/jpeg --with-freetype=/usr/local/freetype --enable-sockets --with-iconv --enable-mbstring --enable-track-vars --enable-force-cgi-redirect --with-config-file-path=/usr/local/php5/etc
- # make
- # make install
(7).整合php和apache
- cp php.ini-dist /usr/local/php5/etc/php.ini
- vi /usr/local/php5/etc/php.ini
将extension=php_mysql.dll前面的#去掉
注意在/usr/local/apache2/conf/httpd.conf加上下代码使apache执行PHP
- AddType application/x-httpd-php .php
- AddType application/x-httpd-php3 .php3
- AddType application/x-httpd-php4 .php4
- AddType application/x-httpd-php-source .phps
(8). 安装ZendOptimizer,
- # tar zxvf ZendOptimizer-3.0.1-linux-glibc21-i386.tar.gz
- # cd ZendOptimizer-3.0.1-linux-glibc21-i386
- # ./install.sh
解决MySQL不允许从远程访问的方法
/*------------------------1--------------------------*/
修改my.ini中的ip(如果有 localhost 修改为 ip)
/*------------------------2--------------------------*/
./mysql -u root -p123
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
/*------------------------3--------------------------*/
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION
//赋予任何主机访问数据的权限
mysql>FLUSH PRIVILEGES
//修改生效
mysql>EXIT
//退出MySQL服务器
查看Mysql操作日志
mysql的操作日志在Mysql的Data的主目录下,命名类似:{mysql_data}/{server_name}-bin.00000X
这样的日志是不能直接看的,可以通过mysqlbinlog命令转换成我们识别的格式
mysqlbinlog localhost-bin.000202 > new_file_name.log
[hx@localhost data]$ mysqlbinlog
mysqlbinlog Ver 3.0 for pc-linux-gnu at i686
By Monty and Sasha, for your professional use
This software comes with NO WARRANTY: This is free software,
and you are welcome to modify and redistribute it under the GPL license
Dumps a MySQL binary log in a format usable for viewing or for piping to
the mysql command line client
Usage: mysqlbinlog [options] log-files
-d, --database=name List entries for just this database (local log only).
-D, --disable-log-bin
Disable binary log. This is useful, if you enabled
--to-last-log and are sending the output to the same
MySQL server. This way you could avoid an endless loop.
You would also like to use it when restoring after a
crash to avoid duplication of the statements you already
have. NOTE: you will need a SUPER privilege to use this
option.
-f, --force-read Force reading unknown binlog events.
-?, --help Display this help and exit.
-h, --host=name Get the binlog from server.
-o, --offset=# Skip the first N entries.
-p, --password[=name]
Password to connect to remote server.
-P, --port=# Use port to connect to the remote server.
-j, --position=# Deprecated. Use --start-position instead.
--protocol=name The protocol of connection (tcp,socket,pipe,memory).
-r, --result-file=name
Direct output to a given file.
-R, --read-from-remote-server
Read binary logs from a MySQL server
--open_files_limit=#
Used to reserve file descriptors for usage by this
program
-s, --short-form Just show the queries, no extra info.
-S, --socket=name Socket file to use for connection.
--start-datetime=name
Start reading the binlog at first event having a datetime
equal or posterior to the argument; the argument must be
a date and time in the local time zone, in any format
accepted by the MySQL server for DATETIME and TIMESTAMP
types, for example: 2004-12-25 11:25:56 (you should
probably use quotes for your shell to set it properly).
--stop-datetime=name
Stop reading the binlog at first event having a datetime
equal or posterior to the argument; the argument must be
a date and time in the local time zone, in any format
accepted by the MySQL server for DATETIME and TIMESTAMP
types, for example: 2004-12-25 11:25:56 (you should
probably use quotes for your shell to set it properly).
--start-position=# Start reading the binlog at position N. Applies to the
first binlog passed on the command line.
--stop-position=# Stop reading the binlog at position N. Applies to the
last binlog passed on the command line.
-t, --to-last-log Requires -R. Will not stop at the end of the requested
binlog but rather continue printing until the end of the
last binlog of the MySQL server. If you send the output
to the same MySQL server, that may lead to an endless
loop.
-u, --user=name Connect to the remote server as username.
-l, --local-load=name
Prepare local temporary files for LOAD DATA INFILE in the
specified directory.
-V, --version Print version and exit.
Variables (--variable-name=value)
and boolean options {FALSE|TRUE} Value (after reading options)
--------------------------------- -----------------------------
database (No default value)
disable-log-bin FALSE
force-read FALSE
host (No default value)
offset 0
port 3306
position 4
read-from-remote-server FALSE
open_files_limit 64
short-form FALSE
socket (No default value)
start-datetime (No default value)
stop-datetime (No default value)
start-position 4
stop-position 18446744073709551615
to-last-log FALSE
user (No default value)
local-load (No default value)