linux防火墙 – apf 安装 ,配置,使用

apf是一款比较好用的linxu防火墙,用它来设置iptables等是一个比较好的工具,线上一般免费版,很多使用这个,下面说一下他的安装与配置

wget http://www.rfxn.com/downloads/apf-current.tar.gz  
tar -xvzf apf-current.tar.gz  
cd apf-9.7-2/  
./install.sh  
  
[root@iZ942k2d5ezZ apf-9.7-2]# ./install.sh  
Installing APF 9.7-2: Completed.  
  
Installation Details:  
  Install path:         /etc/apf/  
  Config path:          /etc/apf/conf.apf  
  Executable path:      /usr/local/sbin/apf  
  
Other Details:  
  Listening TCP ports: 22,80,100,3306,6379,27017  
  Listening UDP ports: 123,636  
  Note: These ports are not auto-configured; they are simply presented for information purposes. You must manually configure all port options.

到上面就安装成功了

启动

/etc/init.d/apf start  
chkconfig apf on

二,配置apf

vim /etc/apf/conf.apf   一般按照下面的配置好,然后apf -f(或者apf -r) 刷新一下就行了

IG_TCP_CPORTS="21,22,80,443,3306,8080"   //设置服务器允许被访问的TCP端口    
IG_UDP_CPORTS="53"                       //设置服务器允许被访问的UDP端口    
EG_TCP_CPORTS="21,25,80,443,43,2089"     //设置服务器允许对外访问的TCP端口    
EG_UDP_CPORTS="20,21,53"                 //设置服务器允许对外访问的UDP端口    
   
DEVEL_MODE="1" 改为 DEVEL_MODE="0"    
DLIST_SPAMHAUS="0" 改为 DLIST_SPAMHAUS="1"    
DLIST_DSHIELD="0" 改为 DLIST_DSHIELD="1"

配置过程中要注意以下几点:
1,根据不同的服务器开放不同的端口,web服务器根mysql服务器开放的端口肯定不一样。
2,DEVEL_MODE=”1″表示在调试模式下,每五分钟重调配置,这样能避免因为错误的配置而使服务器崩溃。
3,设置只通许192.168.1.139远程连接22端口

// 在/etc/apf/allow_hosts.rules添加如下信息:    
tcp:in:d=22:s=192.168.1.139    
out:d=22:d=192.168.1.139    
    
// 在/etc/apf/deny_hosts.rules添加如下信息:    
tcp:in:d=22:s=0/0    
out:d=22:d=0/0

开始的时候,我以为只要在allow_hosts.rules里面加就行了,改过一后,我换了一个IP,已然可以连接,搞得我很无语。后在deny_hosts.rules加上了上面的规则后,在连接时就提示超时了。allow_hosts.rules和deny_hosts.rules里面都加了规则后,重起apf会提示配置成功的信息,偶然发现的。

apf(12234): {trust} allow outbound 192.168.1.139 to port 22    
apf(12234): {trust} allow inbound tcp 192.168.1.139 to port 22

三:apf常用命令

apf -s  // 启动APF防火墙    
apf -r  // 重启APF防火墙    
apf -f  // 刷新APF防火墙配置文件    
apf -l  // 列出APF的过虑规则    
apf -t  // APF的日志信息。    
apf -e  // 将域名解释加入信认规则    
apf -a  // 将IP/IP段添加到白名单    
apf -d  // 将IP/IP段添加到黑名单    
apf -u  // 将IP/IP段从白/黑名单中删除    
apf -o  // 将IP/IP段从白/黑名单中删除

常用端口:

21/tcp       //ftp    
22/tcp       //ssh    
25/tcp       //smtp    
53/udp       //dns    
80/tcp       //http    
110/tcp      //pop3    
143/tcp      //imap    
443/tcp      //https    
993/tcp      //imaps    
995/tcp      //pop3    
3306/tcp     //mysql    
5432/tcp     //postgresql

 

其他:
IG_TCP_CPORTS=”21,22,80,443,3306,8080″   //设置服务器允许被访问的TCP端口

IG_UDP_CPORTS=”53″                       //设置服务器允许被访问的UDP端口

