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. 《Go语言实战》Go 类型:基本类型、引用类型、结构类型、自定义类型

    Go 语言是一种静态类型的编程语言,所以在编译器进行编译的时候,就要知道每个值的类型,这样编译器就知道要为这个值分配多少内存,并且知道这段分配的内存表示什么. 提前知道值的类型的好处有很多,比如编译器 ...

  2. Word中如何从某一页重新开始页码

  3. [Winform]在关闭程序后,托盘不会消失的问题

    摘要 在开发winform程序时,添加了系统托盘,然发现在程序关闭后,托盘并不会消失,鼠标放在上面之后,才会消失.猜测是资源没有释放干净引起的.托盘作为form的组件,应该会随着form的关闭而释放啊 ...

  4. MongoDB 安装 Windows XP

    〇.  一个提供MonogoDB丰富资料的中文网站 http://www.cnblogs.com/hoojo/archive/2012/02/17/2355384.html 一. http://www ...

  5. redis缓存web session

    redis缓存web session 首先说下架构图.使用Redis作为会话服务器,统一管理Session.如图,集群里的WEB服务器共享存放在REDIS里面全部的客户端SESSION. 当然,反向代 ...

  6. ormlite 在android中 排序 条件查询

    ormlite 在android中 排序 条件查询 all = dao.queryBuilder().orderBy("Id", true).where().eq("Ty ...

  7. WordPress主题开发:开启侧边栏小工具功能

    步骤一:在主题的functions.php中,添加一段代码,开启侧边栏功能,代码如下: <?php //参数 $args = array( 'name' => __( '主侧边栏'), ' ...

  8. sql语句 update 字段=字段+字符串

    update aa set name=concat('x',name) SELECT OWNER,phone ,COUNT(fc_hc) as c from tb_p GROUP BY fc_hc H ...

  9. 自动移动的ImageView

     图片会慢慢的向左移动,到头了后,再循环 其实这个效果和屏幕背景图片的效果差不多,屏幕背景图是随着滑动来慢慢的滚动,这是自己每个n秒开始动.实现方式自然是用自定的控件了.这次继承的是ImageView ...

  10. [转]Mysql中的SQL优化与执行计划

    From : http://religiose.iteye.com/blog/1685537 一,如何判断SQL的执行效率? 通过explain 关键字分析效率低的SQL执行计划. 比如: expla ...