前言

首先说一下,Ubuntu中常用的安装软件的方法有两种:

1. apt-get方法

使用apt-get install来安装应用程序算是最常见的一种安装方法,apt-get的基本软件安装命令是:

sudo apt-get install 软件名

2. make install源代码安装

源代码安装就是从官网下载软件的完整安装包进行安装。源码安装大致可以分为三步骤:(./configure)–> 编译(make) –> 安装(make install)。

  • 配置:这是编译源代码的第一步,通过 ./configure 命令完成。执行此步以便为编译源代码作准备。常用的选项有 --prefix=PREFIX,用以指定程序的安装位置。更多的选项可通过 --help 查询。也有某些程序无需执行此步。
  • 编译:一旦配置通过,可使用 make 指令来执行源代码的编译过程。视软件的具体情况而定,编译所需的时间也各有差异,我们所要做的就是耐心等候和静观其变。此步虽然指令简单,但有时候所遇到的问题却十分复杂。较常碰到的情形是程序编译到中途却无法圆满结束。如果make过后提示各种error,则需要根据出错提示找出错误,然后重新执行make指令。
  • 安装:如果编译没有问题,那么执行 sudo make install 就可以将程序安装到系统中了,程序的默认安装路径一般是/usr/local/软件名/

本文采用第二种方法,也就是从官网下载安装包来安装Apache和php。原因有二:

  1. 对于Ubuntu新手来说,利用命令行的方式安装,并不能帮助提高Ubuntu的使用技能,尤其是对于软件的安装位置,配置环境等信息的获取而言。如果后期配置环境发生变化,或者需要增加php扩展或者Apache模块等,会给使用者造成极大的困扰。
  2. 利用命令行安装Apache和php的方式,会对二者环境变量的配置造成很大的麻烦。因为安装者往往需要借助Apache来显示php网页,但是如果安装的Apache和php版本不兼容,或者安装过程中出现错误等等原因,导致Apache不能正常解析php页面时,会给安装者带来无穷的麻烦。

安装过程

1. 准备

系统信息:Ubuntu14.04.1
Apache版本:2.2.31,安装包名为httpd-2.2.31.tar.gz。
php版本:5.6.24,安装包名为php-5.6.24.tar.bz2。

:可以在http://cn2.php.net/releases/ 下载php安装包;可以在Apache下载站点http://httpd.apache.org/ 下载Apache安装包。

2. 安装Apache

首先对httpd-2.2.31.tar.gz进行解压缩,然后进入文件夹,开始用./configuremakemake install三步曲安装Apache。命令如下:

tar xvf httpd-2.2.31.tar.gz
cd httpd-2.2.31
./configure --enable-rewrite=shared
make
make install

  1. ./configure可以带有很多选项,可利用”./configure --help”进行查看。例如本文示例,需要开启Apache的rewrite模块,就采用了” --enable-rewrite=shared”选项。具体情况视自己需要而定。
  2. ./configure运行过后如果出现错误,请把错误解决之后再进行后续操作,否则”make”指令不可能成功。
  3. 如果指令异常,请采用sudo方式利用管理员权限运行。
  4. 本文采用默认安装路径,安装如果顺利完成,那么Apache已经被安装在路径/usr/local/apache2

3. 启动Apache

之后,可以使用如下命令启动 Apache 服务器:

/usr/local/apache2/bin/apachectl start

如果成功,可以停止 Apache 服务器并继续安装 PHP:

/usr/local/apache2/bin/apachectl stop

  1. 如果启动失败,请查看端口是否被占用。如果端口被占用,则重启系统,或者kill掉占用端口的进程,再进行启动。

  2. start指令可以被换为stoprestart

  3. 如果想要Apache开机自启动,在Ubuntu14.04.1系统环境下,修改/etc/rc.local文件。在语句”exit 0”前面添加如下语句:

     /usr/local/apache2/bin/apachectl start
    
  4. (可选)配置Apache,编辑/usr/local/apache2/conf/httpd.conf,加入如下两句:

     ServerName localhostDirectoryIndex index.html index.htm index.php
    
  5. 正常启动Apache后,打开浏览器,输入localhost,如果看到“It works!”的页面,说明Apache已经成功安装了。

4. 配置并编译 PHP

