首頁 >php教程 >php手册 >在Ubuntu中使用源码编译安装Apache+MySQL+PHP+phpMyAdmin

在Ubuntu中使用源码编译安装Apache+MySQL+PHP+phpMyAdmin

WBOY
WBOY原創
2016-06-06 19:57:49992瀏覽

操作系统:ubuntu12.04LTS(64位) 编译安装的步骤如下: 检查安装的编译工具 编译过程中需要C的编译器,C的编译器,make,和编译mysql最新版本时需要的cmake。 检查编译器软件是否安装的命令是: dpkg –l | grep filename 依次检查gcc,g,make,cmake是否

操作系统:ubuntu12.04LTS(64位)

编译安装的步骤如下:

检查安装的编译工具

编译过程中需要C的编译器,C++的编译器,make,和编译mysql最新版本时需要的cmake。

检查编译器软件是否安装的命令是:

dpkg –l | grep filename

依次检查gcc,g++,make,cmake是否安装

检查是否已经有默认安装的软件,并卸载

如果已经安装过Apache,mysql,php需要先停止服务,卸载先前的软件后再工作

卸载软件的命令

apt-get remove –purge softname
dpkg –r xxx.deb

编译安装libxml2

下载地址:libxml2-2.9.0.tar.gz

cd /usr/local/src
tar –zvxf libxml2-2.9.0.tar.gz
cd libxml2-2.9.0
./configure –prefix=/usr/local/libxml2
make
sudo make install

编译安装libmcrypt

下载地址:libmcrypt-2.5.7.tar.gz

cd /usr/local/src
tar –zvxf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure --prefix=/usr/local/libmcrypt
make
sudo make install

编译安装zlib

下载地址:zlib-1.2.8.tar.gz

cd /usr/local/src
tar –zvxf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
sudo make install

注意安装zlib库的时候不能指定它的安装路径,否则安装后面库的时候会找不到zlib的位置,手动指定路径也无法解决

安装libpng库

下载地址:libpng-1.6.7.tar.gz

cd /usr/local/src
tar –zvxf libpng-1.6.7.tar.gz
cd libpng-1.6.7
./configure --prefix=/usr/local/libpng
make
sudo make install

如果上一步的zlib库指定了特定的安装路径,在这里configure的时候会提示zlib没有安装问题,此时回到zlib的源代码执行

make clean重新编译安装

安装jpeg6

下载地址:jpegsrc.v6b.tar.gz

需要手动创建安装需要的目录,在安装时不能自动创建

mkdir /usr/local/jpeg6
mkdir /usr/local/jpeg6/bin
mkdir /usr/local/jpeg6/lib
mkdir /usr/local/jpeg6/include
mkdir –p /usr/local/jpeg6/man/man1
cd /usr/local/src
tar –zvxf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure --prefix=/usr/local/jpeg6 –enable-shared –enable-static
make
sudo make install

可能出现的错误:make: ./libtool:命令未找到(解决办法参考这篇文章:Linux 安装 jpeg-6b 出错:./libtool 命令未找到)

安装freetype

下载地址:freetype-2.4.10.tar.gz

cd /usr/local/src
tar –zvxf freetype-2.4.10.tar.gz
cd freetype-2.4.10
./configure --prefix=/usr/local/freetype
make
sudo make install

出错信息及解决办法参考这篇文章:Linux下编译安装freetype出错信息及解决办法以及这篇文章:编译安装 freetype 报错 make: [install] 错误 1 (忽略) 及解决办法

安装autoconf库

下载地址:autoconf-2.68.tar.gz

安装autoconf需要安装m4软件,不然configure不会通过的,而且最好默认安装,不指定prefix,否则后面安装php扩展会比较麻烦。

cd /usr/local/src
tar –zvxf autoconf-2.68.tar.gz
cd autoconf-2.68
./configure
make
sudo make install

安装gd库

下载地址:gd-2.0.35.tar.gz

cd /usr/local/src
tar –zvxf gd-2.0.35.tar.gz
cd gd-2.0.35
./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6 --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype
make
sudo make install

