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. windows操作系统查看占用端口的进程

    在开发中有时我们需要确定哪个占用了8080端口,在windows命令行窗口下执行: netstat -aon|findstr 命令执行后打印出来的结果如下所示:

  2. .Net Discovery 系列之一--string从入门到精通(上)

    string是一种很特殊的数据类型,它既是基元类型又是引用类型,在编译以及运行时,.Net都对它做了一些优化工作,正式这些优化工作有时会迷惑编程人员,使string看起来难以琢磨,这篇文章分上下两章, ...

  3. CLR如何加载程序集以及程序集版本策略

    在项目的配置文件Web.config中,会看到<runtime>节点,以及包含在其中的<assemblyBinding>节点,这显然与程序集有关,这些节点到底何时被用到呢? 在 ...

  4. [erlang] mnesia

    原文地址: http://www.cnblogs.com/bluefrog/archive/2012/05/16/2504625.html 本来是项目合作的,可是你却一而再再而三的使用这招,我处理愤怒 ...

  5. C#编程(三十四)----------数组作为参数

    原文链接: http://blog.csdn.net/shanyongxu/article/details/46765267 数组作为参数 数组可以作为参数传递给方法,也可以从方法中返回.要返回一个数 ...

  6. 【GitLab】【GitHub】GitLab和GitHub的双向同步

    有这种需求,需要GitLab上的现有代码库,同步到GitHub上. 又有一种需求,需要将GitHub上的代码库,同步到gitlab上. 一.GitLab上的代码库,自动同步到GitHub上 大致需要三 ...

  7. Getting OS version with NDK in C c++获得版本号

    http://stackoverflow.com/questions/19355783/getting-os-version-with-ndk-in-c #include <cutils/pro ...

  8. eclipse新发现功能之dos和terminal(ssh连接)

    dos功能: window——>show view——>other——>remote systems,选择remote shell,选择确定或者双击,打开了一个新工具窗口. 点击re ...

  9. 阿里云上部署kafka--遇到的坑

    阿里云防火墙关闭,并且配置规则.不然会导致访问不到服务. 问题一: Caused by: java.net.UnknownHostException: iZuf68tztea6l5ccdz7wemZ: ...

  10. Android之用自定义的shape去实现shadow效果

    直接上xml文件, 并且附上相应的解析: <?xml version="1.0" encoding="utf-8"?> <selector x ...