EG_TCP_CPORTS=”21,25,80,443,43,2089″     //设置服务器允许对外访问的TCP端口

EG_UDP_CPORTS=”20,21,53″                 //设置服务器允许对外访问的UDP端口

DEVEL_MODE=”1″ 改为 DEVEL_MODE=”0″

DLIST_SPAMHAUS=”0″ 改为 DLIST_SPAMHAUS=”1″

DLIST_DSHIELD=”0″ 改为 DLIST_DSHIELD=”1″

配置过程中要注意以下几点:

1,根据不同的服务器开放不同的端口。

2,DEVEL_MODE=”1″表示在调试模式下,每五分钟重调配置,这样能避免因为错误的配置而使服务器崩溃。

3,设置只通许192.168.1.139远程连接22端口

// 在/etc/apf/allow_hosts.rules添加如下信息:

tcp:in:d=22:s=192.168.1.139

out:d=22:d=192.168.1.139

// 在/etc/apf/deny_hosts.rules添加如下信息:

tcp:in:d=22:s=0/0

out:d=22:d=0/0

开始的时候,我以为只要在allow_hosts.rules里面加就行了,改过一后,我换了一个IP,已然可以连接,搞得我很无语。后在 deny_hosts.rules加上了上面的规则后,在连接时就提示超时了。allow_hosts.rules和deny_hosts.rules里 面都加了规则后,重起apf会提示配置成功的信息,偶然发现的。

apf(12234): {trust} allow outbound 192.168.1.139 to port 22

apf(12234): {trust} allow inbound tcp 192.168.1.139 to port 22

三,apf的常用命令

apf -s  // 启动APF防火墙

apf -r  // 重启APF防火墙

apf -f  // 刷新APF防火墙配置文件

apf -l  // 列出APF的过虑规则

apf -t  // APF的日志信息。

apf -e  // 将域名解释加入信认规则

apf -a  // 将IP/IP段添加到白名单

apf -d  // 将IP/IP段添加到黑名单

apf -u  // 将IP/IP段从白/黑名单中删除

apf -o  // 将IP/IP段从白/黑名单中删除

四,常用端口列表

21/tcp       //ftp

22/tcp       //ssh

25/tcp       //smtp

53/udp       //dns

80/tcp       //http

110/tcp      //pop3

143/tcp      //imap

443/tcp      //https

993/tcp      //imaps

995/tcp      //pop3

3306/tcp     //mysql

5432/tcp     //postgresql

linux设置环境变量 临时设置 和 永久设置

1.临时设置,使用export方法
譬如吧php加入到PATH中:

export PATH=$PATH:/usr/local/php/bin

2.永久方法:

vi /etc/profile

在最后的部分加入

PATH=/usr/local/mysql/bin:$PATH  
PATH=/usr/local/php/bin:$PATH  
export PATH

保存文件,退出
然后在linux命令行中执行:

source /etc/profile

即可

linux和window文件共享 安装samba

对于个人来说,我一般开发环境用linux,好处就是,本地测试没有问题,线上也不会出什么问题。

使用samba,可以把局域网的linux和window共享,通过映射网络盘的方式可以挂在到windows文件系统下面,使用起来和本地磁盘没有区别,下面介绍,如何安装samba。

  1. 安装samba
    yum install samba samba-client samba-swat

    2.启动

  2. /etc/init.d/smb start

    3.查看samba的服务启动情况

    service smb status

    4.开机启动

    chkconfig --level 35 smb on

    5.添加账户

    smbpasswd -a root

    输入密码

    6.关闭防火墙:

    service iptables stop

    7
    编辑配置文件:/etc/samba/smb.conf

    [public]  
    comment = Public Stuff  
    path = /www  
    public = yes  
    writable = yes  
    printable = no

    8.重启samba

    service smb restart

    9
    权限问题:需要设置selinux

    setenforce 0

     

 

