ubuntu 手动编译lamp

文章来源:http://blog.csdn.net/turkeyzhou/archive/2009/10/06/4635079.aspx

 

此文基于自己手动编译apache-2.2.11,mysql-5.1.36和php-5.3.0, 环境是在ubuntu 9.04

一、安装apache-2.1.11

1、下载

   http://httpd.apache.org/download.cgi    
2、解压
    tar zxvf httpd-2.2.11.tar.gz
3、建立目标文件夹
    mkdir /usr/local/apache
    也就是说等下安装的apache要安装到这个文件夹里面
4、配置
    回到原来解压之后产生的文件夹
    ./configure --prefix=/usr/local/apache --enable-module=shared
    要加上后面的参数,否则无法使用php
5、编译
    make
    
6、安装
    sudo make install
   
7、启动,重启和停止

    /usr/local/apache/bin/apachectl -k start
    /usr/local/apache/bin/apachectl -k restart
    /usr/local/apache/bin/apachectl -k stop
   
8、配置文件
    gedit /usr/local/apache/conf/httpd.conf
    修改以下配置(当然这些修改是最基本的修改,如果要更高级的,参照其他apache配置手册)
   
    8.1、
    找到:
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    在后面添加:
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    8.2、
    找到:
    <IfModule dir_module>
    DirectoryIndex index.html
    </IfModule>
    添加:
    <IfModule dir_module>
    DirectoryIndex index.html index.php
    </IfModule>
    8.3、
    找到:
    #ServerName www.example.com:80
    修改为:
    ServerName 127.0.0.1:80或者ServerName localhost:80
    记得要去掉前面的“#”
    否则会出现以下错误提示:
    httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName   
9、测试
    在浏览器里输入http://127.0.0.1
    如果出现It Works!说明成功。
   
二、安装mysql-5.1.36

1、下载
    http://dev.mysql.com/downloads/
2、解压
    unzip mysql-5.1.36.zip
3、建立目标文件夹
    mkdir /usr/local/mysql
    也就是说等下安装的mysql要安装到这个文件夹里面
4、配置
    ./configure --prefix=/usr/local/mysql/ --with-extra-charsets=all
    第2个参数是说明ubuntu可以使用所有的字符集
5、编译
    make
6、安装
    make install
7、启动
    MySQL服务并不会自动启动,还需要先初始化MySQL数据库,操作如下:
    cd /usr/local/mysql/bin
    sudo ./mysql_install_db --user=<username>
    注意,这里最后的username是指可以操作数据库的用户,可以是当前用户,也可以新建用户

    ./mysqld_safe --user=<username>
    这里的username就是刚才的那个
8、为根用户创建密码
    8.1、用SET PASSWORD命令
        ./mysql -u root
        mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
    8.2、用mysqladmin
        ./mysqladmin -u root password "newpass"
        如果root已经设置过密码,采用如下方法
        ./mysqladmin -u root password oldpass "newpass"
    8.3、用UPDATE直接编辑user表
        ./mysql -u root
        mysql> use mysql;
        mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
        mysql> FLUSH PRIVILEGES;
        在丢失root密码的时候,可以这样
        ./mysqld_safe --skip-grant-tables&
        ./mysql -u root mysql
        mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';
        mysql> FLUSH PRIVILEGES;
       
    我只测试了前2种,第三种不知道怎么样
9、测试
    mysql -u root
    会提示输入密码,就用刚才设置的密码
    123456
    如果出现mysql>,说明成功了
   
10、创建数据库
    CREATE DATABASE MYTEST;
    USE MYTEST;
    CREATE TABLE TEST (TEST VARCHAR(10));
    INSERT INTO TEST VALUES ('TEST');
    SELECT * FROM TEST;
    如果能出结果,说明一且都正常了。
