|
2011-08-07, 09:58 PM | #1 | |
注册日期: 2003-10-22
帖子: 11,053
积分:6
精华:24
现金:14348金币
资产:29325305金币
|
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 好了, 希望你的安装顺利. 遇到什么问题可以留言. |
|
|
||
|