每次在ubuntu编译安装php时,总是有一大堆的依赖软件要弄,由于个人不是很懂php方面的依赖作用,只能每个依赖软件都一一安装,今天笔记一下
一、安装ubuntu(省略)
二、安装nginx
1、版本1.0.14
写道
wget http://nginx.org/download/nginx-1.0.14.tar.gz
2、安装一些基本软件
写道
apt-get install gcc g++ libpcre++-dev zlib1g-dev make
3、解压安装nginx
写道
tar zxvf nginx-1.0.14.tar.gz
./configure
make
make install
./configure
make
make install
安装完成之后,nginx相关目录放在/usr/local/nginx下面
/usr/local/nginx/sbin/nginx启动nginx,浏览器输入ip,应该就能看到“welcome to nginx”
三、安装mysql
这个就不源码安装了把,除非有特别需求的人就去官网找对应版本了
写道
apt-get install mysql-server
安装过程中会弹出提示设置mysql密码
四、安装php php-fpm(fastcgi)
这个比较复杂,主要是依赖软件太多,也不知道能不能放弃某个,就全部都装了
1、下载php跟php-fpm补丁
需要特别注意的就是php的版本跟php-fpm补丁的版本一定要完全一样
写道
php:wget http://cn.php.net/get/php-5.2.17.tar.gz/from/this/mirror
php-fpm:wget http://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gz
php-fpm:wget http://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gz
2、安装依赖软件
相信过来人都见识过安装php过程报错的麻烦,下面这个是我全过程安装记录下来的一些所需依赖软件,应该比较全面了。
写道
apt-get install libmysqlclient-dev libssl0.9.8 libssl-dev openssl libxml2-dev curl libcurl3 libcurl4-gnutls-dev libjpeg62-dev libpng12-dev libfreetype6-dev libjpeg62 libncurses5-dev libpng3 libpng++-dev libmcrypt-dev libtidy-dev
有个经典的报错“error: libjpeg.(a|so) not found.” “error: libpng.(a|so) not found.”
find / -name "libjpeg.so"
把输出的文件复制一份到/usr/lib下
find / -name "libpng.so"
同上
有个经典的报错“error: libjpeg.(a|so) not found.” “error: libpng.(a|so) not found.”
find / -name "libjpeg.so"
把输出的文件复制一份到/usr/lib下
find / -name "libpng.so"
同上
3、编译安装php
下载好了php、php-fpm之后
写道
(1) 解压php
tar zxvf php-5.2.17.tar.gz
(2) 安装php-fpm补丁
gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-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
make install
(4) 复制php.ini
cp php.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.conf 63-66行左右
把nobody
nogroup
这两行前后的注释去掉,不然运行php-cgi的时候会报错
“[ERROR] fpm_unix_conf_wp(), line 124: please specify user and group other than root, pool 'default'”
tar zxvf php-5.2.17.tar.gz
(2) 安装php-fpm补丁
gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-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
make install
(4) 复制php.ini
cp php.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.conf 63-66行左右
把
这两行前后的注释去掉,不然运行php-cgi的时候会报错
“[ERROR] fpm_unix_conf_wp(), line 124: please specify user and group other than root, pool 'default'”
这样的话,差不多php、php-fpm都安装好了
4、启动php-fpm
写道
/usr/local/php-cgi/sbin/php-fpm start
五、配置nginx
php、php-fpm安装好了之后,需要对nginx进行一些配置,使之能够编译php文件
1、编辑nginx.conf
把下列配置加入到文件中,加入到keepalive_timeout 65; 这行的下面,不过不加也可以,但是这些貌似都是优化参数,具体作用偶也不太清楚- -、,当然不加也可以的
写道
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
2、添加nginx链接
个人习惯是通过添加nginx include链接来添加对应的web界面,可以在nginx.conf最后一个大括弧之前添加类似一行
写道
include /usr/local/web/nginx.conf;
再进入到/usr/local/web/下面创建一个文件,文件名为nginx.conf,内容如下
写道
server {
listen 80;
server_name laibulai.iteye.com;
index index.html index.htm index.php;
root /usr/local/web;
location ~ .*\.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /usr/local/web/fcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 1h;
}
}
listen 80;
server_name laibulai.iteye.com;
index index.html index.htm index.php;
root /usr/local/web;
location ~ .*\.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /usr/local/web/fcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 1h;
}
}
其中有个fcgi.conf文件,可以直接从nginx的conf目录下复制过来
写道
cp /usr/local/nginx/conf/fastcgi.conf /usr/local/web/fcgi.conf
名字无所谓,对应即可
名字无所谓,对应即可
3、启动nginx
写道
/usr/local/nginx/sbin/nginx
ok,差不多就是这样了