=============================说在前面的话==========================

第一安装Mysql
第二安装Apache-httpd
第三安装PHP

第四配置PHP和apache-httpd结合

第五测试PHP脚本是否成功解析
注明:
1:之所以要把PHP放在最后一个安装是因为PHP在安装的时候需要用到Mysql的驱动(PHP5.3以后在装PHP的机器上不需要提前安装Mysql,因为PHP出了自己的mysqlnd驱动)和Apache-httpd的apxs。
2:所有安装包均放在/usr/local/src下面,所有程序均安装在/usr/local下面。
3:本文档使用系统版本是CentOs 6.2 X64 ,内核版本2.6.32-220.el6.x86_64

4:本文档使用的软件版本是“Mysql-5.5.53  HTTP-2.4.24 PHP-5.6.10
Mysql 下载路径:http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.53-linux2.6-x86_64.tar.gz
Apache下载路径:http://mirrors.sohu.com/apache/httpd-2.4.23.tar.gz
PHP   下载路径:http://mirrors.sohu.com/php/php-5.6.10.tar.bz2

=============================正式开干=====================================
第一:Mysql的安装
思路:建立用户>建立数据库文件存放目录>给数据库存放目录赋权>初始化安装mysql>拷贝配置文件>设置开机启动>启动mysql服务>设置mysql密码
 
  1:建立用户

 useradd -s /sbin/nologin mysql
# -s参数是指定用户shell,这里的nologin是指该用户无法登录。
2:建立数据库存放目录
 mkdir -p /data/mysql
# -p参数的意思是创建目录树,如果上级目录不存在使用-p可以自动创建出上级目录。
3:给数据库存放目录赋予权限
 chown -R mysql:mysql /data/mysql
  # -R参数是递归的意思。
 4:运行mysql_install_db脚本初始化mysql安装   
 /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql
  # --user参数是定义数据库的所属组,--datadir参数是定义数据库数据文件存放位置。执行完后最好执行一下       echo $?命令,查看一下初始化是否   成功。
 
 5:拷贝Mysql配置文件

  cp -f /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf

  # -f选项是不询问强制覆盖的意思。在support-files这个目录下有好几个.cnf文件,这些都是针对主机内存大       小的。内存小于等于64M时使用my-     small.cnf,内存在128M左右时使用my-medium.cnf,内存在512左右时使用         my-large.cnf,内存在1G-2G时使用my-huge.cnf,还有一个my-innodb-   heavy-4G.cnf这个文件是大企业才需要       用到的,在mysql5.6以后已经将所有的配置文件移除了,只是用一个配置文件。

 
 6:设置mysql开机启动

    ①:拷贝启动脚本并赋权
 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
     #拷贝mysql.server并重命名为mysqld       
 chmod  /etc/init.d/mysqld
     #给mysqld脚本赋予可执行权限
    ②:修改启动脚本        
 vim /etc/init.d/mysqld
     #需要修改的是basedir(mysql程序路径)和datadir(数据库文件路径),本次实验指定的是basedir=/usr/local/mysql datadir=/data/mysql      
    ③:将脚本加入系统服务并设置开机启动   
 chkconfig --add mysqld

 #这里的mysqld就是之前我们拷贝的脚本名,这个命令的意思是将mysqld加入到系统服务当中。          

 chkconfig --level  mysqld on
     # --level 3是指第三运行级别,这个命令的意思是mysqld服务在3运行级别开机启动。
 7.启动mysql服务        
 service mysqld start 
     #运行命令后会有一个Starting Mysql...的提示,如果后面是OK则表示成功。
 8.更改数据库密码
 mysqladmin -u root password ''
     #我这里设置的密码是123456,设置完成后你可以试着用新密码登陆一下。
 
第二:安装Apache-httpd
 
思路:解压压缩包>编译安装>加入开机启动>启动程序
      
1.解压压缩包  
 tar zxvf httpd-2.4.23.tar.gz
   #解压后得到httpd-2.4.23这个文件夹。
2.编译安装  
  ①指定编译参数  
 /usr/local/src/httpd-2.4./configure --prefix=/usr/local/apache --enable-mods-shared=most --enables-so --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-mpms-shard=all --with-mpm=prefork
