头像

Linux宝塔面板FTP无法连接

解决方法:

1、确定自己服务器中安全组的,22、21、(39000 – 40000)端口处于放行状态。

我这边用的是阿里云的ECS服务器,这边已经排查了。确定没有问题,同样遇到这个问题的,请先排查这个端口放行状态。

2、排查了端口之后,进入宝塔Linux面板中的“软件管理”“运行环境”,找到Pure-Ftpd,点击:设置。

3、点击配置修改,查找“ForcePassiveIP”(位置188行左右)

4、去掉ForcePassiveIP的“#”号  将192.168.0.1 修改为你自己的服务器公网IPURL,然后保存。

5、打开FlashFXP中设置相关信息,输入创建的ftp账号密码,协议选择 Ftp,端口是21,注意在选项里面,将传输类型勾选使用被动模式。

6、我这边经过这些步骤是正确连接上了。

好了,上面就是关于Linux宝塔面板FTP无法连接的一些经验介绍,希望能够帮到遇到同样问题的朋友。

头像

宝塔面板出现:is not within the allowed path(s) 解决方法

is not within the allowed path(s) 意思是没权限访问那个文件夹

解决方法:

每个网站路径下面都有一个 .user.ini 文件.

里面的内容为

open_basedir=/www/wwwroot/xxx.com/:/tmp/:/proc/

这个代表本网站可以访问的路径

如果需要添加其他路径.可以直接在后面添加即可,每个路径之间用:隔开

添加以后 重启下Nginx即可生效. 其他环境应该也都一样.

头像

在CentOS 6.6上安装ShadowSocks服务端

1、查看系统
[root@localhost ~]# cat /etc/issue
CentOS release 6.6 (Final)
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.32-042stab106.6 #1 SMP Mon Apr 20 14:48:47 MSK 2015 x86_64 x86_64 x86_64 GNU/Linux

2、安装ShadowSocks
# yum install python-setuptools && easy_install pip
# pip install shadowsocks

3、创建配置文件/etc/shadowsocks.json
[root@localhost /]# touch /etc/shadowsocks.json
[root@localhost /]# vi /etc/shadowsocks.json
{
“server”:”138.128.208.158″,
“server_port”:443,
“local_address”: “127.0.0.1”,
“local_port”:1080,
“password”:”MyPass”,
“timeout”:600,
“method”:”rc4-md5″
}

备注:加密方式官方默认使用aes-256-cfb,推荐使用rc4-md5,因为 RC4比AES速度快好几倍。
各字段说明:

server:服务器IP
server_port:服务器端口
local_port:本地端端口
password:用来加密的密码
timeout:超时时间(秒)
method:加密方法,可选择 “bf-cfb”, “aes-256-cfb”, “des-cfb”, “rc4″等
4、使用配置文件在后台运行shadowsocks服务
[root@localhost /]# ssserver -c /etc/shadowsocks.json -d start

备注:若无配置文件,在后台可以使用一下命令运行:

[root@localhost /]# ssserver -p 443 -k MyPass -m rc4-md5 -d start

5、停止服务
[root@localhost /]# ssserver -c /etc/shadowsocks.json -d stop

头像

CentOS6.8下安装redis并配置开机自启动

下载redis

下载链接:https://redis.io/download

下载并解压

  1. wget http://download.redis.io/releases/redis-3.2.5.tar.gz
  2. tar -zxvf redis-3.2.5.tar.gz

找到redis的目录进入

  1. cd redis-3.2.5

make编译redis

  1. make
  2. 或者
  3. make install

注意:make命令执行完成编译后,会在src目录下生成6个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-dump、redis-sentinel。

执行make install。会将make编译生成的可执行文件拷贝到/usr/local/bin目录下;

redis安装异常

问题一:

make[2]: cc: Command not found
异常原因:没有安装gcc
解决方案:yum install gcc-c++

问题二:

zmalloc.h:51:31: error: jemalloc/jemalloc.h: No such file or directory
异常原因:一些编译依赖或原来编译遗留出现的问题
解决方案:make distclean。清理一下,然后再make。
在make成功以后,需要make test。在make test出现异常。

问题三:

couldn’t execute “tclsh8.5”: no such file or directory
异常原因:没有安装tcl
解决方案:yum install -y tcl。

二、启动redis

1:直接启动

  1. ./redis-server

加上`&`号使redis以后台程序方式运行

  1. ./redis-server &

检测后台进程

  1. ps -ef |grep redis

检测6379端口是否在监听

  1. netstat -lntp | grep 6379

使用redis-cli客户端检测连接是否正常

  1. ./redis-cli

2:通过指定配置文件启动
可为redis服务启动指定配置文件,配置文件 redis.conf 在redis根目录下。


#修改daemonize为yes,即默认以后台程序方式运行(还记得前面手动使用&号强制后台运行吗)。
daemonize no
#可修改默认监听端口
port 6379
#修改生成默认日志文件位置
logfile “/home/futeng/logs/redis.log”
#配置持久化文件存放位置
dir /home/futeng/data/redisData
启动时指定配置文件
redis-server ./redis.conf
#如果更改了端口,使用`redis-cli`客户端连接时,也需要指定端口,例如:
redis-cli -p 6380

3:redis开机自启动

执行./utils/install_server.sh配置Redis配置之后Redis能随系统启动。

执行基本配置./utils/install_server.sh之后,根据上面信息,可以得出:
默认的端口:6379,
生成一个redis配置文件:/etc/redis/6379.conf
生成一个redis日志文件:/etc/log/redis_6379.log
脚本:/var/lib/redis/6379
默认目录:/usr/local/bin/redis-server

三、Redis设置密码

修改配置文件

进入你redis.conf的配置文件,路径根据你的实际情况来

  1. vi redis.conf

命令模式下查找requirepass 密码字段

释放注释,写上自己的密码: requirepass yourpassword :requirepass  123456

保存之后重启服务

重启命令

  1. redis-server /etc/redis/6379.conf

启动测试

  1. /usr/local/bin/redis-cli

如何关闭有密码的服务:

  1. /usr/local/bin/redis-cli  -h 127.0.0.1 -p 6379  -a 123456 shutdown
头像

centos6.8 yum安装mysql 5.6

一、检查系统是否安装其他版本的MYSQL数据
yum list installed | grep mysql
yum -y remove mysql-libs.x86_64

二、安装及配置
wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
rpm -ivh mysql-community-release-el6-5.noarch.rpm
yum repolist all | grep mysql
1、安装MYSQL数据库
yum install mysql-community-server -y

2、设置为开机启动
chkconfig --list | grep mysqld
chkconfig mysqld on

3、设置密码
/usr/bin/mysqladmin -u root password '123456'

4、修改root密码
mysql -uroot -p123456

mysql> select Host,User,Password from user where User='root';
+-----------------------+------+-------------------------------------------+
| Host                  | User | Password                                  |
+-----------------------+------+-------------------------------------------+
| localhost             | root | *4A82FDF1D80BA7470BA2E17FEEFD5A53D5D3B762 |
| localhost.localdomain | root |                                           |
| 127.0.0.1             | root |                                           |
| ::1                   | root |                                           |
+-----------------------+------+-------------------------------------------+
4 rows in set (0.00 sec)

mysql> update user set Password = password('123456') where User='root';
Query OK, 4 rows affected (0.03 sec)
Rows matched: 4  Changed: 4  Warnings: 0

