热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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

操作系统: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

ftp下载地址:ftp://xmlsoft.org/libxml2/

也可通过git下载:

git clone git://git.gnome.org/libxml2
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

远程下载:http://tcpdiag.dl.sourceforge.net/project/mcrypt/Libmcrypt/Production/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

远程下载:http://hivelocity.dl.sourceforge.net/project/libpng/zlib/1.2.8/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

原创下载:http://iweb.dl.sourceforge.net/project/libpng/libpng16/older-releases/1.6.7/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

远程下载:http://www.ijg.org/files/

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

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

远程下载1:http://download.savannah.gnu.org/releases/freetype/

远程下载2:http://colocrossing.dl.sourceforge.net/project/freetype/freetype2/2.4.10/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

远程下载:http://ftp.gnu.org/gnu/autoconf/

安装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

远程下载:http://ring.u-toyama.ac.jp/archives/graphics/gd/

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库位置(在libpng安装目录去找,本例是/usr/local/libpng/include/png.h)

安装Apache服务器

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

远程下载:http://httpd.apache.org/download.cgi#apache22

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

远程下载:http://downloads.sourceforge.net/project/mysql.mirror/MySQL%205.5.25a/mysql-5.5.25a.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fmysql.mirror%2Ffiles%2FMySQL%25205.5.25a%2F&ts=1393564528&use_mirror=hivelocity

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/mysqld_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 FROM 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

远程下载1:http://php.net/downloads.php

远程下载2:http://mirrors.sohu.com/php/

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-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --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 /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;

创建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

测试环境是否安装成功

基本上就装完了。

安装配置phpMyAdmin:

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

远程下载:http://www.phpmyadmin.net/home_page/downloads.php

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

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


推荐阅读
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • 在Linux环境下,本文详细探讨了Apache服务器中CGI技术的应用与实现。首先,通过使用yum包管理器安装了必要的软件,如PHP。安装完成后,对Apache服务器进行了配置,确保CGI功能正常运行。此外,还介绍了如何编写和调试CGI脚本,以及如何在实际环境中部署这些脚本以提供动态网页内容。实验结果表明,通过合理的配置和优化,Apache服务器能够高效地支持CGI应用程序,为用户提供丰富的交互体验。 ... [详细]
  • 从无到有,构建个人专属的操作系统解决方案
    操作系统(OS)被誉为程序员的三大浪漫之一,常被比喻为计算机的灵魂、大脑、内核和基石,其重要性不言而喻。本文将详细介绍如何从零开始构建个人专属的操作系统解决方案,涵盖从需求分析到系统设计、开发与测试的全过程,帮助读者深入理解操作系统的本质与实现方法。 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
  • 从用户转型为开发者:一场思维升级的旅程 | 专访 StarRocks Committer 周威
    从用户转变为开发者,不仅是一次角色的转换,更是一场深刻的思维升级之旅。本次专访中,StarRocks Committer 周威分享了他如何在这一过程中逐步提升技术能力与思维方式,为开源社区贡献自己的力量。 ... [详细]
  • 如何利用Apache与Nginx高效实现动静态内容分离
    如何利用Apache与Nginx高效实现动静态内容分离 ... [详细]
  • 本文深入探讨了IO复用技术的原理与实现,重点分析了其在解决C10K问题中的关键作用。IO复用技术允许单个进程同时管理多个IO对象,如文件、套接字和管道等,通过系统调用如`select`、`poll`和`epoll`,高效地处理大量并发连接。文章详细介绍了这些技术的工作机制,并结合实际案例,展示了它们在高并发场景下的应用效果。 ... [详细]
  • 如何在PHP中实现链接输出与字符串连接的操作技巧 ... [详细]
  • NoSQL数据库,即非关系型数据库,有时也被称作Not Only SQL,是一种区别于传统关系型数据库的管理系统。这类数据库设计用于处理大规模、高并发的数据存储与查询需求,特别适用于需要快速读写大量非结构化或半结构化数据的应用场景。NoSQL数据库通过牺牲部分一致性来换取更高的可扩展性和性能,支持分布式部署,能够有效应对互联网时代的海量数据挑战。 ... [详细]
  • 构建顶级PHP博客系统:实践与洞见
    构建顶级PHP博客系统不仅需要扎实的技术基础,还需深入理解实际应用需求。本文以Zend Studio为开发环境,MySQL作为数据存储,Apache服务器为运行平台,结合jQuery脚本语言,详细阐述了从环境搭建到功能实现的全过程,分享了开发PHP博客管理系统的宝贵经验和实用技巧。 ... [详细]
  • Java 零基础入门:SQL Server 学习笔记(第21篇)
    Java 零基础入门:SQL Server 学习笔记(第21篇) ... [详细]
  • 技术日志:深入探讨Spark Streaming与Spark SQL的融合应用
    技术日志:深入探讨Spark Streaming与Spark SQL的融合应用 ... [详细]
  • 在Linux系统中,原本已安装了多个版本的Python 2,并且还安装了Anaconda,其中包含了Python 3。本文详细介绍了如何通过配置环境变量,使系统默认使用指定版本的Python,以便在不同版本之间轻松切换。此外,文章还提供了具体的实践步骤和注意事项,帮助用户高效地管理和使用不同版本的Python环境。 ... [详细]
  • 优化Oracle数据库日志功能的关闭方法与实践
    在优化Oracle数据库日志功能的过程中,关闭不必要的日志记录是一项重要任务。本文探讨了Oracle 11g中日志路径的配置和管理,特别是针对常用的警报日志(alert log)。通过合理配置 `alert_$ORACLE_SID.log` 文件,可以有效减少日志文件的大小和提高系统性能。此外,文章还介绍了如何通过调整参数和使用脚本自动化日志管理,进一步提升数据库的稳定性和维护效率。 ... [详细]
  • ActiveMQ是由Apache开发的一款广受欢迎且功能强大的开源消息中间件。作为完全符合JMS 1.1和J2EE 1.4规范的JMS Provider实现,尽管JMS规范已问世多年,但ActiveMQ依然保持了其在消息队列领域的领先地位。本文将带你初步了解ActiveMQ的核心概念及其应用场景,帮助你快速入门这一重要的消息传递技术。 ... [详细]
author-avatar
忧郁王囝
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有