10 上面是之前配置samba的步骤,下面为补充
首先需要开放端口,iptables,如果是本地,那么直接关掉iptables,免得麻烦
譬如我想配置public下的需要用户名和密码访问,那么
vim /etc/samba/smb.conf

 

  1. [public]    
        comment = Public Stuff    
        path = /www/web/develop/erp    
        public = yes    
        writable = yes    
        printable = no  
        valid users = myerp    
    ;  password: myerp123  
    [ts]  
        comment = TS  
        path = /www/web/develop/e_commerce_huang_di  
        valid users = @ts

    public部分,添加的是myerp的用户名

    需要执行,一定不要忘记参数 -a

    useradd myerp  
      
    smbpasswd -a myerp

     

    [root@grande erp]# smbpasswd -a myerp  
    New SMB password:  
    Retype new SMB password:  
    [root@grande erp]# service smb restart

     

    #然后重启smb
    service smb restart

    这样,在linux就配置好了,只有liming用户才能访问

    在windows下面打开我的电脑,然后点击 映射网络驱动器

    在弹出的框内填写内部ip地址,后面一定要加上public部分。不然后无法访问

    登陆时重新连接,使用其他凭证连接勾选,然后点击完成

    点击后出现框,输入密码即可。

    保存后,在我的电脑就会出现一个磁盘,直接点击访问即可。

    1. service smb restart

       

      备注,如果一个文件夹下面有很多系统,而且,想要某个用户只能看到2-3个系统

      那么,可以在samba中配置几个块,譬如:

      vim /etc/samba/smb.conf

       

      [erp]  
        
      path = /www/web/develop/erp  
        
      valid users = sambauser myerpdevelop  
        
      [intosmile]  
        
      path = /www/web/develop/intosmile  
      valid users = sambauser myerpdevelop  
        
        
      [wordpress]  
        
      path = /www/web/develop/wordpress  
      valid users = sambauser myerpdevelop

       

      这样样sambauser 和myerpdevelop 两个用户都可以访问 /www/web/develop目录下面的三个文件夹   erp  intosmile  wordpress

      其他则看不到

      在网络映射文件中依次添加

       

      \\10.10.10.252\wordpress  
        
      \\10.10.10.252\erp  
        
      \\10.10.10.252\intosmile

      在映射文件磁盘中一个ip只能使用一个用户名,如果使用另外一个用户名,需要把这个用户对应的网络映射磁盘断掉。

       

YII2开发环境文件上传 – 安装vsftpd

vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。

在用YII2框架开发系统的时候,有时候有一些图片等非版本控制的东西,我们需要上传文件,那么我们可以用vsftpd。

yum install vsftpd

设置开机启动vsftpd

chkconfig vsftpd on

启动vsftpd:

service vsftpd start

开发端口:

/sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT 
/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT

 

/etc/rc.d/init.d/iptables save
service iptables restart

配置ftp账户:

vi /etc/vsftpd/vsftpd.conf

 

如果我想给/www/web目录添加ftp,那么:

下面是添加ftpuser用户,设置根目录为/home/wwwroot/ftpuser,禁止此用户登录SSH的权限,并限制其访问其它目录。

1、修改/etc/vsftpd/vsftpd.conf

将底下三行

#chroot_list_enable=YES

# (default follows)

#chroot_list_file=/etc/vsftpd.chroot_list

改为

chroot_list_enable=YES  
# (default follows)  
chroot_list_file=/etc/vsftpd/chroot_list

禁止允许匿名用户登陆,YES是,NO否

anonymous_enable=NO

3、增加用户ftpuser,指向目录/home/wwwroot/ftpuser,禁止登录SSH权限

useradd -d /www/web -g ftp -s /sbin/nologin ftpusername  
  
passwd ftpusername

然后设置密码,完成后就设置成功一个账户

4、编辑文件chroot_list:

vi /etc/vsftpd/chroot_list

ftpusername

将刚才新建的账户添加上,多个账户用回车隔开,也就是说,上面新建一个不能登录的系统账户,指向了/www/web目录

然后我们在这个文件里面把这个账户添加上就OK了

5、重新启动vsftpd

service vsftpd restart

 

YII2开发环境版本控制 – 安装SVN

在开发的过程中,我们需要使用 svn进行版本控制。

1.

yum install subversion

 

svnserve --version

查看具体的版本信息,如果有结果,则代表SVN安装成功。