在这里可以用各种各样的参数来自定义 PHP,例如启动哪些扩展功能包的支持等。用 ./configure --help 命令可以列出当前可用的所有参数。在此例中,将给出一个在有 MySQL 支持的 Apache 2 上进行配置的范例,该范例开启了php的opensslmbstringmcrypttokenizerpdo-mysql模块。

如果按照上面的说明从源代码编译了 Apache,下面的例子会正确匹配 apxs 的路径。如果通过其他方式安装了 Apache,需要相应的调整 apxs 的路径。注意,在有些发行版本中,可能将 apxs 更名为 apxs2

tar xvf php-5.6.24.tar.bz2
cd php-5.6.24
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-openssl --enable-mbstring --with-mcrypt --enable-tokenizer --with-pdo-mysql
make
make install

  1. 如果想要在安装后改变配置选项,例如想增加php的mcrypt模块,只需重复最后的三步 configure(注意要在此处选取合适的参数),make,以及 make install,然后需要重新启动 Apache 使新模块生效。Apache 不需要重新编译。
  2. 本例为了说明,在”./configure”后加入了诸多参数,如无特殊要求,./configure --with-apxs2=/usr/local/apache2/bin/apxs即可。
  3. 请注意,除非明确有提示,否则make install命令将安装 PEAR、各种 PHP 工具诸如 phpize,并安装 PHP CLI 等等。
  4. 如果”./configure”,”make”,”make install”中的任何一步出现了error,请修正错误后再进行后续操作,否则会导致安装失败。
  5. make过后系统可能会提示你运行make test,注意,这一指令将耗费较长的时间,且该指令是可选项,运行时请注意。

5. 配置 php.ini

cp php.ini-development /usr/local/lib/php.ini

  1. 可以编辑 php.ini 来设置 PHP 运行时的选项。如果想要把此文件放到另外的位置,需要在./configure时添加 --with-config-file-path=/path 选项。
  2. 如果选择了php.ini-production,请务必阅读其中的变更列表,它们将影响 PHP 的执行。

6. 正确配置Apache以调用PHP模块

编辑 httpd.conf 文件以调用 PHP 模块。LoadModule 表达式右边的路径必须指向系统中的 PHP 模块。以上的 make install 命令可能已经自动修改了httpd.conf文件,但请务必要检查该处,否则会出现php页面的解析错误。在httpd.conf文件中添加如下语句:

LoadModule php5_module modules/libphp5.so


1.如果像本文上述安装Apache的方式一样,安装者也开启了Apache的rewrite模块,则需要在httpd.conf中同时添加语句:LoadModule rewrite_module modules/mod_rewrite.so
2. 根据上述的安装方式,httpd.conf在文件夹/usr/local/apache2/conf/中。
3. 模块文件在/usr/local/apache2/modules/中。如下图所示。

7. 告知 Apache 将特定的扩展名解析成PHP

例如,让 Apache 将扩展名 .php 解析成 PHP。为了避免潜在的危险,例如上传或者创建类似 exploit.php.jpg 的文件并被当做 PHP 执行,本文不再使用 Apache 的 AddType 指令来设置。参考下面的例子,你可以简单的将需要的扩展名解释为 PHP。

httpd.conf中添加如下语句:

或者,你也想将 .php,.php2,.php3,.php4,.php5,.php6,以及 .phtml 文件都当做 PHP 来运行,我们无需额外的设置,仅需按照下面这样来:

8. 按照通常的方式启动 Apache 服务

/usr/local/apache2/bin/apachectl start

或者

service httpd restart

9. 最后测试是否配置成功

/usr/local/apache2/htdocs/文件夹下,新建空白文档,重命名为test.php,在文档中加入如下代码并保存:

打开浏览器,输入localhost/test.php,如果看到“我的 PHP 脚本!”,那么恭喜你!你已经成功完成了Apache和php的安装了!!!!

最后说两句

  1. 当然 Apache 和 PHP 都还有很多配置选项,可以在相应的源代码目录中使用 ./configure --help 获得更多信息。
  2. 根据我的个人经验,安装过程中如果出现问题,最好官网上去看官方文档,不推荐用百度等搜索引擎去网上搜解决办法,因为你可能会走很多弯路,而且最后不一定能解决问题。如果能静下心来认真的看官方文档,相信80%的错误你都能找到解决方案!