11、问题
    11.1、
    描述:
    configure: error: No curses/termcap library found
    解决:
    apt-get install ncurses-dev   
    11.2、
    描述:
    缺少g++
    解决:
    apt-get install g++
    11.3、
    描述:
    -fno-rtti -c -o my_new.o my_new.cc
    ../include/my_global.h:988: error: redeclaration of C++ built-in type ‘bool’
    make[2]: *** [my_new.o] Error 1
    make[2]: Leaving directory `/root/mysql-5.0.67/mysys'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/root/mysql-5.0.67'
    make: *** [all] Error 2
    解决:
    重新configure 然后再make 和make install
    11.4、
    描述:
    初始化数据库的时候(步骤6)
    FATAL ERROR: Could not find mysqld(或者其他什么找不到)
    解决:
    /etc/mysql/my.cnf删掉或者改个名字
   
三、安装php-5.3.0

1、 下载
    http://www.php.net/downloads.php
2、解压
    tar xvf php-5.3.0.tar.bz2
3、建立目标文件夹
    mkdir /usr/local/php
    也就是说等下安装的php要安装到这个文件夹里面
4、配置
    回到原来解压后的文件夹
   
./configure --prefix=/usr/local/php/ --with-mysql=/usr/local/mysql/
--with-apxs2=/usr/local/apache/bin/apxs
--with-config-file-path=/usr/local/php/etc
5、编译
    make
   
6、测试编译
    make test
   
7、安装
    make install
8、配置文件
    把原来位于源代码里面的php.ini-production拷贝到/usr/local/php/etc/下,并且重命名为php.ini
9.重启apache
10、测试
    在apache的htdocs下建立一个php文件test.php,里面的内容如下:
    <?php
    phpinfo();
    ?>
    然后在浏览器里输入http://127.0.0.1/test.php
    如果出现php的相关配置,成功,如果什么都没有输入,说明失败,重新以上步骤或者查找原因

11、问题
    11.1
    描述:
    /usr/bin/ld: cannot find -lltdl
    collect2: ld returned 1 exit status
    make: *** [libphp5.la] Error 1
    解决:   
    这是因为找不到libltdl库文件
    /software/libmcrypt-2.5.8/libltdl
    ./configure  --enable-ltdl-install
    make
    make install
    11.2、
    描述:
    reference to `res_nclose'
    gmake: *** [sapi/cli/php] Îøèáêà 1
    解决:
    我换了一个版本就通过了,不知大如何解决。
    11.3、
    配置时出现:
    configure: error: xml2-config not found. Please check your libxml2        installation.
    解决:
    可以通过apt-get install libxml2-dev来解决

    实际安装   

   
11.4:最后采用了PHP源码夹中的INSTALL中的方式,开始一直设置--with-mysql中指定的apt-get
install安装的文件夹/usr/loca/mysql5.0但通不过,现实无法找到mysql header
file的时候,将mysql的include文件夹内容复制至/usr/include文件夹中,但是仍然显示mysql配置错误和无法找到库文件,所
幸去掉了--with-mysql参数:

   ./configure --with-apxs2=/usr/local/httpd/bin/apxs --with-zlib-dir=/usr/include

四、安装phpMyAdmin

1、下载
    http://www.phpmyadmin.net/home_page/index.php
2、解压
    tar xvf phpMyAdmin-3.2.0.1-all-languages.tar.bz2
3、移动位置
    把解压后得到的文件夹移动到/usr/local/apache/htdocs/下,名称改为phpMyAdmin
4、配置文件
    cp config.simple.inc.php config.inc.php
    gedit config.inc.php
    找到:
    $cfg['blowfish_secret'] = ''
    改为:
    $cfg['blowfish_secret'] = '123456'
    其中'123456'这些数字随便写
5、测试
    http://127.0.0.1/phpMyAdmin
     如果能出现登录框,并且能登录到数据库,说明以上安装全部正确