2. 创建路径:

/home/svn/repo
#创建仓库
svnadmin create /home/svn/repo

3.进行配置:

vim /home/svn/repo/conf/svnserve.conf

 

[general]  
anon-access = none  //匿名访问的权限,设置为none表示为不允许,默认是read  
auth-access = write //可以是read,write,none,默认是write  
password-db = passwd //密码数据库的路径,去掉前面的#  
authz-db = authz

4.配置svn的密码文件:

vim  /home/svn/repo/conf/passwd 
[user]  
username = passwd

上面的例子为填写用户名和密码,如果是water 密码为888888

[user]  
water = 888888  

配置文件 /home/svn/repo/conf/authz

[groups]  
[/]  
terry = rw  
#代表terry 这个账户对应的路径为根目录,对根目录下的所有文件和文件夹有读写的权限  
[/magento]  
terry = r  
#代表terry这个账户对应的路径是magento文件夹,在这个目录下的文件只有读的权限  
[/magento/app/etc/local.xml]  
terry =   
#代表terry对上面这个文件不可见。即:不可读,不可写

设置可读

vim  /home/svn/repo/conf/svnserve.conf  
anon-access = none

设置完成后,关闭svn,重启

  
关闭svn:   killall svnserve  
启动svn:  svnserve -d -r /home/svn/repo --listen-host  ip地址

开放端口:

/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
/etc/rc.d/init.d/iptables save

 

 

经过了4步骤,我们创建了账户,设置了账户的权限,当我们用svn工具访问svn://ip地址,就可以访问了。

在本地可以通过上传文件到svn服务器

我们想要的是svn中提交的文件,复制到服务器的web路径中,所以我们需要把svn中的数据提交到web路径

这里我们使用的命令式svn up,强制提交:svn up –force

首先我们需要先设置,把svn中的路径,对应的web目录

譬如:svn://192.168.1.12/magento 对应到/www/web/come/public_html,我们的配置为

svn co svn://192.168.1.12/magento  /www/web/come/public_html

 

然后需要输入root密码,
然后需要输入提交账户,这个账户就是svn的在上面配置文件中添加的账户,
更改svn up 账户命令:svn co --username xxx svn://192.168.1.12/magento

 

6

如果svn up 报错:

Skipped ‘.’

需要到输出的路径下,譬如到/www/web/come/public_html下面svn up 就可以了

7

开机启动svn

vi /etc/rc.local  
在最后一行加入:  
svnserve -d -r /home/svn/repo

 

8

自动更新,不需要svn up

svn co svn://115.29.18.29/erp  /www/web/

在SVN 项目版本库的存储目录下的hooks 目录,新建立一个post-commit文件:

 

vi /home/svn/repo/hooks/post-commit

 

touch /home/svn/repo/hooks/svn_hook.log  
chmod 777 -R /home/svn/repo/hooks/svn_hook.log  


#!/bin/sh  
REPOS="$1"  
REV="$2"  
WEB=/www/web  
export LANG=en_US.UTF-8  
echo `whoami`,$REPOS,$REV >> /home/svn/repo/hooks/svn_hook.log  
svn update $WEB

保存,退出。
权限:chmod 777 post-commit

测试,看脚本是否有权限问题:

复制代码 代码示例:

./post-commit

以后每次客户端提交操作,就会自动运行该脚本。

 

 

 

Linux php 扩展安装 mongo ,redis ,soap,imap,pdo_mysql,oauth

  1. 安装mongodb 参看文章:

Yii2 – Mongodb的安装和配置 mongo

2.安装redis

yum install git
git clone git://github.com/owlient/phpredis  
cd phpredis 
/usr/local/php/bin/phpize  
./configure --with-php-config=/usr/local/php/bin/php-config  
make && make install

如果上述出现报错,可以尝试用另外一个源:

git clone git://github.com/nicolasff/phpredis

php.ini中添加:

extension=redis.so

3.安装php  soap扩展

cd php-5.4.34/ext/soap
/usr/local/php/bin/phpize 
./configure -with-php-config=/usr/local/php/bin/php-config -enable-soap
make  
make install

