pupur 2012-03-19
每次在ubuntu编译安装php时,总是有一大堆的依赖软件要弄,由于个人不是很懂php方面的依赖作用,只能每个依赖软件都一一安装,今天笔记一下
./configure
make
make install安装完成之后,nginx相关目录放在/usr/local/nginx下面
/usr/local/nginx/sbin/nginx启动nginx,浏览器输入ip,应该就能看到“welcome to nginx”
这个就不源码安装了把,除非有特别需求的人就去官网找对应版本了
安装过程中会弹出提示设置mysql密码
这个比较复杂,主要是依赖软件太多,也不知道能不能放弃某个,就全部都装了
需要特别注意的就是php的版本跟php-fpm补丁的版本一定要完全一样
相信过来人都见识过安装php过程报错的麻烦,下面这个是我全过程安装记录下来的一些所需依赖软件,应该比较全面了。
有个经典的报错“error:libjpeg.(a|so)notfound.”“error:libpng.(a|so)notfound.”
find/-name"libjpeg.so"
把输出的文件复制一份到/usr/lib下
find/-name"libpng.so"
同上下载好了php、php-fpm之后
tarzxvfphp-5.2.17.tar.gz
(2)安装php-fpm补丁
gzip-cdphp-5.2.17-fpm-0.5.14.diff.gz|patch-dphp-5.2.17-p1
(3)编译安装php
./configure--enable-fastcgi--prefix=/usr/local/php-cgi--with-gd--with-jpeg-dir--with-png-dir--with-freetype-dir--enable-mbstring--with-mysql--with-mysqli--with-pdo-mysql--enable-sockets--with-curl--with-ttf--with-libxml-dir--with-config-file-path=/usr/local/php-cgi/etc--with-zlib--enable-exif--enable-ftp--with-xmlrpc--enable-zip--with-iconv-dir--with-libxml-dir--with-mcrypt--with-tidy=/usr--enable-fpm--enable-force-cgi-redirect
make
makeinstall
(4)复制php.ini
cpphp.ini-dist/usr/local/php-cgi/etc/php.ini
(5)复制php到系统目录
cp/usr/local/php-cgi/bin/php/usr/bin/
(6)修改/usr/local/php-cgi/php-fpm.conf63-66行左右
把<valuename="user">nobody</value>
<valuename="group">nogroup</value>
这两行前后的注释去掉,不然运行php-cgi的时候会报错
“[ERROR] fpm_unix_conf_wp(), line 124: please specify user and group other than root, pool 'default'”这样的话,差不多php、php-fpm都安装好了
php、php-fpm安装好了之后,需要对nginx进行一些配置,使之能够编译php文件
把下列配置加入到文件中,加入到keepalive_timeout 65;这行的下面,不过不加也可以,但是这些貌似都是优化参数,具体作用偶也不太清楚- -、,当然不加也可以的
fastcgi_send_timeout300;
fastcgi_read_timeout300;
fastcgi_buffer_size64k;
fastcgi_buffers464k;
fastcgi_busy_buffers_size128k;
fastcgi_temp_file_write_size128k;
gzipon;
gzip_min_length1k;
gzip_buffers416k;
gzip_http_version1.0;
gzip_comp_level2;
gzip_typestext/plainapplication/x-javascripttext/cssapplication/xml;
gzip_varyon;
个人习惯是通过添加nginx include链接来添加对应的web界面,可以在nginx.conf最后一个大括弧之前添加类似一行
再进入到/usr/local/web/下面创建一个文件,文件名为nginx.conf,内容如下
listen80;
indexindex.htmlindex.htmindex.php;
root/usr/local/web;
location~.*\.(php|php5)?$
{
#fastcgi_passunix:/tmp/php-cgi.sock;
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.php;
include/usr/local/web/fcgi.conf;
}
location~.*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires30d;
}
location~.*\.(js|css)?$
{
expires1h;
}
}
其中有个fcgi.conf文件,可以直接从nginx的conf目录下复制过来
ok,差不多就是这样了