查看: 252|回复: 0

[PHP学习] Ubuntu14.04下安装LAMP环境,以及源码安装PHP5.6和Apache2.4

发表于 7 天前
安装Apache

在Ubunt14.04下很多功能都在apache2这个软件包中了,不在区分mpm-work,mpm-prefork,mpm-event等软件包了,因此我们可以直接安装apache2

  1. ### sudo apt-get install apache2 -y
复制代码

注意:这边的-y是为了方便安装,加上它就不需要在进行安装确认,简单粗暴一键完成

安装Apache的PHP模块

在Ubuntu14.04中Apache的PHP模块有两个软件包,分别是:libapache2-mod-php5和libapache2-mod-php5filter.大多数情况下应该使用第一个。

  1. ### sudo apt-get install libapache2-mod-php5 -y
  2. www文件默认是在 /var/www/html
  3. ### sudo service apache2 restart
  4. 可重新启动apache
复制代码
安装PHP5的mysql模块

只有安装它mysql才能和php通信

  1. ### sudo apt-get install php5-mysql -y
复制代码
安装mysql

客户和服务一起,在安装的过程中系统会提示你输入密码这个这时候需要输入密码

  1. ### sudo apt-get mysql-server mysql-clien
  2. ### sudo service mysql restart
  3. 可重新启动mysql
复制代码

其实到这里就可以浏览测试网页了,如果在访问PHP页面不能正常显示首先要确保测试代码正确

  1. ### sudo a2enmod php5
  2. ### sudo service apache2 restart
  3. 同时清理下浏览器缓存
复制代码
LAMP卸载

如果要卸载LAMP相关软件包,则需要以下代码来实现

  1. ### sudo apt-get purge apache* mysql* php*
  2. 就可以删除相关软件包
复制代码

为了方便管理我们这里还列举了另外一种安装方式,源码安装PHP5.6以及Apache2.4,因为在Ubuntu14.04下PHP的版本为5.5.9针对一些PHP版本要求高一点的apt-get的就做不到了,因此用源码安装方式不为是一种好方法,而且灵活性,易用性都很高。

安装Apache

在安装Apache前需要安装3个依赖

  1. **Apr(apache portable runtime)**
  2. **Apr-Util**
  3. **pcre**(语言兼容正则表达式)
复制代码
  1. cd /usr/local/src 将安装包统一放在一个目录
  2. wget http://mirrors.cnnic.cn/apache//apr/apr-1.5.2.tar.gz
  3. wget http://mirrors.cnnic.cn/apache//apr/apr-util-1.5.4.tar.gz
  4. wget http://downloads.sourceforge.net/project/pcre/pcre/8.39/pcre-8.39.tar.gz (需要电脑能够上网)
  5. wget http://mirrors.cnnic.cn/apache//httpd/httpd-2.4.23.tar.bz2
复制代码

下载,解压apr的源码包,并且编译安装

  1. tar -zxvf apr-1.5.2.tar.gz
  2. cd /apr-1.5.2
  3. ./configure --prefix=/usr/local/apr && make && make install
复制代码

第一步操作是解压源码包,之后进入源码包输入./configure .....
--prefix的意思是指定安装文件路径,我们上面指定的路径/usr/local/apr,apr文件夹一开始是不存在的我们也不需要创建他指令执行完之后就会自动生成

make 是编译 make install 是安装

下载,解压apr-util源码包,并且编译安装

  1. tar -zxvf apr-util-1.5.4
  2. cd apr-util-1.5.4
  3. ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install
复制代码

相对于上面安装apr只是多了 --with-apr=/usr/local/apr 因为安装apr-util依赖apr

编译安装pcre,这里安装 pcre不指定安装路径,默认会安装在/usr/local/bin下面.

不过在开始安装之前我们需要装一些基本编译环境

  1. ### sudo apt-get install build-essential
  2. 由于ubuntu下自带有c/c++编译,只需要安装上面那一个就可以了
