Lamp最新源码包一般安装过程及常见问题

l Lamp简介

l Apache安装

l Mysql安装

l Php安装

l 测试lamp

l 常见问题

l 参考资料

Lamp简介

Lamp是Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件。比较流行的是Linux+Apache+Mysql+PHP架构。

php功能很强大,安装包install文件中是这样说的:

Before starting the installation, first you need to know what do you want to use PHP for.

There are three main fields you can use PHP, as described in the What can PHP do? section:

* Websites and web applications (server-side scripting)

* Command line scripting

* Desktop (GUI) applications

翻译过可以理解为:php一般用作以下3个场景:

第一:做为web解析脚本,实现动态交互。

第二:命令行脚本

第三:开发桌面GUI应用

用的最多的是第一种,lamp既是第一种的应用,下面我们开始一步一步源码安装lamp

Apache安装

首先,安装apache,其下载地址为:

   http://apache.dataguru.cn//httpd/httpd-2.4.16.tar.gz

   http://mirror.bit.edu.cn/apache/apr/apr-1.5.2.tar.gz

   http://mirror.bit.edu.cn/apache//apr/apr-util-1.5.4.tar.gz  

   http://mirror.bit.edu.cn/apache//apr/apr-iconv-1.2.1.tar.gz

安装方法:

安装准备工作,安装编译开发工具(autoconf、automake、gcc、gcc-c++、make)和pcre依赖包

[[email protected]lab05 ~]# yum -y pcre-devel && yum -y groupinstall Development\ tools

添加用户apache用来启动apache

[[email protected] ~]# useradd -M -s /sbin/nologin apache

解压源码安装包,将解压后的apr和apr-util移动到http的srclib目录,因我后面编绎要用到--with-included-apr选项,安装apr库。

[[email protected] ~]# tar -zxvf apr-1.5.2.tar.gz;tar -zxvf apr-util-1.5.4.tar.gz; tar -zxvf httpd-2.4.16.tar.gz

[[email protected] ~]# cd http-2.4.16

[[email protected] ~]# mv ../apr-1.5.2  ./srclib/apr;mv ../apr-util-1.5.4  ./srclib/apr-util

注意./configure没有用--prefix参数,那么默认安装目录为 /usr/local/apache2 ,--enable-so为支持DSO,更多可以用./configure --help,如果要启用重定向可以用--enable-rewrite,代理用--enable-proxy。

[[email protected] ~]# ./configure --with-included-apr  --enable-so

 

[[email protected] ~]# make

[[email protected] ~]# make install

#默认apache启动用户为daemon,编辑http.conf,修改User和Group为apache用户

[[email protected] ~]# vim /usr/local/apache2/conf/httpd.conf

[[email protected] ~]# /usr/local/apache2/bin/apachectl start  #直接启动方式

开机启动设置:  

复制安装包中 /httpd-2.4.16/build/rpm/httpd.init 到 /etc/init.d 目录,  

修改http.init中 

httpd=${HTTPD-/usr/sbin/httpd} 为   httpd=${HTTPD-/usr/local/apache2/bin/httpd}

CONFFILE=/etc/httpd/conf/httpd.conf为 CONFFILE=/usr/local/apache2/conf/httpd.conf

其实pidfile和lockfile可以都不改的,因为其在标准目录/var没什么不好。

pidfile=${PIDFILE-/var/run/${prog}.pid}为 pidfile=${PIDFILE- /usr/local/apache2/logs/${prog}.pid}

