ubuntu .cgi ubuntu20.4

Ubuntu环境下phpfastcgi(spawn-fcgi)的启动与关闭

在Ubuntu环境下启动与关闭PHP FastCGI(spawn-fcgi)的操作步骤如下:

启动命令为:

spawn-fcgi-a 127.0.0.1-p 9000-C 10-u www-data-f/usr/bin/php-cgi

其中:

-a 127.0.0.1:表示绑定IP地址

-p 9000:指定端口号

-u www-data:指定运行时用户

-g www-data:指定运行时用户所属用户组

-f/usr/bin/php-cgi:指向PHP5 fastcgi

如果在启动过程中遇到权限不足的问题,需要使用sudo进行提权。

检查spawn-fcgi是否正在运行,可以通过以下命令进行:

$ netstat-an| grep 9000

如果结果显示了与9000端口相关的连接信息,说明spawn-fcgi正在运行。

若要查看具体的PID(进程ID),可以使用ps命令:

$ ps-ef| grep spawn-fcgi

关闭spawn-fcgi的操作如下:

$ pkill-9 php-cgi

此操作需谨慎执行,特别是在使用nginx环境时。中断fastcgi后,前台访问php可能会出现502错误,这是由于fastcgi未正确打开或异常退出导致的。因此,在执行此操作前,请确保完全理解其影响。

Ubuntu中搭建Nginx、PHP环境最简单的方法_PHP教程

Ubuntu中搭建Nginx、PHP环境最简单的方法

这篇文章主要介绍了在Ubuntu系统中以简单方式搭建Nginx和PHP环境的步骤,通过使用apt-get工具安装Nginx和PHP5.4.9,本文提供了一步到位的指南,适合初次接触服务器环境搭建的用户。

在进行系统搭建前,确保你使用的是Ubuntu 13或Linux Mint 15。默认情况下,系统将安装Nginx版本1.2.5及PHP5.4.9。

首先,使用以下命令安装Nginx和PHP环境:

代码如下:

sudo apt-get install nginx php5-fpm

以上命令在新安装的Ubuntu 13上经过测试,证实仅需安装这两个组件即可。

接下来,进入配置文件编辑阶段:

代码如下:

sudo gedit/etc/nginx/site-available/default

确保使用gedit而非vi进行编辑,以避免创建默认备份文件。在site-available目录下编辑default文件,随后手动删除备份文件以确保配置文件正确加载。

在配置文件中找到`location~\.php$`这一行,移除注释符号,调整配置如下:

代码如下:

location~\.php${# fastcgi_split_path_info ^(.+\.php)(/.+)$;## NOTE: You should have"cgi.fix_pathinfo= 0;" in php.ini### With php5-cgi alone:# fastcgi_pass 127.0.0.1:9000;## With php5-fpm:fastcgi_pass unix:/var/run/php5-fpm.sock;fastcgi_index index.php;include fastcgi_params;}

至此,配置完成。

启动Nginx服务:

代码如下:

sudo service nginx start

为了进一步优化搭建环境,可采取以下扩展措施:

1.在default文件中,调整`index index.html index.htm;`行,将其更改为`index index.html index.htm index.php;`,这样即可使用PHP文件作为默认主页。

2.在default文件中,server{}指示符内的`location/{}`指示符中加入`autoindex on;`命令,以实现当文件夹内无index文件时自动索引文件的功能。

3.修改server{}指示符中的`root`行,根据实际需要调整文件夹作为网站根目录。

如何在Ubuntu上搭建一台安全的Apache Web服务器

本教程假设你已有一台在运行的Ubuntu服务器,网络方面已设置好,而且可以通过SSH进行访问。

Apache2是许多安装的Linux发行版使用的默认Web服务器。它不是对所有环境来说唯一可用的Web服务器,也不是最佳的Web服务器,但是它适合许多使用场景。在安装过程中,系统可能会询问你哪个Web服务器要自动重新配置。选择“apache2”即可。

安装Apache2

使用下面这个命令,安装Apache2及其他库。

$ sudo apt-get-y install apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby

更新时区(TimeZone)和检查正确时间

为了减小共享数据或镜像数据方面的混淆,所有服务器在运行时都应该尽可能接近同步状态。一些加密密钥管理系统需要准确的时间。最后,就企业服务器而言,《萨班斯-奥克斯利法案》(Sarbanes-Oxley)和《健康保险可携性及责任性法案》(HIPAA)的安全规则要求正确的时间戳机制。

$ sudo apt-get-y install openntpd tzdata

$ sudo dpkg-reconfigure tzdata

$ sudo service openntpd restart

禁止AppArmor冲突

虽然AppArmor这个套件的确提供了一层额外的安全,但在我看来,需要为每个系统创建自定义配置文件。这不是本教程所探讨的内容。所以眼下,我们会禁用AppArmor,防止与任何默认的配置发生冲突。

$ sudo/etc/init.d/apparmor stop

$ sudo update-rc.d-f apparmor remove

$ sudo apt-get remove apparmor apparmor-utils

注意:如果是生产环境下的Web服务器,不建议禁用AppArmor。如果有些人想创建自定义的AppArmor配置文件,请参阅官方说明文档()。

阻止分布式拒绝服务(DDoS)攻击

DDoS攻击是一种分布式拒绝服务攻击。有一个Apache模块可以阻止这类攻击。

$ sudo apt-get-y install libapache2-mod-evasive

$ sudo mkdir-p/var/log/apache2/evasive

$ sudo chown-R www-data:root/var/log/apache2/evasive

把下面这个命令添加到mod-evasive.load的末尾处。

$ sudo nano/etc/apache2/mods-available/mod-evasive.load DOSHashTableSize 2048

DOSPageCount 20#请求同一页面的最大数量

DOSSiteCount 300#同一侦听器上同一客户端IP请求任何对象的总数量

DOSPageInterval 1.0#页面数量阈值的间隔

DOSSiteInterval 1.0#站点数量阈值的间隔

DOSBlockingPeriod 10.0#客户机IP被阻止的时间段

DOSLogDir“/var/log/apache2/evasive”

DOSEmailNotify admin@domain.com

阻止Slowloris攻击

还有一个Apache模块可以阻止Slowloris攻击,不过模块名称取决于你使用的Ubuntu的具体版本。如果是Ubuntu 12.10或以后版本:

$ sudo apt-get-y install libapache2-mod-qos

然后,检查qos.conf中的配置:

$ sudo nano/etc/apache2/mods-available/qos.conf

##服务质量方面的设置

#处理来自多达100000个不同IP的连接

QS_ClientEntries 100000

#只允许每个IP仅50条连接

QS_SrvMaxConnPerIP 50

#活动TCP连接的最大数量限制在256条

MaxClients 256

#当70%的TCP连接被占用时,禁用保持活动连接状态

QS_SrvMaxConnClose 180

#最小请求/响应速度(拒绝阻塞服务器的慢速客户端,即slowloris保持连接开启,不提出任何请求):

QS_SrvMinDataRate 150 1200

#并限制请求标题和主体(注意,这还限制了上传和发帖请求):

# LimitRequestFields 30

# QS_LimitRequestBody 102400

注意:如果你运行12.04之前的Ubuntu版本,改而使用下面这个命令:

$ sudo apt-get-y install libapache2-mod-antiloris

检查antiloris.conf中的配置

$ sudo nano/etc/apache2/mods-available/antiloris.conf

#每个IP地址处于READ状态的最大并行连接数量

IPReadLimit 5

阻止DNS注入攻击

Spamhaus这个模块使用域名系统黑名单(DNSBL),目的是为了阻止通过Web表单实现的垃圾邮件转发,防止URL注入攻击,阻止来自机器人程序的http DDoS攻击,通常保护服务器,远离已知的恶意IP地址。

$ sudo apt-get-y install libapache2-mod-spamhaus

$ sudo touch/etc/spamhaus.wl Append the config to apache2.conf

$ sudo nano/etc/apache2/apache2.conf

MS_METHODS POST,PUT,OPTIONS,CONNECT

MS_WhiteList/etc/spamhaus.wl

MS_CacheSize 256

重启Apache装入新模块

$ sudo service apache2 restart

现在Web服务器已安装完毕,并在正常运行。将Web浏览器指向你的域,即可看到证明你一切正常的默认消息。作为最后的检查机制,运行下面这个命令,看看你的服务器有没有任何错误信息。要是有错误信息,你需要上谷歌搜索一下,立马解决这些错误。

$ sudo tail-200/var/log/syslog

阅读剩余
THE END