# --perfix              选项指定安装路径。
# --enable-mods-shared  选项指定编译模块数量,常用参数有all和most,all是编译所有能用的模块,most是编译大多数常用的模块。
# --enables-so          选项是启用模块动态加载功能。
# --with-apr            选项是指定apr路径。
# --with-apr-util       选项是指定apr-util路径。
# --enable-mpms-shared  选项是指动态加载mpm模块,常用参数是all、work、prefork、event。
# --with-mpm=prefork    选项是指定apache使用prefork模式工作。
apr下载路径:http://mirror.bit.edu.cn/apache//apr/apr-1.5.2.tar.gz
apr-util下载路径:http://mirror.bit.edu.cn/apache//apr/apr-util-1.5.4.tar.gz
ps:在编译的时候可能会报很多的错误,一般都是因为一些底层库没有安装导致的,我在编译的时候提示报         错“APR not found”因为没有安装apr库,再安装apr库的时候有提示没有安装gcc库和pcre库,最后安装了gcc、pcre、apr和apr-util后就好了。
  ②:编译并安装
 make && make install
3:加入开机启动
 vim /etc/rc.local
#编辑/etc/rc.local文件
 /usr/local/apache/bin/apachectl start

#将apache启动命令写入rc.local文件

4:启动http程序
 /usr/local/apache/bin/apachectl start

注意:如果访问不了要用  setenforce 0   关掉selinux或者用  iptables -F 清空防火墙规则

 
第三:安装PHP
 
思路:编译安装>拷贝配置文件
 
1:编译安装
   ①编译参数
 /usr/local/src/php-5.6./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=mysqlnd --with-libxmal-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif --disable-ipv6

# --prefix                     选项指定PHP安装路径

# --with-apxs2                 选项指定apache的apxs路径

# --with-mysql                 选项指定mysql驱动(这里使用php自己研发的mysqlnd驱动,5.3版本以上才可以)

