服务器配置的那些事--基于LNMP

  1. 1. 0x0
  2. 2. 0x1
    1. 2.1. 1.添加Nginx到YUM源
    2. 2.2. 2.开始安装Nginx
    3. 2.3. 3.启动Nginx
    4. 2.4. 4.CentOS 7 开机启动Nginx
    5. 2.5. 5.一些Nginx的常用目录
    6. 2.6. 6.注意事项
  3. 3. 0x2
    1. 3.1. 1.安装:
    2. 3.2. 2.启动
    3. 3.3. 3.开机启动
    4. 3.4. 4.配置MariaDB
    5. 3.5. 5.测试
  4. 4. 0x3
  5. 5. 0x4
    1. 5.1. 这里就简单提提typecho的坑。
  6. 6. 0x5

感觉还是自己搭个服务器比较好。之前是大一下学期就想搭了的,只是当时好像已经开始实行了域名备案措施,江苏备案还要暂住证,就没去弄了,感觉自己用ip弄博客太傻了,所以还是一直用之前在某个博客系统上的博客。那个博客也有很多自己写的东西,而且有些还见不得人的东西->_->

所以这篇就用来记录一下就搭建服务器的一些坑

服务器用的是的vultr提供的,域名godaddy。系统centos 7.2

0x0

一开始Vultr选好服务器以后,会有个Startup Script的选项,这个选项是可以执行一些服务器建好以后运行的脚本

1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh


# NOTE: This is an example that sets up SSH authorization. To use it, you'd need to replace "ssh-rsa AA... [email protected]" with your SSH public.
# You can replace this entire script with anything you'd like, there is no need to keep it


mkdir -p /root/.ssh
chmod 600 /root/.ssh
echo ssh-rsa AA... [email protected] > /root/.ssh/authorized_keys
chmod 700 /root/.ssh/authorized_keys

这是Vultr给的示例脚本示例。这样子的话,每次建服务器只需要你写好脚本就可以配置好一些通用的组件了,例如Nginx、php等。

我自己写的脚本不是很好,就不放出来了。

0x1

然后就是先开始配置nginx了

1.添加Nginx到YUM源

添加CentOS 7 Nginx yum资源库,打开终端,使用以下命令:

sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

然后为了是最新稳定的Nginx,又特地去修改了yum的nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/OS/OSRELEASE/$basearch/
gpgcheck=0
enabled=1

按照官方文档来修改

2.开始安装Nginx

在你的CentOS 7 服务器中使用yum命令从Nginx源服务器中获取来安装Nginx:

sudo yum install -y nginx

3.启动Nginx

刚安装的Nginx不会自行启动。运行Nginx:

sudo systemctl start nginx.service

然后可以通过

curl localshost

来查看Nginx是否启动成功

4.CentOS 7 开机启动Nginx

sudo systemctl enable nginx.service

5.一些Nginx的常用目录

网站文件存放默认目录:

/usr/share/nginx/html

网站默认站点配置:

/etc/nginx/conf.d/default.conf

自定义Nginx站点配置文件存放目录:

/etc/nginx/conf.d/

Nginx全局配置

/etc/nginx/nginx.conf

6.注意事项

比较坑的是一开始我只想配个Nginx然后配域名试试能不能访问,结果配好Nginx之后直接访问ip发现无法访问。然后考虑ip被墙了,但是吧,ping了ip还是能ping通的,但是无论挂不挂代理都还是不能访问。这就比较郁闷了。

后来经过提醒,用 ss -tan 查看了一下端口,发现80已经是处于监听状态了,这就比较奇怪了,再去扫了一下服务器的端口,这时候发现80端口是关闭的。

百思不得其解,难道Vultr也有阿里云的那种安全防护,得手动打开?

然后问了一下大佬,就可能是防火墙的问题了。

Centos是自带的firewall,iptables,但是iptables还得配置,我们就不用iptables了,就用自带的firewalld

开始排查防火墙

先看看80是否开启

firewall-cmd --query-port=80/tcp

显示

no

果然是因为防火墙屏蔽了80端口,然后我们通过

firewall-cmd --zone=public --add-port=80/tcp --permanent

打开80端口,
显示

success

即可开启80端口,然后重启防火墙

systemctl [start|stop|restart] firewalld.service 

终于可以看到熟悉的Nginx界面了。


0x2

接着就是MariaDB

1.安装:

yum install mariadb mariadb-server

2.启动

systemctl start mariadb

3.开机启动

systemctl enable mariadb

4.配置MariaDB

mysql_secure_installation

5.测试

mysql -u root -p

0x3

再装php

Vultr有比较详细的安装教程,我就贴出来了。这里装的是php7.1

然后再安装个php-fpm

yum install php71w-fpm

这里注意的是php7.1是php71w的前缀

接下来进入Nginx的目录配置nginx.conf或者是/conf.d/default.d,一般目录是在/etc/nginx/,把下面这段注释取消就好了。

location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    include        fastcgi_params;
}

值得一提的是,我在配阿里云都没出现在过什么问题,但是就是配Vultr就出现了一些坑

首先是出现了

connect() failed (111: Connection refused) while connecting to upstream, server: localhost, request: "GET /xxx.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000"

这个就是php-fpm忘记开了

然后又碰到了File Not Found的错误,caterror.log看一下:

FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, server: localhost, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000"

这就比较郁闷了,不过Google还是能找到的,反正就是说File Not Found,看了一下原来是location的root配置问题,

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;
}

特别要注意root指向的位置,这又是比较坑的东西。

然后就是安装typecho的坑了。

0x4

这里就简单提提typecho的坑。

第一个就是与nginx的配置,这个还好有文档,但是只能解决我的

无法登录后台,点击前台链接或者后台登录时出现"404, not found"

这个问题

还有出现的一个问题就是typecho的登录302的问题。

还好有大佬直接给了我解决方案:

在config.inc.php加入define('__TYPECHO_SECURE__',1);

后来查了一下发现这个是用来开启https访问typecho的设置

/** 开启HTTPS */
define('__TYPECHO_SECURE__',true);

具体可以参照一下这篇文章

还有typecho点击评论确无法评论的问题,只要在typecho管理员控制台中在永久链接中把自定义文章路径

默认是

默认风格 /archives/{cid}/

改成

wordpress风格 /archives/{slug}.html

具体原因没查,我猜也是nginx与typecho的pathinfo问题

0x5

这篇文章主要就到这吧,后续会增加一些自己以后遇到的问题


Article Author: Zeddy

Article Link: https://blog.zeddyu.info/2018/03/03/%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%85%8D%E7%BD%AE%E7%9A%84%E9%82%A3%E4%BA%9B%E4%BA%8B%E2%80%94%E2%80%94%E5%9F%BA%E4%BA%8ELNMP/index.html

Copyright Notice: With the exception of the special statement at the beginning of the article, all articles can be reprinted in accordance with the CC BY 4.0 agreement with the author's permission.

MacOS X 下配置Nginx & PHP Docker镜像的时间问题

Comments