Centos服务器fastcgi模式配置nginx+php+mysql+vsftpd

由于最近国内服务器老需要备案,网站都访问不了了。没办法尝试去国外花了两百多刀买了一个vps,开始自己部署服务器。由于自己linux基本上是小白,搞了一整天才搞出来这个攻略。为了以后能够再次恢复系统啥的,就记录了下来,搞篇日志,说不定哪位网友还能参考的价值。不多说了进入正题。

一、系统环境配置1.1、设置服务器时间

1
#cp /usr/share/zoneinfo/Asia/Shanghai/etc/localtime
查看时间修正

1
#date
1.2、更新服务器系统

1
#yum update
1.3、添加用户,设置密码,赋予权限

1
2
3
#adduser username
#passwd username
#vi /etc/sudoers
在rootALL=(ALL) ALL行下面增加usernameALL=(ALL) ALL保存即可退出利用username登录了



1.4、设置防火墙开发80端口

1
2
#vi cp /etc/sysconfig/iptables.old/etc/sysconfig/iptables
#vi /etc/sysconfig/iptables
增加两行到22端口规则下面

-A INPUT -m state --stateNEW -m tcp -p tcp --dport 80 -j ACCEPT

-A INPUT -m state --stateNEW -m tcp -p tcp --dport 21 -j ACCEPT

然后执行

1
#service iptables restart
可能会报错:iptables: Setting chains to policy ACCEPT: security rawnat[FAILED]filter

那么修改文件



1
#vi /etc/init.d/iptables
按照以下内容修改:



case "$i" in
security)
$IPTABLES -t filter -P INPUT$policy
&&$IPTABLES -t filter -P OUTPUT $policy
&&$IPTABLES -t filter -P FORWARD $policy
|| let ret+=1
;;
raw)


然后再重启就ok了,采用



1
#iptables –L
查看是否生效了。生效了的话,关闭selinux权限控制方便后期的操作



1
#vi /etc/selinux/config
注释所有的内容,增加一行

SELINUX=disabled

然后重启系统



1
#shutdown –r now
1.5、增加第三方的yum更新源地址

Niginx 官方的更新源增加



1
#vi/etc/yum.repos.d/nginx.repo
增加以下内容

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1
下载第三方的配置文件运行脚本,并执行。


1
2
#wget http://www.atomicorp.com/installers/atomic
#sh ./atomic
该脚本会生成一个文件/etc/yum.repos.d/atomic.repo,即为我们增加了一个yun地址库,此时可以删除下载的配置脚本

1
#rm atomic
二、.安装服务器nginx+php+mysql+php-fpm2.1安装nginx

1
#yum install nginx
优化nginx配置

1
#vi /etc/nginx/nginx.conf
#根据CPU 核心processes,VPS下几个核心几个processes,独立服务器可x2

worker_processes 4;
#启用epoll
worker_rlimit_nofile 51200;
events {
worker_connections 51200;
use epoll;
}
#参数调整
sendfile on;
tcp_nopush on;
tcp_nodelay on;
server_tokens off;
keepalive_timeout 50;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 50m;
#fastcgi优化
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 256k;
#开启gzip并优化
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;
然后启动nginx,并设为开机启动

1
2
#service nginx start
#chkconfig nginx on
这个时候你应该就能通过浏览器输入ip地址访问了出现

Welcome to nginx!

#备份原有配置文件,并修改用户配置



1
2
#cp/etc/nginx/conf.d/default.conf etc/nginx/conf.d/default.confbak
#vi /etc/nginx/conf.d/default.conf
设置默认的网站目录

去除下面这段内容的注释

location ~ \.php$ {

root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

注意其中fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用绝对路径





2.2 安装mysql

1
#yum install mysql mysql-server
启动mysql,并设为开机启动

1
2
#service mysqld start
#chkconfig mysqld on
拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)

1
#cp/usr/share/mysql/my-medium.cnf /etc/my.cnf
然后重启系统

1
#shutdown -r now
重新登录系统之后,设置数据库用户和密码

1
#mysql_secure_installation
然后首次进入直接enter键,然后根据要求一路选择即可,再重启mysql

1
#service mysqld restart




2.3 安装php

1
#yum install php
一路Y即可

安装php-fpm , php-mysql,php-gd等

1
#yum install php-fpm php-mysql php-gd
配置php.ini文件

1
#vi /etc/php.ini
作出如下修改

date.timezone= PRC #在946行 把前面的分号去掉,改为date.timezone= PRC disable_functions =passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit,posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

#在386行 列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
expose_php = Off #在432行 禁止显示php版本的信息
magic_quotes_gpc = On #在745行 打开magic_quotes_gpc来防止SQL注入

保存退出之后,继续配置php-fpm.同样先备份文件,然后修该

1
2
#cp/etc/php-fpm.d/www.conf /etc/php-fpm.d/www.confbak
#vi /etc/php-fpm.d/www.conf
其中的端口要改为nginx配置中php运行相同的端口

Lister=127.0.0.1:9000

user = nginx #修改用户为nginx
group = nginx #修改组为nginx

保存退出,重启nginx和php-fpm

1
2
#service nginx restart
#service php-fpm restart
同样需要将php-fpm设为开机启动

1
#chkconfig php-fpm on


2.4 安装ftp工具vsftpd

1
#yum install vsftpd ftp
为ftp服务器创建log文件

1
#touch /var/log/vsftpd.log
然后启动服务,并设置为开机自动启动

1
2
#service vsftpd start
#chkconfig vsftpd on
然后编辑配置文件

1
#vi /etc/vsftpd/vsftpd.conf
修改相关参数如下:

#设定不允许匿名访问
anonymous_enable=NO

#设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问。
local_enable=YES

#使用户不能离开主目录,并制定文件
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

#设定vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来 ,前面步骤已经创建
xferlog_file=/var/log/vsftpd.log

#允许使用ASCII模式上传和下载
ascii_upload_enable=YES
ascii_download_enable=YES

#PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
pam_service_name=vsftpd

#以下这些是关于Vsftpd虚拟用户支持的重要CentOS FTP服务配置项目。默认vsftpd.conf中不包含这些设定项目,需要自己手动添加RHEL/CentOS FTP服务配置。

#设定启用虚拟用户功能。
guest_enable=YES

#指定虚拟用户的宿主用户。-RHEL/CentOS中已经有内置的ftp用户了
guest_username=ftp

#设定虚拟用户个人vsftp的RHEL/CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名) user_config_dir=/etc/vsftpd/vuser_conf

(注意:所有的注释和配置必须不能再同一行当中,否则启动会失败)

保存以上修改,退出。创建用户列表文件并将ftp用户添加到列表文件中

1
2
#touch /etc/vsftpd/chroot_list
#echo ftp >> /etc/vsftpd/chroot_list


那么接下来就是添加我们自己设定的ftp用户了,但用户的账号密码需要认证,所以需要安装相应的认证工具Berkeley DB工具

1
#yum install db4 db4-utils
安装之后,创建用户的账号密码文本

1
#vi /etc/vsftpd/vuser_passwd.txt
加入相应的用户信息,其中奇数行为你新增用户的账号,偶数行为密码,不能有空格喔

username1
password1
username2
password2

保存文件退出,生成用户认证的db文件

1
#db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
然后呢,再编辑认证管理器的配置信息

1
#vi /etc/pam.d/vsftpd
用#注释所有的内容,然后增加以下两行内容:

auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd

account required pam_userdb.so db=/etc/vsftpd/vuser_passwd

保存退出。再创建虚拟用户的ftp服务文件夹,以及前文中所增加的账号用户的配置文件

1
2
#mkdir /etc/vsftpd/vuser_conf/
#vi /etc/vsftpd/vuser_conf/username1
填写以下内容:

#username1用户的根目录(自己决定)
local_root=/etc/vsftpd/username1
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

保存内容,退出。要创建上述配置文件中所设置的用户根目录,并为其设置权限

1
2
3
#mkdir /etc/vsftpd/username1
#chmod 777 /etc/vsftpd/username1
#service vsftpd restart
此时,你的ftp应该已经可用了,那么可以用ftp测试以下

1
#ftp localhost
输入用户名和密码即可开始了!



三、测试篇

进入网站根目录建立一个测试的index.php文件,但是要记得赋予权限

1
2
#cd /usr/share/nginx/html
#vi index.php


<?php phpinfo();?>
chown nginx.nginx /usr/share/nginx/html/ -R #设置目录所有者

chmod700 /usr/share/nginx/html/ -R #设置目录权限

然后打开浏览器看,至此完成了nginx+php+mysql的环

最后再来一个压力测试,利用工具webbench,以下内容为互联网转载的

首先,我们先下载并安装webbench

wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz
tar zxvf webbench-1.5.tar.gz
cd webbench-1.5
make && make install
如果出现下面错误提示:

ctags *.c
/bin/sh: ctags: command not found
可以使用yum安装ctags来解决这个问题

yum install ctags
或者自己手动安装

wget http://nchc.dl.sourceforge.net/project/ctags/ctags/5.8/ctags-5.8.tar.gz
tar zxvf ctags-5.8.tar.gz
./configure
make
make install
如果安装了ctags, 仍然报错:

install -s webbench /usr/local/bin
install -m 644 webbench.1 /usr/local/man/man1
install: cannot create regular file `/usr/local/man/man1': No such file or directory
make: *** [install] Error 1
我们可以通过自己创建文件夹来解决这个问题:

mkdir -m 644 -p /usr/local/man/man1
最后终于安装成功! 我们也可以进行压力测试了
webbench -c 500 -t 30 http://www.example.com/phpinfo.php
参数说明:-c表示并发数,-t表示时间(秒)

-bash-3.00$ webbench -c 3000 -t 30 http://www.example.com/phpinfo.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://www.example.com/phpinfo.php
3000 clients, running 30 sec.
Speed=8358 pages/min, 8791523 bytes/sec.
Requests: 4179 susceed, 0 failed.
-bash-3.00$
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值