Archive for the ‘Php’ Category
Debian 6(Squeeze)安装 Nginx + PHP5 + Spawn-fcgi + MySQL(二)
之前,给大家讲了Debian 6(Squeeze)安装 Nginx + PHP5 + PHP-FPM + MySQL(一),但因为要修改源,所以可能有些同学不大愿意,这里我们讲一下不修改源的情况下,怎么实现nginx的php环境
1:安装 MySQL 5
apt-get install mysql-server mysql-client
在弹出的页面输入2次密码
修改mysql配置文件,去掉innodb,这样可以节省不少内存
vi /etc/mysql/my.cnf
增加下面语句
skip-innodb
保存后,mysql重启一下就生效
2:安装Nginx + PHP5
apt-get install php5-cgi php5-mysql php5-gd php5-imagick php5-mcrypt php5-memcache memcached nginx
安装成功后,rcconf 把多余的服务x11-common去掉
mkdir /var/www
chown www-data:www-data /var/www
修改memcache的端口和内存大小
vi /etc/memcached.conf
vi /etc/php5/cgi/php.ini
修改下面这句
cgi.fix_pathinfo=1
3:安装Spawn-fcgi
Spawn-fcgi和php-fpm都能很好的实现nginx的php环境,其实对一些小规模的网站来说,Spawn-fcgi也是能很好的工作的,不见得非要php-fpm。
apt-get install spawn-fcgi
4:配置spawn-fcgi
系统启动的时候,自动加载spawn-fcgi
vi /etc/rc.local
增加下面语句
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid -C 4
这个我们是用了 -c 4 代表启动4个php5-cgi进程,大家可以根据自己的需要启动相应的进程数,我的256M的vps,我默认启用3-4个就能满足要求了。
5:配置nginx:
修改nginx的配置文件
vi /etc/nginx/nginx.conf
修改以下字段
worker_processes 4;
在我256M的vps上,我修改成4-6个,满足一般网站的访问绰绰有余
接着
vi /etc/nginx/sites-available/default
添加:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
}
保存后,重启nginx
/etc/init.d/nginx restart
写一个测试php页面
如果能正常显示那页面,那就大功告成
debian下为PHP安装eAccelerator及配置
1:安装编译环境和php的 dev包
apt-get install build-essential php5-dev bzip2
2:下载并编译eAccelerator
cd /tmp
wget http://cdnetworks-kr-1.dl.sourceforge.net/project/eaccelerator/eaccelerator/eAccelerator%200.9.6.1/eaccelerator-0.9.6.1.zip
unzip eaccelerator-0.9.6.1.zip
cd eaccelerator-0.9.6.1
phpize
./configure
make
make install
安装完毕
3:修改配置文件,有时候可能这个配置文件没有,那就直接创建1个
vi /etc/php5/conf.d/eaccelerator.ini
这里的配置文件路径,可能大家的服务器路径会有所不同,请大家选择自己的php的conf目录
extension="eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/var/cache/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
这里针对小内存vps提几个注意点:
默认配置文件有2个参数要重点注意
eaccelerator.shm_ttl="0"
当共享内存已满时,超过“shm_ttl”秒没有被访问过的脚本将被删除,默认值是“0”秒,表示从来不会删除。
eaccelerator.shm_prune_period="0"
当共享内存已满时,如果有一个新的脚本文件要加入共享内存,但此时共享内存已经用完,这样就会删除在“shm_prune_period”秒之前的未被访问过的脚本缓存,但有个前提就是这个新的脚本文件在“shm_prune_period” 秒之前被执行过。默认值为“0”,意思是不删除任何脚本缓存。
由于vps内存很有限,所以为了最大让缓存利用率提高,大家可以对这2个参数进行调整
eaccelerator.shm_ttl=”3600″
eaccelerator.shm_prune_period=”1800″
以上单位都是秒
4:创建cache目录
mkdir -p /var/cache/eaccelerator
chmod 0777 /var/cache/eaccelerator
ok。重启php-fpm和nginx eAccelerator就生效了
FAQ:
1:如果在编译过程中提示没有phpize这个命令?
解决办法:apti-get install php5-dev
至于eAccelerator的管理,请参考我的另外一篇文章
http://www.5ilinux.com/programming/php/15.html
Debian 6(Squeeze)安装 Nginx + PHP5 + PHP-FPM + MySQL(一)
Debian 6(Squeeze)终于发布正式版,很让人兴奋,ramhost的技术也很牛,马上出了debian6的系统镜像,第一时间换上,系统初始化,然后是开始经典的nginx+php+mysql网站架构的安装,let’s go!
1:增加源,支持php5-fpm
vi /etc/apt/sources.list
增加以下源
deb http://packages.dotdeb.org stable all
修改保存后
wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | apt-key add -
rm dotdeb.gpg
apt-get update
2:安装 MySQL 5
apt-get install mysql-server mysql-client
在弹出的页面输入2次密码
修改mysql配置文件,去掉innodb,这样可以节省不少内存
vi /etc/mysql/my.cnf
增加下面语句
skip-innodb
保存后,mysql重启一下就生效
3:安装Nginx+php+php5-fpm+memcache
apt-get install php5-cgi php5-mysql php5-gd php5-imagick php5-mcrypt php5-memcache memcached php5-fpm php5-cli nginx
安装成功后,rcconf 把多余的服务x11-common去掉
mkdir /var/www
chown www-data:www-data /var/www
修改memcache的端口和内存大小
vi /etc/memcached.conf
vi /etc/php5/cgi/php.ini
修改下面这句
cgi.fix_pathinfo=1
我的是512M的vps,所以修改php-fpm的配置文件
vi /etc/php5/fpm/pool.d/www.conf
pm.max_children = 25
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 10
pm.max_requests = 500
大家也可以根据自己服务器的条件和实际负载需要进行调整
修改nginx的配置文件
vi /etc/nginx/sites-available/default
添加:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
}
保存后,重启nginx
/etc/init.d/nginx restart
写一个测试php页面
如果能正常显示那页面,那就大功告成
如果你想手工编译nginx+php+fpm,请参考我的另外一篇指导文章
http://www.5ilinux.com/2011/12/nginx-php-mysql-zendoptimizer.html