在安装gd库的时候会出现找不到png库的情况,这时我们需要手动修改gd_png.c文件,找到

#include "png.h"

修改为真正的png库位置

安装Apache服务器

下载地址:httpd-2.2.26.tar.gz

cd /usr/local/src
tar –zvxf httpd-2.2.26.tar.gz
cd httpd-2.2.26
./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --with-include-apr --disable-userdir --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-static-support
make
sudo make install

安装Apache会出现依赖库的问题,需要提前安装apr,apr-util,pcre 安装方法就是正常的编译安装(可参考这篇文章:Ubuntu下使用源代码编译安装apache2.2.26)

启用apache服务

cp /usr/local/apache2/bin/apachectl /sbin/
apachectl start
netstat -tnl | grep 80
vim /etc/rc.loacl

安装mysql数据库

下载地址:mysql-5.5.25a.tar.gz

cd /usr/local/src
tar –zvxf mysql-5.5.25a.tar.gz
cd mysql-5.5.25a
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=1 -DWITH_SSL=bundled -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITHOUT_PARTITION_STORAGE_ENGINE=1 -DWITH_DEBUG=0
make
sudo make install

安装过程会出现的错误及解决办法参考这篇文章:Ubuntu12.04编译安装MySQL 5可能出现的错误及解决办法

创建mysql 用户

groupadd mysql
useradd -r -g mysql mysql

权限设置及授权表的安装

cd /usr/local/mysql
chown -R mysql .
chgrp -R mysql .
scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data

创建配置文件

cp support-files/my-medium.cnf /etc/my.cnf

启动mysql服务

bin/mysql_safe --user=mysql&
netstat -tnl | grep 3306

配置mysql服务

cp support-files/mysql.server /etc/init.d/mysql
sudo update-rc.d mysql defaults
chkconfig --add mysql
chkconfig mysql on

用户账户控制

bin/mysql -uroot
mysql> DELETE mysql.user WHERE Host='localhost'AND User='';
mysql>SET PASSWORD FOR 'root'@'localhost'=PASSWORD('123456');

启动报错:无法启动Couldn't find MySQL server (/usr/bin/mysqld_safe)”

sudo rm /etc/mysql/my.cnf

即可。

安装PHP5.3

下载地址:php-5.3.28.tar.gz

cd /usr/local/src
tar –zvxf php-5.3.28.tar.gz
cd php-5.3.28
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-apxs2=/usr/local/apache2/bin/apxs --with-pdo-mysql=/usr/local/mysql --with-libxml-dir=/usr/local/libxml2 --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg6 --with-freetype-dir=/usr/local/freetype --with-gd=/usr/local/gd2 --with-mcrypt=/usr/local/libmcrypt --enable-soap --enable-mbstring=all --enable-sockets
make
sudo make install

在PHP5.4 make会出现一个问题

我们需要修改gd库目录下的include/gd_io.h

vi <gd_dir>/include/gd_io.h</gd_dir>

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;

创建PHP配置文件

cp php.ini-development /usr/local/php/etc/php.ini

添加apache对PHP的支持

vi /etc/httpd/httpd.conf
Addtype application/x-httpd-php .php .phtml
sudo apachectl stop
sudo apachectl start

在Apache的web根目录下创建phpinfo.php

<?php phpinfo();
?>

测试环境是否安装成功

基本上就装完了。

安装配置phpMyAdmin:

下载地址:phpMyAdmin-4.1.1-all-languages.zip

unzip phpMyAdmin-4.1.1-all-languages.zip
mv phpMyAdmin-4.1.1-all-languages.zip phpmyadmin
mv phpmyadmin /var/www/(假设/var/www为web根目录)
cd /var/www/phpmyadmin
cp config.sample.inc.php config.inc.php
vi config.inc.php

将其中的

$cfg['Servers'][$i]['extension'] = 'mysqli';

修改为:

$cfg['Servers'][$i]['extension'] = 'mysql';

保存退出,然后在浏览器中就可以通过http://localhost/phpmyadmin来访问phpMyAdmin了。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn