娱乐新地带论坛  

返回   娱乐新地带论坛 > 电脑技术 > 『软件使用』 > Linux

『软件使用』 交流对软件的使用心得、经验窍门、好的软件要让大家一起用

发表新主题 回复
 
主题工具 显示模式
旧 2011-08-07, 09:58 PM   #1
No1
Tony
坛主
级别:199 | 在线时长:40425小时 | 升级还需:375小时级别:199 | 在线时长:40425小时 | 升级还需:375小时级别:199 | 在线时长:40425小时 | 升级还需:375小时级别:199 | 在线时长:40425小时 | 升级还需:375小时
 
Tony 的头像
 
注册日期: 2003-10-22
帖子: 11,053
积分:6
精华:24
现金:14348金币
资产:29325305金币
Tony 是一位成功的新星Tony 是一位成功的新星Tony 是一位成功的新星Tony 是一位成功的新星
Ubuntu 10.04 上安装Nginx 0.8.52 + PHP-fpm 5.3.3 + APC和MySQL

Ubuntu 10.04 上源码编译安装Nginx 0.8.52 + PHP-fpm 5.3.3 + APC和MySQL
Ubuntu 是服务器上常用的Linux发行版本. 10.04是最新的LTS版本. Nginx则是占用内存少, 速度快的网页server的后起之秀. PHP从5.3.3起, 内置了FPM补丁, 跟nginx的兼容性又上了一个台阶. 本文是在Ubuntu 10.04上源码编译安装nginx 0.8.52, PHP-fpm 5.3.3, 加APC PHP加速的操作教程. (最后使用apt-get安装mysql数据库).

注意, 整个安装过程都是使用root帐号.


第一步 安装准备

更新系统源库和更新已经安装过的程序:

sudo apt-get update
sudo apt-get dist-upgrade
安装会用的程序:

apt-get install htop binutils cpp flex gcc libarchive-zip-perl
libc6-dev libcompress-zlib-perl m4 libpcre3 libpcre3-dev libssl-dev
libpopt-dev lynx make perl perl-modules openssl unzip zip
autoconf2.13 gnu-standards automake libtool bison build-essential
zlib1g-dev ntp ntpdate autotools-dev g++ bc subversion psmisc
libmysqlclient-dev libcurl4-openssl-dev libjpeg62-dev libpng3-dev
libxpm-dev libfreetype6-dev libt1-dev libmcrypt-dev libxslt1-dev
libbz2-dev libxml2-dev libevent-dev libltdl-dev libmagickwand-dev
imagemagick
创建用来临时放源码的目录:

mkdir ~/src
cd ~/src
下载nginx和PHP等源码:

wget http://nginx.org/download/nginx-0.8.52.tar.gz
wget http://us2.php.net/distributions/php-5.3.3.tar.gz
wget http://download.suhosin.org/suhosin-patch-5.3.3-0.9.10.patch.gz
wget http://download.suhosin.org/suhosin-0.9.32.1.tar.gz
wget http://pecl.php.net/get/imagick-3.0.0.tgz
解压缩源码包:

tar zxvf nginx-0.8.52.tar.gz
tar xzvf php-5.3.3.tar.gz
tar xzvf suhosin-0.9.32.1.tar.gz
gunzip suhosin-patch-5.3.3-0.9.10.patch.gz
tar xzvf imagick-3.0.0.tgz
第二步 安装nginx 0.8.52

编译安装nginx:

cd nginx-0.8.52/

./configure
--prefix=/opt/nginx
--conf-path=/etc/nginx/nginx.conf
--pid-path=/var/run/nginx.pid
--lock-path=/var/lock/nginx.lock
--http-log-path=/var/log/nginx/access.log
--error-log-path=/var/log/nginx/error.log
--http-client-body-temp-path=/var/lib/nginx/body
--http-proxy-temp-path=/var/lib/nginx/proxy
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi
--http-scgi-temp-path=/var/lib/nginx/scgi
--with-http_ssl_module
--with-http_stub_status_module
--user=www-data
--group=www-data
--without-mail_pop3_module
--without-mail_imap_module
--without-mail_smtp_module

make
make install
cd ..
注意把nginx安装到/opt/nginx目录里了. nginx的配置文件在/etc/nginx/nginx.conf, pid在/var/run/nginx.pid.

在系统PATH里加入nginx的路径:

echo 'if [ -d "/opt/nginx/sbin" ]; then
PATH="$PATH:/opt/nginx/sbin"
fi' >> /etc/bash.bashrc
当前连接会话也加上:

export PATH="$PATH:/opt/nginx/sbin"
添加启动管理文件并让ubuntu开机时自动运行nginx网页服务器, 我把修改好的脚本放到博客上了:

wget http://www.cslog.cn/wp-content/uploads/2010/10/nginx.gz
gunzip nginx.gz
mv nginx /etc/init.d
chmod +x /etc/init.d/nginx
update-rc.d -f nginx defaults
自动分割和压缩nginx日志分文:

nano /etc/logrotate.d/nginx
在里面加入下面内容:

/var/log/nginx/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
postrotate
[ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
endscript
}
给nginx新建运行环境目录:

mkdir /var/lib/nginx
到这里nginx的安装完成了.

第三步 安装PHP

给php打上suhosin安全补丁:

cd php-5.3.3
patch -p 1 -i ../suhosin-patch-5.3.3-0.9.10.patch
开始编译安装php 5.3.3

./buildconf --force