Ubuntu下利用安装包手动安装Apache和Php相关推荐

  1. Ubuntu下用安装包安装MySQL

    到官网下载MySQL5.7.22的压缩包: mysql-server_5.7.22-1ubuntu16.04_amd64.deb-bundle.tar 将压缩包解压: tar -zxvf mysql- ...

  2. ubuntu 离线下载安装包 及安装

    平时使用ubuntu的时候,下载软件经常使用apt-get 直接联网下载,但是有些情况下,机器无法联网不能在线安装. 这时候windows可以直接下载exe文件,离线安装.ubuntu则需要下载deb ...

  3. nginx 安装包手动安装搭建文件服务器(CentOS 7)

    1. 下载安装 1.1 下载安装包 下载地址:http://nginx.org/en/download.html 下载 linux 稳定版本,如下图: 1.2 解压并安装 # 解压 tar -zxvf ...

  4. Linux下deb安装包的安装教程

    pkg 是Debian Package的简写,是为Debian 专门开发的套件管理系统,方便软件的安装.更新及移除.所有源自Debian的Linux发行版都使用dpkg,例如Ubuntu.Knoppi ...

  5. Ubuntu下利用docker安装微信

    Ubuntu下利用docker安装微信 一.安装docker 二.允许所有用户访问X11服务 三.拉镜像 四.启动 五.常用命令 六.启动脚本 七.微信图标 八.新建桌面图标 本次安装是基于Ubunt ...

  6. ubuntu conda环境安装包安装

    pip install xxx conda install xxx 安装过程会安装一些附加依赖项,且会自动选择python版本下的安装包版本

  7. centos mysql安装包_Centos7下安装包方式安装MySQL

    安装包下载地址:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar 第一步:在 /h ...

  8. ubuntu 下利用ndiswrapper安装无线网卡驱动

    本文转载自 http://kangxincai.is-programmer.com/posts/10488.html 首先 安装 ndiswrapper ubuntu下也就是 ndisgtk   (用 ...

  9. Ubuntu下Zotero及Docear的安装、插件配置、联合使用

    Ubuntu下Zotero及Docear的安装.插件配置.联合使用 最近在做课程的project,免不了要读大量的文献,但是之前一直没有养成良好的文献管理习惯,读完的论文过两天总是要忘记.趁着五一放假 ...

最新文章

  1. springboot:映射静态资源路径
  2. webuploader 获取文件md5_WebUploader API文档
  3. 程序员修炼之道:从小工到专家读后感02
  4. 那是财务自由的声音!寒武纪上市造就一批85后亿万富翁
  5. C++socket编程(八)8.3:UDP广播
  6. nlp-tutorial代码注释1-2,词向量、Word2Vec、Skip-gram简述
  7. 超简单的ubuntu18.04安装teamview
  8. 数学一年级应用题_一年级训练思维的数学应用题五十道,含答案解析
  9. 用类描述计算机CPU的速度和硬件的容量
  10. 伸展树 自底向上 自顶向下
  11. 带有当前位置坐标的地图
  12. 基于单片机的教室照明智能控制系统设计
  13. TensorFlow学习笔记(一)---graph,op,tensor,Session,Variables,Tensorboard
  14. 【Python_绘图】折线图与散点图
  15. 汽车行业信息化机遇与挑战
  16. 1-计算机系统概述(CO)
  17. Python爬虫验证码识别四
  18. python爬虫福利学习
  19. 使用deconvblind估计PSF
  20. Linux操作系统笔记(超详细)

热门文章

  1. scrapy分布式碰到的一些问题和解决方案
  2. STM32CubeIDE STM32H743实现软件触发ADC实现多通道DMA方式、过采样方式采集数据
  3. 想提速但TensorRT的FP16不得劲?怎么办?在线支招!
  4. hive-insert
  5. NDK开发之JNI基础
  6. 实时渲染技术和像素流有哪些不同?
  7. vsftpd的安装与使用
  8. openfoam 源代码解析
  9. 怎么用显卡计算_显卡性能的软件 3dmark怎么用
  10. 持续盈利的乐享互动谋变:电商相关业务猛增,与巨头相比差距甚远