sudo
权限。 您可以设置这些权限的用户在我们与Debian 8 初始服务器设置指南。apt
的包管理套件来完成安装。
由于这是用我们的第一次apt
本次会议,我们应该通过更新本地软件包索引开始。然后我们可以安装服务器:
sudo apt-get update
sudo apt-get install nginx
在Debian 8上,Nginx配置为在安装时开始运行。
如果你有ufw
防火墙运行,您将需要允许Nginx的连接。 您应该启用仍然允许所需流量的限制最严格的配置文件。 因为我们没有为我们的服务器配置SSL然而,在本指南中,我们将只需要允许端口流量80
。
您可以通过键入以下内容来启用:
sudo ufw allow 'Nginx HTTP'
您可以通过键入以下内容验证更改:
sudo ufw status
您应该在显示的输出中看到允许的HTTP流量:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
现在,通过在Web浏览器中访问服务器的域名或公共IP地址,测试服务器是否已启动并运行。如果您没有指向您的服务器的域名,并且您不知道您的服务器的公共IP地址,您可以通过在终端中键入以下内容之一找到它:
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
这将打印出几个IP地址。您可以在您的网络浏览器中依次尝试每个。
或者,您可以检查从互联网上的其他位置查看哪个IP地址可访问:
curl -4 icanhazip.com
键入您在Web浏览器中收到的一个地址。它应该带你到Nginx的默认着陆页:
http://server_domain_or_IP
sudo apt-get install mysql-server
您将被要求提供一个root(管理)密码以在MySQL系统中使用,您需要确认该密码。
MySQL数据库软件现已安装,但其配置尚未完全完成。
为了确保安装,我们可以运行一个简单的安全脚本,询问我们是否要修改一些不安全的默认值。通过键入以下内容开始脚本:
sudo mysql_secure_installation
你会被要求输入你MySQL的root帐户设置密码。 然后会询问您是否要更改该密码。 如果你很高兴与您当前密码,输入N
为“无”的提示:
Using existing password for root.
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
You already have a root password set, so you can safely answer 'n'.
Change the root password? [Y/n] n
... skipping.
对于脚本提出的问题的休息,你应该按Y
,其次ENTER
在每个提示键。这将删除一些匿名用户和测试数据库,禁用远程根登录,并加载这些新规则,以便MySQL立即尊重您所做的更改。
此时,您的数据库系统现在已设置和保护。让我们设置PHP。
fpm
,主张“FastCGI进程管理器”。我们将告诉Nginx将PHP请求传递给这个软件进行处理。我们还将安装一个额外的帮助程序包,它将允许PHP与我们的MySQL数据库后端进行通信。安装将拉入必要的PHP核心文件,使其工作。
由于许可问题,这些软件包在默认存储库中不可用,因此我们必须修改存储库源以将它们引入。
打开/etc/apt/sources.list
在文本编辑器:
sudo nano /etc/apt/sources.list
然后,对于每个源,追加contrib
和non-free
库每个源。完成这些更改后,您的文件应如下所示:
...
deb http://mirrors.digitalocean.com/debian jessie main contrib non-free
deb-src http://mirrors.digitalocean.com/debian jessie main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free
# jessie-updates, previously known as 'volatile'
deb http://mirrors.digitalocean.com/debian jessie-updates main contrib non-free
deb-src http://mirrors.digitalocean.com/debian jessie-updates main contrib non-free
保存并退出文件。然后更新您的来源:
sudo apt-get update
然后安装php5-fpm
和php5-mysql
模块:
sudo apt-get install php5-fpm php5-mysql
我们现在已经安装了我们的PHP组件,但我们需要进行一些小的配置更改,以使我们的设置更安全。
打开主php-fpm
具有root权限的配置文件:
sudo nano /etc/php5/fpm/php.ini
寻找那些设置参数文件中cgi.fix_pathinfo
。这将使用分号(;)注释掉,默认设置为“1”。
这是一个非常不安全的设置,因为它告诉PHP尝试执行最近的文件,如果找不到请求的PHP文件,它可以找到。这基本上将允许用户以允许他们执行他们不应该被允许执行的脚本的方式来制作PHP请求。
我们将通过取消注释行并将其设置为“0”来更改这两个条件,如下所示:
cgi.fix_pathinfo=0
保存并在完成后关闭文件。
现在,我们只需要重新启动我们的PHP处理器,输入:
sudo systemctl restart php5-fpm
这将实施我们所做的改变。
sudo nano /etc/nginx/sites-available/default
目前,删除注释,Nginx默认服务器块文件看起来像这样:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
}
我们需要对我们网站的此文件进行一些更改。
index.php
作为我们的第一个值index
的指令,这样命名的文件index.php
供应,如果有的话,当请求目录。server_name
以指向我们的服务器的域名或公网IP地址。location ~\.php$
定位块,附带fastcgi-php.conf
片段,并与相关的socketphp-fpm
。.htaccess
文件。 Nginx不处理这些文件。如果任何这些文件碰巧进入文档根目录,则不应将其提供给访问者。server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name your_server_ip;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
进行上述更改后,您可以保存并关闭文件。
键入以下内容以测试配置文件是否有语法错误:
sudo nginx -t
如果报告了任何错误,请返回并重新检查您的文件,然后继续。
当你准备好,重新加载Nginx进行必要的更改:
sudo systemctl reload nginx
.php
文件从我们的PHP处理器。
我们可以通过在我们的文档根中创建一个测试PHP文件来实现。打开一个名为新文件info.php
在文本编辑器文档根目录中:
sudo nano /var/www/html/info.php
在新文件中键入或粘贴以下行。这是有效的PHP代码,将返回有关我们的服务器的信息:
<?php
phpinfo();
?>
完成后,保存并关闭文件。
现在,你可以通过访问您的服务器的域名或公网IP地址,然后在Web浏览器中访问此页面/info.php
:
http://server_domain_or_IP/info.php
您应该看到一个由PHP生成的网页,其中包含有关您的服务器的信息:
sudo rm /var/www/html/info.php
如果以后需要,您可以随时重新生成此文件。
关注云架构公众号
Linux入门
QQ交流群:308781113