文档章节

windows应用迁移到linux下

Mr_Tea伯奕
 Mr_Tea伯奕
发布于 2016/09/18 02:01
字数 1409
阅读 44
收藏 4

这里是给创业公司进行更换系统。由于平时用到的并不多,只有一台服务器。

在迁移之前把应用,数据库数据都下载下来,然后更换系统为centos7

1、首先是迁移数据库。

      安装mysql5.7数据库后,把数据导入进数据库。由于linux数据严格区分大小写,顾       

#vim /etc/my.cnf

     添加lower_case_table_names=1 到my.cnf中。

1.2、安装tomcat,将应用放到tomcat中。

 

2.Nginx安装

我使用的环境是64位 Ubuntu 14.04。nginx依赖以下模块:

l  gzip模块需要 zlib 库

l  rewrite模块需要 pcre 库

l  ssl 功能需要openssl库

2.1.安装pcre

1.         获取pcre编译安装包,在http://www.pcre.org/上可以获取当前最新的版本

2.         解压缩pcre-xx.tar.gz包。

3.         进入解压缩目录,执行./configure。

4.         make & make install

1.2.安装openssl

1.         获取openssl编译安装包,在http://www.openssl.org/source/上可以获取当前最新的版本。

2.         解压缩openssl-xx.tar.gz包。

3.         进入解压缩目录,执行./config。

4.         make & make install

2.3.安装zlib

1.         获取zlib编译安装包,在http://www.zlib.net/上可以获取当前最新的版本。

2.         解压缩openssl-xx.tar.gz包。

3.         进入解压缩目录,执行./configure。

4.         make & make install

2.4.安装nginx

1.         获取nginx,在http://nginx.org/en/download.html上可以获取当前最新的版本。

2.         解压缩nginx-xx.tar.gz包。

3.         进入解压缩目录,执行./configure

4.         make & make install

若安装时找不到上述依赖模块,使用--with-openssl=<openssl_dir>、--with-pcre=<pcre_dir>、--with-zlib=<zlib_dir>指定依赖的模块目录。如已安装过,此处的路径为安装目录;若未安装,则此路径为编译安装包路径,nginx将执行模块的默认编译安装。

启动nginx之后,浏览器中输入http://localhost可以验证是否安装启动成功。

clip_image002

5、nginx的编译安装后的目录在

      /usr/local/nginx/

 

3、nginx整合tomcat

 #vim /usr/local/nginx/conf/nginx.conf

添加图片缓存

   server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    client_max_body_size 50m;
    sendfile on;

    tcp_nopush on;
    tcp_nodelay on;
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 256k;
    client_body_buffer_size 512k;

    proxy_connect_timeout 5;
    proxy_read_timeout 60;
    proxy_send_timeout 5;
    proxy_buffer_size 16k;
    proxy_buffers 4 64k;
    proxy_busy_buffers_size 128k;
    proxy_temp_file_write_size 128k;
    proxy_temp_path /yundata/temp/images;
    proxy_cache_path /yundata/cache/images levels=1:2 keys_zone=content:20m inactive=1d max_size=100m;

    gzip on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types       text/plain application/x-javascript text/css application/xml;
    gzip_vary on;
    gzip_proxied        expired no-cache no-store private auth;
    gzip_disable        "MSIE [1-6]\.";

配置tomcat,其中应用的端口为8080

  
#代理tomcat应用
server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        access_log /var/log/nginx.log;


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

         location ~ .*\.(js|css)?$
          {
             expires       1d;
           }
         
        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass  http://www.5ayzb.com:8080;
	 }


  
