Linux搭建LAMP环境(源码安装)适用于ubuntu,linux deepin

September 22 , 2014

需要编译到的源码文件

  • httpd-2.2.27.tar.gz
  • mysql-5.6.17.tar.gz
  • php-5.4.28.tar.gz
  • libxml2-2.6.3.tar.gz
  • libpng-1.6.10.tar.gz
  • jpegsrc.v6b.tar.gz
  • freetype-2.5.3.tar.gz
  • libmcrypt-2.5.8.tar.gz
  • autoconf-2.61.tar.gz
  • libgd-2.1.0.tar.gz
  • zlib-1.2.8.tar.gz

上面这些是基本的编译文件,如果需要其他的功能,比如memcache,则需要另外下载编译文件进行安装


检查编译环境

源码包安装方式需要Gcc编译环境,所以要检查下系统是否已经安装了gcc。

    sudo dpkg --get-selections|grep gcc

如果有输出安装信息,就说明编译的环境已经安装了。


卸载默认的软件

检查是否有相关软件

    sudo dpkg --get-selections|grep 软件名称

检测服务是否正在运行

如果正在运行,则需要停止后才能进行卸载,主要针对apache,mysql

    netstat -tnl  

    apache默认端口 80   mysql默认端口 3306

停止服务

    sudo /etc/init.d/服务名 stop

卸载软件

如果是ded安装的,则使用

    sudo apt-get -remove 软件名称

如果是源码安装的,删除文件夹即可


编译和安装软件

安装过程一般都是使用

    tar zxvf 文件名   (解压)

然后进入目录

sudo ./congfigure  (配置)

    sudo make (编译)

    sudo make install (安装)

安装libxml2

    sudo ./configure --prefix=/usr/local/libxml2

    sudo make

这一步在执行的时候遇到了错误,在网上查找资料找到了解决方法:

打开解压之后的文件夹,打开nanohttp.c 找到1588行 在方法中添加 0777的权限设置,即修改成

    fd = open(filename, O_CREAT | O_WRONLY,0777);

接下来继续

    sudo make install

安装libmcrypt

    sudo ./configure --prefix=/usr/local/libmcrypt

    sudo make

    sudo make install

安装zlib

注意:安装zlib之前需要安装此软件,命令:

sudo apt-get install zlib1g-dev

    sudo ./configure --prefix=/usr/local/zlib

    sudo make

    sudo make install

安装libpng

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

    sudo make

    sudo make install

安装jpeg6

需要手动建立目录:

    sudo mkdir /usr/local/jpeg6  //建立jpeg6软件安装目录

    sudo mkdir /usr/local/jpeg6/bin     //建立存放命令的目录

    sudo mkdir /usr/local/jpeg6/lib      //创建jpeg6库文件所在目录

    sudo mkdir /usr/local/jpeg6/include   //建立存放头文件目录

    sudo mkdir -p /usr/local/jpeg6/man/man1    //建立存放手册的目录

安装命令:

    sudo ./configure  \

    --prefix=/usr/local/jpeg6/ \             

    --enable-shared \     //建立共享库使用的GNU的libtool

    --enable-static       //建立静态库使用的GNU的libtool 
    sudo make

    sudo make install

安装freetype

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

    sudo make

    sudo make install

安装autoconf

    sudo ./configure

提示 : error: GNU M4 1.4 is required

打开 http://ftp.gnu.org/gnu/m4/ 选择最新版本的下载,这里我选择的是 m4-1.4.17

安装这个文件

    sudo ./configure
    sudo make
    sudo make install

继续安装autoconf

    sudo ./configure
    sudo make
    sudo make install

安装apache服务器

       sudo ./configure  \   //执行当前目录下软件自代的配置命令

    --prefix=/usr/local/apache2 \    //指定Apache软件安装的位置

    --sysconfdir=/etc/httpd  \     //指定Apache服务器的配置文件存放位置

    --with-z=/usr/local/zlib/ \     //指定zlib库文件的位置

    --with-included-apr  \       //使用捆绑APR/APR-Util的副本

    --enable-so \              //以动态共享对象(DSO)编译

    --enable-deflate=shared \       //缩小传输编码的支持

    --enable-expires=shared \        //期满头控制

    --enable-rewrite=shared \        //基于规则的URL操控

    --enable-static-support          //建立一个静态链接版本的支持 
    sudo make

    sudo make install 

注意:APACHE安装完成后,/usr/local/apache2即为apache的根目录,而/etc/httpd/为apache的配置目录

