您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
nginx-编译PHP5.4.19并与nginx1.4.2整合+mysql+gd库
发布时间:2017-11-23 12:29:10编辑:雪饮阅读()
安装mysql
yum install mysql mysql-devel mysql-server
mysqld的yum安装后可以直接使用命令service mysqld restart这种便捷命令
可以编译安装默认是不带这种便捷命令的
要从mysqld安装路径中来管理
安装gd
yum install gd
编译php
cd /usr/local/src
进入php-5.4.19中make clean清除下之前的编译结果
apache一般是把php当做自己的一个模块来启动的.
而nginx则是把http请求变量(如get,user_agent等)转发给 php进程,即php独立进程,与nginx进行通信. 称为 fastcgi运行方式.
因此,为apache所编译的php,是不能用于nginx的.
apache是将php嵌入其中以模块运行,nginx和php是同一级别,遇到php请求时将调用php进程来处理。
nginx+php的配置比较简单,核心就一句话----
把请求的信息转发给9000端口的PHP进程,
让PHP进程处理 指定目录下的PHP文件.
编译命令:
./configure --prefix=/usr/local/fastphp --with-mysql=mysqlnd --enable-mysqlnd --with-gd --enable-gd-native-ttf --enable-gd-jis-conv --enable-fpm
如果编译过程中出现”xxx.h”文件不存在,则是缺少头文件,也就是-devel没有安装,
make && make install
拷贝源码目录中开发环境所用的ini文件,开发环境ini报错明显,生产环境基本无错误提示
cp php.ini-development /usr/local/fastphp/lib/php.ini
在创建编译后目录中创建php-fpm的配置文件
cd /usr/local/fastphp/etc
cp php-fpm.conf.default php-fpm.conf
nginx关联php
nginx中添加用于处理php的location:
server {
listen 80;
server_name localhost;
root z.com;
location / {
if ($http_user_agent ~* trident) {
set $isie 1;
}
if ($fastcgi_script_name = ie.html) {
set $isie 0;
}
if ($isie = 1) {
rewrite ^.*$ /ie.html;
break;
}
}
location ~* \.(jpg|jpeg|gif|png) {
expires 1d;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}
}
location中的”root html”可单独提出到server中,这样每个location就可以不用单独配置了,用公共的root
检查php进程是否开启:
ps aux|grep php
结果中若只有一个grep php的则代表php没有开启
php-fpm的启动:
进入编译完成后的php目录中找到php-fpm的可执行文件所在目录
执行命令./php-fpm即可启动php-fpm
然后用phpinfo检查gd库和mysql是否支持
启动mysql服务:
service mysqld start
关键字词:nginx,php,mysql,gd,编译
上一篇:nginx-安装ecshop