LNMP1.4最新稳定版本环境安装:
wget -c http://soft3.vpser.net/lnmp/lnmp1.4-full.tar.gz && tar zxf lnmp1.4-full.tar.gz && cd lnmp1.4-full && ./install.sh lnmp
LNMP1.5最新稳定版本环境安装:
wget -c http://soft3.vpser.net/lnmp/lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp
装好系统第一件事:分区磁盘,把数据库和网站目录移到 数据盘(/mnt)
改密码
改超时
#vi /etc/ssh/sshd_config,添加如下两行
ClientAliveInterval 60
ClientAliveCountMax 86400
-----------------------------------------------------------------------------------------------
LNMP相关软件安装目录
Nginx 目录: /usr/local/nginx/
MySQL 目录 : /usr/local/mysql/
MySQL数据库所在目录:/usr/local/mysql/var/
PHP目录 : /usr/local/php/ /usr/local/php/etc/php.ini
域名解析目录:/usr/local/nginx/conf/vhost
查看linux安装环境(版本信息):cat /etc/issue
重启LNMP,输入命令:/root/lnmp restart
LNMP 1.1及之前的版本采用/root/vhost.sh 进行添加虚拟主机
lnmp vhost {add|list|del} LNMP 1.2开始使用lnmp命令进行管理
lnmp {nginx|mysql|mariadb|php-fpm|pureftpd} {start|stop|reload|restart|kill|status}
service mysqld restart #重启数据库*****
----------------------------------------------------------------------------------------
常用命令:
按住Ctrl再按Backspace键删除
按住Shift+Insert键 粘贴(插入)
#cd /home/wwwroot/szjk91.com 定位的文件夹
#dir 显示目录文件
#unzip web.zip linux下解压命令
zip -r filename.zip filename linux下压缩命令 #安装 yum install -y unzip zip
rm -rf 路径/* 删除某目录下所有文件
cp -r file1 file2 复制一个文件夹到另外一个目录
chmod -R 777 /www 修改文件夹权限
wget -c url dirname #远程文件下载
ctrl+z回到root根目录
shutdown -r now #重启系统 reboot
chkconfig mysql on #设置mysql开机自启动
chkconfig nginx on #设置nginx开机自启动
chattr -i /目录/.user.ini #无法删除“.user.ini”文件解决方法,运行后删除即可
grep -r oldstring /usr/local/nginx/conf/vhost #查找/usr/src目录下的文件(包含子目录)包含magic的行
grep -rl oldstring dirname/ | xargs sed -i 's/oldstring/newstring/g' ##linux批量查找替换文件内容
iftop -i eth1 #查看公网网络带宽使用情况****
top #查看所有进程命令*****
-----------------------------------------------------------------------------------------
iftop安装教程
1,CentOS上安装所需依赖包:
yum install flex byacc libpcap ncurses ncurses-devel libpcap-devel
2,下载iftop
wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz
tar zxvf iftop-0.17.tar.gz
cd iftop-0.17
./configure
make && make install
3,运行iftop
iftop -i eth1
-----------------------------------------------------------------------------------------
nginx配置404错误页面(必须删除原网站配置文件conf)
1、更改/usr/local/nginx/conf/nginx.conf在http定义区域加入: fastcgi_intercept_errors on;
2、在单独网站配置文件server 区域加入: error_page 404 /404.html
3、测试nginx.conf正确性:/usr/local/nginx/sbin/nginx -t
4、重启nginx:/usr/local/nginx/sbin/nginx -s reload
------------------------------------------------------------------------
403 forbidden nginx 站点目录权限问题,给权限就可以
chmod -R 777 目录
--------------------------------------------------------------------
常用 VI文本编辑器 命令
打开/创建文件: vi 文件名
进入编辑状态:i (左下角显示--INSERT--)
退出编辑状态:按Esc或Ctrl+enter,(左下角显示文件名或为空)
保存并退出 :wq
-------------------
:wq 保存并退出
ZZ 保存并退出
:q! 强制退出并忽略所有更改
:e! 放弃所有修改,并打开原来文件。
查找:
1、命令模式下输入“/字符串”,例如“/Section 3”。
2、如果查找下一个,按“n”即可
------------------------------------------------------------------------------------------
关于磁盘分区常用命令:
df -hl #查看各盘空间大小命令
ls -lht #将会一一列出当前目录下所有文件的大小
du -sh * #查看各个目录大小命令*****
fdisk -l #查看新的分区命令
mtr ip #指令进行跟踪测试服务器丢包方法
No input file specified #删除域名,重新绑定
---------------------------------------------------------------------------------------------
如何在Linux下清除、删除系统日志
不要使用rm命令直接删除!!!
一般系统日志在/var/log/ 下,可以ls -lh /var/log/ 看一下占用的大小
可以使用cat /dev/null > logfile 进行日志删除
cat /dev/null > /var/log/syslog
cat /dev/null > /var/adm/sylog
cat /dev/null > /var/log/wtmp
cat /dev/null > /var/log/maillog
cat /dev/null > /var/log/messages
cat /dev/null > /var/log/maillog
cat /dev/null > /var/log/mail.info
------------------------------------------------------------------------------------------
window数据库导出到linux数据库导入操作命令
window下先进cmd->E:
E:->cd E:\vhost\mysql\bin>
E:\vhost\mysql\bin>mysqldump -uroot -p test > test.sql
导出sql文件到bin目录下,然后通过linux命令wget远程下载到指定目录
在linux下进mysql导入
mysql> drop database test; (删除test这个数据库,只是测试用,所以先删除这个数据库)
mysql>create database test; (建立一个空数据库,用来做导入用)
mysql>use test; (进入test数据库)
mysql>source /usr/local/mysql/var/test.sql (使用source命令将源数据库test.sql导入到test)
------------------------------------------------------------------------------------------
SSH-centos 中文 乱码问题解决
方法一:
export LC_ALL=zh_CN # for linux: zh_CN
export LANG=zh_CN # for linux: zh_CN
方法二:
修改/etc/sysconfig/i18n文件
LANG="zh_CN.GB18030"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
修改 /etc/profile增加
export LC_ALL=zh_CN # for linux: zh_CN
export LANG=zh_CN # for linux: zh_CN
即可解决
------------------------------------------------------------------------------------------
Linux如何更改root用户密码
进入命令提示界面..键入passwd,就会提示你键入新的密码
--------------------------------------------------------------------------------------------
修改dede后台密码:
Update `dede_admin` set pwd='f297a57a5a743894a0e4' where userid='admin' //修改后密码为admin
-----------------------------------------------------------------------------------------
Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost'问题的解决
这种问题需要强行重新修改密码,方法如下:
/etc/init.d/mysql stop (service mysqld stop )
/usr/bin/mysqld_safe --skip-grant-tables
另外开个SSH连接
[root@localhost ~]#
mysql>use mysql
mysql>update user set password=password("mmawqq1199") where user="root";
mysql>flush privileges;
mysql>exit
pkill -KILL -t pts/0 可将pts为0的**用户(之前运行mysqld_safe的用户窗口)强制踢出
正常启动 MySQL:/etc/init.d/mysql start (service mysqld start)
update sys_admin set pass=password("mima123101") where name="admin";
------添加新用户-----------
1.登录mysql
#mysql -u root -p
2.新增用户 insert into mysql.user(Host,User,Password) values("localhost","xxx",password("***"));
注释:xxx为新建用户名,***为用户密码
3.刷新权限表 flush privileges;
4.赋予用户权限 grant all on *.* to xxx@localhost identified by "***";
5.flush privileges;
6.select user,host,password from mysql.user;
-------------------------------------------------------------------------------------------
mysql 远程连接配置:mysql -h 123.206.88.245 -uwebadm -pwebadm1199
登录被授权服务器mysql,#mysql -u root -p,然后如下:
1,mysql>GRANT ALL PRIVILEGES ON *.* TO 'webadm'@'139.199.16.155' IDENTIFIED BY 'webadm1199' WITH GRANT OPTION;
2,重载授权表:
FLUSH PRIVILEGES;
3,进行删除授权操作:
REVOKE all on TEST-DB from user;
****注:该操作只是清除了用户对于TEST-DB的相关授权权限,但是这个“test-user”这个用户还是存在。
4,最后从用户表内清除用户:
>use mysql;
>DELETE FROM user WHERE user="webadm";
重载授权表:
FLUSH PRIVILEGES;
退出mysql数据库:
exit
--------------------------------------------------------------------------------------------
Linux关闭防火墙命令
重启后永久性生效
开启 chkconfig iptables on
关闭 chkconfig iptables off
即时生效,重启后失效
开启 service iptables start
关闭 service iptables stop
-------------------------------------------------------------------------------------------
(PHP 5.3 and above) Please set 'request_order' ini value to include C,G and P (recommended: 'CGP') in php.ini 错误
由于在PHP最新的版本中增加了一个配置项目“request_order”,默认值为“GP”,这个存在一定的安全风险。这里我们建议用户将配置更改为“CGP”
可以在phpinfo中查看对应的php.ini配置目录,找到下面选项:
request_order = "GP"
更改为
request_order = "CGP"
重启服务器后即可。
------------------------------------------------------------------------------------------
设置服务器向SSH客户端连接会话超时
#vim /etc/ssh/sshd_config,添加如下两行
ClientAliveInterval 60
ClientAliveCountMax 86400
----------------------------------------------------------------------------------
解决apache服务添加多个域名,指向同一个路径的问题
查找文件:/etc/httpd/conf/httpd.conf
找到#ServerName www.example.com:80 把#去掉
找到#NameVirtualHost *:80把#去掉
httpd -k restart 重启OK
----------------------------------------------------------------------------------------
首次配置网站无法访问,配置防火墙,开启80端口、3306端口,关闭selinux
1、
/etc/sysconfig/iptables
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT(允许80端口通过防火墙)
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允许3306端口通过防火墙)
2、
修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器
-------------------------------------------------------------------------------------
Linux下MySql出现#1036 – Table ‘ ‘ is read only 错误解决方法
1、通过SSH,给数据库文件777权限,admin是我的数据库文件夹
chmod -R 0777 /usr/local/mysql/var/admin/
2、给数据库目录的所属用户和组改为MySQL
chown -R mysql:mysql admin
3、找到mysqladmin所在位置,一般都在mysql/bin下面,我的在/usr/local/mysql/bin 里面,还需要运行以下命令:
./mysqladmin -u root -p flush-tables
之后输入root账号的密码,马上就好了,没有任何任何提示,然后测试一下,能正常读写,搬家也就顺利完成。
**************************************************************************
重启服务器,/tmp/mysql.sock 文件丢失,可能是磁盘满了。(查看磁盘:df -lh)
mysql无法启动,可能是磁盘满了。
试试:service mysql start
删除数据库目录下(/usr/local/mysql/var) mysql-bin.*,所有文件,*.centos.err文件
解决这个错误很简单,因为/tmp/mysql.sock不存在,用这样的方法:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
订单后台登录不了,mysql登录不了,系统盘满了,清理磁盘
(注:运行重装系统可清理磁盘:cd lnmp1.3-full && ./install.sh lnmp)
******mysql无法启动 解决办法:*********
1,# service mysqld stop
MySQL manager or server PID file could not be found! [FAILED]
2,查看进程:ps aux |grep mysq*
3,关闭进程:# kill 10274
4,# service mysql start
如果杀掉进程之后还是不行。
具体要看报错信息 如果没有指定日志路径 一般在是 /data/mysql 中的*.centos.err文件中可以看到信息。
如果线程中无死进程 可以先看 service mysql status 看下状态 根据提示删掉多余的东西
进入/data/mysql 也就是你的数据库目录 把多余的删除,包括*.centos.err 和其他 mysql-bin.index等东西
如果 多重启几次 一直执行 service mysql start 就可以重启成功了
**************************************************************************
MySQL提示:The server quit without updating PID file问题的解决办法
ERROR! The server quit without updating PID file (/usr/local/mysql/var/MyServer.pid).
解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。
---------linux系统重装mysql数据库:----------------
首先备份数据库:
1.停掉mysql服务器:
service mysqld stop #lnmp1.4使用:lnmp mysql stop
2.下面新目录以/mnt/data 为例,然后复制旧目录的数据库到新目录:
cp -R /usr/local/mysql/var/* /mnt/data
3.将新目录赋权为mysql用户组:
chown mysql:mysql -R /mnt/data
4.再修改配置文件:
vi /etc/my.cnf
查找[mysqld] ,在下面加入datadir = /mnt/data 保存
5.启动mysql:
service mysqld start #lnmp1.4使用:lnmp mysql start
其次,卸载数据库:
service mysqld stop
yum remove mysql
killall mysqld
rm -rf /usr/local/mysql
rm /etc/init.d/mysql
最后安装数据库:
yum install mysql mysql-server mysql-libs
再输入service mysqld restart
成功解决问题。
(注:lnmp自带数据库重新安装:cd lnmp1.3-full && ./install.sh lnmp)
************************************************************************************
-----------Linux 系统挂载数据盘----https://bbs.aliyun.com/read/118289.html?pos=1--------------------------
适用系统:非IO优化+SSD云盘Linux(Redhat , CentOS,Debian,Ubuntu)实例,IO优化实例+SSD云盘数据盘分区挂载建议使用脚本:工具:auto_fdisk_ssd.sh
* Linux的云服务器数据盘未做分区和格式化,可以根据以下步骤进行分区以及格式化操作。
下面的操作将会把数据盘划分为一个分区来使用。
1、查看数据盘 fdisk -l (若您执行fdisk -l命令,发现没有 /dev/vdb 表明您的云服务无数据盘,那么您无需进行挂载)
2、对数据盘进行分区
执行“fdisk /dev/vdb”命令,对数据盘进行分区;
根据提示,依次输入“n”,“p”“1”,两次回车,“wq”,分区就开始了,很快就会完成。
3、 查看新的分区
使用“fdisk -l”命令可以看到,新的分区vdb1已经建立完成了。
4、格式化新分区
以ext3为例:使用“mkfs.ext3 /dev/vdb1”命令对新分区进行格式化,格式化的时间根据硬盘大小有所不同。
5、添加分区信息
使用echo '/dev/vdb1 /mnt ext3 defaults 0 0' >> /etc/fstab #命令写入新分区信息。
然后使用“cat /etc/fstab”命令查看,出现以下信息就表示写入成功。
6、挂载新分区
使用“mount -a”命令挂载新分区,然后用“df -h”命令查看,出现以下信息就说明挂载成功,可以开始使用新的分区了。
-----------------------------------------------------------------------------------------------------------------
提供服务器负载情况截图:top
提供服务器的并发情况:执行命令:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
截图
-------------------------------------------------------------------------------------------
拒绝了我们的连接请求,nginx: [error] invalid PID number "" in "/usr/local/webserver/nginx/logs/nginx.pid"
nginx -c /usr/local/nginx/conf/nginx.conf
nginx -s reload
----------------------------------------------------------------------------------
安全狗使用介绍:
直接运行命令:sdui
即可进入软件操作界面,进入软件后,请详细阅读每个界面最底部的操作提示,按操作提示进行操作。
使用:sdstart
可以重启安全狗服务。
1、wget http://down.safedog.cn/safedog_linux64.tar.gz
2、tar xzvf safedog_linux64.tar.gz
3、ls
4、cd safedog_an_linux64_2.8.19002
5、chmod +x *.py
6、./install.py
----------------------------------------------------------
服务器禁ping
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
恢复ping可以执行命令
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
--------------------------------------------------------
服务器禁止对外发包
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -j DROP
-----------------------------
linux上用iptables禁止指定IP访问服务器
iptables -I INPUT -s 61.146.178.35 -j DROP ##禁止单个IP
iptables -I INPUT -s 223.85.37.0/24 -j DROP ##禁止IP段访问
iptables -I INPUT -s 222.186.45.73 -p tcp --dport 80 -j ACCEPT #允许单个IP
----------------------------------------------------------------------------
访问网站,提示No input file specified错误,删除网站根目录下.user.ini文件,
重新绑定域名即可!
-----------------------------------------------------------------------------
linux下载创建ftp服务器(rpm -qa | grep ftp #查看是否安装vsftp)服务器要开启21端口
1.yum -y install vsftpd
2.然后启动ftp:service vsftpd restart ###或者 /etc/rc.d/init.d/vsftpd restart
3.a、useradd -d /mnt/seoftp seouser
b、usermod -s /sbin/nologin seouser //限定用户test不能telnet,只能ftp
###usermod -s /sbin/bash test //用户test恢复正常
###usermod -d /test test //更改用户test的主目录为/test
4.设置密码 passwd seouser
5.chown seouser:seouser /mnt/seoftp(给予权限或者chmod -R 777 /mnt/wwwroot)
6. vi /etc/vsftpd/vsftpd.conf #配置vsftp.conf文件(查看默认配置:cat /etc/vsftpd/vsftpd.conf |grep -v '^#';)
anonymous_enable=NO #开启禁止匿名用户登录
chroot_local_user=NO #删除前面的那个#号,开启是否被限制其主目录下
chroot_list_enable=YES #删除前面的那个#号,表示开启此限制功能
chroot_list_file=/etc/vsftpd/chroot_list #删除前面的那个#号,表示开启此限制功能
allow_writeable_chroot=YES
#在末尾加入如下2行
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
7.修改 vim /etc/vsftpd/user_list 和 vim /etc/vsftpd/chroot_list
分别添加ftp用户:seouser
8:/bin/systemctl restart vsftpd.service #重启ftp
使用如下命令查看是否设置成功:
cat /etc/vsftpd/vsftpd.conf | grep ^[^#]
ok。。。
参考:http://www.cnblogs.com/shenxiaolin/p/5723962.html
--------------------------------------------------------
#vim /etc/vsftpd/user_conf/xdpf
12.每个FTP虚拟用户都可以独立设置其权限
anon_world_readable_only=NO
anon_upload_enable=YES
download_enable=NO
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/mnt/xinjiang
-----------------攻击篇---------------------------------------
1、netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n #执行后,将会显示服务器上所有的每个IP多少个连接数。
2、wget http://www.inetbase.com/scripts/ddos/install.sh #下载DDoS deflate
chmod 0700 install.sh #添加权限
./install.sh #执行
3、下面是DDoS deflate的默认配置位于/usr/local/ddos/ddos.conf
BAN_PERIOD=360000 //禁用IP时间,默认600秒,可根据情况调整
4、查看/usr/local/ddos/ddos.sh文件的第117行
netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -nr > $BAD_IP_LIST
修改为以下代码即可!
netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sed -n ‘/[0-9]/p’ | sort | uniq -c | sort -nr > $BAD_IP_LIST
-----------------------------------------------------------------------------------------------------------------------------------------
安装suhosin扩展
[root@lxk ~]# wget https://github.com/sektioneins/suhosin/archive/master.zip
[root@lxk ~]# unzip master.zip
[root@lxk ~]# cd suhosin-master/
[root@lxk ~]# /usr/local/php/bin/phpize #用phpize生成configure配置文件
Configuring for:
PHP Api Version: 20131106
Zend Module Api No: 20131226
Zend Extension Api No: 220131226
[root@lxk suhosin-master]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@lxk suhosin-master]# make && make install
安装完成之后,出现下面的界面,记住以下路径,后面会用到。
Installing shared extensions: /usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/ #suhosin模块路径
vi /usr/local/php/etc/php.ini #编辑配置文件,在最后一行添加以下内容
extension=/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/suhosin.so
suhosin.executor.disable_eval = on #注意:suhosin.executor.disable_eval = on 的作用就是禁用eval函数
[root@lxk suhosin-master]# service php-fpm restart #重启php-fpm
[root@lxk suhosin-master]# service nginx restart #重启nginx