LAMP 完整过程 apache 2.4.4 --> mysql 5.1.68 --> php 5.4.13

=======================================================================================

需要安装包集合

http://pan.baidu.com/share/link?shareid=4170923411&uk=2516956362

 

安装mysql  mysql-5.1.68.tar.gz
创建用户
[root@zheng htdocs]# useradd -M -u 48 -s /sbin/nologin mysql
解压编译安装
[root@zheng ma]# tar zxf mysql-5.1.68.tar.gz -C /usr/local/src/
[root@zheng mysql-5.1.68]# ./configure --prefix=/usr/local/mysql --enable-thread-safe-client --with-extra-charsets=all &&make &&make install
编辑配置主文件
[root@zheng mysql-5.1.68]# cp support-files/my-medium.cnf /etc/my.cnf
[root@zheng mysql]# cd /usr/local/mysql/
[root@zheng mysql]# bin/mysql_install_db --user=mysql
[root@zheng mysql]# chown -R root:mysql /usr/local/mysql/
[root@zheng mysql]# chown -R mysql /usr/local/mysql/var/
[root@zheng mysql-5.1.68]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@zheng mysql-5.1.68]# chmod +x /etc/rc.d/init.d/mysqld
[root@zheng mysql-5.1.68]#  chkconfig --add mysqld
[root@zheng mysql-5.1.68]# service mysqld start

/usr/local/mysql/bin/mysqladmin version -p 查看版本号