检查配置文件目录

    sudo vi /etc/httpd/httpd.conf

在文件的上方空白处添加:

ServerName localhost:80 //监听本机的80端口

    sudo /usr/local/apache2/bin/apachectl start    

启动Apache

    sudo /usr/local/apache2/bin/apachectl stop    

关闭Apache

    netstat -tnl|grep 80     //查看80端口是否开启 

http://localhost/去访问Apache服务器

    sudo echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.local    //添加自启动

注意:若此启动无法写进文件,请用vi编辑器直接编辑,写在该文件的代码段 'exit 0' 之前即可


安装mysql数据库

解压mysql源码安装包

    tar -zxvf mysql-5.5.37.tar.gz

安装一些编译需要的组件

安装cmake组件

    sudo apt-get install cmake

安装libncurses5-dev组件

    sudo apt-get install libncurses5-dev

安装gcc-c++组件

    sudo apt-get install build-essential

安装bison组件

    sudo apt-get install bison

设置用户组

    sudo groupadd mysql
    sudo useradd -r -g mysql mysql

编译安装

    sudo cmake \
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    -DMYSQL_DATADIR=/usr/local/mysql/data \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
    -DWITH_DEBUG=0 \
    -DWITH_INNOBASE_STORAGE_ENGINE=1

如果编译通过则开始安装,安装时间很长

    sudo make
    sudo make install

配置相应的文件

进入 /usr/local/mysql

    sudo chown -R mysql .

    sudo chgrp -R mysql .

    sudo ./scripts/mysql_install_db 

    --user=mysql --basedir=/usr/local/mysql 

    --datadir=/usr/local/mysql/data 

    --no-defaults

配置完成后修改权限

    sudo chown -R root .

    sudo chown -R mysql data

复制配置文件

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

配置my.cnf信息,找到[mysqld],然后追加进去

    [mysqld]

    user = mysql

    basedir = /usr/local/mysql

    datadir  = /usr/local/mysql/data

    character-set-server = utf8

将mysql.server拷贝/etc/init.d下:

    sudo cp ./support-files/mysql.server /etc/init.d/mysql  

启动mysql

    sudo /etc/init.d/mysql start

遇到启动失败“Starting MySQL * Couldn't find MySQL server (/usr/bin/mysqld_safe)”时

    sudo rm /etc/mysql/my.cnf

确认mysql是否安装成功

sudo /usr/local/mysql/bin/mysqladmin version

设置软连接

    cd /usr/local/mysql/bin

    sudo ln -s /usr/local/mysql/bin/mysql /usr/bin

   sudo ln -s /usr/local/mysql/bin/mysqladmin /usr/bin

    sudo ln -s /usr/local/mysql/bin/mysqldump /usr/bin

给root用户设置密码

    mysqladmin -u root password "xxx"

进入mysql看看吧

    Mysql -u root -p

    sudo rm /etc/mysql/my.cnf

安装php

这里使用了简易的安装,之后的扩展另外安装(其实是我总是遇到错误解决太麻烦了,安装了N次之后感觉这个方法最好,基本是不会出错的)

一些扩展我会在下面进行另外的安装,我感觉这样比较清晰。

这里安装的php仅仅关联了apache,mysql

之后会在扩展中安装:pdo_mysql等扩展

    sudo ./configure 

    --prefix=/usr/local/php 

    --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql/ 

    --enable-mbstring 

    --enable-xml 

    --enable-sockets

    --enable-maintainer-zts

错误:configure: error: xml2-config not found. Please check your libxml2 installation.

sudo apt-get install libxml2-dev

复制php.ini

cp /home/sniper/Downloads/php/php.ini-development /usr/local/php/lib/php.ini

打开Apache配置文件

sudo gvim /etc/httpd/httpd.conf

在后边加上

PHPIniDir /usr/local/php/

AddType application/x-httpd-php .php

重启apache 在apache的工作目录中写一个phpinfo的文件,然后进入localhost看看

<?php
    phpinfo();
?>


安装Mcrypt扩展模块

进入解压后的php文件的ext文件夹中,可以看到很多的扩展包,找到Mcrypt

    cd /home/你的名字/php-5.4.37/ext/mcrypt

运行phpize

    /usr/local/php/bin/phpize

然后会有如下显示:

这说明可以扩展

接下来编译安装:

    sudo ./configure \

    --with-php-config=/usr/local/php/bin/php-config

    --with-mcrypt=/usr/local/libmcrypt

    sudo make

    sudo make install

会出现一个路径,进入目录下就能看到so文件扩展

    Installing shared extensions:     /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/

