freebsd 11 php mysql_如何在FreeBSD 11.0上安装Lighttpd, PHP和MySQL

介绍

LIGHTTPD是一个轻量级的开源web服务器,它针对高速环境进行优化,同时保持资源利用率低,它是常用的web服务器Nginx和Apache的优秀替代方案,在本教程中,你将在运行FreeBSD 11.0的服务器上安装和配置Lighttpd ,还向新的Lighttpd服务器添加MySQL和PHP,这样你就可以为web应用程序以及静态内容提供服务。

前提条件

要完成本教程,你需要:运行FreeBSD 11.0的服务器,配置为使用sudo运行命令的用户帐户。

第1步-安装Lighttpd

安装Lighttpd有几个选项,但是在本教程中,你将使用安装包,这个方法比从源代码或通过Ports安装更快,使用这个方法安装的软件容易更新。

要使用软件包安装Lighttpd,首先更新库信息以确保你拥有可用软件包的最新列表:sudo pkg update

接下来,下载并安装lighttpd软件包:sudo pkg install lighttpd

通过键入y确认安装,Lighttpd将安装。

在此默认配置中,你将在启动服务器时看到此错误:Output(network.c.260) warning: please use server.use-ipv6 only for hostnames, not without server.bind / empty address; your config will break if the kernel default for IPV6_V6ONLY changes

这是因为默认的Lighttpd配置没有完全配置为支持IPv6,为了避免日后出现意外,请编辑Lighttpd的配置文件,并且禁用对IPv6的支持,因为你不需要它即可完成本教程。如果你决定使用它,则可以在以后启用它:sudo ee /usr/local/etc/lighttpd/lighttpd.conf

定位此部分:/usr/local/etc/lighttpd/lighttpd.conf...

##

## Use IPv6?

##

server.use-ipv6 ="enable"

...

将enable更改为disable :/usr/local/etc/lighttpd/lighttpd.conf...

...

server.use-ipv6 ="disable"

...

接下来,在配置文件的末尾找到此行:/usr/local/etc/lighttpd/lighttpd.conf...

...

$SERVER["socket"] =="0.0.0.0:80" { }

注释掉它,因为当我们不使用IPv6时它是不必要的:/usr/local/etc/lighttpd/lighttpd.conf...

...

#$SERVER["socket"] =="0.0.0.0:80" { }

然后保存文件并退出编辑器。

让我们下一步配置MySQL 。

第2步-安装和配置MySQL

MySQL是一个数据库管理系统,允许为你计划在Lighttpd服务器上托管的PHP应用程序创建数据库。

你已经在步骤1中更新了pkg库信息,你可以快速下载,并且安装MySQL服务器软件包:sudo pkg install mysql57-server

按以下步骤确认安装: y 。

安装完成后,在系统启动时启用MySQL :sudo sysrc mysql_enable=yes

然后启动mysql-server服务:sudo service mysql-server start

服务启动后,使用mysql_secure_installation脚本保护你的MySQL安装,这将删除一些危险的默认值,并锁定对数据库系统的访问,运行以下命令启动交互式脚本:sudo mysql_secure_installation

你将看到以下消息:OutputSecuring the MySQL server deployment.

Connecting to MySQL server using password in '/root/.mysql_secret'

接下来,询问你是否要配置一个插件来验证密码:OutputVALIDATE PASSWORD PLUGIN can be used to test passwords

and improve security. It checks the strength of password

and allows the users to set only those passwords which are

secure enough. Would you like to setup VALIDATE PASSWORD plugin?

警告:启用此功能是一个判断调用,如果启用,与指定条件不匹配的密码将被MySQL拒绝,并出现错误,如果你使用弱密码和自动配置MySQL用户凭证的软件,这将导致问题,禁用验证是很安全的,但是你应该始终使用强健而唯一的密码。

回答y为是,或在不启用的情况下继续。

如果你选择启用此功能,则会要求你选择密码验证级别。请记住,如果输入2(最高级别),当尝试设置不包含数字,大写和小写字母以及特殊字符或基于常见词典单词的密码时,都会收到一个错误消息。OutputThere are three levels of password validation policy:

LOW Length >= 8

MEDIUM Length >= 8, numeric, mixed case, and special characters

STRONG Length >= 8, numeric, mixed case, special characters and dictionary file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:

接下来,将询问你是否要更改root用户的密码:OutputChange the password for root ? ((Press y|Y for Yes, any other key for No) :

按y更改此密码。

如果启用密码验证,将显示现有root密码的密码强度,并询问你是否要更改密码。OutputNew password:

Re-enter new password:

Estimated strength of the password: 100

Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) :

按y以继续新密码。

对于其余问题,你应该按y键,并且在每次提示时按回车键,这将删除一些匿名用户和测试数据库,禁用远程root登录,并加载这些新规则,以便MySQL立即遵守我们所做的更改。

然后重新启动mysql-server服务,以确保实例立即实现安全更改:sudo service mysql-server restart

一旦MySQL实例启动,并且运行,就可以安装和配置PHP 。

第3步-安装和配置PHP

