http://blog.matchgenius.com/tinycore-nginx-server-with-php-cgi-and-vsftpd/

Create fast testing server with TinyCore. I will be using Microcore (8MB) that resides in RAM and 500MB disk drive for persistence. TinyCore Nginx server with php-cgi and vsftpd can be used for for various testing purposes. My setup will be using another box for mysql. Assuming that you have TinyCore Microcore already installed on hard drive lets proceed to installing nginx. My Tiny Core is already installed and I can ssh to it from local machine.

#1: Install Nginx server

From terminal access application browser and search for nginx.

 
1
tce-ab

Select nginx.tcz and install. Press 2 then q and i to install. Along with Nginx other dependencies will be downloaded automatically: readline.tcz and pcre.tcz.

#2: Install php5

While you still inside application browser press s to search and type php5. Select php5.tcz and install. Installation will take a little longer because there are a lot more dependencies.

#3: Install vsftpd

Repeat the same installation process for vsftpd. s type vsftpd. Select vsftpd.tcz or if you want to use ssl version vsftpd-ssl.tcz and install.

#4: Copy configuration files

Copy default nginx.conf file to /usr/local/etc and edit it.

 
1
sudo cp/usr/local/nginx.conf.default/usr/local/etc/nginx.conf

Copy mime.types to /usr/local/etc

 
1
sudo cp/usr/local/mime.types/usr/local/etc/mime.types

Copy fastcgi_params to /usr/local/etc

 
1
sudo cp/usr/local/fastcgi_params/usr/local/etc/fastcgi_params

Create symbolic link to libodbc.so.1 (In my case php-cgi fails to load without it)

 
1
sudo ln-s/usr/local/lib/libodbc.so/usr/local/lib/libodbc.so.1

Create nginx php-cgi startup script in /usr/local/etc/init.d/nginx . I modified my OpenSSH startup script like that:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/sh
# nginx php-cgi start script
[$(id-u)=0]||{echo"must be root";exit1;}
start(){
   [-f/usr/local/etc/nginx.conf]||{echo"Config file /usr/local/etc/nginx.conf not found";exit1;}
   # Load nginx server
   echo-n"Starting nginx php-cgi"
   /usr/local/sbin/nginx-c/usr/local/etc/nginx.conf
   # Load php-cgi server
   /usr/local/bin/php-cgi-b127.0.0.1:9000&
}
stop(){
        echo"Stopping nginx"
   kill$(pidof nginx)
   ifpidof php-cgi>/dev/null;then
        echo-n"Stopping php-cgi"
        kill$(pidof php-cgi)
   fi
}
restart(){
   ifpidof nginx>/dev/null;then
      stop&&start
   else
      start
   fi
}
 
case$1in
   start)start;;
   stop)stop;;
   restart)restart;;
   *)echo"Usage $0 {start|stop|restart}";exit1
esac

#5: Edit nginx.conf