ps:在编译这一步会提示缺少许多软件、库,按提示安装就好了,CentOS的yum源没有libmcrypt和libmcrypt-devel这两个包,最后我是通过将yum源设置为阿里云,具体步骤如下:
 rm -rf /etc/yum.repos.d/*  
#删除yum文件,执行此操作的时候记得事先装好wget    不然 你就得挂载光盘用rpm装wget了
 wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-6.repo
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/Centos-6.repo

#下载阿里云yum源文件

 yum repolist

#重新加载yum源文件

②编译并安装

 make && make install

2:拷贝配置文件

 cp /usr/local/src/php-5.6./phpini-development /usr/local/php/etc/php.ini

#在php源码包下有两个配置文件,一个是生成环境使用的php.ini-production,一个是开发环境使用的phpini-development。

第四:配置PHP和apache结合

思路:检查php模块是否生成并加载>在httpd.conf中加入php类型>在http.conf中加入.php后缀文件类型

1.检查php模块文件是否生成

 ls /usr/local/apache/modules | grep libphp5.so

#如果有libphp5.so文件,则说明生成成功。

 cat /usr/local/apache/conf/httpd.conf | grep libphp5.so

#如果有显示,说明libphp5.so加载成功。

 /usr/local/apache/bin/httpd -M | grep php5_module

#如果有显示,说明libphp5.so加载成功。

2.在httpd.conf中加入php类型

 vim /usr/local/apache2/conf/httpd.conf

#编辑httpd.conf文件,在

 AddType application/x-gzip .gz .tgz

下面添加一行

AddType application/x-httpd-php .php

3.在httpd.conf中添加index.php

vim /usr/local/apache2/conf/httpd.conf

#编辑httpd.conf文件,在

DirectoryIndex index.html 

后面加上 index.php变成

DirectoryIndex index.html index.php 

第五:测试PHP脚本是否解析成功

①在apache/htdocs下新建一个1.php的文件,内容如下

 <?php

 echo "Hello World";

 ?>

②通过浏览器访问1.php,看网页是否显示Hello World。

LAMP环境搭建 (原创帖,转载请注明出处)的更多相关文章

  1. Apache2.4权限配置(原创帖-转载请注明出处)

    ==================说在前面的话================= 1:这次实验使用的php项目是Discuz,Discuz的安装请参照:http://www.cnblogs.com/ ...

  2. Java程序员面试宝典1 ---Java基础部分(该博文为原创,转载请注明出处)

    (该博文为原创,转载请注明出处   http://www.cnblogs.com/luyijoy/  by白手伊凡) 1.    基本概念 1)         Java为解释性语言,运行过程:程序源 ...

  3. 后端Apache获取前端Nginx反向代理的真实IP地址 (原创贴-转载请注明出处)

    ====================说在前面的话==================== 环境:前段Nginx是反向代理服务器:后端是Apache是WEB项目服务器 目的:让后端Apapche获取 ...

  4. Apache开启状态查看页面(原创贴-转载请注明出处)

    =================写在前面的话================== 场景描述:有时候我们需要查看apache的运行状态,只需要开启apache的status功能就可以实现,但是stat ...

  5. Apache设置页面认证(原创贴-转载请注明出处)

    ================写在前面的话============== 1.本试验使用的apache版本是2.4.24 场景描述:网站后台管理页面比较重要,不应该任何人都让访问,所以对后台页面做认证 ...

  6. 转载请注明出处: https://github.com/qiu-deqing/FE-interview

    转载请注明出处: https://github.com/qiu-deqing/FE-interview Table of Contents generated with DocToc FE-inter ...

  7. Discuz的安装 (原创帖,转载请注明出处)

    ========================写在前面的话========================= 1.LAMP环境搭建请查看这篇日志:http://www.cnblogs.com/yic ...

  8. 阿里云服务器SQLSERVER 2019 远程服务器环境搭建【原创】【转载请注明出处】

    之前做过本地服务器SQLSERVER环境搭建.局域网环境SQLSERVER搭建.一直没有尝试自己完成一个云端服务器的环境搭建.今天就根据一个成功的例子给大家分享一下. 一.云端数据库安装与搭建 我的服 ...

  9. 移动端H5页面遇到的问题总结(转载请注明出处)

    最近刚做完一个移动端的项目,产品之无敌,过程之艰辛,我就不多说了,记录下在这个项目中遇到的问题,以防万一,虽然这些可能都是已经被N多前辈解决掉了的问题,也放在这里,算是为自己漫漫前端路铺了一颗小石子儿 ...

随机推荐

  1. SEO实战宝典阅读笔记

    1. 对搜索引擎更友好 1.1 sitemap sitemap自动生成 https://www.xml-sitemaps.com 谷歌 sitemap.xml 百度 sitemap.html 1.2 ...

  2. ssh无密码通信设置

    ■单向登陆配置:1.在本地机器中的~/.ssh/目录下执行下命令#ssh-keygen -t dsa然后全部回车,采用默认值.生成了一对密钥,id_dsa和id_dsa.pub,存放在用户目录的~/. ...

  3. C++学习笔记 构造&析构 友元 new&delete

    构造&析构函数 构造函数 定义:与类同名,可以有参可以无参,主要功能用于在类的对象创建时定义初始化的状态,无返回值,也不能用void修饰,构造函数不能被直接调用,必须通过new运算符在创建对象 ...

  4. [SharePoint 2013] Automatic deployment script

    Implement automatic deployment through windows task. Add-PsSnapin Microsoft.SharePoint.PowerShell $t ...

  5. JSONModel对架构的影响及解决方案

    越来越多的项目使用CocoaPods,使用CocoaPods很有可能会用过JSONModel. JSONModel是个很强大的库,只要根据JSON定义好对应的类并继承JSONModel,就可以把JSO ...

  6. ARM 开发工具 Keil和DS-5的比较。

    http://www.eeboard.com/bbs/thread-25219-1-1.html 如今ARM体系架构的处理器在嵌入式市场上呼风唤雨,从低端的MCU应用到高端的多媒体消费电子,移动设备领 ...

  7. Java网络编程之流——readline()方法的bug

    readline()方法有一个隐含的bug,它不一定会把一个回车看作行的结束.相反,readline()只识别换行或回车/换行对.当在流中检测到回车时,readline()会在继续之前等待,查看下一个 ...

  8. python 数据库

    什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.我们也可以将数据存储在文件中,但 ...

  9. DevExpress 为TextEdit设置水印文字

    设置水印代码: //设置水印值public static void SetWatermark(this TextEdit textEdit, string watermark) { textEdit. ...

  10. LeetCode: Queue Reconstruction by Height

    这题的关键点在于对数组的重排序方法,高度先由高到低排列不会影响第二个参数,因为list.add的方法在指定index后面插入,因此对于同高的人来说需要对第二个参数由低到高排,具体代码如下 public ...