mysql> select Host,User,Password from user where User='root';
+-----------------------+------+-------------------------------------------+
| Host                  | User | Password                                  |
+-----------------------+------+-------------------------------------------+
| localhost             | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| localhost.localdomain | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| 127.0.0.1             | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| ::1                   | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------------------+------+-------------------------------------------+
4 rows in set (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

5、建立远程root用户
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你设置的密码' WITH GRANT OPTION;
mysql> flush privileges;
6、设置utf-8编码

查看mysql原本编码:
mysql> show variables like 'character%';
设置编码
# vi /etc/my.cnf
如下(少补):
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
sql_mode='NO_ENGINE_SUBSTITUTION'
[mysql]
default-character-set = utf8
[mysql.server]
default-character-set = utf8
[mysqld_safe]
default-character-set = utf8
[client]
default-character-set = utf8
重启mysql
# service mysqld restart
再次查看编码:
# mysql -uroot -p
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
头像

Linux进程管理工具——supervisor

使用Supervisor管理Linux进程

简介

Supervisor是一个C/S系统,它可以在类UNIX系统上控制系统进程,由python编写,提供了大量的功能来实现对进程的管理。

安装

sudo pip install supervisor

配置

安装完成 supervisor 之后,可以使用 “echo_supervisord_conf” 命令来生成样例配置文件

echo_supervisord_conf

默认 supervisor 会使用 /etc/supervisord.conf 作为默认配置文件。

启动服务

服务程序

首先写个小程序来模拟一个服务程序,如下
myserver.sh

#!/bin/sh

while true
do
    date 
    sleep 5
done

配置

修改配置文件 /etc/supervisord.conf ,内容如下

[supervisord]
nodaemon=true

[program:myserver]
command=/home/kongxx/test/myserver.sh

启动服务

supervisord -c /etc/supervisord.conf

运行上面的程序即可启动supervisor服务,此时会在当前目录下生成一个日志文件 supervisord.log。

此时我们使用 “ps -ef | grep myserver” 找到上面的服务进程,然后kill掉这个进程。此时就会看到日志中 supervisor 会启动一个新的myserver进程。

管理服务

对于上面的例子我们只能启动一个服务,却不能管理这些配置的服务,下面就看看怎样管理服务。

服务程序

还是使用上面myserver.sh程序。

配置

/etc/supervisord.conf

[inet_http_server]         ; inet (TCP) server disabled by default
port = *:9999              ; (ip_address:port specifier, *:port for all iface)
username = admin           ; (default is no username (open server))
password = Letmein         ; (default is no password (open server))

[supervisord]
nodaemon = false

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl = http://127.0.0.1:9999 ; use an http:// url to specify an inet socket
username = admin              ; should be same as http_username if set
password = Letmein            ; should be same as http_password if set
prompt = mysupervisor         ; cmd line prompt (default "supervisor")

[program:myserver]
command = /home/kongxx/test/myserver.sh
redirect_stderr = true
stdout_logfile = /tmp/myserver.log

启动服务

supervisord -c /etc/supervisord.conf

查询/启动/停止服务

$ supervisorctl status myserver
myserver                         RUNNING   pid 14034, uptime 0:00:03 

$ supervisorctl start myserver
$ supervisorctl stop myserver

supervisor 管理命令行

supervisorctl也可以不带任何参数,此时即可进入supervisor的管理命令行接口,如下:

$ supervisorctl 
myserver                         RUNNING   pid 15297, uptime 0:00:27
mysupervisor> ?

default commands (type help <topic>):
=====================================
add    exit      open  reload  restart   start   tail   
avail  fg        pid   remove  shutdown  status  update 
clear  maintail  quit  reread  signal    stop    version

mysupervisor> 

远程管理

supervisorctl -s http://<ip>:9999 -u admin -p Letmein status myserver

Web接口

可以使用浏览器访问 http://:9999 来通过web接口管理服务。

常用命令

sudo service supervisor stop 停止supervisor服务
sudo service supervisor start 启动supervisor服务
supervisorctl shutdown #关闭所有任务
supervisorctl stop|start program_name #启动或停止服务
supervisorctl status #查看所有任务状态

 

头像

linux nginx启动 重启 关闭命令

启动操作

 启动代码格式:nginx安装目录地址 -c nginx配置文件地址

例如:

[root@LinuxServer sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

停止操作
停止操作是通过向nginx进程发送信号来进行的

步骤1:查询nginx主进程号

ps -ef | grep nginx

在进程列表里 面找master进程,它的编号就是主进程号了。

步骤2:发送信号

从容停止Nginx:
kill -QUIT 主进程号  
例如:kill -QUIT 16391

快速停止Nginx:
kill -TERM 主进程号  

强制停止Nginx:
kill -9 主进程号

另外, 若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文 件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:

kill -信号类型'/usr/local/nginx/logs/nginx.pid'

 

平滑重启

如果更改了配置就要重启Nginx,要先关闭Nginx再打开?不是的,可以向Nginx 发送信号,平滑重启。
平滑重启命令:

kill -HUP 住进称号或进程号文件路径  
或者使用
/usr/nginx/sbin/nginx -s reload

注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:

nginx -t -c /usr/nginx/conf/nginx.conf 
或者
/usr/nginx/sbin/nginx -t
头像

centos6.5/6.8 系统-搭建lamp(php7)环境–(yum在线安装)

1、查看当前服务器的版本

#方法1
cat /etc/redhat-release

#方法2
rpm -q centos-release

 

2、安装apache

#一键安装apache
yum install httpd

#启动apche
/etc/init.d/httpd start                     #方法1 
service httpd start                         #方法2

#设置apache开机自动启动
chkconfig --levels 235 httpd on

 

3、安装php7

#更新yum源(默认yum源中无php7)
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm  

#安装php及常用的拓展模块
yum -y install php70w php70w-mysql php70w-mbstring php70w-mcrypt php70w-gd php70w-imap php70w-ldap php70w-soap php70w-odbc php70w-pear php70w-xml php70w-xmlrpc php70w-pdo php70w-fpm

#查看php安装了那些拓展模块
php -m

#安装其他你需要的拓展模块
yum -y install php70w-xxx

 

4、安装mysql5.5

#查询是否安装了mysql,默认是安装了mysql-libs的5.1版本的。需卸载
rpm -qa|grep mysql
rpm -e mysql-libs --nodeps       #不检测依赖性

#增加两个新的repo源
rpm -Uvh http://mirror.steadfast.net/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

#检测源是否安装成功
yum --enablerepo=remi,remi-test list mysql mysql-server

#安装mysql5.5
yum -y --enablerepo=remi,remi-test install mysql mysql-server

#启动mysql
/etc/init.d/mysqld start

#将mysql设置为开机自动启动
chkconfig --levels 345 mysqld on

#设置mysql的root密码
/usr/bin/mysql_secure_installation
头像

Ubuntu部署PHP7、Nginx、MySQL网站环境过程

第一、升级当前系统数据源

sudo apt-get update && sudo apt-get upgrade

在我们当前的Ubuntu环境中,执行更新升级过程,如果看到是否需要继续,输入y回车继续。

第二、安装Nginx环境

sudo apt-get install nginx

执行一键命令,安装Nginx,如果安装完毕之后我们输入当前服务器、VPS主机的IP地址在浏览器中执行可以看到默认首页提示Nginx安装完毕,就表示没有问题,继续下面。

第三、配置Nginx基本环境

1、替换默认配置

tail /etc/nginx/sites-available/default -n 13 | cut -c 2- | sudo tee /etc/nginx/sites-available/june-fj.com 1> /dev/null

执行命令。如果我们自己的网站需要根据实际的需要替换掉红色的网址部分。

2、配置网站文档(/etc/nginx/sites-available/june-fj.com)

server {

listen 80;

listen [::]:80;

server_name june-fj.com;

root   /var/www/june_fj.com;

index  index.html index.php;

location / {

try_files $uri $uri/ =404;

}

}

我们需要添加对应站点的配置文件,然后根据实际的部署域名绑定修改配置文件。注意默认首页我采用的是index.html和index.php。

3、创建网站文件夹目录

从配置文件中,我设置的是/var/www/june-fj.com为网站目录,我们可以根据实际的需要设置,然后我们需要创建对应的目录。

mkdir -p /var/www/june-fj.com

4、启动设置

sudo ln -s /etc/nginx/sites-available/june-fj.com /etc/nginx/sites-enabled

sudo rm /etc/nginx/sites-enabled/default

sudo systemctl restart nginx

这里我们启动对应网站的配置,以及删除默认系统的根目录。重启Nginx生效。

第四、部署PHP7

1、安装PHP7包

sudo apt-get install php7.0-cli php7.0-cgi php7.0-fpm

这里我用系统自带的PHP7源文件安装。

2、修改配置文件(/etc/nginx/sites-available/june-fj.com)

server {

listen 80;

listen [::]:80;

server_name june-fj.com ;

root /var/www/june-fj.com;

index index.html index.php;

location / {

try_files $uri $uri/ =404;

}
location ~ \.php$ {

include snippets/fastcgi-php.conf;

include fastcgi_params;

fastcgi_pass unix:/run/php/php7.0-fpm.sock;

fastcgi_param SCRIPT_FILENAME /var/www/banwagong.me$fastcgi_script_name;

}

}

3、启动配置生效

sudo systemctl restart php7.0-fpm nginx

第五、安装MySQL数据库

1、安装自带环境包数据库

sudo apt-get install mysql-server php7.0-mysql

安装过程中需要用到设置ROOT数据库密码。

2、数据库安全配置

sudo mysql_secure_installation

根据提示进行数据库的安全配置以及删除默认没用的数据表。

3、创建数据库和数据表

mysql -u root -p

这里我们进入数据库管理,进行创建数据库表和用户。

CREATE DATABASE web;

CREATE USER ‘junefj’ IDENTIFIED BY ‘june-fj.com';

GRANT ALL PRIVILEGES ON ban.* TO ‘junefj';

quit

4、启动生效

sudo systemctl restart php7.0-fpm

最后,我们可以上传程序,然后安装部署网站程序。