`

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$
分享到:
评论

相关推荐

    CentOS7 自动化搭建Nginx+PHP7+Mysql+Docker+Docker-Compose Shell脚本

    CentOS7 自动化搭建Nginx+PHP7+Mysql+Docker+Docker-Compose Shell脚本,Docker version 18.06.1-ce,docker-compose version 1.22.0

    在阿里云服务器上配置CentOS+Nginx+Python+Flask环境

    本教程将详细介绍如何在阿里云服务器上配置一个CentOS系统,然后安装Nginx作为反向代理服务器,以及Gunicorn作为WSGI服务器,最后集成Python和Flask来实现一个完整的Web服务环境。 首先,确保你的阿里云服务器是...

    CentOS+nginx+fastCGI+mysql配置文档

    在本配置文档中,我们将详细讨论如何在 CentOS 系统上搭建一个基于 Nginx、FastCGI 和 MySQL 的服务器环境。这个配置过程涉及到多个步骤,包括安装必要的软件包、配置 Nginx 以及整合 PHP 和 MySQL。 首先,我们...

    centOS7 配置php+nginx+mysql 环境脚本

    本文将详细介绍如何在CentOS7操作系统上配置PHP+nginx+MySQL的环境,以及使用自动脚本来简化这一过程。这个环境是许多网站和应用程序的常用基础架构,它提供了强大的动态内容处理(PHP),高效的静态资源服务(nginx...

    centos下安装nginx+php+mysql

    ### CentOS 下安装 Nginx + PHP + MySQL 的详细步骤与注意事项 #### 一、环境准备与概述 在本文档中,我们将详细介绍如何在 CentOS 6.5 64位操作系统上搭建 LNMP (Nginx + MySQL + PHP) 环境。LNMP 是一种非常流行...

    CentOs5.5+mysql+nginx+php5.3.3安全安装手册.doc

    CentOs5.5+mysql+nginx+php5.3.3安全安装手册.doc

    centos下安装配置nginx+mysql+php环境

    ### CentOS 下安装配置 Nginx + MySQL + PHP 环境 #### 一、安装 MySQL 在 CentOS 下安装 MySQL 的过程主要包括用户与用户组的创建、配置安装路径、编译安装以及配置 MySQL 服务等步骤。 ##### 1.1 建立相关用户...

    CentOS6.5+mysql+nginx+php+memcached安装指南

    Windows8上安装虚拟机VirtualBox,然后新建虚拟电脑,搭建CentOS6.5 + mysql + nginx + php + memcached平台环境,部署网站。文档中记录了部分FAQ。

    centOS8 安装LNMT(nginx+mysql+tomcat).pdf

    centOS8 安装LNMT(nginx+mysql+tomcat),此文档为本人原创的文档,有兴趣可以看一下: 本文在centos8基础上进行安装,软件版本如下: 名称 版本 安装方式 备注 jdk 13.0.2 rpm Oracle jdk,目前最新版本 nginx...

    Linux CentOS下搭建DNS+squid+nginx+mysql高可用web服务器.zip_nginx转发mysql

    Linux CentOS下搭建DNS+squid+nginx+mysql高可用web服务器.zip

    Centos7服务器配置Nginx+mysql+https证书

    1. CentOS7服务器环境配置: - CentOS 7是企业中常用的Linux发行版,适合作为服务器操作系统。它稳定、安全,得到广泛的应用支持。 2. Flask环境搭建: - Flask是一个轻量级的Web应用框架,使用Python语言编写。...

    CentOS系统安装配置Nginx+keepalived实现负载均衡

    CentOS系统安装配置Nginx+keepalived实现负载均衡 本文将详细介绍CentOS系统安装配置Nginx+keepalived实现负载均衡的步骤和配置过程。通过本文,读者将了解如何使用Nginx和keepalived来实现高可靠性的负载均衡架构...

    CentOS 6.2 yum安装配置lnmp服务器(Nginx+PHP+MySQL)

    CentOS 6.2 yum安装配置lnmp服务器(Nginx+PHP+MySQL)

    基于CentOS 5.4搭建nginx+php+spawn-fcgi+mysql高性能php平台

    ### 基于CentOS 5.4搭建nginx+php+spawn-fcgi+mysql高性能PHP平台 #### 平台概述 在《基于CentOS 5.4搭建nginx+php+spawn-fcgi+mysql高性能php平台》这篇技术文章中,作者哈密瓜详细介绍了如何在CentOS 5.4上构建一...

    CentOS+Nginx+PHP+MySQL详细配置(图)

    ### CentOS+Nginx+PHP+MySQL 详细配置解析 #### 一、理解 Nginx 及其重要性 Nginx 是一款轻量级、高性能的 Web 服务器及反向代理服务器,它同样具备 IMAP/POP3/SMTP 代理服务功能。这款由俄罗斯开发者 Igor Sysoev...

    centos的nginx+php的fastcgi模式编译安装

    这里我们关注的是在CentOS操作系统上使用Nginx作为Web服务器,并结合PHP的FastCGI模式进行编译安装。这种组合通常被称为“Nginx + PHP-FPM”配置,能够提供高性能、低资源消耗的网站服务。下面将详细阐述这一过程...

    CentOS+Nginx+PHP+MySQL配置详解.pdf

    CentOS+Nginx+PHP+MySQL 配置详解 在本文中,我们将详细介绍如何在 CentOS 平台上安装和配置 Nginx、PHP 和 MySQL,实现一个完整的 Web 服务器环境。 一、Nginx 介绍 Nginx 是一个高性能的 HTTP 和反向代理服务器...

    阿里云centos7 lnmp nginx+php+mariadb(mysql)环境搭建

    阿里云centos7.0操作系统上php+nginx+mariadb(mysql)环境的搭建,自己按照这个步骤,半小时就搞定了

    配置CentOS下的Nginx+Mysql+PHP+Tomcat

    在配置CentOS下的Nginx+Mysql+PHP+Tomcat的环境时,首先需要进行的是CentOS的安装和基础配置。以下为详细的步骤: ### 安装CentOS 7.0 1. 在安装CentOS时选择最小安装模式,确保选中“调试工具”、“兼容性程序库”...

    最详细全面的CentOs5.5+mysql+nginx+php5.3.3安全安装手册

    ### 最详细全面的CentOs5.5+mysql+nginx+php5.3.3安全安装手册 #### 一、安装CentOs5操作系统 ##### 1.1 系统安装 在进行CentOS 5.5的安装之前,首先需要设置计算机的BIOS启动顺序为光驱启动。设置完成后,将安装...

Global site tag (gtag.js) - Google Analytics