6、问题
    6.1、无法加载 mcrypt 扩展,请检查您的 PHP 配置。
    解决:
    安装 libmcrypt
    下载libmcrypt-2.5.8.tar.gz
    解压tar zxvf libmcrypt-2.5.8.tar.gz
    配置./configure
    编译 make
    安装 make install
    注意,这里配置的时候不需要指定安装位置,否则在以后步骤中可能出错
    进入php的安装源文件,进入php-5.3.0/ext/mcrypt
    运行/usr/local/php/bin/phpize
    这时可能说没有autoconf这个软件,就装一下apt-get install autoconf,当然自己编译也可以
    再次运行/usr/local/php/bin/phpize
    会产生configure等文件
    然后配置./configure --with-php-config=/usr/local/php/bin/php-config
    编译make
    安装 make install
    会出现提示说在某个文件夹里面产生了一个文件mcrypt.so,这时要把这个文件移动到extension_dir里面,具体extension_dir是那个,可以参照刚安装完php之后测试时显示的信息
    然后重新编译php,回到php安装的(4)这时的配置参数要加一个--with-mcrypt
    重新编译安装php,然后成功后,重启apache进行测试
    6.2、找不到mbstring
    解决:
    进入php的安装源文件,进入php-5.3.0/ext/mbstring
    运行/usr/local/php/bin/phpize
    这时可能说没有autoconf这个软件,就装一下apt-get install autoconf,当然自己编译也可以
    再次运行/usr/local/php/bin/phpize
    会产生configure等文件
    然后配置./configure --with-php-config=/usr/local/php/bin/php-config
    编译make
    安装 make install
    会出现提示说在某个文件夹里面产生了一个文件mbstring.so,这时要把这个文件移动到extension_dir里面,具体extension_dir是那个,可以参照刚安装完php之后测试时显示的信息
    这次不用编译了,到php的配置文件,在extension里面添加extension=mbstring.so,然后保存后重新启动apache,如果没有达到效果,那么在后面添加绝对路径
   
6.3如果自己用libmcrypt、mhash、mcrypt编译mcrypt,那么记得前面个两个配置时要用默认配置,不要加参数,配置mcrypt
时安装到指定位置,这样方便重新编译php,如果在编译前面2个时用了指定位置,可能在编译mcrypt时出现以下问题
        6.3.1
        描述:
        libmcrypt cannot be found
         解决:
        cp /usr/local/lamp_other/libmcrypt/lib/libmcrypt.* /usr/lib/
        ln -s /usr/local/lamp_other/mhash/lib/libmhash.so.2 /usr/lib/libmhash.so.2
        这里/usr/local/lamp_other/libmcrypt/就是安装libmcrypt的指定路径
        6.3.2
        描述:
        "You need at least libmhash 0.8.15 to compile this program.
        这个问题不知道怎么解决,有的说在编译mcrypt时用LD_LIBRARY_DIR=<mhash安装路径> ./configure --prefix=/usr/local/mcrypt,不过我没有成功过
        最直接的解决办法就是得前面个两个配置时要用默认配置,不要加参数

时间: 2024-12-02 02:25:39

ubuntu 手动编译lamp的相关文章

linux中ubuntu下手动编译php-amqp扩展详细教程

PHP官网的amqp模块介绍在此,我也不多介绍.下面进入重点的安装环节. http://www.php.net/manual/en/book.amqp.php 用于ubuntu的默认源里面没有php5-amqp这个包,所以要用上amqp得考手动编译. 准备工作: # 安装php编译工具 sudo apt-get install php5-dev # 安装rabbitmq的库 sudo apt-get install librabbitmq-dev 然后如果你没有安装git话请安装一下git,因为

在Ubuntu下编译FFMPEG

