zabbix+nginx+php7.0+debian9的部署方法

RT 官方建议apache2,然而并不想用apache2
数据库保持使用MySql,量小暂时没有PostgreSQL的需求
依旧是root账号,所以不带sudo

1、安装基础
这里比较偷懒就直接apt装nginx了,有版本需求自行编译,apt装好的nginx config在/etc/nginx下面,请注意

apt-get update
apt-get install nginx php7.0-fpm php7.0-mysql mysql-server

装完先放着

2、安装zabbix-server和anget(可选)

wget http://repo.zabbix.com/zabbix/3.4/debian/pool/main/z/zabbix-release/zabbix-release_3.4-1%2Bstretch_all.deb
dpkg -i zabbix-release_3.4-1+stretch_all.deb
apt-get update
apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-agent

安装完后可能会把apache2也给你装上了,删了删了

systemctl stop apache2.service
apt-get remove apache2
apt autoremove

然后继续放着

3、配置数据库

mysql -uroot -p
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by '***YOURPASSWORD***';
quit;
cd /usr/share/doc/zabbix-server-mysql
zcat create.sql.gz | mysql -uzabbix -p zabbix

配置zabbix-server用的数据库,然后导入初始架构数据
mysql的root的密码默认跟随系统的root密码,而不再是安装的时候另外设置了

4、配置nginx和php-fpm

vim /etc/nginx/sites-enabled/zabbix.conf

server {
       listen 80;
        server_name  localhost;
        root   /usr/share/zabbix;


        location / {
                index  index.html index.htm index.php;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
                root   /usr/share/nginx/html;
        }
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
                include        fastcgi_params;
        }
}

php-fpm在apt安装的情况下默认就用的sock,所以不用改动,如果是其他安装方法的话请自行检查和修改

vim /etc/php/7.0/fpm/php.ini

max_execution_time = 300
max_input_time = 600
post_max_size = 32M
date.timezone = Asia/Tokyo

以上4条请用搜索功能寻找并修改

5、配置zabbix-server和agent

vim /etc/zabbix/zabbix_server.conf

DBHost=
DBName=
DBPassword=

以上3条请自行搜索并修改

vim /etc/zabbix/zabbix_agentd.conf

Server=
Hostname=

以上2条请自行搜索并修改

6、开机自动启动和启动服务并访问

systemctl enable nginx
systemctl enable php7.0-fpm
systemctl enable mysql
systemctl enable zabbix-server
systemctl enable zabbix-agent
systemctl restart nginx
systemctl restart php7.0-fpm
systemctl restart mysql
systemctl restart zabbix-server
systemctl restart zabbix-agent

写的比较糙,有些可能是需要restart

然后打开浏览器,http://yourdomain/setup.php 进入zabbix的配置页面,剩下的跟着流程走一遍即可~

PS:初始账号密码是 Admin和zabbix(账号注意大小写)

参考资料:
从部署包安装 Zabbix Documentation 3.4
ubuntu16.04 + ZABBIX + nginx & php-fpm

tengine+php5+dz论坛部署

RT~业务上需要跑一个html页面,一个下载业务,和一个dz论坛,并且上反代,且在请求到任何其他奇怪的地址的时候均跳转回首页
这里假设域名是www.abc.com、dl.abc.com、bbs.abc.com
环境上 大致的情况就是:
用户访问公网IP到达机器A
机器A里面开一个虚拟机B
访问A后 通过反代 再请求作为源站的B即可
用到的工具有:tengine、php5(7不行,dz X3.2不支持7)、mysql、DZ UTF-8 简中 X3.2版
简单介绍下,tengine属于nginx的淘宝魔改版本~在nginx上增加了很多新的功能,简单的配置的话参数是一致的
一、安装所需的程序
这里系统仍然是debian(这次是8.5 x64)由于我使用的apt源自带tengine 所以不需要编译安装,直接apt-get即可

apt-get install tengine php5 php5-fpm php5-common php5-gd php5-mysql php5-cli php5-json php5-readline mysql-server-5.5

这些都不解释、也没啥要配置的,mysql那里会让你设置root的密码,设一个就OK
dz的话 请各位自行去官网复制链接 然后wget后unzip即可,这里不做过多说明
这次没用到phpmyadmin,因为安全事故频发,有点不是太放心,况且也没啥需求,导入数据库什么的敲命令也OK的
完事后 mysql 进去 设置个单独的账户给dz用
二、配置dz要用的到的mysql

mysql -u root -p

#登陆mysql

create database bbs;

#创建名为bbs的数据库

grant all privileges on bbs.* to bbs@localhost identified by '123456';

#创建名为bbs的用户,密码为123456,并赋予其对bbs数据库的全部权限
这部分直接从我的第一篇博文里面复制过来的了。。。反正都一样
3、解决第1、2个需求
两者实际是同一个功能,所以合二为一来讲,后者只是没有index而已
首先 创建一个放网页的目录。。。不解释,我们丢到/var/www下面吧,2个目录,一个是HTML的,目录叫www,另一个提供下载的目录叫dl

mkdir /var/www/www /var/www/dl

然后可以先把你需要提供的内容丢到对应目录里,这里我们就touch一个index.htm在www和dl的下面,方便后续测试

touch index.htm
echo hello >> index.htm

分别cp到各自的文件夹,懒得打命令了
之后,编辑tengine的配置文件,由于是nginx的魔改,所以配置文件仍然叫nginx.conf,路径在/etc/nginx

vim /etc/nginx/nginx.conf

这里面大部分东西都不需要你改,基本上只是添加新的东西而已
我们找到开头写着http { 的那一行
然后找到这个大括号的“}”部分(全新的配置文件一般都是在最下面)
之后按下i进入编辑模式,在“}”的上面敲回车空出几行来 粘贴如下内容(以下内容由叼炸天的朋友erevus提供~点击名字可进入他的个人站点,这是一位经验丰富的安全工程师~)

server {
listen 80;
server_name www.abc.com abc.com;
root /var/www/www/;
index index.htm;
}

(空格粘贴过来的时候乱掉了。。。不过不影响,我也没强迫症,你们自己有强迫症的话自己看着办吧2333333)
这一行由于也带上了对php的支持,我懒得删了。。。反正不影响。。。大致注意以下几点:
1、listen 后面跟着端口号 表示监听哪个端口
2、server_name 后面跟着域名 如果是多域名的话(包括www和@)用空格隔开
3、root 后面跟着放着网页的物理路径 不解释
4、index 后面跟着你的index页面的文件名,记得带后缀
5、需要多域名指向多文件夹的话 跟着这个的后面,再复制粘贴一次,然后按照上面1~4的说明,来改成你对应业务的所需即可
然后:wq 保存退出

service tengine restart

理论上不会有任何报错信息,然后直接请求的话 就会发现可以请求到你需要的内容了~
四、上dz
先编辑一下php-fpm,直接安装的里面 缺东西。。。略蛋疼

vim /etc/php5/fpm/php-fpm.conf

直接拉到最下 输入这几行:

listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
listen.backlog = -1

如果这三个都有了就忽略吧。。。我这里不知道为啥进去后发现这三个参数都没有
第一个是监听的端口
第二个是保证只有127.0.0.1可以访问,如果你这是后端机器 则可能需要修改一下
第三个。。。想不起来了!自行谷歌吧。。。
配置完后
还是和刚才一样,搞个放论坛的目录,这里我们就叫bbs

mkdir /var/www/bbs

然后 把dz丢进去~
这里注意,dz由于权限要求,所以需要你给一下可读可写可删除可改等权限

chmod -R 777 /var/www/bbs/

(这里要注意,我这只是一个为了调通而偷懒的说明,全部777的话有可能会因为有漏洞进而被黑,然后被挂webshell,请各位站长务必注意)
之后编辑一下nginx.conf