然后编辑php.ini文件,在最后添加

    extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/"
    extension = "mcrypt.so"

然后重启apache,然后再访问phpinfo.php 就看到支持mcrypt了。


安装pdo_mysql扩展

原理基本与上面相同,只是编译的配置写法不同,这里需要加上mysql的路径。

进入pdo_mysql目录下,运行phpize

    sudo./configure 
    --with-php-config=/usr/local/php/bin/php-config
    --with-pdo-mysql=/usr/local/mysql

    sudo make

    sudo make install

然后编辑php.ini文件,接着添加

    extension = "pdo_mysql.so"

然后重启apache,然后再访问phpinfo.php 就看到支持pdo_mysql了。


安装GD库扩展

前面的和上面一样

注意要提前安装 png jepg freetype 这些

    sudo ./configure 

    --with-php-config=/usr/local/php/bin/php-config 
    --with-jpeg-dir=/usr/local/libjpeg/ 
    --with-png-dir=/usr/local/libpng/ 
    --with-freetype-dir=/usr/local/freetype/

    sudo make

    sudo make install

然后编辑php.ini文件,接着添加

    extension = "gd.so"

然后重启apache,然后再访问phpinfo.php 就看到支持gd了。


安装memcached扩展

http://pecl.php.net/package/memcache 下载扩展

    下载memcached-3.0.8.tar.gz 

解压这个文件

    tar -zxvf memcached-3.0.8.tar.gz 

进入解压文件夹中,运行phpize

    sudo ./configure 
    --enable-memcache 
    --with-php-config=/usr/local/php/bin/php-config 
    --with-zlib-dir=/usr/local/zlib/

    sudo make

    sudo make install

然后编辑php.ini文件,接着添加

    extension = "memcache.so"

然后重启apache,然后再访问phpinfo.php 就看到支持memcache了。


安装SOAP扩展

进入php中的soap文件夹,运行phpize

    sudo ./configure 

    --with-php-config=/usr/local/php/bin/php-config 

    -–enable-soap

    sudo make

    sudo make install

然后编辑php.ini文件,接着添加

    extension = "soap.so"

然后重启apache,然后再访问phpinfo.php 就看到支持soap了。


安装APC

http://pecl.php.net/get/APC-3.1.13.tgz下载扩展

运行phpize

    sudo ./configure 

    --enable-apc-mmap 

    --enable-apc 

    --enable-apc-filehits 

    --with-php-config=/usr/local/php/bin/php-config

    sudo make

    sudo make install

然后编辑php.ini文件,接着添加

    extension = "apc.so"

然后重启apache,然后再访问phpinfo.php 就看到支持apc了。


安装xdebug

下载文件为: xdebug-2.2.5 过程和上面一样,解压,进入目录,运行phpize,然后安装

    sudo ./configure 

    --with-php-config=/usr/local/php/bin/php-config 

    make && make install

接下来修改php.ini文件

在[Zend]模块之前加入

    zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so" 
    xdebug.auto_trace=1
    xdebug.collect_params=1
    xdebug.collect_return=1
    xdebug.profiler_enable=1
    xdebug.remote_enable=true     
    xdebug.remote_host=192.168.1.101
    xdebug.remote_port=9000    
    xdebug.remote_handler=dbgp
    xdebug.trace_output_dir="/home/kotori/xdebug"
    xdebug.profiler_output_dir="/home/kotori/xdebug"

编辑完php.ini 文件后 要重启下web 服务器。


安装curl

http://curl.haxx.se/download/ 下载curl文件

解压后,进入目录进行安装:

    sudo ./configure --prefix=/usr/local/curl

    sudo make  

    sudo make install

之后进入php扩展文件夹中的curl文件夹

运行phpize

    sudo ./configure 
    --with-php-config=/usr/local/php/bin/php-config 
    --with-curl=/usr/local/curl

    sudo make 

    sudo make install

然后编辑php.ini文件,接着添加

    extension = "curl.so"

然后重启apache,然后再访问phpinfo.php 就看到支持curl了。

游客评论区

#1 Hooli 2015-04-27 18:14:06 / 回复

yum,apt-get 其实很方便

#1-1 站长 2015-04-27 18:41:24 / 回复

嗯,刚刚开始用这种方式安装过,确实是很快,很方便,
后来还是习惯这种方式,可以选择自己想安装的扩展包进行安装,不需要的就不用安装了,
管理扩展的时候也比较方便

发表评论

(请不要填写空的评论)
提交评论 使用QQ登录