<i id='kg07e'></i>
<i id='kg07e'><div id='kg07e'><ins id='kg07e'></ins></div></i>

    1. <fieldset id='kg07e'></fieldset>
      1. <tr id='kg07e'><strong id='kg07e'></strong><small id='kg07e'></small><button id='kg07e'></button><li id='kg07e'><noscript id='kg07e'><big id='kg07e'></big><dt id='kg07e'></dt></noscript></li></tr><ol id='kg07e'><table id='kg07e'><blockquote id='kg07e'><tbody id='kg07e'></tbody></blockquote></table></ol><u id='kg07e'></u><kbd id='kg07e'><kbd id='kg07e'></kbd></kbd>

        <acronym id='kg07e'><em id='kg07e'></em><td id='kg07e'><div id='kg07e'></div></td></acronym><address id='kg07e'><big id='kg07e'><big id='kg07e'></big><legend id='kg07e'></legend></big></address><span id='kg07e'></span>

        <ins id='kg07e'></ins>

        <dl id='kg07e'></dl>

          <code id='kg07e'><strong id='kg07e'></strong></code>
          1. Linux下LAMP PHP开发环境搭建

            • 时间:
            • 浏览:4
            • 来源:124软件资讯网

                本想轻松顺遂的看到phpinfo显示在我的页面上  ,没想到安装情况时一起的error  ,一直的google折腾了半天终于看到了phpinfo 。在此把遇到的问题总结一下  ,给各人提供一个参考  。

                我的OS是ubuntu 9.10,得益于apt-get强盛的功效参考了一下这篇文章http://wiki.ubuntu.org.cn/index.php?title=Apache&variant=zh-cn#.E5.AE.89.E8.A3.85LAMP  ,轻松的完成了LAMP的搭建 。

                来手痒痒的不行  ,把情况全删了重新用源码包搭建了一遍 。步骤如下:

                (由于用非root账户登录  ,在需要root权限时用sudo执行)

                一、build-essential的安装

                # bulid-essential是编译源码包(C/C++法式)所需的编译工具

                # ubuntu 下默认没有安装,ubuntu下可以执行sudo apt-get install build-essential

                安装包 build-essential_11.4.tar.gz

                # 安装下令

                tar -zxvf build-essential_11.4.tar.gz

                cd build-essential-11.4

                ./configure

                make

                sudo make install

                make clean

                二、MySql的安装

                step.1

                ncurses的安装

                # 若是缺少ncurses包mysql编译会报No curses/termcap library found的错误

                安装包 ncurses-5.6.tar.gz

                tar -zxvf ncurses-5.6.tar.gz

                cd ncurses-5.6

                ./configure --prefix=/usr/local/ncurses --with-shared --without-debug --enable-widec

                make

                sudo make install

                make clean

                step.2

                mysql的安装

                安装包 mysql-5.1.42.tar.gz

                step.a

                # 安装下令

                tar -zxvf mysql-5.1.42.tar.gz

                cd mysql-5.1.42

                ./configure --prefix=/usr/local/mysql --with-named-curses-libs=/usr/local/ncurses/lib/libncursesw.so.5.6 --with-charset=gbk

                # --prefix=/usr/local/mysql mysql的安装路径

                # 关于mysql设置文件路径的说明:mysql根据下列顺序搜索my.cnf

                # /etc,mysql安装目录如 /usr/local/mysql/etc  ,安装目录下的data目录如 /usr/local/mysql/data  ,以最先找到的为准 。/etc下my.cnf的设置是全局设置

                # --with-named-curses-libs=/usr/local/ncurses/lib/libncursesw.so.5.6 ncurses库文件安装路径

                # --localstatedir=/usr/local/mysql/var 数据库默认存放路径(可以设置其它路径如 ,/var/lib/mysql)

                # --with-charset=gbk 设置数据库支持中文字符

                make

                sudo make install

                step.b

                # 拷贝mysql设置文件到目的目录/usr/local/mysql/etc

                # 新建/usr/local/mysql/etc目录(该目录没有自动建立)

                sudo mkdir /usr/local/mysql/etc

                sudo cp support-files/my-medium.cnf /usr/local/mysql/etc/my.cnf

                # 删除安装发生的暂时文件(一定要在拷贝完设置文件后在执行,否则my-medium.cnf会被删除)

                make clean

                step.c

                # 添加一个名为mysql的linux系统群组(可以参考mysql手册2.8.1. 源码安装概述)

                sudo groupadd mysql

                # 新建一个名为mysql的linux系统用户 ,并将其添加到mysql系统群组中

                # 若是Linux只启动下令行界面  ,可以用下面的操作添加需要的账户

                # sudo useradd -M -s /bin/false -g mysql mysql

                # -M 该选项不会建设用户目录

                # -s 指定新建用户使用的shell  ,/bin/false表现该用户不能登录系统

                # -g mysql 将用户mysql添加到组mysql中

                # 我现在用的时桌面系统  ,用如上下令添加账户  。系统启动时在登录界面会显示mysql用户虽然它不登录

                # 改用下面下令,mysql账户就不会显示在登录界面了

                sudo useradd -r -s /bin/false -g mysql mysql

                # -r 建设系统账户  ,不建立用户目录,用户分配的uid小于1000

                step.d

                # 建立mysql授权表

                # 若是用root运行下令 ,应当使用--user选项 。选项的值应与你在stpe.czz中建立的登录账户相同  。若是用该用户登录来运行下令  ,可以省略--user选项

                sudo /usr/local/mysql/bin/mysql_install_db --user=mysql

                step.e

                # 进入mysql的安装目录(/usr/local/mysql)

                cd /usr/local/mysql

                # 将文件的所有属性改为root用户

                sudo chown -R root .

                # 将数据目录的所有属性改为mysql用户(即在step.c中建立的用户)

                sudo chown -R mysql var

                # 将组属性改为mysql组

                sudo chgrp -R mysql .

                step.f

                # 启动mysql服务

                sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &

                # 登录数据库

                /usr/local/mysql/bin/mysql -uroot

                mysql安装完成了

                三、Apache的安装

                # 使用DSO动态编译,关于动态编译与静态编译的区别可以参考http://www.ha97.com/2612.html

                安装包 httpd-2.2.14.tar.gz

                tar -zvxf httpd-2.2.14.tar.gz

                cd httpd-2.2.14

                ./configure --prefix=/usr/local/apache --enable-mods-shared=most --enable-so

                # --prefix=/usr/local/apache 将apache安装到/usr/local/apache路径

                # --enable-mods-shared=most 将所有尺度模块都动态编译为DSO模块

                # --enable-so apache焦点装载DSO  ,可是不现实编译任何动态模块

                make

                make install

                make clean

                # 启动apache

                sudo /usr/local/apache/bin/apachectl start

                # 打开浏览器输入浏览器会看到It works!

                apache安装完成了

                四、PHP的安装

                step.1

                freetype的安装

                安装包 freetype-2.3.11.tar.gz

                # 安装下令

                tar -zxvf freetype-2.3.11.tar.gz

                cd freetype-2.3.11

                ./configure --prefix=/usr/local/freetype

                make

                sudo make install

                make clean

                step.2

                zlib的安装

                安装包 zlib-1.2.3.tar.gz

                # 安装下令

                tar -zxvf zlib-1.2.3.tar.gz

                cd zlib-1.2.3

                ./configure

                make

                sudo make install

                make clean

                # 安装时更悔改zlib的安装目录如/usr/local/zlib ,改后libpng的安装也乐成了  ,当是到安装gd库时一直失败 ,不得已又把zlib安装到默认路径 ,后边才顺遂通过

                step.3

                libpng的安装

                安装包 libpng-1.4.0.tar.gz

                # 安装下令

                tar -zxvf libpng-1.4.0.tar.gz

                cd libpng-1.4.0

                ./configure --prefix=/usr/local/libpng

                make

                sudo make install

                make clean

                # 许多人这样操作 cp scripts/makefile.std makefile 取代了./configure (两者区别有待查证)

                step.4

                jpeg的安装

                安装包 jpegsrc.v7.tar.gz

                # 安装下令

                tar -zxvf jpegsrc.v7.tar.gz

                cd jpeg-7

                ./configure --prefix=/usr/local/jpeg7

                make

                sudo make install

                make clean

                # 许多人手动建设 jpeg的目录结构不知道是由于差别照旧有其它缘故原由(有待查证)

                # 以上包都是gd库所需要的组成库  ,下面安装gd库

                step.5

                gd库的安装

                安装包 gd-2.0.35.tar.gz

                # 安装下令

                step.a

                tar -zxvf gd-2.0.35.tar.gz

                cd gd-2.0.35

                ./configure --prefix=/usr/local/gd2 --with-freetype=/usr/local/freetype --with-png=/usr/local/libpng --with-jpeg=/usr/local/jpeg7

                step.b

                # 编辑 Makefile 文件, 找到 232 行左右

                # 看到类似内容 CPPFLAGS = -I/usr/local/freetype/include/freetype2 -I/usr/local/freetype/include -I/usr/local/freetype/include -I/usr/local/jpeg7/include

                # 修改为 CPPFLAGS = -I/usr/local/freetype/include/freetype2 -I/usr/local/freetype/include -I/usr/local/freetype/include -I/usr/local/libpng/include -I/usr/local/jpeg7/include

                step.c

                # 编辑 gd_png.c 文件 找到 if (!png_check_sig (sig, 8)) {

                # 修改为 if (png_sig_cmp (sig, 0, 8)) {

                step.d

                # 执行下令

                make

                sudo make install

                make clean

                # gd库安装完成

                step.6

                libxml2的安装

                # libxml2用来剖析xml

                # 安装下令

                tar -zxvf libxml2-2.6.26.tar.gz

                cd libxml2-2.6.26

                ./configure --prefix=/usr/local/libxml

                make

                make install

                make clean

                step.7

                php的安装

                安装包 php-5.3.1.tar.gz

                # 安装下令

                step.a

                tar -zxvf php-5.3.1.tar.gz

                cd php-5.3.1.tar

                ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-libxml-dir=/usr/local/libxml2 --with-zlib --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg7 --with-freetype-dir=/usr/local/freetype --with-gd=/usr/local/gd2

                make

                sudo make install

                make clean

                step.b

                拷贝PHP设置文件

                sudo cp php.ini-development /usr/local/php/lib/php.ini

                # php设置文件名称差别本版名称会有差异 ,当前版本中有两个文件 php.ini-development(开发情况中用的) php.ini-production(生产情况中用的)

                step.d

                修改apache设置文件/usr/local/apache/conf/httpd.conf

                # 添加对php的支持

                LoadModule php5_module modules/libphp5.so

                AddType application/x-httpd-php .php

                step.e

                # 若是用root账户登录跳过这一步

                # 更目录web目录权限

                sudo chown -R 登任命户:登任命户 /usr/local/apache/htdocs

                step.f

                #重启apache

                sudo /usr/local/apache/bin/apachectl restart

                好了到此linux设置情况设置完了  ,由于种种问题这篇文章拖了好几天才写完  。这中心还发生了未生存而丢失文档的杯俱泪奔啊!其中各个包的安装./configure涉及到的参数只是一些基本的参数 ,LAMP之旅刚刚最先  。走过了会发现没有想象的那么难题了  ,好了  。GOOD LUCK!