vim /etc/nginx/nginx.conf

这里稍加不同,比上面的多了点东西

server {
listen 80;
server_name bbs.abc.com;
root /var/www/bbs/;
index index.htm index.html index.php;
location ~ .*\.php(\/.*)*$ {
include /etc/nginx/fastcgi_params;
fastcgi_index index.php;
set $path_info "";
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}
}

主要是多了一个fastcgi_pass 这里指向你php刚才设置的listen即可,注意端口和IP都别输错了
完事后:wq保存退出

service tengine restart

重启后 dz的要求是http://你的域名/install 这样访问即可开始论坛初始化
一路下一步 按照说明走 就问题不大了~
五、访问奇怪的地址时跳转回主站(www)
这个挺简单的。。。直接

vim /etc/nginx/nginx.conf

然后复制粘贴如下 还是到http 里面

server {
listen 80 default;
rewrite ^(.*) http://www.abc.com permanent;
}

:wq保存退出,重启服务端即可
然后你可以测试一下 比如浏览器上直接输入IP访问 会发现可以跳转到这里了
六、反向代理
迟来的更新……这一步居然是最简单的。。。
还是添加解析到nginx.conf即可

server {
listen 80;
server_name bbs.bilicraft.com;
access_log /var/log/nginx/bbs.access.log main;
error_log /var/log/nginx/bbs.error.log error;
location / {
proxy_pass http://172.16.1.2:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
}

其中 proxy_pass写目标机器的IP和端口,保存退出
然后重启一下tengine,顺带一提 nginx也是可以反代的,但是要去掉access_log结尾的main和error_log结尾的error,nginx不认这俩的,不去掉重启会报错
这样就全部完成啦~

MySQL 重设密码

某MC服把服务器上mysql的root密码居然给忘了。。。
于是。。。搜了一番,找到了这样的一个教程:
https://segmentfault.com/a/1190000000412194
一、适合ubuntu/debian的方式
这个方法只能用于ubuntu/debian 系统上,不过好处在于不需要停掉mysql的服务

cat /etc/mysql/debian.cnf

显示的内容是:

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = debian-sys-maint
password = PASSWORD
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = debian-sys-maint
password = PASSWORD
socket = /var/run/mysqld/mysqld.sock
basedir = /usr

我们记下来其中的user和password
然后直接

mysql -udebian-sys-maint -p

回车后输入password里面的密码,成功进入~
然后直接:

use mysql;
update user set password=PASSWORD("newpassword") where User='root';
flush privileges;

全部执行完后就OK了~
二、比较通用的办法
这个办法需要停mysql,不过像是centos之类的可以用这个方法

service mysql stop

以安全模式启动mysql

mysqld_safe --skip-grant-tables --skip-networking &

然后直接登陆,不需要添加-p

mysql -uroot

成功登陆,然后改密码~

在Debian7中部署wordpress

第一篇博文就写如何部署wordpress
最开始是在Google404 Not Found搜到的这一篇文章模仿着做的,来源:本文由 Daniel Sun 原创编译,出处:http://www.onlyke.com/html/13.html
结果搞的时候并不顺利,所以在搞定后就计划第一篇文章写这个~
由于日常工作中经常接触Debian,所以为了更熟悉这个系统便也给自己的服务器使用了debian
服务器则是从看板娘超可爱的GMO旗下的ConoHa租用的,最低配置一个月900日元,提供50G的SSD,1G内存和100M不限流量的带宽,性价比还是挺高的,坑爹的提供商,用邀请链接注册就给2000日元优惠券,不用就不给,后悔死了,顺便丢一下自己的邀请链接。

ConoHa酱~来源:http://xn--y8j1ek.com/profile 里面还有ConoHa的姐姐Mikumo以及声优配音的声音片段
正文:
由于没啥重要的东西其实是偷懒,所以就直接用的root账户安装的,设置并使用其他账号的用户记得在命令前面加sudo

1、装所需的程序

架设wordpress之前需要先安装如下程序
Apache2(nginx也可以,然而并不会用)
MySQL
php5
php5-mysql
php5-gd
(以及为了以后方便管理其实还是偷懒我装了一个phpmyadmin(最初的参考链接里面还写了libapache2-mod-auth-mysql和libapache2-mod-php5,但是不知道为什么我这里并没有安装成功,不过最后发现还是可以用就不管了~))

apt-get install apache2 mysql-server-5.5 php5 php5-mysql php5-gd phpmyadmin

安装mysql的时候会提示让你设置root的密码,设置好后别忘了就好
安装phpmyadmin的时候会提示你配置一下账号和密码以及mysql的账号和密码,一共会输入3次,输入之前看清让你输入的是哪个密码
安装完后可以试着访问一下,由于是境外服务器所以没有80白名单限制,iptables默认也直接关掉了仍然是懒,在本地直接输入地址(或IP)访问,能显示出Apache2的初始页面就说明apache这部分没问题了。

2、配置phpmyadmin

实际上这一块可以忽略的,但是我装了就配置吧。。。

vim /etc/apache2/apache2.conf

进入后在文件最结尾添加这行代码:

Include /etc/phpmyadmin/apache.conf

然后保存退出,重启apache

service apache2 restart

重启后在本地电脑上访问一下phpmyadmin来确认下是否运行正常,访问地址是http://你的域名(或IP)/phpmyadmin
不知道为什么我这里访问登录页面以及点登陆后要等很久,不知道在处理什么奇怪的东西,总之我这里是能用的。

3、配置数据库给wordpress使用

在phpmyadmin上可以直接通过创建数据表的方式来添加,比较简单

phpmyadmin添加数据库

使用命令方式配置则是

mysql -u root -p

#登陆mysql

create database wordpress;

#创建名为wordpress的数据库

grant all privileges on wordpress.* to wordpress@localhost identified by '123456';

#创建名为wordpress的用户,密码为123456,并赋予其对wordpress数据库的全部权限
4、建立虚拟站点
由于我这一台服务器内放置了2个不同的解析域名,所以需要配置虚拟站点。如果你的服务器内只放置wordpress的话则可以直接忽略此步,到第5步骤即可。
注意:以下仅提供适用于Apache2的设置方法
建立一个文件夹来放站点,这里我采取的是html文件夹放www的内容,另外建立一个wordpress文件夹放博客的系统

cd /var/www

#到达默认网页放置的路径

mkdir html wordpress

#创建html文件夹和wordpress文件夹
写虚拟站点文件

cd /etc/apache2/sites-enabled

#到达配置文件路径

vim wordpress.conf

#编辑wordpress配置文件(正常情况下不存在此文件)
添加内容如下:

<VirtualHost *:80>
ServerName www.你的域名.com
ServerAlias 你的域名.com
DocumentRoot /var/www/html/
</VirtualHost>
<VirtualHost *:80>
ServerName blog.你的域名.com
ServerAlias 你的域名.com
DocumentRoot /var/www/wordpress/
</VirtualHost>

然后保存退出即可,最后重启apache

service apache2 restart

5、安装wordpress
首先去wordpress官网获取wordpress,谷歌了一下发现提供多语种,果断访问中文页面:https://cn.wordpress.org/
官网提供了两种压缩包形式的wordpress,zip和tar.gz,这里我选择tar.gz格式打包的文件

wget https://cn.wordpress.org/wordpress-4.2.2-zh_CN.tar.gz

#下载源文件

tar -xzvf wordpress-4.2.2-zh_CN.tar.gz

#解压缩wordpress

cp -R wordpress /var/www/

#复制主程序到/var/www下面

chmod -R 777 /var/www/wordpress

#赋予此文件夹777的权限
以上,全部设置均完成,接下来就是访问你的blog,会有一个很人性化的页面来帮助你配置wordpress,包括设置wordpress的账号,连接到数据库等等。