Linux下一个php+mysql+nginx构建编译(三)
在此之前一直是一个关键构建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
版权声明:本文博客原创文章,博客,未经同意,不得转载。
Linux下一个php+mysql+nginx构建编译(三)的更多相关文章
- Linux 下一个 Mysql error 2002 错误解决
Linux 下一个 Mysql error 2002 错误解决 首先查看 /etc/rc.d/init.d/mysqld status 查看mysql它已开始. 假设启动的的话,先将数 ...
- Linux下Jenkins与GitHub自动构建Node项目(Vue)
根据上篇文章<Linux下Jenkins与GitHub自动构建NetCore与部署>,我们知道了Jenkins的强大功能,自动构建,部署了一个NetCore的Web,让开发人员专注于开发, ...
- Linux下yum安装MySQL
写这篇文章的原因是:在刚开始使用Linux操作系统时想要搭建LAMP环境,于是开始在Google和百度上各种寻找资料,碰到了不是很多的问题后,我决定写这篇文章总结一下在Linux下yum安装MySQL ...
- (转载)Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记
Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记 Linux下配LMAP环境,花了我好几天的时间.之前没有配置过,网上的安装资料比较混乱,加上我用的版本问题,安装过程 ...
- linux下如何安装mysql和redis
linux下如何安装mysql(mariadb) linux下如何安装软件? 1. yum安装软件也得注意,一个是配置yum源 1.我们当前的是阿里云的yum源(下载速度特别快) 通过 yum ins ...
- Linux下Jenkins与GitHub自动构建NetCore与部署
今天我们来谈谈NetCore在Linux底下的持续集成与部署.NetCore我就不多介绍了,持续集成用的是Jenkins,源代码管理器用的是GitHub.我们就跟着博文往下走吧. 1.Linux环境 ...
- Nginx知多少系列之(十四)Linux下.NET Core项目Nginx+Keepalived高可用(主从模式)
目录 1.前言 2.安装 3.配置文件详解 4.工作原理 5.Linux下托管.NET Core项目 6.Linux下.NET Core项目负载均衡 7.负载均衡策略 8.加权轮询(round rob ...
- Linux下C程序的编辑,编译和运行以及调试
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...
- Linux下一个简单的日志系统的设计及其C代码实现
1.概述 在大型软件系统中,为了监测软件运行状况及排查软件故障,一般都会要求软件程序在运行的过程中产生日志文件.在日志文件中存放程序流程中的一些重要信息, 包括:变量名称及其值.消息结构定义.函数返回 ...
随机推荐
- 【MFC两种视频图像採集方法】DirectShow与Opencv
效果图: DirectShow採集核心代码: 创建线程调用该函数,採集图像通过x264解码封装rtmp协议包.推送至FMSserver,可实现视频直播 UINT __stdcall StartVide ...
- [Android学习笔记]捕获物理回退事件
物理回退按钮默认情况下是finish当前activity,返回上一个activity 当需要获取物理回退按钮的相应事件时候,可以这么做 步骤如下: 1.override当前activity的onKey ...
- SilkTest高级进阶系列6-motif tag
看SilkTest代码的时候不小心看到winclass.inc里面的一些类申明使用的是motif tag,例如: [-] winclass MessageBoxClass : DialogBox [ ...
- winform下载网页代码
1:webClient client=new WebClient(); client.Downloadstring(地址) client.Downloadfile(地址,保存路径) 2:后台线程dow ...
- The usage of V$PGA_TARGET_ADVICE
Oracle 10g 给出了一系列的自动优化的建议,告诉我们PGA分配多大能给系统带来最大的性能?V$PGA_TARGET_ADVICE视图给出了很好的“预测”! 看一下这个视图能给我们带来什么样的信 ...
- fragment Trying to instantiate a class com.example.testhuanxindemo.MyFragment that is not a Fragmen
在使用fragment的时候,先创建了一个fragment,然后为他创建布局,并在oncreateview中返回载入该视图的后返回的view,在activity的布局文件里,使用xml布局,用frag ...
- C Coding Standard
1 共同 Rule 1 编译的Warnings不能被忽略掉 Rule 2 在已有Code或者三方的code基础上的改动,同意使用原来的coding standard Rule 3 假设同意C和C++都 ...
- libevent book——event | Gaccob的博客
libevent book——event | Gaccob的博客 libevent book——event 发表于 2013 年 2 月 22 日 由 gaccob 原文地址:http://www.w ...
- 4、深入理解Bean
本节知识点: 1. Bean 的自己主动装配(了解) 2. bean 之间的关系:继承:依赖 3.Bean 的作用域:能够在 <bean> 元素的 scope 属性里设置 Bean 的作用 ...
- 二、第一个ExtJS程序:helloExtJS
开发前的准备 下载并解压ExtJS包后,能够得到下图的文件文件夹结构: 在实际开发过程中并不须要全部的文件和文件夹,所需的包括例如以下文件夹就可以: 若使用eclipse进行开发,仅仅需将上述文件拷贝 ...