博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ubuntu11.10 源码编译安装PHP5.3.8 [转]
阅读量:5086 次
发布时间:2019-06-13

本文共 5743 字,大约阅读时间需要 19 分钟。

在64位Ubuntu下源码安装PHP5.3.8,并且配置Nginx为Web服务器。网上对于源码编译安装PHP的文章已经很多了,google 下一大摞,但是为啥我还这么写上呢, 一来是因为工作需要,重装了系统比较重要的就是配置环境,以前是一直用sudo apt-get的调过过程的安装方式,所以趁着这个机会能自己尝试下源码方式安装,体验下过程。二来是因为这个是第一次源码安装,特此纪念下。

 

一、 准备

   环境:64位 Ubuntu 11.10

   服务器: Nginx 1.1.13

   下载PHP源码:本文使用5.3.8版本

  

二、 安装

# tar zxvf php5.3.8.tar.gz # cd php5.3.8 # ./configure         --prefix=/usr/local/php5         --with-config-file-path=/usr/local/php5/etc         --with-curl         --with-pear         --with-gd         --with-jpeg-dir         --with-png-dir         --with-zlib         --with-xpm-dir         --with-freetype-dir         --with-t1lib         --with-mcrypt         --with-mhash         --with-mysql         --with-mysqli         --with-pdo-mysql         --with-openssl         --with-xmlrpc         --with-xsl         --with-bz2         --with-gettext         --with-fpm-user=xiaoxiao         --with-fpm-group         --enable-fpm         --enable-exif         --enable-wddx         --enable-zip         --enable-bcmath         --enable-calendar         --enable-ftp         --enable-mbstring         --enable-soap         --enable-sockets         --enable-sqlite-utf8         --enable-shmop         --enable-dba         --enable-sysvmsg         --enable-sysvsem         --enable-sysvshm

出现得错误如下:

错误一:

configure: error: xml2-config not found. Please check your libxml2 installation.

而我已经安装过了libxml2,但是还是有这个提示:

解决办法:

# sudo apt-get install libxml2-dev

 

错误二:

configure: error: Please reinstall the BZip2 distribution

而我也已经安装了bzip2,网上找到得解决方案都是需要安装bzip2-dev,可是11.10里面没有这个库。