#代理php应用
server {

测试配置是否有问题通过下面命令

#/usr/local/nginx/sbin/nginx -t

看是否有错误信息。

输入 netstat -tpnl 检查下是否有服务正常

[root@localhost ~]# netstat -tpnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:8005          0.0.0.0:*               LISTEN      1504/java

tcp        0      0 0.0.0.0:8009            0.0.0.0:*               LISTEN      1504/java
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      7913/nginx: master
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      1504/java
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      873/sshd
tcp6       0      0 :::3306                 :::*                    LISTEN      889/mysqld
[root@localhost ~]#

 

 

4、安装php5.6 

安装依赖

# yum install gcc gcc-c++ libxml2 libxml2-devel libjpeg-devel libpng-devel freetype-devel openssl-devel libcurl-devel libmcrypt-devel
#/configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --enable-pcntl --enable-mysqlnd --enable-opcache --enable-sockets --enable-sysvmsg --enable-sysvsem  --enable-sysvshm --enable-shmop --enable-zip --enable-ftp --enable-soap --enable-xml --enable-mbstring --disable-rpath --disable-debug --disable-fileinfo --with-mysql --with-mysqli --with-pdo-mysql --with-pcre-regex --with-iconv --with-zlib --with-mcrypt --with-gd --with-openssl --with-mhash --with-xmlrpc --with-curl --with-imap-ssl
#make
。。。。。省略

#make intstall
[root@localhost php-5.6.26]# make install
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
Installing PHP CLI binary:        /usr/local/php/bin/
Installing PHP CLI man page:      /usr/local/php/php/man/man1/
Installing PHP FPM binary:        /usr/local/php/sbin/
Installing PHP FPM config:        /usr/local/php/etc/
Installing PHP FPM man page:      /usr/local/php/php/man/man8/
Installing PHP FPM status page:   /usr/local/php/php/php/fpm/
Installing PHP CGI binary:        /usr/local/php/bin/
Installing PHP CGI man page:      /usr/local/php/php/man/man1/
Installing build environment:     /usr/local/php/lib/php/build/
Installing header files:           /usr/local/php/include/php/
Installing helper programs:       /usr/local/php/bin/
  program: phpize
  program: php-config
Installing man pages:             /usr/local/php/php/man/man1/
  page: phpize.1
  page: php-config.1
Installing PEAR environment:      /usr/local/php/lib/php/
[PEAR] Archive_Tar    - installed: 1.4.0
[PEAR] Console_Getopt - installed: 1.4.1
[PEAR] Structures_Graph- installed: 1.1.1
[PEAR] XML_Util       - installed: 1.3.0
[PEAR] PEAR           - installed: 1.10.1

配置php

# cp php.ini-production  /usr/local/php/etc/php.ini

# cp /usr/local/php/etc/php-fpm.conf.default php-fpm.conf

[root@localhost etc]# /usr/local/php/sbin/php-fpm -t
[17-Sep-2016 22:47:27] NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test is successful

添加到

#cp /server/php-5.6.26/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

/server/php-5.6.26 这个是我的php的tar.xz 解压的安装包

添加到开机自启

#chkconfig --add php-fpm

启动PHP

#/etc/init.d/php-fpm start

5 nginx+php整合

 5.1、修改php配置

 

#cd /usr/local/php/etc/
# vi php-fpm.conf 

启用如下几行,即去掉前面的分号(;)
    pid = run/php-fpm.pid
    error_log = log/php-fpm.log
    log_level = notice
    listen = 127.0.0.1:9000
    listen.allowed_clients = 127.0.0.1
    pm = dynamic
    pm.max_children = 50
    pm.start_servers = 5
    pm.min_spare_servers = 5
    pm.max_spare_servers = 35
    pm.max_requests = 500
    env[HOSTNAME] = $HOSTNAME
    env[PATH] = /usr/local/bin:/usr/bin:/bin
    env[TMP] = /tmp
    env[TMPDIR] = /tmp
    env[TEMP] = /tmp
 

5.2、修改nginx

[root@localhost etc]# cd /usr/local/nginx/
[root@localhost nginx]# vim conf/nginx.conf

  server
           {
                   listen       80;
                   server_name bbs.5ayzb.com  #二级域名(比如mial.baidu.com)
                   server_name  ip;
                   index index.php index.html index.htm default.html default.htm default.php;
                  root  /home/website/;#php应用的文件夹
                   location ~ \.php$ {
                          root  /home/website;#php应用的文件夹
                          fastcgi_pass 127.0.0.1:9000;
                          fastcgi_index index.php;
                          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                           include fastcgi_params;
                         }

                  location /status {
                          stub_status on;
                          access_log   off;
                  }

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

                  access_log off;
          }

5.3、测试是否有问题

#/usr/local/nginx/sbin/nginx -t

 

6 最后结果

在浏览器输入  

www.5ayzb.com 就出现java的应用

输入bbs.5ayzb.com 就是先php的应用。

 

 

 

 

到这里php+nginx+tomcat的整合好了。80端口可以访问两个应用了。

 

参考:nginx安装:http://www.cnblogs.com/skynet/p/4146083.html      

           nginx+php整合http://blog.chinaunix.net/uid-21374062-id-2951960.html

© 著作权归作者所有

共有 人打赏支持
Mr_Tea伯奕
粉丝 4
博文 212
码字总数 51679
作品 0
朝阳
其他
私信 提问
从 Windows 向 Linux 迁移设备控制应用程序

通过认识 Microsoft Windows 和 Linux 操作系统设备控制的工作原理,简化从 Microsoft Windows 向 Linux 迁移设备控制应用程序。作者分析二者的差别,并给出 C/C++ 示例。 如果读者开发过不同...

长平狐
2013/01/06
30
0
德国慕尼黑政府花巨资用 Linux 代替 Windows XP/2000

德国慕尼黑是Windows到Linux过渡的先锋,它已经投资数百万欧元,放弃依赖微软软件,进而拥抱开源软件,而且它现在准备抛弃最后的数十款Windows应用程序。 在这一点上,慕尼黑市政府部分电脑仍...

oschina
2016/01/21
10.6K
92
Windows VS Linux,你该选择哪种桌面运行方式?

尽管 Windows 和 Linux 目前存在核心差异。但是操作系统的选择很大程度上取决于非技术原因。然而,不同操作系统的关键技术差异,为用户提供了截然不同的体验。多年来,无数的文章都指出我们正...

周其
2018/03/14
6.3K
47
Docker Enterprise 正式对 Windows Server 2019 提供支持服务

出品丨Docker公司(ID:docker-cn) 编译丨小东 每周一、三、五,与您不见不散! 近日,Docker 宣布在 Docker Enterprise 容器平台上支持 Windows Server 2019 长期服务通道(LTSC)版本和 ...

docker公司
02/13
0
0
一铭软件与CodeWeavers携手推动Windows应用迁移至Linux系统

近日,国产操作系统厂商一铭软件(新三板:831266)与全球开源技术领先的CodeWeavers公司签署全面战略合作框架协议,双方将共同支持中国市场上Windows应用向Linux系统的迁移。此次合作主要针对...

胡同串子
2016/01/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

商品详情页上拉查看详情

商品详情页上拉查看详情 目录介绍 01.该库介绍 02.效果展示 03.如何使用 04.注意要点 05.优化问题 06.部分代码逻辑 07.参考案例 01.该库介绍 模仿淘宝、京东、考拉等商品详情页分页加载的UI效...

潇湘剑雨
17分钟前
0
0
Netty内存池之PoolArena详解

PoolArena是Netty内存池中的一个核心容器,它的主要作用是对创建的一系列的PoolChunk和PoolSubpage进行管理,根据申请的不同内存大小将最终的申请动作委托给这两个子容器进行管理。整体上,P...

爱宝贝丶
21分钟前
0
0
Django使用Channels实现WebSocket--下篇

希望通过对这两篇文章的学习,能够对Channels有更加深入的了解,使用起来得心应手游刃有余 通过上一篇《Django使用Channels实现WebSocket--上篇》的学习应该对Channels的各种概念有了清晰的认...

运维咖啡吧
29分钟前
1
0
linux下设置定时执行shell脚本的示例

很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如说定时去备份服务器数据、数据库数据等 不适合人工经常做的一些操作这里简单说下 shell Shell俗称壳,类似于DOS下的command...

阿锋zxf
32分钟前
2
0
介绍Kubernetes监控Heapster

什么是Heapster? Heapster是容器集群监控和性能分析工具,天然的支持Kubernetes和CoreOS,Kubernetes有个出名的监控agent—cAdvisor。在每个kubernetes Node上都会运行cAdvisor,它会收集本机...

xiangyunyan
33分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部