Linux下php+mysql+nginx编译搭建(三)
之前一直都是一键搭建的web服务器,但是一键搭建的环境相对来说都是比较老的。如果要用比较新的环境,特别是正式服务器,就必须自己手动编译搭建了(以下搭建基于linux centos6.5 32位服务器)。
三、安装php
进入安装目录:
<ol> <li>cd /opt</li> </ol>
下载并解压:
<ol> <li>Wget http://am1.php.net/get/php-5.4.34.tar.gz/from/this/mirror</li> <li>tar -zxf php-5.4.34.tar.gz</li> </ol>
进入目录编译:
<ol> <li>cd php-5.4.34</li> <li>./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</li> </ol>
报错:configure: error: mcrypt.h not found. Please reinstall libmcrypt.
在http://sourceforge.net/projects/mcrypt/files/下载libmcrypt和mcrypt编译(其中编译mcrypt需要mhash的支持,所以编译完libmcrypt后需要下载mhash,编译完mhash后才编译mcrypt)
<ol> <li>wget http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz/download</li> <li>tar -zxvf libmcrypt-2.5.8.tar.gz </li> <li>cd libmcrypt-2.5.8</li> <li>./configure</li> <li>Make && Make install</li> <li> </li> <li>Wget http://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz/download</li> <li>tar -zxvf mhash-0.9.9.9.tar.gz</li> <li>cd mhash-0.9.9.9.tar.gz</li> <li>./configure</li> <li>Make && Make install</li> <li> </li> <li>wget http://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz/download</li> <li>tar -zxvf mcrypt-2.6.8.tar.gz</li> <li>cd mcrypt-2.6.8</li> <li>./configure</li> <li>Make && Make install</li> </ol>
此时再编译(命令不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
再次编译,通过。
<ol> <li>make && make install</li> </ol>
由于php5.4已经集成了php-fpm,所以我们不需要再额外下载php-fpm。
直接运行:
<ol> <li>/usr/local/php/sbin/php-fpm</li> </ol>
报错:ERROR: failed to open configuration file '/usr/local/php/etc/php-fpm.conf': No such file or directory (2)
<ol> <li>Cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf</li> </ol>
解决。ps aux | grep php 查看,已经启动。
此时新建一个php文件访问,是不是还不支持?哈[坏笑]。
修改nginx.conf
<ol> <li>location ~ \.php$ {</li> <li> root html;</li> <li> fastcgi_pass 127.0.0.1:9000;</li> <li> fastcgi_index index.php;</li> <li> fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;</li> <li> include fastcgi_params;</li> <li> }</li> </ol>
重启nginx,至此,所有完结。
然后是不是又有点淡淡的忧伤?觉得/usr/local/php/sbin/php-fpm太长?习惯了/etc/init.d/php-fpm start?
Vim /etc/init.d/php-fpm
<ol> <li>#! /bin/sh</li> <li>### BEGIN INIT INFO</li> <li># Provides: php-fpm</li> <li># Required-Start: $remote_fs $network</li> <li># Required-Stop: $remote_fs $network</li> <li># Default-Start: 2 3 4 5</li> <li># Default-Stop: 0 1 6</li> <li># Short-Description: starts php-fpm</li> <li># Description: starts the PHP FastCGI Process Manager daemon</li> <li>### END INIT INFO</li> <li>prefix=/usr/local/php</li> <li>exec_prefix=${prefix}</li> <li> </li> <li>php_fpm_BIN=${exec_prefix}/sbin/php-fpm</li> <li>php_fpm_CONF=${prefix}/etc/php-fpm.conf</li> <li>php_fpm_PID=${prefix}/var/run/php-fpm.pid</li> <li>php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID"</li> <li>wait_for_pid () {</li> <li> try=0</li> <li> while test $try -lt 35 ; do</li> <li> case "$1" in</li> <li> 'created')</li> <li> if [ -f "$2" ] ; then</li> <li> try=''</li> <li> break</li> <li> fi</li> <li> ;;</li> <li> 'removed')</li> <li> if [ ! -f "$2" ] ; then</li> <li> try=''</li> <li> break</li> <li> fi</li> <li> ;;</li> <li> esac</li> <li> echo -n .</li> <li> try=`expr $try + 1`</li> <li> sleep 1</li> <li> done</li> <li>}</li> <li>case "$1" in</li> <li> start)</li> <li> echo -n "Starting php-fpm "</li> <li> $php_fpm_BIN --daemonize $php_opts</li> <li> if [ "$?" != 0 ] ; then</li> <li> echo " failed"</li> <li> exit 1</li> <li> fi</li> <li> wait_for_pid created $php_fpm_PID</li> <li> if [ -n "$try" ] ; then</li> <li> echo " failed"</li> <li> exit 1</li> <li> else</li> <li> echo " done"</li> <li> fi</li> <li> ;;</li> <li> stop)</li> <li> echo -n "Gracefully shutting down php-fpm "</li> <li> if [ ! -r $php_fpm_PID ] ; then</li> <li> echo "warning, no pid file found - php-fpm is not running ?"</li> <li> exit 1</li> <li> fi</li> <li> kill -QUIT `cat $php_fpm_PID`</li> <li> wait_for_pid removed $php_fpm_PID</li> <li> if [ -n "$try" ] ; then</li> <li> echo " failed. Use force-quit"</li> <li> exit 1</li> <li> else</li> <li> echo " done"</li> <li> fi</li> <li> ;;</li> <li> force-quit)</li> <li> echo -n "Terminating php-fpm "</li> <li> if [ ! -r $php_fpm_PID ] ; then</li> <li> echo "warning, no pid file found - php-fpm is not running ?"</li> <li> exit 1</li> <li> fi</li> <li> kill -TERM `cat $php_fpm_PID`</li> <li> wait_for_pid removed $php_fpm_PID</li> <li> if [ -n "$try" ] ; then</li> <li> echo " failed"</li> <li> exit 1</li> <li> else</li> <li> echo " done"</li> <li> fi</li> <li> ;;</li> <li> restart)</li> <li> $0 stop</li> <li> $0 start</li> <li> ;;</li> <li> reload)</li> <li> echo -n "Reload service php-fpm "</li> <li> if [ ! -r $php_fpm_PID ] ; then</li> <li> echo "warning, no pid file found - php-fpm is not running ?"</li> <li> exit 1</li> <li> fi</li> <li> kill -USR2 `cat $php_fpm_PID`</li> <li> echo " done"</li> <li> ;;</li> <li> *)</li> <li> echo "Usage: $0 {start|stop|force-quit|restart|reload}"</li> <li> exit 1</li> <li> ;;</li> <li>esac</li> </ol>
保存,添加x权限。
如需开机启动:chkconfig php-fpm on
更多请支持:http://www.webyang.net/Html/web/article_129.html

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

长URL(通常用关键字和跟踪参数都混乱)可以阻止访问者。 URL缩短脚本提供了解决方案,创建了简洁的链接,非常适合社交媒体和其他平台。 这些脚本对于单个网站很有价值

在Facebook在2012年通过Facebook备受瞩目的收购之后,Instagram采用了两套API供第三方使用。这些是Instagram Graph API和Instagram Basic Display API。作为开发人员建立一个需要信息的应用程序

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

这是有关用Laravel后端构建React应用程序的系列的第二个也是最后一部分。在该系列的第一部分中,我们使用Laravel为基本的产品上市应用程序创建了一个RESTFUL API。在本教程中,我们将成为开发人员

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

2025年的PHP景观调查调查了当前的PHP发展趋势。 它探讨了框架用法,部署方法和挑战,旨在为开发人员和企业提供见解。 该调查预计现代PHP Versio的增长