再次使用软件包系统安装PHP,以及添加MySQL支持的PHP扩展mysqli :sudo pkg install php71 php71-mysqli

Lighttpd不包含像其他一些web服务器一样的原生处理PHP,所以使用PHP fpm,它代表"FastCGI进程管理器",我们配置Lighttpd来使用这个模块来处理PHP请求,我们需要先配置php fpm本身。

首先编辑php fpm配置文件:sudo ee /usr/local/etc/php-fpm.d/www.conf

我们配置php来使用一个Unix套接字,而不是一个网络端口进行通信,这对于在单个服务器内通信的服务更安全。

在配置文件中查找此行:/usr/local/etc/php-fpm./www ,conflisten = 127.0.0.1:9000

更改此行以便使用php-fpm套接字:/usr/local/etc/php-fpm./www ,conflisten = /var/run/php-fpm.sock

现在,设置将创建的套接字的所有者,组和权限,查找配置文件的这一部分:/usr/local/etc/php-fpm./www ,conf...

;listen.owner = www

;listen.group = www

;listen.mode = 0660

...

从每行开始删除分号以取消注释以下部分,因此该节如下所示:/usr/local/etc/php-fpm./www ,conf...

listen.owner = www

listen.group = www

listen.mode = 0660

...

完成后保存并关闭文件。

接下来,创建一个php.ini文件,它将配置PHP的一般行为,包含两个例子文件: php.ini-production和php.ini-development ,php.ini-production文件将更接近你想要的服务器,因此将它复制到/usr/local/etc/php.ini,PHP期望找到配置文件:sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

使用文本编辑器打开新的php.ini文件:sudo ee /usr/local/etc/php.ini

在配置文件中,找到cgi.fix_pathinfo行为的部分,它将被注释掉,并且默认设置为1 :/usr/local/etc/php.ini...

;cgi.fix_pathinfo=1

...

取消注释此行并将值设置为0 ,攻击者可以使用它执行恶意代码。/usr/local/etc/php.ini...

cgi.fix_pathinfo=0

...

保存文件并退出编辑器。

然后启用php-fpm服务在引导时启动:sudo sysrc php_fpm_enable=yes

然后启动服务:sudo service php-fpm start

接下来,将Lighttpd配置为为PHP应用程序提供服务。

第4步 - 配置Lighttpd服务PHP应用程序

在此步骤中,你将配置Lighttpd以使用FastCGI和PHP-FPM。这将在Lighttpd上启用PHP,并且提供快速高效的PHP支持。

首先,启用FastCGI模块,打开Lighttpd模块的配置文件:sudo ee /usr/local/etc/lighttpd/modules.conf

查找以下部分:/usr/local/etc/lighttpd/modules.conf...

##

## FastCGI (mod_fastcgi)

##

#include"conf.d/fastcgi.conf"

...

删除#符号取消注释include行,如果找不到该行,请将它添加到文件的末尾。/usr/local/etc/lighttpd/modules.conf...

##

## FastCGI (mod_fastcgi)

##

include"conf.d/fastcgi.conf"

...

保存文件并退出编辑器。

接下来,编辑FastCGI配置文件:sudo ee /usr/local/etc/lighttpd/conf.d/fastcgi.conf

在文件末尾添加以下配置行,将Lighttpd配置为使用FastCGI和PHP fpm为PHP文件提供服务:/usr/local/etc/lighttpd/conf./fastcgi ,conf...

fastcgi.server += (".php" =>

((

"socket" =>"/var/run/php-fpm.sock",

"broken-scriptfilename" =>"enable"

))

)

...

接下来,让Lighttpd在开机时启动,这样,只要重新启动web服务器,Lighttpd就会自动启动:sudo sysrc lighttpd_enable=yes

然后启动lighttpd服务:sudo service lighttpd start

现在PHP已经准备好了,来确保一切都正常。

步骤5-测试服务器设置

要测试新配置的Lighttpd服务器,首先创建文件夹/usr/local/www/data,这是Lighttpd将查找网页的地方。sudo mkdir -p /usr/local/www/data

然后在/usr/local/www/data/文件夹中创建一个info.php ,此文件将测试PHP是否正常运行,并允许你在Web浏览器中查看有关Web服务器设置的信息:sudo ee /usr/local/www/data/info.php

将此代码添加到文件中:/usr/local/www/data/info.php<?php phpinfo(); ?>

保存文件并退出编辑器。

访问 http://your_server_ip/info.php

此页面显示有关操作系统,以及你的web服务器如何处理PHP文件的信息,

如果看不到此页,而且看到错误503服务不可用,请确保php-fpm服务在前一步中正确启动。

验证后,请删除info.php页面,因为它公开了有关服务器的信息:sudo rm /usr/local/www/data/info.php

现在,Web服务器已完全配置,可以使用了。将文件放入/usr/local/www/data以提供服务。

结束语

现在,Lighttpd Web服务器已完全启动,并且运行,你可以在Web服务器上托管网页,文档和其他文件。有关Lighttpd的更多信息,请访问Lighttpd论坛 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值