设为首页 收藏本站
查看: 794|回复: 0

[经验分享] Linux下一个php+mysql+nginx构建编译(三)

[复制链接]

尚未签到

发表于 2015-8-26 11:36:34 | 显示全部楼层 |阅读模式
  在此之前一直是一个关键构建webserver。但一个关键的建筑环境都比较旧的。假定使用一个相对较新的环境,尤其是正式的server。您必须手动编译自己建(基于以下的结构linux centos6.5 32地点server)。
  三、安装php

进入安装文件夹:


  • cd /opt

  下载并解压:


  • Wget  http://am1.php.net/get/php-5.4.34.tar.gz/from/this/mirror
  • tar -zxf php-5.4.34.tar.gz

  进入文件夹编译:


  • cd php-5.4.34
  • ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql --with-mysqli=/usr/bin/mysql_config --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml  --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt=/usr/local/mcrypt --with-gd  --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --with-pear   --enable-pdo --with-pdo-mysql --with-gettext --enable-exif --enable-wddx --enable-calendar --enable-ftp  --enable-dba --enable-sysvmsg  --enable-sysvshm --enable-debug --enable-maintainer-zts --enable-embed --with-pcre-regex --enable-gd-jis-conv --with-fpm-user=www --with-fpm-group=www --enable-sockets

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

在http://sourceforge.net/projects/mcrypt/files/下载libmcrypt和mcrypt编译(当中编译mcrypt须要mhash的支持。所以编译完libmcrypt后须要下载mhash,编译完mhash后才编译mcrypt)


  • wget  http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz/download
  • tar -zxvf libmcrypt-2.5.8.tar.gz
  • cd  libmcrypt-2.5.8
  • ./configure
  • Make && Make install

  • Wget http://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz/download
  • tar -zxvf mhash-0.9.9.9.tar.gz
  • cd  mhash-0.9.9.9.tar.gz
  • ./configure
  • Make && Make install

  • wget http://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz/download
  • tar -zxvf mcrypt-2.6.8.tar.gz
  • cd  mcrypt-2.6.8
  • ./configure
  • Make && Make install

  此时再编译(命令不copy了),报错:mysql_config not found

运行:find / -name mysql_config

发现/opt/mysql-5.5.30/scripts/mysql_config

于是:cp /opt/mysql-5.5.30/scripts/mysql_config /usr/bin/mysql_config

再次编译。通过。


  • make && make install

  因为php5.4已经集成了php-fpm,所以我们不须要再额外下载php-fpm。
  

直接执行:


  • /usr/local/php/sbin/php-fpm

  报错:ERROR: failed to open configuration file '/usr/local/php/etc/php-fpm.conf': No such file or directory (2)


  • Cp /usr/local/etc/php-fpm.conf.default  /usr/local/etc/php-fpm.conf

  解决。ps aux | grep php 查看。已经启动。
  此时新建一个php文件訪问。是不是还不支持?哈[坏笑]。
  

改动nginx.conf


  • location ~ \.php$ {
  •             root           html;
  •             fastcgi_pass   127.0.0.1:9000;
  •             fastcgi_index  index.php;
  •             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
  •             include        fastcgi_params;
  • }

  重新启动nginx,至此,全部完结。
  然后是不是又有点淡淡的忧伤?认为/usr/local/php/sbin/php-fpm太长?习惯了/etc/init.d/php-fpm start?

Vim /etc/init.d/php-fpm


  • #! /bin/sh
  • ### BEGIN INIT INFO
  • # Provides:          php-fpm
  • # Required-Start:    $remote_fs $network
  • # Required-Stop:     $remote_fs $network
  • # Default-Start:     2 3 4 5
  • # Default-Stop:      0 1 6
  • # Short-Description: starts php-fpm
  • # Description:       starts the PHP FastCGI Process Manager daemon
  • ### END INIT INFO
  • prefix=/usr/local/php
  • exec_prefix=${prefix}

  • php_fpm_BIN=${exec_prefix}/sbin/php-fpm
  • php_fpm_CONF=${prefix}/etc/php-fpm.conf
  • php_fpm_PID=${prefix}/var/run/php-fpm.pid
  • php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID"
  • wait_for_pid () {
  •         try=0
  •         while test $try -lt 35 ; do
  •                 case "$1" in
  •                         'created')
  •                         if [ -f "$2" ] ; then
  •                                 try=''
  •                                 break
  •                         fi
  •                         ;;
  •                         'removed')
  •                         if [ ! -f "$2" ] ; then
  •                                 try=''
  •                                 break
  •                         fi
  •                         ;;
  •                 esac
  •                 echo -n .
  •                 try=`expr $try + 1`
  •                 sleep 1
  •         done
  • }
  • case "$1" in
  •         start)
  •                 echo -n "Starting php-fpm "
  •                 $php_fpm_BIN --daemonize $php_opts
  •                 if [ "$?" != 0 ] ; then
  •                         echo " failed"
  •                         exit 1
  •                 fi
  •                 wait_for_pid created $php_fpm_PID
  •                 if [ -n "$try" ] ; then
  •                         echo " failed"
  •                         exit 1
  •                 else
  •                         echo " done"
  •                 fi
  •         ;;
  •         stop)
  •                 echo -n "Gracefully shutting down php-fpm "
  •                 if [ ! -r $php_fpm_PID ] ; then
  •                         echo "warning, no pid file found - php-fpm is not running ?"
  •                         exit 1
  •                 fi
  •                 kill -QUIT `cat $php_fpm_PID`
  •                 wait_for_pid removed $php_fpm_PID
  •                 if [ -n "$try" ] ; then
  •                         echo " failed. Use force-quit"
  •                         exit 1
  •                 else
  •                         echo " done"
  •                 fi
  •         ;;
  •         force-quit)
  •                 echo -n "Terminating php-fpm "
  •                 if [ ! -r $php_fpm_PID ] ; then
  •                         echo "warning, no pid file found - php-fpm is not running ?  "
  •                         exit 1
  •                 fi
  •                 kill -TERM `cat $php_fpm_PID`
  •                 wait_for_pid removed $php_fpm_PID
  •                 if [ -n "$try" ] ; then
  •                         echo " failed"
  •                         exit 1
  •                 else
  •                         echo " done"
  •                 fi
  •         ;;
  •         restart)
  •                 $0 stop
  •                 $0 start
  •         ;;
  •         reload)
  •                 echo -n "Reload service php-fpm "
  •                 if [ ! -r $php_fpm_PID ] ; then
  •                         echo "warning, no pid file found - php-fpm is not running ?

      "
  •                         exit 1
  •                 fi
  •                 kill -USR2 `cat $php_fpm_PID`
  •                 echo " done"
  •         ;;
  •         *)
  •                 echo "Usage: $0 {start|stop|force-quit|restart|reload}"
  •                 exit 1
  •         ;;
  • esac

  保存,加入x权限。
  
  如需开机启动:chkconfig php-fpm on
  


  很多其它请支持:http://www.webyang.net/Html/web/article_129.html




         
版权声明:本文博客原创文章,博客,未经同意,不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-104429-1-1.html 上篇帖子: PHP的面向对象讲解(推荐) 下篇帖子: 优秀的PHP开发者是怎样炼成的?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表