1、简介

  在阿里云买了个云服务器,一直没时间折腾。过了近十天了吧,才有时间好好玩玩这个云服务器。自己是做Web开发的,所以我需要的开发环境是LAMP。之前打算是采用yum安装,不过yum安装apache可以安装到2.4版本,而PHP最高安装版本只能是5.4,这也是yum安装PHP的软肋,因此我这里主要涉及到的安装方式是源码安装。通过源码安装能够更好的管理这些软件,想安装到哪就放在哪。
  云服务器: 阿里云CentOS 7.2 64位
  阿帕奇版本:apache2.4
  PHP版本:PHP5.6
  主要的安装方式:源码安装
 

2、安装apache

2.1、yum方式安装apache

注意apache在linux中的名字是httpd
a、首先检查是否已经安装apache
  rpm -qa |grep httpd
  若没有则进行下一步的安装
b、yum安装apache
  yum -y install httpd
  rpm -qa |grep httpd //检查是否有安装apache
c、开启停止重启apache服务
  service httpd start | stop | restart
  ps -A|grep httpd //检查是否已经启动apache服务
注意:
  CentOS7用的是Firewall-cmd,CentOS7之前用的是iptables防火墙;要想让外网能访问到apache主目录,就需要做以下的操作:
  firewall-cmd --permanent --zone=public --add-service=http
  firewall-cmd --permanent --zone=public --add-service=https
  firewall-cmd --reload
命令含义:
  --zone #作用域
  --add-service=http #添加服务;也可以添加端口
  --add-port=80/tcp  #添加端口,格式为:端口/通讯协议
  --permanent   #永久生效,没有此参数重启后失效
d、访问外网ip

2.2、源码方式安装apache

a、 首先我们从apache官网中获取apache2.4版本软件
  也可以直接在linux中执行命令进行下载: wget http://mirrors.hust.edu.cn/apache//httpd/httpd-2.4.27.tar.gz
b、 安装httpd的软件依赖包
  这里我们采用yum安装,方便快捷。
  yum install -y apr-devel apr-util-devel openssl-devel libevent-devel pcre-devel
c、 解压安装
 tar -zxvf httpd-2.4..tar.gz
cd httpd-2.4.
./configure --prefix=/usr/local/apache24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork --with-zlib --with-pcre --with-apr=/usr --with-apr-util=/usr
make && make install
  编译说明:
  --prefix 指明程序安装目录 --enable-so 表示启用模块的动态装卸载功能
  --enable-ssl 表示启用ssl功能,此项可能需要先安装openssl-devel包
  --enable-cgi 表示启用支持cgi机制的功能 --enable-rewrite 表示支持url重写功能
  --enable-modules=most 表示启用的http模块有哪些,most表示启动大多数
  --enable-mpms-shared=all 表示以共享方式启用哪些MPM模块(prefork、worker、event), all表示所有的,此项为httpd2.4独有的选项,因为只有2.4才支持MPM的动态装卸载,2.2的MPM为静态的,只有编译进去,才能使用
  --with-mpm=prefork 表示默认启动的MPM是哪种
  --with-zlib 表示依赖zlib,用于支持压缩功能 没用=等号指明zlib的路径,则系统会自动到被依赖的文件的默认的路径去寻找, 如果被依赖的文件不是rpm安装,或不放在默认路径下,则需要手动利用=等号指明路径
  --with-pcre 表示依赖的pcre,用于支持url重写时支持正则表达式 --with-apr 依赖的apr
  --with-apr-util 依赖的apr-util
注意:
  这里需要填写依赖的软件包的安装位置,yum安装是基于rpm进行安装的,因此我们可以使用命令(rpm -ql 软件全名)进行查看软件安装在哪里。一般来说,yum安装大多数都安装在usr目录中。
d、启动httpd服务
 #cd /usr/local/apache24/bin/
#./apachectl start
  出现一个错误,即配置文件中没有serverName,那就在httpd.conf 中增加 ServerName 
  vim /usr/local/apache24/conf/httpd.conf
  #增加 ServerName localhost
e、同上开启相应的端口
f、访问外网ip
 

3、安装PHP

3.1、yum方式安装PHP

  方法同安装apache一样
  yum install php
  重启httpd,开始测试

3.2、源码方式安装PHP