Edit /usr/local/etc/nginx.conf and make changes inside http{ server{ location / index index.php

 
1
2
3
4
5
6
7
8
9
10
11
12
server{                                                                  
        listen       80;                                                      
        server_name  localhost;                                              
                                                                              
        #charset koi8-r;                                                      
                                                                              
        #access_log  logs/host.access.log  main;                              
                                                                              
        location/{                                                          
            root   html;                                                      
            index  index.htmlindex.htmindex.php;                            
        }

On the bottom of the same file uncomment whats under pass the PHP scripts to FastCGI

 
1
2
3
4
5
6
7
8
9
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000  
        #                                                                    
        location~\.php${                                                  
            root           /usr/local/html;                                  
            fastcgi_pass   127.0.0.1:9000;                                    
            fastcgi_index  index.php;                                        
            fastcgi_param  SCRIPT_FILENAME  /usr/local/html$fastcgi_script_name;
            include        fastcgi_params;                                    
        }  

#6: Edit vsftpd.conf

Configure /usr/local/etc/vsftpd.conf file. You can tweak it as you like and add more things but I will keep it basic for now. Make sure this settings are present.

 
1
2
3
4
5
anonymous_enabled=NO
local_enable=YES
local_umask=002
connect_from_port_20=YES
local_root=/usr/local/html

#7: Create test index.php

Just so you can test your server lets create simple page to test if php is working.

 
1
sudo vi/usr/local/html/index.php
 
1
2
3
4
5
6
7
8
9
<?php
$myvar="Tiny Core simple server test";
?>
<html>
<head><title>TinyCoreserver</title></head>
<body>
<h2><center><?phpecho$myvar;?></center></h2>
</body>
</html>

#8: Tiny Core persistence save

All configuration will be lost if we reboot the server so lets make it persistent.
Edit /opt/.filetool.lst

 
1
sudo vi/opt/.filetool.lst
 
1
2
3
4
5
6
7
8
9
10
11
12
13
opt
home
/etc/hostname
/etc/passwd
/etc/shadow
/usr/local/etc/ssh
/usr/local/etc/nginx.conf
/usr/local/etc/mime.types
/usr/local/html/
/usr/local/etc/init.d/nginx
/usr/local/etc/fastcgi_params
/usr/local/lib/libodbc.so.1
/usr/local/etc/vsftpd.conf

Edit /opt/bootlocal.sh

 
1
sudo vi/opt/bootlocal.sh
 
1
2
3
4
5
#!/bin/sh
# put other system startup commands here
/usr/local/etc/init.d/openssh start
/usr/local/etc/init.d/nginx start
/usr/local/sbin/vsftpd

Add auto bakup before server shutdown in /opt/shutdown.sh

 
1
sudo vi/opt/shutdown.sh
 
1
2
3
4
5
#!/bin/sh
# put user shutdown commands here
/usr/bin/filetool.sh-b
 
...

Save your files to backup

 
1
sudo filetool.sh-b

Now you should be ready for reboot and test.

#9: TinyCore Nginx server test connect from outside

In my setup before I can connect to my TinyCore I have to add NAT in my firewall. Depending on your situation you may have to do it as well. Make sure nothing is blocking your connection. Because Im connecting through middle server that is OpenBSD im going to add NAT in my pf.conf file. Im going to open port 80 for Nginx and 20 and 21 for vsftpd.

 
1
2
3
4
5
$external_nic="re0"
$mylaptop="192.168.0.2"
$tinycore_server="10.10.0.2"
passinon$external_nicprototcpfrom$mylaptoptoanyport80rdr-to$tinycore_server
passinon$external_nicprototcpfrom$mylaptoptoanyport{20,21}rdr-to$tinycore_server

Web server test:

 
1
2
lynx http://192.168.0.10 -dump
                        Tiny Core simple server test

FTP server test:

 
 
 

Shell

 
1
2
3
4
5
6
7
8
9
ftp tc@192.168.0.10
Connected to192.168.0.10.
220(vsFTPd2.3.5)
331Please specify the password.
Password:
230Login successful.
Remote system typeisUNIX.
Using binary mode totransfer files.
ftp>

TinyCore Nginx server with php-cgi and vsftpd的更多相关文章

  1. 配置 nginx server 出现nginx: [emerg] "root" directive is duplicate in /etc/nginx/server/blogs.conf:7

    在配置nginx 虚拟机时,执行 sudo /usr/sbin/nginx -t 报下面的错误: nginx: [emerg] nginx: configuration file /etc/nginx ...

  2. 用Keepalived搭建双Nginx server集群,防止单点故障

    综述: 浏览器访问虚拟IP: 192.168.1.57, 该虚拟IP被Keepalived接管,两个Keepalived进程分别运行在物理IP为192.168.1.56和192.168.1.59服务器 ...

  3. nginx server

    配置nginx 首先apt install nginx 然后安装php apt-get install php7.0-fpm php7.0-mysql php7.0-common php7.0-mbs ...

  4. nginx server中的server_name配置的域名在客户机上无法访问

    nginx配置如下: nginx.conf: #user nobody; worker_processes 2; #error_log logs/error.log; #error_log logs/ ...

  5. How To Set Up Nginx Server Blocks (Virtual Hosts) on Ubuntu

    sudo apt-get update sudo apt-get install nginxsudo mkdir -p /var/www/example.com/html sudo chown -R ...

  6. NGINX server配置中if的用法

    server的配置以php为例,如下: 1 server{ 2 root /var/webproject/www/mytools-php; 3 index index.html index.php; ...

  7. Nginx server之Nginx添加ssl支持

    //环境介绍 1.nginx服务器:10.10.54.157 2.配置nginx服务器,当监听到来自客户端www.zijian.com:80请求时,转到10.10.54.150:1500这个web服务 ...

  8. nginx Server names

    通配符名称 正則表達式名称 混合名称 优化 兼容性 server名称定义使用的server_name指令和决定哪个server块用于一个给定的请求. 參见"怎样Nginx处理一个请求&quo ...

  9. Failed to Stop or Restart Nginx Server Through Serevice Command(nginx进程不能停止重启)

    Many people are accustomed to start a Nginx web server through init scripts and then they can contro ...

随机推荐

  1. Ubuntu 14 安装Java(JRE、JDK)、Maven

    JRE vs OpenJDK vs Oracle JDK JRE(Java Runtime Environment),它是你运行一个基于Java语言应用程序的所正常需要的环境.如果你不是一个程序员的话 ...

  2. 百度地图api---实现新建地图

    调用这个函数 function refresh() { history.go(0);   } 实现了地图新建

  3. WebLogic使用总结(三)——WebLogic配置JNDI数据源

    一.在WebLogic新建针对Oracle数据库的JNDI数据源 进入weblogic管理控制台,此处是远程访问:http://192.168.1.144:7001/console 点击左侧[ 域结构 ...

  4. 对一个前端AngularJS,后端OData,ASP.NET Web API案例的理解

    依然chsakell,他写了一篇前端AngularJS,后端OData,ASP.NET Web API的Demo,关于OData在ASP.NET Web API中的正删改查没有什么特别之处,但在前端调 ...

  5. 在ASP.NET MVC下有关上传图片脏数据的解决方案

    在"在ASP.NET MVC下实现单个图片上传, 客户端服务端双重限制图片大小和格式, 服务端裁剪图片"中,已经实现了在客户端和服务端限制图片大小和格式,以及在服务端裁剪图片.但还 ...

  6. 委托、Lambda表达式、事件系列04,委托链是怎样形成的, 多播委托, 调用委托链方法,委托链异常处理

    委托是多播委托,我们可以通过"+="把多个方法赋给委托变量,这样就形成了一个委托链.本篇的话题包括:委托链是怎样形成的,如何调用委托链方法,以及委托链异常处理. □ 调用返回类型为 ...

  7. Auto Layout on iOS Versions prior to 6.0

    使用XCODE5.0,出现这个小错误... 解决办法: 选中你的XIB或storyboard,如下图 再查看右边属性栏 去掉最下边的Use Autolayout ,完成. 转:http://blog. ...

  8. iOS 实现复选框 checkbox

    -(void)checkboxClick:(UIButton *)btn{    btn.selected = !btn.selected;} - (void)viewDidLoad {UIButto ...

  9. Linux学习4-阿里云服务器(CentOS)下使用 Tomcat安装 Jenkins

    前言 通常做自动化测试,需要用到jenkins来做持续集成,那么linux系统里面如何使用tomcat安装Jenkins环境呢? 前面一篇已经搭建好java和tomcat环境,接着直接下载jenkin ...

  10. windows 下运行 UglifyJS

    Node 0.52版本支持windows,因此UglifyJS可以在windows上运行,下面简介他的方法: 1.下载node.exe,现在最新版本0.52,他的官网http://nodejs.org ...