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. add user and grant privileges on mariadb

    create database foo_db; create user foo_user identified by 'foo_password'; grant all on foo_db.* to ...

  2. SVN 错误 Access to SVN Repository Forbidden的原因及解决方法

    原创文章,转载请注明出处:http://www.cnblogs.com/baipengzhan/p/SVN_Access_to_SVN_Repository_Forbidden.html   当我们新 ...

  3. GUI学习中错误Exception in thread "main" java.lang.NullPointerException

    运行时出现错误:Exception in thread "main" java.lang.NullPointerException 该问题多半是由于用到的某个对象只进行了声明,而没 ...

  4. python_射门小游戏

    import random def shoot(fs = 0,i = 0,j = 0): while i < 5: print("<<<<<<< ...

  5. 将一张表的数据,拷贝到另一张表中sql

    两张表的字段一样 create table 目标表 as  select * from 原表;

  6. Nexus安装配置

    一.下载最新版本的nexus 1.下载地址:http://www.sonatype.org/nexus/go 2.官网如果下载不了,就找个zip下载,我下载的是:nexus-2.10.0-02-bun ...

  7. Windows下安装Oracle拖慢开机速度的解决方法

    环境:win7 + oracle R2 方法:将安装Oracle后自动开机启动的服务改为手动启动 步骤如下: 1.修改服务项 Ctrl + R,输入services.msc,打开服务列表,找到Orac ...

  8. 使用Microsoft Web Application Stress Tool对web进行压力测试

    Web压力测试是目前比较流行的话题,利用Web压力测试可以有效地测试一些Web服务器的运行状态和响应时间等等,对于Web服务器的承受力测试是个非常好的手法.Web 压力测试通常是利用一些工具,例如微软 ...

  9. Github .gitignore详解

    在使用git作版本控制时,git会默认把git控制的文件夹里面的所有文件都加入到版本控制.但是在实践中,我们经常会遇到不想某些文件或文件夹被git追踪的情况.比如logs文件.代码构建过程中产生的一些 ...

  10. JDK,JRE,JVM,三者的区别于联系?

    万事开头难,从基础抓起! 下载JDK官网:http://www.oracle.com/technetwork/java/javase/downloads/index.html JDK:Java Dev ...