复制代码
  1. tar -zxvf pcre-8.39.tar.gz
  2. cd pcre-8.39
  3. ./configure && make && make install
复制代码

现在我们可以正式安装apache了

  1. tar -zxvf httpd-2.4.23.tar.bz2
  2. cd httpd-2.4.23
  3. ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util && make && make install
复制代码

安装apache的时候需要依赖前面我们装的apr和apr-util

这个时候在/usr/local/可以下看到apache目录,web页面是存放于htdocs文件夹下

如果需要使用service httpd start的方式启动apache服务,需要执行如下的命令 :

cp /usr/local/apache/bin/apachectl /etc/init.d/apache

如果出现错误的话这里可能会出现

  1. error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
复制代码

这样的错误,解决方法是:

  1. ### ln -s /usr/local/lib/libpcre.so.1 /lib
  2. 在重新启动一下就可以拉
复制代码

至此,执行service apache start启动服务,访问127.0.0.1(如果是服务器搭建在本机的话)可以看到页面输出It's work.

安装PHP5.6

可以从官网上面下载我们所需要的安装包

  1. http://php.net/get/php-5.6.31.tar.gz/from/a/mirror/php-5.6.31.tar.gz
  2. 链接如果失败则需要自己从官网上面在下载相应的安装包下来
复制代码
  1. ./configure \
  2. --prefix=/usr/local/php/ \
  3. --with-config-file-path=/usr/local/php/etc \
  4. --with-config-file-scan-dir=/usr/local/php/etc/conf.d \
  5. --enable-soap \
  6. --with-openssl \
  7. --with-mcrypt \
  8. --with-pcre-regex \
  9. --with-sqlite3 \
  10. --with-zlib \
  11. --enable-bcmath \
  12. --with-iconv \
  13. --with-bz2 \
  14. --enable-calendar \
  15. --with-curl \
  16. --with-cdb \
  17. --enable-dom \
  18. --enable-exif \
  19. --enable-fileinf \
  20. --enable-filter \
  21. --with-pcre-dir \
  22. --enable-ftp \
  23. --with-gd \
  24. --with-openssl-dir \
  25. --with-jpeg-dir \
  26. --with-png-dir \
  27. --with-freetype-dir \
  28. --with-gettext \
  29. --with-gmp \
  30. --with-mhash \
  31. --enable-json \
  32. --enable-mbstring \
  33. --disable-mbregex \
  34. --disable-mbregex-backtrack \
  35. --with-libmbfl \
  36. --with-onig \
  37. --enable-pdo \
  38. --with-pdo-mysql \
  39. --with-zlib-dir \
  40. --with-pdo-sqlite \
  41. --with-readline \
  42. --enable-session \
  43. --enable-shmop \
  44. --enable-simplexml \
  45. --enable-sockets \
  46. --enable-sysvmsg \
  47. --enable-sysvsem \
  48. --enable-sysvshm \
  49. --enable-wddx \
  50. --with-libxml-dir \
  51. --with-xsl \
  52. --enable-zip \
  53. --enable-mysqlnd-compression-support \
  54. --with-pear \
  55. --with-mysqli \
  56. --with-apxs2=/usr/local/apache/bin/apxs
复制代码

我们可以看到上面的./configure 的参数有很多可以选择性安装
--with-config-file-path和--with-config-file-scan-dir指定了配置文件的放置路径