php.ini加入:

extension=soap.so

4.安装imap

yum -y install krb5-devel libc-client libc-client-devel   
ln -sv /usr/lib64/libc-client.so /usr/lib/libc-client.so  
cd php-5.4.34/ext/imap  
/usr/local/php/bin/phpize  
./configure --with-php-config=/usr/local/php/bin/php-config --with-imap=/usr/lib64 --with-imap-ssl --with-kerberos  
make && make install  
vim /etc/php.ini  
extension=imap.so

5.安装 linux  php pdo_mysql 扩展

ln -s /usr/local/mysql/include/* /usr/local/include/  
wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz  
tar zxvf PDO_MYSQL-1.0.2.tgz  
cd PDO_MYSQL-1.0.2  
/usr/local/php/bin/phpize  
./configure -with-php-config=/usr/local/php/bin/php-config -with-pdo-mysql=/usr/local/mysql -with-mysql=/usr/local/mysql/  
  
make  
make install
extension=pdo_mysql.so

6.安装oauth扩展

wget http://pecl.php.net/get/oauth-1.1.0.tgz  
tar -zxf oauth-1.1.0.tgz && cd oauth-1.1.0  
/usr/local/php/bin/phpize  
./configure --with-php-config=/usr/local/php/bin/php-config  
make&&make install  
vim /etc/php.ini  
添加  
extension=oauth.so

OK,完毕完成。

Linux – 安装nginx – 搭配YII2环境

我们在开发和测试环境,需要为yii2搭配环境,这里说的是安装nginx

1.安装脚本:

wget nginx.org/download/nginx-1.11.13.tar.gz  
tar zxvf nginx-1.11.13.tar.gz  
cd nginx-1.11.13  
./configure --with-http_ssl_module  --with-http_v2_module
make && make install

 

【 题外话:

–with-http_v2_module 配置代表开启http2模块,您可以通过下面的方式设置http2

listen 443 ssl http2;

可以通过下面的链接找到工具测试是否开启http2:https://www.kejianet.cn/open-http2/

题外话:】

2.启动脚本:

touch /etc/init.d/nginx
vim /etc/init.d/nginx

加入代码,wq保存

#!/bin/bash  
# nginx Startup script for the Nginx HTTP Server  
# it is v.0.0.2 version.  
# chkconfig: - 85 15  
# description: Nginx is a high-performance web and proxy server.  
#              It has a lot of features, but it's not for everyone.  
# processname: nginx  
# pidfile: /var/run/nginx.pid  
# config: /usr/local/nginx/conf/nginx.conf  
nginxd=/usr/local/nginx/sbin/nginx  
nginx_config=/usr/local/nginx/conf/nginx.conf  
nginx_pid=/var/run/nginx.pid  
RETVAL=0  
prog="nginx"  
# Source function library.  
. /etc/rc.d/init.d/functions  
# Source networking configuration.  
. /etc/sysconfig/network  
# Check that networking is up.  
[ ${NETWORKING} = "no" ] && exit 0  
[ -x $nginxd ] || exit 0  
# Start nginx daemons functions.  
start() {  
if [ -e $nginx_pid ];then  
   echo "nginx already running...."  
   exit 1  
fi  
   echo -n $"Starting $prog: "  
   daemon $nginxd -c ${nginx_config}  
   RETVAL=$?  
   echo  
   [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx  
   return $RETVAL  
}  
# Stop nginx daemons functions.  
stop() {  
        echo -n $"Stopping $prog: "  
        killproc $nginxd  
        RETVAL=$?  
        echo  
        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid  
}  
# reload nginx service functions.  
reload() {  
    echo -n $"Reloading $prog: "  
    #kill -HUP `cat ${nginx_pid}`  
    killproc $nginxd -HUP  
    RETVAL=$?  
    echo  
}  
# See how we were called.  
case "$1" in  
start)  
        start  
        ;;  
stop)  
        stop  
        ;;  
reload)  
        reload  
        ;;  
restart)  
        stop  
        start  
        ;;  
status)  
        status $prog  
        RETVAL=$?  
        ;;  
*)  
        echo $"Usage: $prog {start|stop|restart|reload|status|help}"  
        exit 1  
esac  
exit $RETVAL  

3.添加自启动

vim /etc/rc.d/rc.local
添加:
/etc/init.d/nginx start

添加nginx用户:

groupadd nginx  
useradd -g nginx nginx

 

然后设置权限:

chmod 755 /etc/init.d/nginx

4.启动nginx

/etc/init.d/nginx start

到这里就启动完成ngxin,我们需要配置nginx

5.配置nginx

添加文件地址/www/web

mkdir -p /www/web

添加log文件:

mkdir /var/log/nginx  
touch /var/log/nginx/error.log  
chmod 777 -R /var/log/nginx/error.log

添加nginx 文件access.log和error.log

mkdir /www/web_logs  
touch /www/web_logs/access.log  
chmod 777 /www/web_logs/access.log  
touch /www/web_logs/error.log  
chmod 777 /www/web_logs/error.log

nginx的配置如下:

/usr/local/nginx/conf/nginx.conf,代码如下:

user  nginx nginx;
worker_processes  4;

error_log  /var/log/nginx/error.log warn;
pid        /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 65535;

events {
    use epoll;
    worker_connections  65535;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    client_max_body_size 8m;
#    limit_conn_zone $binary_remote_addr zone=one:32k;

    sendfile        on;
    tcp_nopush     on;
  

    keepalive_timeout  120;
    tcp_nodelay on;
   
    fastcgi_buffers 8 128k;
    fastcgi_connect_timeout 9900s;
    fastcgi_send_timeout 9900s;
    fastcgi_read_timeout 9900s;

    gzip  on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.1;
    gzip_comp_level 2;
    gzip_types       text/plain application/x-javascript text/css application/xml;
    gzip_vary on;

    log_format  wwwlogs  '$remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for';
    
    include conf.d/*.conf;
}

/usr/local/nginx/conf/none.conf,代码如下:

location / {
        index index.html index.php; ## Allow a static html file to be shown first
        try_files $uri $uri/ @handler; ## If missing pass the URI to Magento's front handler
        expires 30d; ## Assume all files are cachable
#		rewrite ^/$ /index.php last;
#        rewrite ^/(?!index\.php|robots\.txt|static)(.*)$ /index.php/$1 last;
    }

    ## These locations would be hidden by .htaccess normally
    location /app/                { deny all; }
    location /includes/           { deny all; }
    location /lib/                { deny all; }
    location /media/downloadable/ { deny all; }
    location /pkginfo/            { deny all; }
    location /report/config.xml   { deny all; }
    location /var/                { deny all; }
    location /var/email/ {allow all;}
    location /var/export/ { ## Allow admins only to view export folder
        auth_basic           "Restricted"; ## Message shown in login window
        auth_basic_user_file htpasswd; ## See /etc/nginx/htpassword
        autoindex            on;
    }
      location  /. { ## Disable .htaccess and other hidden files
        return 404;
    }

    location @handler { ## Magento uses a common front handler
        rewrite / /index.php;
    }

    location ~ .php/ { ## Forward paths like /js/index.php/x.js to relevant handler
        rewrite ^(.*.php)/ $1 last;
    }

 

/usr/local/nginx/conf/conf.d/default.conf  这个文件是网站内容的配置。譬如如下:

server {
    listen       1000;
    listen 443 ssl;
    
    server_name 192.168.220.100;
    root  /www/web/datacenter/datacenter_1000/appadmin/web;
    server_tokens off;
        include none.conf;
        index index.php;
        access_log /www/web_logs/access.log wwwlogs;
        error_log  /www/web_logs/error.log  notice;
        location ~ \.php$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                include fcgi.conf;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
                expires      30d;
        }

        location ~ .*\.(js|css)?$ {
                expires      12h;
        }
        
    location ~ /.svn/ {
                deny all;
        }

}

上面的意思为:

listen 代表监听的端口,线上都是填写80,80是默认端口,我们访问的网站,默认都是80端口

server_name  填写对应的IP,或者域名

root 代表上面访问IP或者域名,网站的根目录

填写完成上面的后,保存,退出。重启nginx

/etc/init.d/nginx restart

6.新建文件:

mkdir -p  /www/web/datacenter/datacenter_1000/appadmin/web
touch  /www/web/datacenter/datacenter_1000/appadmin/web/index.php
vim /www/web/datacenter/datacenter_1000/appadmin/web/index.php

添加代码

<?php
echo phpinfo();
?>

访问配置的nginx的域名或者IP就可以看到页面了。

7. nginx  php 隐藏版本号

vi /usr/local/nginx/conf/nginx.conf
#在http{}中加入
server_tokens off;

 

第二歩:

 

vi /usr/local/nginx/conf/fastcgi_params
#将里面的
#fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
#修改为:
fastcgi_param SERVER_SOFTWARE nginx;

 

 

隐藏PHP版本号

 

vi php.ini

#找到:

#expose_php = On;

#修改为:

expose_php = Off;

 

8nginx日志切割

设置日志格式及路径:

全局格式设置 :nginx.conf

 

log_format  wwwlogs  '$remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for';

access_log /www/web_logs/access.log wwwlogs;

error_log  /www/web_logs/error.log  notice;

新建文件 /cron/nginx_spilit.sh

#!/bin/bash  
log_files_path="/www/web_logs/"  
log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")  
log_files_name=(access access error error)  
nginx_sbin="$/usr.local/nginx/sbin/nginx "  
save_days=60  
mkdir -p $log_files_dir  
log_files_num=${#log_files_name[@]}  
for((i=0;i<$log_files_num;i++));do  
mv ${log_files_path}${log_files_name[i]}.log ${log_files_dir}/${log_files_name[i]}_$(date -d "yesterday" +"%Y%m%d").log  
done  
find $log_files_path -mtime +$save_days -exec rm -rf {} \;  
$nginx_sbin -s reload

 

crontab -e
00 00 * * * /bin/bash /cron/nginx_spilit.sh

 

 

 

 

 

Linux 安装php 5.4 – yii2 环境

对于线上环境,一般使用linux,这里讲述如何在linux下面安装php 5.4

  1. yum 安装基础
yum  install ntp vim-enhanced gcc gcc-c++ gcc-g77 flex bison autoconf automake glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel libtool* zlib-devel libxml2-devel libjpeg-devel libpng-devel libtiff-devel fontconfig-devel freetype-devel libXpm-devel gettext-devel curl curl-devel pam-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers gzip  make bzip2bzip2-devel pcre-devel wget ncurses-devel cmake make perl

 

yum -y install gcc automake autoconf libtool make   gcc-c++ glibc  libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel lib

2.安装libmcrypt

libmcrypt下载地址:http://download.csdn.net/detail/terry_water/6974153

当然,您可以自己去官网下载

安装:libmcrypt  
tar -zxvf libmcrypt-2.5.7.tar.gz  
cd libmcrypt-2.5.7  
./configure  
make  
make install

下载完成后,按照上面的步骤安装完libmcrypt,就可以安装php了

3.安装php

wget http://cn2.php.net/distributions/php-5.4.34.tar.gz  
tar zvxf php-5.4.34.tar.gz  
cd php-5.4.34  
./configure --prefix=/usr/local/php --disable-fileinfo   --enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-openssl --with-zlib --with-curl --enable-ftp --with-gd --with-xmlrpc  --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-native-ttf --enable-mbstring --with-mcrypt=/usr/local/libmcrypt --enable-zip --with-mysql=/usr/local/mysql --without-pear  --enable-bcmath 
make  
make install

如果上面的下载地址不能下载,自行 去官网下载

复制php.ini到配置路径,上面我们配置的是/etc路径

cp php.ini-development /etc/php.ini

4.设置用户 php-fpm

cd /usr/local/php  
cp etc/php-fpm.conf.default etc/php-fpm.conf  
vi etc/php-fpm.conf

搜索nobody ,修改成如下

user = www-data  
group = www-data

添加www-data用户:

groupadd www-data  
useradd -g www-data www-data

5.配置php-fpm

cp -f /tools/php-5.4.34/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

6.设置启动,开机启动

chmod 755 /etc/init.d/php-fpm   
/etc/init.d/php-fpm start   
/sbin/chkconfig --add php-fpm (添加到开机服务列表)   
/sbin/chkconfig php-fpm on

php-fpm的启动、停止和重启:

/etc/init.d/php-fpm start   
/etc/init.d/php-fpm stop  
/etc/init.d/php-fpm reload

7.到此php的安装就完成了,当然,后续需要安装一些php的扩展。

执行

which php

,查看你的环境中是否已经有php,有的话删除掉,直到找不到php。

然后把当前安装的php设置为php命令:

ln -s /usr/local/php/bin/php  /usr/bin/php

这样命令行里面的 php -m ,执行的就是 /usr/local/php/bin/php

linux 安装mysql5.6

Linux:Centos

1.先查看系统上有没有安装了旧版本的MySQL ,用下面的命令:

rpm -qa | grep mysql

如果有,用以下命令卸载

rpm -e --nodeps 上步显示mysql名称

安装编译mysql 需要的依赖包

yum install  libevent*  libtool* autoconf* libstd* ncurse* bison* openssl*  
yum -y install gcc gcc-c++

2.安装cmake,mysql5.5之后需要用cmake支持编译安装,下载安装cmake

wget http://www.cmake.org/files/v2.8/cmake-2.8.12.1.tar.gz  
tar -xf cmake-2.8.12.1.tar.gz  
cd cmake-2.8.12.1  
./configure && make && make install  

检查cmake安装好了没

cmake --version

3.下载mysql

wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.14.tar.gz  
tar xvf mysql-5.6.14.tar.gz  
cd mysql-5.6.14

上面如果下载失败,可以到这里下载:http://download.csdn.net/detail/terry_water/6973721

或者在百度网盘下载:https://pan.baidu.com/s/1kVwRD2Z

4.编译安装

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
make && make install

如果在上面的编译报错,Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH),则使用下面的编辑代码:

cmake -DCURSES_LIBRARY=/usr/lib/libncurses.so -DCURSES_INCLUDE_PATH=/usr/include  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

 

要很长时间的等待,我虚拟机中安装是双核2G内存,花了20分钟左右的。

另外还可能遇到下面的错误:

1.

yum install  libevent*  libtool* autoconf* libstd* ncurse* bison* openssl*

报错:
libevent2-devel conflicts with libevent-devel-1.4.13-4.el6.x86_64

则执行:

yum install  libevent2  libtool* autoconf* libstd* ncurse* bison* openssl*

2.
查看 ls /usr/lib/libncurses.so
如果找不到,则
find / -name ‘libncurses.so’
我找到的文件如下:
/usr/lib64/libncurses.so
增加快捷方式

ln -s /usr/lib64/libncurses.so  /usr/lib/libncurses.so

5.配置mysql

groupadd mysql  
useradd -g mysql mysql

 

chown -R mysql:mysql /usr/local/mysql

初始化配置

cd /usr/local/mysql  
scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

配置自启动和启动mysql

cp support-files/mysql.server /etc/init.d/mysql  
chkconfig mysql on  
service mysql start

配置PATH

vi /etc/profile  
#在文件末尾添加  
PATH=/usr/local/mysql/bin:$PATH  
export PATH  
#保存退出,生效配置  
source /etc/profile

登陆mysql 并设置root密码

mysql -uroot  
mysql> SET PASSWORD = PASSWORD('123456');  
设置mysql可以远程访问  
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

如果是远程,配置可以远程访问,配置防火墙,允许3306端口

/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT  
/etc/rc.d/init.d/iptables save

6.数据库定时备份:

mkdir /backup  
chmod 777 -R /backup
vim /backup/mysql_backup.sh

写入如下内容:-p引号里面是数据库的密码,erp是备份的数据库名字

#!/bin/bash  
date=$(date +%Y%m%d)  
/usr/local/mysql/bin/mysqldump -h localhost -uroot -p'Ddsd#$#2s$!s4343%$^&s' erp > /backup/databases-$date.sql

设置CRON,定时备份:

crontab -e   
00 06 * * * /bin/bash /backup/mysql_backup.sh