LAMP的搭建说简单也简单,说难也不容易,如果采用一键安装也是比较容易的,但想配置自己需要的版本等等也是比较麻烦。前段时间我分别在自己的电脑和阿里云上部署了Lamp环境,以下是步骤和常出现的问题的解决方法,都是编译安装,希望对初学者有用。

安装目录,我把他们指定在 /usr/local/ 下面 ,包括apache2,php,mysql文件

需要的文件http://yunpan.cn/c3KzgIjkumcwy (提取码:a1b8)

先安装apache

安装步骤:

 tar -zxvf httpd-2.4..tar.gz
cd httpd-2.4.
./configure --prefix=/usr/local/apache2 --enable-so --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre
make
make install

如果顺利,可以成功把apache安装在--prefix=指定的目录,但是可能出现编译错误,可以对照下面的方法解决

常出错误

一、在进行第三步的时候回出现缺少环境的错误,可以按照一下步骤解决

如果出现:

1 checking for APR... no
2 configure: error: APR not found . Please read the documentation

解决办法:

1:下载需要的安装包(上面的云盘中已经提供,可以下载):

 wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz
wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.zip

2.编译安装(先移除旧的文件):

 yum remove apr-util-devel apr apr-util-mysql apr-docs apr-devel apr-util apr-util-docs 

具体步骤如下:
  解决apr not found问题

 # tar -zxf apr-1.4..tar.gz
# cd apr-1.4.
# ./configure --prefix=/usr/local/apr
# make && make install

解决APR-util not found

 # tar -zxf apr-util-1.3..tar.gz
# cd apr-util-1.3.
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make && make install

解决pcre

 #unzip -o pcre-8.10.zip
#cd pcre-8.10
#./configure --prefix=/usr/local/pcre
#make && make install

4.最后编译Apache时加上:

 --with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util/ \
--with-pcre=/usr/local/pcre

二、如果在编译的时候出现:configure: error: mod_so can not be built as a shared DSO

解决办法:删除编译选项:--enable-modules=so

三、启动apache报错:

linux启动apache命令报错(98)Address already in use: make_sock: could not bind to address [::]:80

解决办法:

 查看到对应哪个应用占用了80端口:
netstat -tulnp | grep ':80 '
找到对应的PID杀掉。
kill 'PID'

四、出现:httpd: Could not reliably determine the server's fully qualified domain name

解决方案:进入apache的安装目录:
Windows : D:\Program Files\Apache Software Foundation\Apache2.2\conf
linux : /usr/local/apache/conf
用记事本打开httpd.conf
将里面的#ServerName localhost:80注释去掉即可。
再执行httpd
然后可以通过浏览器访问http://localhost:80,如果页面显示“It works!”,即表示apache已安装并启动成功。

常用修改:

Apache自动启动
1、将apachectl文件拷贝到/etc/rc.d/init.d 中,然后在/etc/rc.d/rc5.d/下加入链接即可。

 cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc5.d/S85httpd

此时Apache就可以自动启动。
2、 运行chkconfig --list,发现没有linux服务列表中httpd,通过chkconfig --add httpd来添加,但是提示:httpd服务不支持 chkconfig。

需要编辑/etc/rc.d/init.d/httpd,在第一行添加以下注释信息:

 chkconfig:
description: Activates/Deactivates Apache Web Server

第一行3个数字参数意义分别为:哪些Linux级别需要启动httpd(3,4,5);启动序号(85);关闭序号(15)。
保存后执行:chkconfig --add httpd,成功添加。
在rc3.d、rc4.d、rc5.d路径中会出现S85httpd的链接文件,其他运行级别路径中会出现K61httpd的链接文件。
3、运行chkconfig --list httpd 就会出现

可以通过:service httpd start 启动

编译期间可能出现其他的缺少环境问题,可以一步一步查查,都有对应的解决办法。

安装mysql(建议先安装mysql在安装php,php要指定mysql的安装路径)

1:检查是否已安装

 rpm -qa|grep -i mysql

载时使用了--nodeps选项,忽略了依赖关系

 rpm -e mysql-5.4.-.el6.x86_64 --nodeps

2:添加mysql组和mysql用户,用于设置mysql安装目录文件所有者和所属组。

 groupadd mysql
useradd -r -g mysql mysql

将二进制文件解压到指定的安装目录,我们这里指定为/usr/local

 cd/usr/local/
tar zxvf /your_path/mysql-5.5.-linux2.-x86_64.tar.gz

3:进入mysql文件夹,也就是mysql所在的目录,并更改所属的组和用户。

 cd mysql

 chown -R mysql .

 chgrp -R mysql .

4:执行mysql_install_db脚本,对mysql中的data目录进行初始化并创建一些系统表格。注意 mysql服务进程mysqld运行时会访问data目录,所以必须由启动mysqld进程的用户(就是我们之前设置的mysql用户)执行这个脚本,或 者用root执行,但是加上参数--user=mysql。

 scripts/mysql_install_db --user=mysql

5:将mysql/目录下除了data/目录的所有文件,改回root用户所有,mysql用户只需作为mysql/data/目录下所有文件的所有者。

 chown -R root .

 chown -R mysql data

6:  复制配置文件

 cp support-files/my-medium.cnf /etc/my.cnf
首先需要将scripts/mysql.server服务脚本复制到/etc/init.d/,并重命名为mysqld。
cp support-files/mysql.server /etc/init.d/mysqld

7:通过chkconfig命令将mysqld服务加入到自启动服务项中。

 chkconfig --add mysqld
chkconfig --list mysqld

检查是否启动:netstat -anp|grep mysqld

启动:service mysqld start

安装php