a、首先将PHP压缩文件下载下来
b、yum安装依赖软件
yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-devel jemalloc jemalloc-devel
c、解压PHP压缩文件,并安装
tar zvxf php-5.6.30.tar.gz
cd php-5.6.30
groupadd www
useradd -g www -s /sbin/nologin www
#编译相关参数
./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache24/bin/apxs \
--with-config-file-path=/usr/local/php/etc \
--enable-inline-optimization --disable-debug \
--disable-rpath --enable-shared --enable-opcache \
--enable-fpm --with-fpm-user=www \
--with-fpm-group=www \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-gettext \
--enable-mbstring \
--with-iconv \
--with-mcrypt \
--with-mhash \
--with-openssl \
--enable-bcmath \
--enable-soap \
--with-libxml-dir \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-sockets \
--with-curl --with-zlib \
--enable-zip \
--with-bz2 \
--with-readline
make && make install
##参数解释
""" 安装路径 """
--prefix=/usr/local/php \
""" php.ini 配置文件路径 """
--with-apxs2=/usr/local/apache24/bin/apxs \
""" 促使生成libphp5.so """
--with-config-file-path=/usr/local/php56/etc \
""" 优化选项 """
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
""" 启用 opcache,默认为 ZendOptimizer+(ZendOpcache) """
--enable-opcache \
""" FPM """
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
""" MySQL """
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
""" 国际化与字符编码支持 """
--with-gettext \
--enable-mbstring \
--with-iconv \
""" 加密扩展 """
--with-mcrypt \
--with-mhash \
--with-openssl \
""" 数学扩展 """
--enable-bcmath \
""" Web 服务,soap 依赖 libxml """
--enable-soap \
--with-libxml-dir \
""" 进程,信号及内存 """
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
""" socket & curl """
--enable-sockets \
--with-curl \
""" 压缩与归档 """
--with-zlib \
--enable-zip \
--with-bz2 \
""" GNU Readline 命令行快捷键绑定 """
--with-readline
d、配置服务
#配置文件
cp php.ini-development /usr/local/php/etc/php.ini
#php-fpm 服务
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm chkconfig --add php-fpm
chkconfig on php-fpm
service php-fpm start
e、环境变量
#vim /etc/profile
  PATH=$PATH:/usr/local/php/bin
  export PATH
#source /etc/profile
f、修改apache配置文件
httpd.conf
  1、在LoadModule后面添加:LoadModule php5_module modules/libphp5.so //不添加则访问.php文件将会变成下载
  2、在DirectoryIndex后面添加:index.php
  3、 在AddType application/x-gzip .gz .tgz后面添加:AddType application/x-httpd-php .php //.php前面有一个空格
 
注意:
源码安装的时候必须加上这个(--with-apxs2=/usr/local/apache24/bin/apxs),它的作用就是生成libphp5.so。
 
MySQL的安装将在下一篇随笔中《linux中编译安装Apache、PHP、MySQL(下)》

(以上是自己的一些见解,若有不足或者错误的地方请各位指出)

作者:那一叶随风   http://www.cnblogs.com/phpstudy2015-6/

原文地址:http://www.cnblogs.com/phpstudy2015-6/p/7536872.html

声明:本博客文章为原创,只代表本人在工作学习中某一时间内总结的观点或结论。转载时请在文章页面明显位置给出原文链接

 