优化路径
ln -s /usr/local/mysql/bin/* /usr/local/bin
ln -s /usr/local/mysql/lib/mysql/* /usr/lib
ln -s /usr/local/mysql/include/mysql/* /usr/include

删除空用户
mysql -u root -p
Enter password:
select user,host,password from mysql.user where user='';
delete from mysql.user where user='';
select user,host,password from mysql.user where user='';
delete from mysql.user where host!='localhost';

flush privileges; 刷新授权表

set password for 'root'@'localhost'=password('123456'); 修改密码
create database dz;
use dz;
create table shop(id int, name varchar(30), price double);
show tables;


=========================================================================================
插件包解压

tar zxf libxml2-2.9.0.tar.gz -C /usr/local/src
tar zxf autoconf-2.69.tar.gz -C /usr/local/src/
tar zxf libmcrypt-2.5.8.tar.gz -C /usr/local/src/
tar zxf mhash-0.9.9.9.tar.gz -C /usr/local/src/
tar zxf mcrypt-2.6.8.tar.gz -C /usr/local/src/
tar zxf zlib-1.2.7.tar.gz -C /usr/local/src/
tar zxf libpng-1.5.14.tar.gz -C /usr/local/src/
tar zxf jpegsrc.v8b.tar.gz -C /usr/local/src/
tar zxf freetype-2.4.10.tar.gz -C /usr/local/src/
tar zxf gd-2.0.35.tar.gz -C /usr/local/src/
tar zxf apr-1.4.6.tar.gz -C /usr/local/src/
tar zxf apr-util-1.5.1.tar.gz -C /usr/local/src/
tar zxf pcre-8.32.tar.gz -C /usr/local/src/


编译插件包
libxml2-2.9.0.tar.gz

cd /usr/src/libxml2-2.9.0/
./configure --prefix=/usr/local/libxml2 &&make &&make install

autoconf-2.69.tar.gz

cd /usr/src/autoconf-2.69
./configure

libmcrypt-2.5.8.tar.gz

cd /usr/src/libmcrypt-2.5.8/
./configure &&make &&make install
ln -s /usr/local/lib/libmcrypt.*  /usr/lib/ 优化

mhash-0.9.9.9.tar.gz

cd /usr/src/mhash-0.9.9.9/
./configure &&make &&make install
ln -s /usr/local/lib/libmhash.* /usr/lib 优化

mcrypt-2.6.8.tar.gz

cd /usr/src/mcrypt-2.6.8/
./configure &&make &&make install


libltdl库
cd /usr/src/libmcrypt-2.5.8/libltdl/
./configure --enable-ltdl-install &&make &&make install

zlib-1.2.7.tar.gz

cd /usr/src/zlib-1.2.7/
./configure --prefix=/usr/local/zlib/ &&make &&make install

libpng-1.5.14.tar.gz

cd /usr/src/libpng-1.5.14
./configure --prefix=/usr/local/libpng &&make &&make install

jpegsrc.v8b.tar.gz

cd /usr/src/jpeg-8b
mkdir -p /usr/local/jpeg8
mkdir -p /usr/local/jpeg8/bin 
mkdir -p /usr/local/jpeg8/lib
mkdir -p /usr/local/jpeg8/include
mkdir -p /usr/local/jpeg8/man/man1
./configure --prefix=/usr/local/jpeg8/ --enable-share &&make &&make install

freetype-2.4.10.tar.gz

cd /usr/src/freetype-2.4.10
./configure --prefix=/usr/local/freetype &&make &&make install

gd-2.0.35.tar.gz

cd /usr/src/gd-2.0.35
./configure --prefix=/usr/local/gd --with-jpeg=/usr/local/jpeg8/ --with-png=/usr/local/libpng/ --with-freetype=/usr/local/freetype/ &&make &&make install

apr-1.4.6.tar.gz

cd /usr/src/apr-1.4.6 
./configure --prefix=/usr/local/apr &&make &&make install

apr-util-1.5.1.tar.gz

cd /usr/src/apr-util-1.5.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config &&make &&make install

pcre-8.32.tar.gz

cd /usr/src/pcre-8.32
./configure --prefix=/usr/local/pcre &&make &&make install

 

=========================================================================================
安装apache服务器 httpd-2.4.4.tar.gz


tar zxf httpd-2.4.4.tar.gz -C /usr/src/

cd /usr/src/httpd-2.4.4
编译安装apache
./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --enable-deflate --enable-speling --enable-cache --enable-file-cache --enable-disk-cache --enable-mem-cache --enable-so --enable-expires=shared --enable-rewrite=shared --enable-static-support --enable-charset-lite --enable-cgi --with-z=/usr/local/zlib/ --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre/ --disable-userdir ;make ;make install

优化路径
ln -s /usr/local/apache2/bin/* /usr/local/bin/
创建快捷启动
cp /usr/local/apache2/bin/apachectl /etc/init.d/apache
vim /etc/init.d/apache 

#!/bin/bash
# chkconfig: 35 85 15
# description: This is My Apache HTTP Server! 

chkconfig --add apache
chkconfig --list apache

启动apache服务
service apache start

查看启动端口

netstat -anplt |grep 80

tcp        0      0 :::80                       :::*                        LISTEN      27549/httpd         

=========================================================================================
安装php服务器

php-5.4.13.tar.gz

解压源码包
tar zxf php-5.4.13.tar.gz -C /usr/src/
cd /usr/src/php-5.4.13/

编译之前,先处理一下mysql的库,默认查找libmysqlclient_r.so,可是mysql默认为libmysqlclient.so,内容完全一样,做个链接即可
cd /usr/local/mysql/lib/mysql/
ln -s libmysqlclient.so.15.0.0 libmysqlclient_r.so

错误 make: *** [ext/gd/gd.lo] error 这个错误算是php5.4的bug

解决方法:

vim /usr/local/gd/include/gd_io.h

gdIOCtx结构中增加void *data;

格式如下

typedef struct gdIOCtx
{
int (*getC) (struct gdIOCtx *);

int (*getBuf) (struct gdIOCtx *, void *, int);

void (*putC) (struct gdIOCtx *, int);

int (*putBuf) (struct gdIOCtx *, const void *, int);

/* seek must return 1 on SUCCESS, 0 on FAILURE. Unlike fseek! */

int (*seek) (struct gdIOCtx *, const int);

long (*tell) (struct gdIOCtx *);