解决办法:在网上找到bzip2-1.0.5.tar.gz,解压,直接make ,sudo make install.(我使用的该源来自于http://ishare.iask.sina.com.cn/f/9769001.html)

 

错误三:

configure: error: Please reinstall the libcurl distribution -easy.h should be in <curl-dir>/include/curl/

解决办法:

# sudo apt-get install libcurl4-gnutls-dev

 

错误四:

configure: error: jpeglib.h not found.

解决办法:

# sudo apt-get install libjpeg-dev

 

错误五:

configure: error: png.h not found.

解决办法:

# sudo apt-get install libpng-dev

 

错误六:

configure: error: libXpm.(a|so) not found.

解决办法:

# sudo apt-get install libxpm-dev

 

错误七:

configure: error: freetype.h not found.

解决办法:

# sudo apt-get install libfreetype6-dev

 

错误八:

configure: error: Your t1lib distribution is not installed correctly. Please reinstall it.

解决办法:

# sudo apt-get install libt1-dev

 

错误九:

configure: error: mcrypt.h not found. Please reinstall libmcrypt.

解决办法:

# sudo apt-get install libmcrypt-dev

 

错误十:

configure: error: Cannot find MySQL header files under yes.

Note that the MySQL client library is not bundled anymore!

解决办法:

# sudo apt-get install libmysql++-dev

 

错误十一:

configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution

解决办法:

# sudo apt-get install libxslt1-dev

可见PHP源码安装之前需要先安装这些依赖,详细可见http://forum.ubuntu.org.cn/viewtopic.php?f=88&t=231159

如上错误都解决之后,再次./config....没有错误之后,

# make # sudo make install

三、 配置

   php-fpm是一个php fastCGI得管理器,在PHP5.3.X已经集成了这个东西,所以我们可以省去自己装这个得麻烦了,只要配置一下就可以。

   先将相关得配置文件都拷贝到php5/etc目录下(该目录是我得配置文件存放目录),主要涉及有:

      1、php-fpm配置文件:php源目录/sapi/fpm/php-fpm.conf.in

      2、php-fpm启动文件:php源目录/sapi/fpm/init.d.php-fpm.in

      3、php本身配置文件:php源目录/php.ini-development  php源目录/php.ini-production

      如果需要保存一份原始得文件,那么就将以上文件另外cp一份出来,如果是不保存的,那么以上文件cp到etc下就直接更名为自己需要的。我是保留了一份在etc目录下。

     现在php5/etc目录下有如下格式配置文件:

     php-fpm.conf   init.d.php-fpm   php.ini    pear.conf(安装完成之后就有该文件)

    

    首先:配置php-fpm.conf文件:

    1、pid配置

    ;pid=run/php-fpm.pid

   将前面得;号去掉,可以后面得路径可以根据自己得需求配置一个路径。

    2、log配置

   ;error-log=log/php-fpm.log

   log的配置可以根据自己的需求是否开启及存放位置

   3、listen 配置

   listen=127.0.0.1:9000

   这个配置主要注意端口不要冲突,我在配置这个的时候采用的是网上说的socket方式,配置如下:

   listen=/usr/local/php5/var/run/php-fpm.socket

   然后在/usr/local/php5/var/run/该目录下建立该文件,注意权限需要

   其他项的配置可以根据自己的需求更改,配置项的说明在这可以看到:http://www.php.net/manual/en /install.fpm.configuration.php。同时在github上有一份比较完整可用的配置:https://github.com /vladgh/VladGh.com/blob/master/php-fpm.conf   可以作为参考。

    其次:配置init.d.php-fpm

   改文件作为启动文件,需要配置的就是在开头位置的几个变量值,包括:

   1、php_fpm_BIN:指向安装好的php目录/sbin/php-fpm

   2、php_fpm_CONF:指向安装好的php目录/etc/php-fpm.conf  {如果该配置文件你不是叫这个名字,跟这里应该为你真是得配置名}

   3、php_fpm_PID:这里指向php-fpm的pid存放路径。

   完成之后,将该文件拷贝到/etc/init.d目录下,本文是采用建立软链接的方式:

# sudo ln -s /usr/local/php5/etc/init.d.php-fpm /etc/init.d/php-fpm # sudo update-rc.d -f php-fpm defaults

 

     然后:配置php

     我是拿的php.ini- development,几乎不用配置

 

    最后:配置nginx.conf

     完成上面之后,需要配置nginx可运行php,如下配置:

    Server{}下:

     1、root html: 该项配置指明脚本程序的目录,本文是设置为root  /home/www

     2、识别.php文件:

location / {
index index.html index.htm index.php; }

     3、解析php脚本:这块只要将注释”#”去掉就好。

location ~ \.php$ {
fastcgi_pass unix:/usr/local/php5/var/run/php-fpm.socket; #127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }

    注意:fastcgi_pass 这里,后面跟php-fpm.conf中配置得listen一致,在listen中我是配置了socket方式,所以这里也这样配。

    启动服务:

# sudo /etc/init.d/nginx restart # sudo /etc/init.d/php-fpm start

在网页中输入localhost,就可以看到啦:

 如果有需要,可以添加为系统路径中:

# sudo vim /etc/bash.bashrc //在最后添加如下 if [ -d "/usr/local/php5/bin" ] && [ -d "/usr/local/php5/sbin" ]; then         PATH="$PATH:/usr/local/php5/bin:/usr/local/php5/sbin" fi

 

四、虚拟机配置

    nginx的虚拟机配置其实挺简单的,打开nginx.conf  在http{}中加入 include /usr/local/nginx/conf/virtual_sites.conf;(也可以是文件夹下的文件如sites/*.conf)

然后在virtual_sites.conf中配置需要得虚拟机:

server {
listen 80; server_name p9.xxx; root /home/www/p9/www; location / {
index index.html index.htm index.php; } location ~ \.php$ {
fastcgi_pass unix:/usr/local/php5/var/run/php-fpm.socket; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_index index.php; include fastcgi_params; } }

 

然后绑定p9.xxx到hosts中即可。一份可用的虚拟机配置也许是这样的http://wiki.nginx.org/NginxVirtualHostExample

转载于:https://www.cnblogs.com/rooney/archive/2012/06/14/2549566.html

你可能感兴趣的文章
Codeforces 719B Anatoly and Cockroaches
查看>>
jenkins常用插件汇总
查看>>
c# 泛型+反射
查看>>
第九章 前后查找
查看>>
Python学习资料
查看>>
jQuery 自定义函数
查看>>
jquery datagrid 后台获取datatable处理成正确的json字符串
查看>>
ActiveMQ与spring整合
查看>>
web服务器
查看>>
第一阶段冲刺06
查看>>
EOS生产区块:解析插件producer_plugin
查看>>
JS取得绝对路径
查看>>
排球积分程序(三)——模型类的设计
查看>>
HDU 4635 Strongly connected
查看>>
ASP.NET/C#获取文章中图片的地址
查看>>
Spring MVC 入门(二)
查看>>
格式化输出数字和时间
查看>>
页面中公用的全选按钮,单选按钮组件的编写
查看>>
java笔记--用ThreadLocal管理线程,Callable<V>接口实现有返回值的线程
查看>>
BZOJ 1047 HAOI2007 理想的正方形 单调队列
查看>>