linux中编译安装Apache、PHP、MySQL(上)的更多相关文章

  1. Linux下编译安装Apache Http Server

    Linux下编译安装Apache Http Server [TOC] 1.下载httpd-2.4.12.tar.bz2 wget http://mirror.bit.edu.cn/apache/htt ...

  2. Linux中如何安装Apache服务器

    Linux中如何安装Apache服务器 由于学习的需要,所有手动安装了一下Apache源码包,安装过程中的问题千奇百怪,但是如果弄清楚了问题出在哪里,那么也不是太难.如果有学习者出现安装中的问题,可仔 ...

  3. Linux 通过编译安装apache服务以及配置

    Linux 编译安装apache服务 一.安装 1.通过编译安装,首先需要下载源代码安装包 apache下载链接:http://httpd.apache.org/download.cgi 2.解开源代 ...

  4. Linux下编译安装Apache 2.4

    Linux一般会自带httpd服务,但是版本一般不是最新,性能也不是最好,生产中建议手动安装官方源码包,安装Apache官方包之前首先要停止之前的httpd服务,停止后也可以卸载之前的版本 准备工作做 ...

  5. Linux下编译安装Apache及模块

    Apache是时下最流行的Webserver软件之中的一个,支持多平台,可高速搭建web服务,并且稳定可靠.并可通过简单的API扩充.就能够集成PHP/Python等语言解释器. 文章这里解说怎样在l ...

  6. linux下编译安装apache

    在linux(CentOS6.5)上安装Apache,要首先确保以下程序事先安装 apr:The mission of the Apache Portable Runtime (APR) projec ...

  7. Linux下编译安装Apache报APR not found错误的解决办法

    我在编译安装完Nginx.MySQL和PHP(见之前一篇博客:LNMP环境搭建详细教程)之后,进行apache的编译安装: cd /usr/local/src wget http:.tar.gz ta ...

  8. LINUX下编译安装最新版本mysql

    通过参考其他文章 1.下载安装mysql-5.5.30.tar.gz与cmake.2.8.11.2.tar.gz (1)先安装cmake(mysql5.5以后是通过cmake来编译的) [root@ ...

  9. Linux中编译安装软件的基本流程

    1. 准备软件包源文件 从互联网下载相应的软件包(以 .tar.gz 或 .tar.bz2 为后缀),将tarball文件解压到/usr/local/src目录下,并切换到软件包目录下 : 2. ./ ...

随机推荐

  1. 前端基于react,后端基于.net core2.0的开发之路(番外篇) 后端使用T4模板,生成某些类

    1.介绍 因为开发过程中,有部分类是你加一个模型,就需要去改动的,每次加非常的烦,或者有些类,你只用到了他基类的方法,但是你还必须建一个文件才能调用他基类的方法,也很烦. 这个时候,T4就非常有用了. ...

  2. ESLint 使用入门 - 来自推酷

    在团队协作中,为避免低级 Bug.产出风格统一的代码,会预先制定编码规范.使用 Lint 工具和代码风格检测工具,则可以辅助编码规范执行,有效控制代码质量. 在以前的项目中,我们选择 JSHint 和 ...

  3. I2C 读取总是 0xFF,但是 ACK 是正常的解决方法

    最近要读写 24C256,没有参考网上代码,自己撸了几个小时,总是不对,读取结果总是 0xFF,但是ACK的返回都是正确的,经过一番努力,终于找到问题所在了. 在芯片规格书里面时序图只有 START ...

  4. Codeforces 777C Alyona and Spreadsheet

    C. Alyona and Spreadsheet time limit per test:1 second memory limit per test:256 megabytes input:sta ...

  5. More is better(并查集)

    http://acm.hdu.edu.cn/showproblem.php?pid=1856 More is better Time Limit: 5000/1000 MS (Java/Others) ...

  6. c语言中标识符的作用域

    1.代码块作用域(block scope) 位于一对花括号之间的所有语句称为一个代码块,在代码块的开始位置声明的标识符具有代码块作用域,表示它们可以被这个代码中的所有语句访问.函数定义的形式参数在函数 ...

  7. 解决php的sha1和java的sha1(DigestUtils.sha1Hex)产生的字符串不相等的问题

    最近对接某个第三方服务,其中对接某些api需要用到他们的签名回调,根据他们传来的get参数和apiSecret进行拼接并使用sha1加密,然后返回弄成jsonp的格式返回,出于菜鸟的本能,首先是下载了 ...

  8. MFC中菜单的命令响应顺序

    响应只可以由Doc,View,MainFrame以及APP四个类完成. 响应顺序是: 点击某菜单项,框架类最先接到菜单命令消息. 框架类把接收到得这个消息交给它的子窗口,即视图类. 视图类根据命令消息 ...

  9. [国嵌笔记][007][Linux网络配置]

    Vmware网络设置 1.bridged(桥接模式) 如果网络中能提供多个IP地址,则使用桥接方式.虚拟机与主机的IP地址彼此独立. 2.NAT(网络地址转换模式) 如果只能提供一个IP地址,则使用N ...

  10. 【django基础补充之URL,视图,模版】

    一.url路由配置 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个URL调用这段代 ...