void (*gd_free) (struct gdIOCtx *);

void (*data);   // 添加

}
gdIOCtx;

错误 make: *** [ext/phar/phar.php] Error 127

解决方法:

ln -s /usr/local/lib/libltdl.so.3 /usr/lib/libltdl.so.3
cd /usr/local/libpng/lib/
[root@localhost lib]# ls
libpng15.a   libpng15.so     libpng15.so.15.10.0  libpng.la  pkgconfig
libpng15.la  li
bpng15.so.15  libpng.a             libpng.so

可以看到 libpng15.so.15
然后修改/etc/ld.so.conf 文件:vi /etc/ld.so.conf
在第一行下面追加/usr/local/libpng/lib这个路径。
然后重新编译安装即可。

编译安装
cd /usr/src/php-5.4.13/
./configure --prefix=/usr/local/php5 --with-php-config=/usr/local/php5/bin/php-config --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql/ --with-libxml-dir=/usr/local/libxml2/ --with-png-dir=/usr/local/libpng/ --with-jpeg-dir=/usr/local/jpeg8/ --with-freetype-dir=/usr/local/freetype/ --with-gd=/usr/local/gd/ --with-zlib-dir=/usr/local/zlib/ --with-mcrypt=/usr/local/libmcrypt/ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mhash=/usr/local/lib/ --enable-soap --enable-xml --enable-fpm --enable-fastcgi --enable-zip=shared --enable-mbstring=all --enable-zend-multibyte --enable-sockets --enable-ftp &&make &&make install

添加主配置文档
cp php.ini-development /usr/local/php5/etc/php.ini
vim /usr/local/php5/etc/php.ini 

修改php.ini 919行 date.timezone ="PRC"

修改apache主配置文档 让其支持php文件

vim /usr/local/apache2/conf/httpd.conf 

修改263行   
DirectoryIndex 
index.php index.html
在392行下添加
AddType application/x-httpd-php .php .phtml

PDO_Mysql 错误
****************************************************************************************
假设你的php是安装在/usr/local/php5里的。

1。解压 tar zxvf PDO_MYSQL-1.0.2.tgz -C /usr/local/php5/bin
 cd /usr/local/php5/bin
 mv PDO_MYSQL-1.0.2/* .
2.执行/usr/local/php5/bin/phpize

3.然后进行当前目录编译安装
./configure --with-php-config=/usr/local/php5/bin/php-config --with-pdo-mysql=/usr/local/mysql &&make &&make install 
(假设你的mysql是安装在/usr/local/mysql)

4.到了第3步
cd /usr/local/php5/lib/php/extensions/no-debug-zts-20100525/
它里面就生成了一个 pdo_mysql.so

5.修改 vim /usr/local/php5/etc/php.ini 在最后 加入扩展语句

extension="/usr/local/php5/lib/php/extensions/no-debug-zts-20100525/pdo_mysql.so"

6.重启 service apache restart 

7.OK扩展完成

****************************************************************************************

phpMyAdmin 功能全开

[root@zheng mysql]# cp config.sample.inc.php config.inc.php

今天用phpmyadmin做数据库管理时,偶然发现偶的phpmyadmin竟然没看到权限一栏,平常都没出过此类现象,这个难道与数据库版本有关系?以前用的数据库版本是mysql 5.0的,这次是mysql5.1的,这个可能有影响吧!想想应该改phpmyadmin的配置文件,以下是解决方法:
登陆phpmyadmin后,会在底部显示“链接表的附加功能尚未激活。要查出原因,请点击此处。”

第一步:使用Mysql管理员帐号通过phpmyadmin登陆,然后点击“导进”,然后点击“浏览”按钮,找到phpmyadmin文件夹下的scripts文件夹里的一个名为create_tables.sql的文件。把它导进就OK了。

第二步:打开phpmyadmin文件夹下的config.inc.php,去掉以下代码前面的注释(// )

$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';

第三步:注销phpmyadmin之后并重新登录