tar -zxvf php-5.0..tar.gz
cd php-5.0.
./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --disable-tokenizer --with-curl --with-mcrypt --enable-mbstring --with-iconv --with-gd --with-gettext --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --disable-tokenizer
make
make install

编译时已经制定了常用的扩展,如果还需要其他扩展,可以按照下面的方式来添加

进入源码安装包:ext文件

可用扩展都在那

执行步骤:

 //添加扩展
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-curl=DIR(默认路径时无需指定)
make&&make install
会在/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525生成curl.so文件

与apache整合:

 php与apache整合
emacs /usr/local/apache2/conf/httpd.conf 找到DirectoryIndex改为如下:
DirectoryIndex index.html index.php index.htm index.html.var
找到
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
在它后面添加
8 AddType application/x-httpd-php .php
9 /usr/local/apache2/bin/apachectl restart

搭建自己的LAMP的更多相关文章

  1. 树莓派(Raspberry Pi)搭建简单的lamp服务

    树莓派(Raspberry Pi)搭建简单的lamp服务: 1. LAMP 的安装 sudo apt-get install apache2 mysql-server mysql-client php ...

  2. Ubuntu环境搭建系列—WPS/LAMP/Python篇

    由于篇幅不宜太长,所以就将此文分成了两部分,在第一部分中我们讲解了google-chrome(谷歌浏览器)的安装,jdk的环境配置,android开发的环境搭建.那么在第二部分中,位们将讲解的是金山W ...

  3. Mac下使用Brew搭建PHP(LNMP/LAMP)开发环境

    Mac下搭建lamp开发环境很容易,有xampp和mamp现成的集成环境.但是集成环境对于经常需要自定义一些配置的开发者来说会非常麻烦,而且Mac本身自带apache和php,在brew的帮助下非常容 ...

  4. Mac下用brew搭建PHP(LNMP/LAMP)开发环境

    Mac下搭建lamp开发环境很容易,有xampp和mamp现成的集成环境.但是集成环境对于经常需要自定义一些配置的开发者来说会非常麻烦,而且Mac本身自带apache和php,在brew的帮助下非常容 ...

  5. 搭建PHP环境LAMP(Linux+Apache+MySQL+PHP)

     1.安装Apache yum -y install httpd 用/etc/init.d/httpd start 启动apache apache默认的程序目录是/var/www/html 2.安装M ...

  6. lamp搭建,thinkphp安装

    有几天没有记录学习进度了,简单回顾一下:前天由于不熟悉linux的安装操作,以及遇上了各种问题花了将近6小时搭建好了lamp,然而在中途学习修改配置时误改了启动的图形文件,导致了昨天开机时图形界面无法 ...

  7. 如何搭建lamp(CentOS7+Apache+MySQL+PHP)环境 [转]

    在网上搜资料,自己在本地虚拟机上尝试搭建,弄了整整一天一夜,终于弄好了.网上的资料,虽然很多,但大多都是重复的,拿去试了之后,又很多都不能得到正确的结果.最终找到了适合我的linux环境的搭建方式;在 ...

  8. 阿里云搭建LAMP环境详细教程

    一.云服务器的选择 随着大数据时代的到来,为了满足更为复杂的运算和用户更为苛刻的需求,云计算应运而生,随之而来的就是云服务器.过去的服务器成本较高,运算模式较为单一,资源利用率不高,而云服务器的出现刚 ...

  9. LAMP开发之环境搭建(2014.12.7在ubuntu下)

    Ubuntu下搭建LAMP环境 前言:学习PHP脚本编程语言之前,必须先搭建并熟悉开发环境,开发环境有很多种,例如LAMP.WAMP.MAMP等.这里我搭建的是LAMP环境,即Linux.Apache ...

随机推荐

  1. RocketMQ原理解析-Remoting

    Remoting2. 通信层底层传输协议 RocketMq服务器与客户端通过传递RemotingCommand来交互,通过NettyDecoder,对RemotingCommand进行协议的编码与解码 ...

  2. FZU 2105Digits Count(线段树 + 成段更新)

    Description Given N integers A={A[0],A[1],...,A[N-1]}. Here we have some operations: Operation 1: AN ...

  3. 推荐一款Linux下的开源编辑器

    Sublime编辑器,下载地址.下载后解压,解压到家目录下,为解压后的文件夹里的可执行文件添加环境变量, vim ~/.bashrc 打开配置环境变量的文件,在最后一行添加export PATH=&q ...

  4. 配置LVS + Keepalived高可用负载均衡集群之图文教程

    负载均衡系统可以选用LVS方案,而为避免Director Server单点故障引起系统崩溃,我们可以选用LVS+Keepalived组合保证高可用性.  重点:每个节点时间都同步哈! C++代码 [r ...

  5. IndexedDB(本地存储)

    var students = [{ id: 1001, name: "Byron", age: 24 }, { id: 1002, name: "Frank", ...

  6. 纯CSS3实现动态导航栏目

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Java IO流学习总结

    Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  8. Web API系列(二)接口安全和参数校验

    以前简单介绍过web api 的设计,但是还是有很多朋友问我,如何合理的设计和实现web api.比如,接口安全,异常处理,统一数据返回等问题.所以有必要系统的总结总结 web api 的设计和实现. ...

  9. Python之路【第二十三篇】爬虫

    difference between urllib and urllib2 自己翻译的装逼必备 What is the difference between urllib and urllib2 mo ...

  10. 对路径的访问被拒绝,解决之后又报-未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。

    服务器环境:Server 2008  64位系统 问题:在导入Excel题录表时报错,1对路径的访问被拒绝,2未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序. 解决方案 ...