在之前,我们成功地使用mingw+msys在windows平台下编译FFMpeg,并生成了ffplay.exe.现在再在Ubuntu平台上重新编译一次.相对于在windows平台上编译需要的旷日持久而且异常艰难的工作,Ubuntu上编译ffmpeg可谓是非常轻松简单的,几条简单的命令就可以轻松完成. 首先,需要在Ubuntu界面上调处命令行界面,最方便的方式是使用快捷键Ctrl+Alt+T. 第二部是安装SDL.SDL是一个开源的多媒体开发库,可以设置图像和视频的绘制等操作.如果不安装SDL,F

MYSQL5.5手动编译安装过程

MYSQL5.5的手动编译安装 安装方式分为rpm和源码编译安装两种,本文是采用mysql源码编译方式,编译器使用Cmake.软件需要mysql-5.5.40.tar.gz和cmake-2.8.10.2.tar.gz,请自行下载. 下载地址: http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.40.tar.gz http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz 其中mysql使用

手动编译java的package问题,及演示继承的基本实现

不用IDE,而直接用命令编译JAVA包,仔细看了下,作一个记录. 以下的URL值得收藏. http://www.aiuxian.com/article/p-2115485.html http://www.cnblogs.com/haolujun/archive/2013/03/02/2939698.html http://blog.sina.com.cn/s/blog_533074eb01014yd7.html 主要要理解classpath参数,d参数,及.作路径导向. 演示继承的四个文件如下:

在Ubuntu下编译wpa_supplicant

最近在研究WiFi联盟的多屏互动协议Miracast,其中需要用到wpa_supplicant,编译中遇到了一些问题,经过一下午的折腾也都解决了,下面分享给各位. 一.编译需要用到三个库源码包,分别是wpa_supplicant, openssl, libnl 1. wpa_supplicant是我们需要编译的源文件包,目前最新版本是1.1.在终端命令行下输入: wget http://hostap.epitest.fi/releases/wpa_supplicant-1.1.tar.gz 进行

gtk+-在ubuntu下编译一个开源软件,./configure时出现错误,求指教

问题描述 在ubuntu下编译一个开源软件,./configure时出现错误,求指教 显示的错误: checking for libgnome-2.0 >= 2.0.0 libgnomeui-2.0 >= 2.0.0 gtk+-2.0 >= 2.4.0 gnome-vfs-2.0 >= 2.6.0 libglade-2.0 >= 2.3.6... Package libgnome-2.0 was not found in the pkg-config search path.

如何在ubuntu下编译linux API文件?

问题描述 如何在ubuntu下编译linux API文件? 一个用到了Linux API的C文件,应该如何在ubunt下编译,我编译时总会出现系统头文件出错的情况或者缺少某个头文件 解决方案 gcc -wall -g xx.c -o xx 找出你调用的api函数x,使用man x,可以查看需要的头文件

ubuntu上编译libvnc库,报 openssl 错误

问题描述 ubuntu上编译libvnc库,报 openssl 错误 错误信息 和 libssl .libcrypto 两个库有关系. 而libssl 依赖于libcrypto,那么可以确认 是libssl的问题 . 但是 我又不敢确定一定是libssl . 系统自带的openssl ,以及 我自己安装的ssl 和libssl-dev ,我把三个 卸了,重新安装.可以依然编译报错 . 解决方案 在ubuntu上编译和交叉编译OpenSSL库在windows下编译openSSL库openssl编译

源代码-COM控件编译连接成功 但手动编译总是失败 请高手指点下

问题描述 COM控件编译连接成功 但手动编译总是失败 请高手指点下 这几天做COM技术内幕第10章的例子,手动编译时碰到了麻烦,请高手指点下! 问题如下:(我用的是VS2013C++) 这一章的例子用到手动编译,我这方面没经验,总是出错,于是就想到把客户端,COM控件, 代理DLL,本地服务器分别用VS2013在IDE下做出来,前面的客户端,和COM控件我做出来 了,但COM控件手动编译总是出错.这个问题困了我好几天了,资料查了好多,但手动编译总是过不去. 下面是我的Makefile文件的内容: