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

Ubuntu10.04LucidLynx从源码编译搭建Lamp扎记

在Ubuntu下搭建Lamp开发环境,其实不是想象中的那么麻烦,只需几行代码就可以了。譬如一:apt-get安装Lamp环境,相当简单:shell>sudoapt-getinstallapache2mysql-serverphp5php5-gdphp5-mysqlphpmyadmin为MySQL设置密码:shell>mysqladmin-urootpassw

在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(在之间增加)
AddType application/x-httpd-php-source .phps(在之间增加)
DirectoryIndex defaultAccessedFileYouWant(设置默认访问文件)
或者可选的虚拟主机(同时需要修改/etc/hosts文件已对应相关ServerName):
NameVirtualHost *:port

    ServerAdmin ……
    DocumentRoot ……
    ServerName ……
    ServerAlias ……
    ErrorLog ……
    CustomLog ……

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 支持。
全文完。


推荐阅读
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 本文介绍了在Web应用系统中,数据库性能是导致系统性能瓶颈最主要的原因之一,尤其是在大规模系统中,数据库集群已经成为必备的配置之一。文章详细介绍了主从数据库架构的好处和实验环境的搭建方法,包括主数据库的配置文件修改和设置需要同步的数据库等内容。MySQL的主从复制功能在国内外大型网站架构体系中被广泛采用,本文总结了作者在实际的Web项目中的实践经验。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
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社区 版权所有