lockfile=${LOCKFILE-/var/lock/subsys/${prog} 为lockfile=${LOCKFILE-/usr/local/apache2/logs/subsys/${prog}}

最后执行命令:chkconfig --add httpd.init && chkconfig httpd.init on

测试apache安装成功:

可以用netstat -tlunp和curl来检查有没有成功

也可通过ps 再查看进程,发现用户为apache。

也可以用浏览器访问测试,这里就不截图了。

日志轮循设置:

复制安装包中 /httpd-2.4.16/build/rpm/httpd.logrotate 到 /etc/logrotate.d/ 目录 

修改httpd.logrotate中 /var/log/httpd/*log 为 /usr/local/apache2/logs/*log

执行logrotate -d来dbug下有没错误

[[email protected] ~]# logrotate -d /etc/logrotate.conf

执行logrotate 使日志轮循生效

[[email protected] ~]# logrotate  /etc/logrotate.conf

到些apache安装完成。

Mysql安装:

下载地址:http://mirror.bit.edu.cn/mysql/Downloads/MySQL-5.6/mysql-5.6.26.tar.gz

Mysql安装方法

安装前需要安装cmake,gcc,make,gcc-c++,autoconf,automake,ncurses-devel,libaio,libaio-devel perl等编译开发工具和依赖包

# Preconfiguration setup

   [[email protected] ~]# yum -y install autoconf automake make gcc gcc-c++ cmake ncurses-devel libaio libaio-devel

   因为mysql启动时,会默认查找/etc/my.cnf.

[[email protected] ~]# mv /etc/my.cnf /etc/my.cnf.bak

   [[email protected] ~]# groupadd mysql

   [[email protected] ~]# useradd -r -g mysql mysql

  # Beginning of source-build specific instructions

   [[email protected] ~]# tar zxvf mysql-5.6.24.tar.gz ;mkdir /usr/local/mysql

   [[email protected] ~]# cd mysql-5.6.24

   [[email protected] ~]# cmake .

# 注意下 cmake是一个跨平台安装编译工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile(在Unix like系统下)或者project文件(指定用window下的相应编程工具编译时),能测试编译器所支持的C++特性,类似UNIX下的automake,还会产生CMakeCache.txt文件,当你想再次使用cmake时,要删除CMakeCache.txt ,否则可能会出错。

   [[email protected] ~]# make

默认安装在 /usr/local/mysql

   [[email protected] ~]# make install

# End of source-build specific instructions

# Postinstallation setup初始化data目录,系统数据库等设置

   [[email protected] ~]# cd /usr/local/mysql

   [[email protected] ~]# chown -R mysql  .

[[email protected] ~]# chgrp -R mysql  .

mysql_install_db为perl写的程序,以mysql用户进行安装,默认还会生my.cnf文件在安装目录

[[email protected] ~]# scripts/mysql_install_db --user=mysql

  也可以加--basedir 和 --datadir更改默认安装目录和默认数据库安装目录

  scripts/mysql_install_db --user=mysql --basedir=/opt/mysql/mysql --datadir=/opt/mysql/mysql/data

[[email protected] ~]# chown -R root .

默认安装后mysql数据库目录/usr/local/mysql/data,改变其拥有者为mysql用户。

[[email protected] ~]# chown -R mysql data

直接启动以mysql用户身份启动mysql的方式

[[email protected] ~]# bin/mysqld_safe --user=mysql &

开机启动设置:

   # Next command is optional 开机启动mysql

[[email protected] ~]# cp support-files/mysql.server /etc/init.d/mysql.server

最后执行命令:chkconfig --add mysql.server && chkconfig mysql.server on

测试mysql安装成功:

可以用netstat -tlunp和mysql命令来检查有没有成功

也可通过ps 再查看进程,发现用户为mysql。且默认日志和pid文件都安装目录的data目录的.

安装后安全设置:

可以执行 /usr/local/mysql/bin/mysql_secure_installation,按向导进行一步一步操作,如给mysql设密码啊,删除test测试数据库等。比较简单不多说了。 

日志轮循设置:

复制源码安装包,或安装目录下的support-files/mysql-log-rotate 到/etc/logrotate.d/

[[email protected] ~]# cp /usr/local/mysql/support-files/mysql-log-rotate /etc/logrotate.d/

修改mysql-log-rotate中/usr/local/mysql/data/mysqld.log为/usr/local/mysql/data/lab05.localdomain.err

执行logrotate -d来dbug下有没错误

[[email protected] ~]# logrotate -d /etc/logrotate.conf

执行logrotate 使日志轮循生效

[[email protected] ~]# logrotate  /etc/logrotate.conf

到些mysql安装完成。

php安装

下载地址:http://cn2.php.net/distributions/php-5.6.12.tar.gz

php安装方法

[[email protected] ~]# yum -y install autoconf automake libtool re2c flex bison  libxml2-devel gd-devel

[[email protected] ~]# tar -zxvf php-5.6.9.tar.gz ;cd php-5.6.9 ; mkdir /usr/local/php

告诉php,建立共享的Apache 2.0的处理器模块。Apache apxs工具APXS的路径,加入mysql支持。

[[email protected] ~]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql

注意,在有些发行版本中,可能将 apxs 更名为 apxs2。

[[email protected] ~]# make

[[email protected] ~]# make test

[[email protected] ~]# make install

[[email protected] ~]# cp php.ini-development /usr/local/lib/php.ini

  或者,当php.ini不在标准目录/usr/local/lib时,可用下面方法安装

[[email protected] ~]# yum -y install autoconf automake libtool re2c flex bison  libxml2-devel

[[email protected] ~]# tar -zxvf php-5.6.9.tar.gz ;cd php-5.6.9 ; mkdir /usr/local/php

[[email protected] ~]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql= /usr/local/mysql/bin/mysql_config  --with-config-file-path=/usr/local/php

[[email protected] ~]# make

[[email protected] ~]# make test

[[email protected] ~]# make install

[[email protected] ~]# cp php.ini-development /usr/local/php/php.ini

到现在php已经安装成功,但还不能用我们还要在apache中声明。

php和apache结合

  前面我们有说过php有3种应用场景,第一种web applications应用最广泛,那么apache

怎么连接php呢?

当做web applications 有两种连接方式:

 apcache iis Netscape  and  iPlanet  通过直接模块接口连接php(被叫做SAPI)

 nginx    通过fastcgi 或cgi 连接php (通用网关接口)

具体操作如下:

A、编辑http.conf文件 声明php 模块

加入LoadModule php5_module modules/libphp5.so 一般情况下会自动加入

B、告诉apache 解析php 有二种方法,第一种最常用,建议用第二更安全些。 

方法一:编辑http.conf文件,利用apache的 AddType

 AddType application/x-httpd-php   .php

方法二:编辑http.conf文件,利用apache的 FilesMatch 

     <FilesMatch \.php$>

     etHandler application/x-httpd-php

     </FilesMatch>

如果想要 .php , .php2,.php3, .php4, .php5, .php6, .phtml 结尾的文件使apache,
当作php执行的话,方法二可以这样写:

<FilesMatch "\.ph(p[2-6]?|tml)$">

SetHandler application/x-httpd-php

</FilesMatch>

别外关于phps 源码

    And  to  allow  .phps files to be handled by the php source filter,

    and displayed as syntax-highlighted source code, use this:

     <FilesMatch "\.phps$">

     SetHandler application/x-httpd-php-source

     </FilesMatch>

mod_rewrite may be used To allow any arbitrary .php file to be displayed as syntax-highlighted source  code,without having to rename or copy it to a .phps file:

    RewriteEngine On

    RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]

The php source filter should not be enabled on production systems, where it may expose confidential or otherwise sensitive information embedded in source code.

C、在http.conf文件中,修改 DirectoryIndex index.html 为  DirectoryIndex index.html index.php

测试lamp

   1. 关闭防火墙 service iptables stop,关闭selinux保护 setenforce 0

2.在apache安装目录/usr/local/apache2/htdocs/ 中创建index.php文件,并加入如下代码;

  <?

     phpinfo();

?>

保存后,用浏览器访问,出现如下图,说明成功:

常见问题

关于测试php 浏览器访问时不显示

  <? phpinfo(); ?> 不能显示,空白页一个,而 <?php phpinfo(); ?> 正常显示

  为什么呢?

  因为前面那个<??>是短标签的的模式,你肯定是没有打开短标签模式,所以才不能正常显示,

  你可以在php,ini中找到short_open_tag,然后把他的值改成on就可以了.

本文是 巧妙绝情 一个字一个图打出来,参考了好多资料,感谢他们的分享,基于open source分享精神,转载请注明出出

参考资料:

Apache安装: http://httpd.apache.org/docs/2.4/install.html 也可以参考安装包下INSTALL文件

Mysql安装:参考安装包下INSTALL文件

php安装:http://php.net/install.unix 也可以参考安装包下INSTALL文件

时间: 2024-10-12 08:56:54

Lamp最新源码包一般安装过程及常见问题的相关文章

liunx命令6 vim编辑、压缩命令、rpm、yum及源码包编译安装

[[email protected] ~]# yum install -y vim-enhanced vim打开文件编辑(有颜色) [[email protected] ~]# vim  !$                   //上一条命令的最后一条参数 [[email protected] ~]# vim +10 !$                //打开文件进入第十行 :set number                                 //显示行号 vim 一般模式

linux源码包的安装

一.基础知识    编译源程序的步骤:     # tar xf testapp-version.tar.{xz|bz2|gz}     # cd testapp-version     # ./configure      还需通过许多选项指定编译特性     # make     # make install    ./configure脚本的使用:     1.获取帮助      ./configure --help     2.较通用的一些选项      安装路径相关:       --

源码包编译安装之--实战

最近安装公司安排很多程序让源码安装的活,今天和大家分享一下. 本文就以nginx为例进行源码安装的讲解: 解压: 1.# tar xf nginx-1.4.7.tar.gz{xz|bz2|gz} 2.# cd nginx-1.4.7 ./configure 还需通过许多选项指定编译特性 查看: ./configure--help --prefix=PATH        setinstallation prefix     nginx安装路径 --prefix=PATH        set i

源码包编译安装过程说明

源码编译安装说明 一.源码包说明        源码包是程序员使用特定的格式和语法所书写的文本代码,一般由英文单词组成.        计算机可以识别的是二进制语言,源码文件要想在linux上运行,必须经过编译后运行. 二.源码包特点: 源码包的优点:        源码包是开源的,可以进行修改发布.安装时,可以选择启用或禁用功能,更加具有灵活性.源码包是编译安装的,更加符合机器的特性,稳定性好. 源码包的缺点:        编译安装的步骤多,需要手动解决软件之间的依赖性,比较繁琐且编译安装时

源码包的安装

实验二:源码包的安装 实验目标: 1.      安装gcc(yum –y install gcc*) [[email protected]~]# yum -y install gcc* Loaded plugins:product-id, security, subscription-manager This system isnot registered to Red Hat Subscription Management. You can use subscription-managert

源码包编译安装mariaDB

前言 MySQL是一个关系型数据库管理系统,是最流行的关系型数据库管理系统,由于其体积小.速度快.总体拥有成本低,并且之前是完全开源,所以大受欢迎.但由于后面MySQL卖给了SUN,随后SUN被Oracle收购,虽然也有开源免费版本,但是很多功能都需要另外购买商业版本,导致现在MySQL使用份额逐渐减少.所以MariaDB就是因为这种原因诞生出来,成为数据库管理系统是MySQL的一个分支. 先前已经使用二进制安装了mariaDB(详细请查看http://www.178linux.com/8787

nginx-1.8.0源码包编译安装

nginx源码包编译安装 1.nginx简介 Nginx ("engine x") 是一个高性能的HTTP和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行. 2.安装nginx时必须先安装相应的编译工具 [[email protected] ~]# yum -y install gcc gcc-c++ autoconf autom

mysql的源码包方式安装(mysql5.5)

-------初写博客,希望在工作和日常中学习到的一些知识和经验与大家交流分享! 在Mysql5.5之后,使用源码包方式安装mysql就需要通过cmake方式进行编译了.以下内容介绍通过cmake方式安装mysql的步骤: 一:安装前准备. 1:检查系统中是否存在mysql用户与组. #grep "mysql" /etc/passwd 2:若存在,删除mysql用户与组. #userdel  -r mysql #groupdel  -r  mysql 3:创建mysql用户与组. #g

linux下源码包编译安装LAMP环境

1. 下载所需的源码包 Httpd-2.4.10  apr-1.5.1  apr-util-1.5.3  pcre-8.33(这些均可在Apache官网进行下载) Mysql-5.5.39    php-5.6.0 2. 解压这些压缩包(以上包均为.tar.gz版本的) 使用命令 tar –zxvf 安装包名 –C /usr/local/src (这里统一解压到该目录下) 3. 编译Apache部分 (1).安装apache依赖包pcre # cd ./pcre-8.33 # ./configu