当然到这里问题也就来了,可能会发生很多错误,不过不要紧
上有政策上有对策,一般错误问题都可以在度娘找得到

  1. 我这边简单列举几个
  2. 错误一:
  3. configure: error: xml2-config not found. Please check your libxml2 installation.
  4. 而我已经安装过了libxml2,但是还是有这个提示:
  5. 解决办法:
  6. # sudo apt-get install libxml2-dev
  7. 错误二:
  8. configure: error: Please reinstall the BZip2 distribution
  9. 而我也已经安装了bzip2,网上找到得解决方案都是需要安装bzip2-dev,可是11.10里面没有这个库。
  10. 解决办法:在网上找到bzip2-1.0.5.tar.gz,解压,直接make ,sudo make install.(我使用的该源来自于http://ishare.iask.sina.com.cn/f/9769001.html)
  11. 错误三:
  12. configure: error: Please reinstall the libcurl distribution -easy.h should be in /include/curl/
  13. 解决办法:
  14. # sudo apt-get install libcurl4-gnutls-dev
  15. 错误四:
  16. configure: error: jpeglib.h not found.
  17. 解决办法:
  18. # sudo apt-get install libjpeg-dev
  19. 错误五:
  20. configure: error: png.h not found.
  21. 解决办法:
  22. # sudo apt-get install libpng-dev
  23. 错误六:
  24. configure: error: libXpm.(a|so) not found.
  25. 解决办法:
  26. # sudo apt-get install libxpm-dev
  27. 错误七:
  28. configure: error: freetype.h not found.
  29. 解决办法:
  30. # sudo apt-get install libfreetype6-dev
  31. 错误八:
  32. configure: error: Your t1lib distribution is not installed correctly. Please reinstall it.
  33. 解决办法:
  34. # sudo apt-get install libt1-dev
  35. 错误九:
  36. configure: error: mcrypt.h not found. Please reinstall libmcrypt.
  37. 解决办法:
  38. # sudo apt-get install libmcrypt-dev
  39. 错误十:
  40. configure: error: Cannot find MySQL header files under yes.
  41. Note that the MySQL client library is not bundled anymore!
  42. 解决办法:
  43. # sudo apt-get install libmysql++-dev
  44. 错误十一:
  45. configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
  46. 解决办法:
  47. # sudo apt-get install libxslt1-dev
  48. 可见PHP源码安装之前需要先安装这些依赖,详细可见http://forum.ubuntu.org.cn/viewtopic.php?f=88&t=231159
  49. 如上错误都解决之后,再次./config….没有错误之后,
  50. # make
  51. # make install
  52. 如果说装了对于的安装包之后还不行的话那么就要在继续找
  53. apt-get 装完了安装包没有反应的话或许需要源码包安装,两种方式都可以试一下,centos下的安装包和Ubuntu下的略有名字略有不同,不过功能是一样的
复制代码

后,拷贝源码包中的php.ini到php的配置文件中,这个是因为我们编译安装的时候不会生成php.ini的配置文件,我们需要自己拷贝一份.你可能注意到php源码包中有php.ini-production跟php.ini.development两个文件,这两个文件是代表生产环境跟开发环境使用的配置文件, 这里不纠结这些,拷贝任意一个.

  1. cp /usr/local/src/php-5.6.28/php.ini-production /usr/local/php/etc/php.ini
复制代码

但是,这个时候apache是没有办法执行以php结尾的文件,要想让apache能够执行以php结尾的文件, 还需要做一件事情:找到apache的主配置文件/usr/local/apache/conf/httpd.conf,在AddType application/x-compress .Z的后面添加两行:

  1. AddType application/x-httpd-php .php
  2. AddType application/x-httpd-php-source .phps
复制代码

再找到DirectoryIndex index.html这一行,在index.html前面添加index.php,这里index.html跟index.ph的先后顺序表明了如果同时存在index.html跟inde.php的时候.访问主页优先选择index.php.

  1. 执行service apache restart,然后执行echo "<?php phpinfo();" >> /usr/local/apache/htdocs/index.php生成index.php文件,访问主页,应该可以看到有关php的信息.
复制代码

至此PHP跟apache安装完毕

有关参考https://segmentfault.com/a/11...
有关书籍《Ubuntu最佳方案》同时也推荐给大家是一本挺不错的书籍喔 冷罡华先生编著



回复

使用道具 举报