./configure
--prefix=/opt/php5
--with-config-file-path=/opt/php5/etc
--with-curl
--with-pear
--with-gd
--with-jpeg-dir
--with-png-dir
--with-zlib
--with-xpm-dir
--with-freetype-dir
--with-t1lib
--with-mcrypt
--with-mhash
--with-mysql
--with-mysqli
--with-pdo-mysql
--with-openssl
--with-xmlrpc
--with-xsl
--with-bz2
--with-gettext
--with-fpm-user=www-data
--with-fpm-group=www-data
--enable-fpm
--enable-exif
--enable-wddx
--enable-zip
--enable-bcmath
--enable-calendar
--enable-ftp
--enable-mbstring
--enable-soap
--enable-sockets
--enable-sqlite-utf8
--enable-shmop
--enable-dba
--enable-sysvmsg
--enable-sysvsem
--enable-sysvshm

make
make install
注意, PHP5.3.3自带了fpm补丁, 不用再打了. PHP安装到了/opt/php5目录.

将php5所在的目录也加到bash的PATH中去:

echo 'if [ -d "/opt/php5/bin" ] && [ -d "/opt/php5/sbin" ]; then
PATH="$PATH:/opt/php5/bin:/opt/php5/sbin"
fi' >> /etc/bash.bashrc
当前会话也加上:

export PATH="$PATH:/opt/php5/bin:/opt/php5/sbin"
准备PHP5的日志文件目录:

mkdir /var/log/php-fpm
chown -R www-data:www-data /var/log/php-fpm
准备PHP的配置文件:

cp -f php.ini-production /opt/php5/etc/php.ini
chmod 644 /opt/php5/etc/php.ini
cp /opt/php5/etc/php-fpm.conf.default /opt/php5/etc/php-fpm.conf
注意: PHP5的配置文件在/opt/php5/etc/php.ini, php-fpm的配置文件在/opt/php5/etc/php-fpm.conf.

修改php-fpm配置文件:

nano /opt/php5/etc/php-fpm.conf
另外, 里面的服务数量请根据自己的机器硬件配置和网站流量做调整设置
如:

pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 20
如果将监听端口设置从

listen = 127.0.0.1:9000
换成sock,如

listen = /var/run/php-fpm.sock
要做如下操作,保证php-fpm.scok的可读性

touch /var/run/php-fpm.sock
chown -R www-data:www-data /var/run/php-fpm.sock
按ctl+w搜索php_fpm_PID, 将它改的值改成

php_fpm_PID=/var/run/php-fpm.pid
设置php-fpm启动管理文件,并让PHP在ubuntu启动时自动运行:

cp -f sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
update-rc.d -f php-fpm defaults
修改php-fpm启动管理文件:

nano /etc/init.d/php-fpm
将里面php_fpm_PID的值也改成/var/run/php-fpm.pid:

php_fpm_PID=/var/run/php-fpm.pid
设置PHP的自动日志分割和压缩:

nano /etc/logrotate.d/php-fpm
加入:

/var/log/php-fpm/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 640 www-data www-data
sharedscripts
postrotate
[ ! -f /var/run/php-fpm.pid ] || kill -USR1 `cat /var/run/php-fpm.pid`
endscript
}
给php安装APC加速器:

pecl install APC-3.1.4
和安全补丁

cd ../suhosin-0.9.32.1
/opt/php5/bin/phpize
./configure --enable-suhosin
make
make test
make install
给PHP安装imagick图像处理模块:

cd ../imagick-3.0.0
/opt/php5/bin/phpize
./configure --with-imagick
make
make test
make install
向php.ini配置文件第920行下面添加新模块信息:

nano +920 /opt/php5/etc/php.ini
插入:

extension = suhosin.so
extension = imagick.so
extension = apc.so
apc.enabled = 1
apc.shm_size = 128M
apc.shm_segments=1
apc.write_lock = 1
apc.rfc1867 = On
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=1024
apc.mmap_file_mask=/tmp/apc.XXXXXX
apc.enable_cli=1
;# Optional, for "[apc-warning] Potential cache slam averted for key... errors"
;apc.slam_defense = Off
注意, 在修改时可以顺便将时区设置成中国时区:
找到
[Date] 部分
加入:

date.timezone = Asia/Chongqing
第四步 安装MySQL数据库

为方便省事, 使用apt-get安装MySQL

sudo apt-get install mysql-server
将mysql的默认字符编码改成utf-8,以便更好的支持中文字符:
打开mysql配置文件:

nano /etc/mysql/my.cnf
找到[client] 添加:

default-character-set=utf8
找到[mysqld] 添加:

default-character-set=utf8
#设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行
init_connect='SET NAMES utf8'
重启mysql服务:

/usr/bin/mysqld_safe --user=mysql &
到这里, ubuntu 10.04上nginx, php-fpm+apc和mysql的安装全部完成了.

免费附送

php的启动方法

/etc/init.d/php-fpm start
重启

/etc/init.d/php-fpm restart
nginx的启动方法:

/etc/init.d/nginx start
不间断nginx的重新装载新配置文件的方法:

nginx -s reload
重启前最好先测试一下新配置文件

nginx -t
好了, 希望你的安装顺利. 遇到什么问题可以留言.
 
Tony 的签名
古代人有点功夫就研究长生不老,现代人忙完一天只有不想活了!
Tony 当前离线  
回复时引用此帖
发表新主题 回复

书签


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码

论坛跳转


所有时间均为北京时间。现在的时间是 05:29 PM


©2003-2024 1819.net All rights reserved.