Ubuntu 10.04 Lucid Lynx 从源码编译搭建Lamp扎记

在Ubuntu下搭建Lamp开发环境,其实不是想象中的那么麻烦,只需几行代码就可以了。

譬如一:
apt-get安装Lamp环境,相当简单:
shell>sudo apt-get install apache2 mysql-server php5 php5-gd php5-mysql phpmyadmin
为MySQL设置密码:
shell>mysqladmin -u root password newPassword
如果还想在命令行下测试或运行PHP脚本,则还要额外执行:
shell>sudo apt-get install php5-cli ;

譬如二:
从这个网址下载 xampp-linux-version.you.like.tar.gz:
http://sourceforge.net/project/showfiles.php?group_id=61776&package_id=60248
然后执行这样的一条命令:
tar xvfz xampp-linux-1.7.3a.tar.gz -C /opt
然后启动:
/opt/lampp/lampp start
即可。

前者是基于Ubuntu已编译的软件包,面向的是所有Ubuntu用户,因此难免会有众口难调;后者则是一个Apache的扩充集成版本,只需下载、解压、启动即可。
比之于前面两个最大的优点就是傻瓜式的安装和使用而更适合用于快速搭建的方法,倘若想令到Lamp至少提高20%的速度和稳定性的同时,还想体验安装、配置的乐在其中的过程,并使之个性化定制以便更符合个人喜好及使用习惯的话,另一个更有挑战性的方法:从源码编译安装、配置,将会是不二之选。

一、安装前准备。
1、下载相关源码包:
就个人而言,作为独立的开发者,从以下这些源码包编译、安装搭建起来的Lamp就足够了:
flex-$version-tar.gz
pcre-$version-tar.gz
apr-$version-tar.gz
apr-util--$version-tar.gz
httpd-$version-tar.gz
mysql-$version-tar.gz
php--$version-tar.gz
2、确保编译安装环境正确完整:
shell>sudo apt-get install build-essential automake autoconf libtool libncurses5-dev make libssl-dev sysv-rc-conf bison libbz2-dev libcurl3-openssl-dev libjpeg62-dev libpng12-dev libxpm-dev libt1-dev libfreetype6-dev libgmp3-dev libmcrypt-dev libmhash-dev libpspell-dev libsnmp9-dev libmm-dev libtidy-dev libxml2-dev

二、安装
1、解压已下载、待安装软件包:
shell>tar -jvxf $name-$version.tar.bz2
或者:
shell>tar -zvxf $name-$version.tar.gz
2、进入软件包解压目录:
shell>cd /path/to/extract/directory
3、configure:
查看帮助和可选参数:
shell>./configure --help
选取需要参数并configure:
shell>./configure argument,argument,……
4、make:
shell>make
别忘了:
shell>make test
还有,编译不通过时:
shell>make clean (但是并不是所有源码包都可以make clean的)
然后再 ./configure
5、安装:
shell>sudo make install
6、重复前面5个步骤,直至所有源码包安装完成。

一份缺省的符合个人喜好的configure参数可能会如下:
pcre:
./configure --prefix=/path/to/favor/pcre
flex:
./configure --prefix=/path/to/favor/flex
apr:
./configure --prefix=/path/to/favor/apr
apr-util:
./configure --prefix=/path/to/favor/apr-util 、
--with-apr=/path/to/apr
apache:
./configure --prefix=/path/to/favor/apache 、
--with-apr=/path/to/apr 、
--with-apr-util=/path/to/apr-util 、
mysql:
./configure --prefix=/path/to/favor/mysql 、
--localstatedir=/favor/dir/for/mysql/data
php:
./configure --prefix=/path/to/favor/php \
--with-apxs2=/path/to/apache/bin/apxs \
--with-mysql=/path/to/mysql \
--with-mysqli=/path/to/mysql/bin/mysql_config 、
--with-pcre=/path/to/pcre (是这里么?忘了。)

另外,根据个人经验,不要以为按照./configure --help 列出的一系列参数一股脑门的加之到 ./configure 之后就很帅,其实那很欠扁。
因为,./configure 参数的个数与编译出错的概率是成正比的,而且,通过这些参数编译出来之后,还是可以通过修改配置文件來实现的。
就然如此,为什么还要多此一举來增加编译出错率?

还有,就我个人而言,编译MySQL时,会出现一下错误:
config.status: executing libtool commands
/bin/rm: cannot remove `libtoolT': No such file or directory
config.status: executing default commands
根据提交到官网上的Bug报告上说,这不是Bug,是因为编译环境(主要是automake autoconf libtool)没装好或者一些m4文件或没有更新,所以即使 ./configure 没有通过也可以安装,但通过修改configure文件可以避免类似提示。
也有一些解决办法在这里总结了出来,结果上面也说了:http://hily.me/blog/2010/01/mysql-5-1-42-configure-error/
至于这里后来找到的说法则没有测试过:http://toxpenguin.blogspot.com/2009/09/solution-for-libtoolt-error.html

三、配置
1、Apache:
shell> sudo yourFavorEditor /path/to/apache/conf/httpd.conf
找到字段并且修改下列样式:
Listen (ip:)port
User mysql(如果为MySQL建立了用户)
Group mysql(如果为MySQL建立了用户组)
ServerAdmin yourFavorEmailAddress
ServerName yourFavorServerName(这个需要修改/etc/hosts文件才能正常访问)
DocumentRoot /path/to/yourFavor/www-data/directory
AddType application/x-httpd-php .php(在<IfModule mime_module>与</IfModule>之间增加)
AddType application/x-httpd-php-source .phps(在<IfModule mime_module>与</IfModule>之间增加)
DirectoryIndex defaultAccessedFileYouWant(设置默认访问文件)
或者可选的虚拟主机(同时需要修改/etc/hosts文件已对应相关ServerName):
NameVirtualHost *:port
<VirtualHost *:port>
    ServerAdmin ……
    DocumentRoot ……
    ServerName ……
    ServerAlias ……
    ErrorLog ……
    CustomLog ……
</VirtualHost>
2、Mysql:
shell>sudo groupadd mysql
shell>sudo useradd -g mysql -rM mysql
shell>sudo cp support-files/my-medium.cnf /etc/my.cnf
shell>cd /path/to/mysql
shell>sudo bin/mysql_install_db --user=mysql
shell>sudo chown -R root .
shell>sudo chown -R mysql var
shell>sudo chgrp -R mysql .
shell>sudo bin/mysql_safe --use=mysql &
shell>sudo bin/mysqladmin -uroot password 'new_password'
再以下就是自由发挥了。
3、PHP:
shell>cp php.ini-development /path/to/php/lib/php.ini
然后就基本不需要修改 php.ini 了,除非是增加 ZendOptimizer-3.3.9 支持。
全文完。

相关推荐