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. Introduction to the Optimizer --cbo

    http://docs.oracle.com/cd/B10500_01/server.920/a96533/optimops.htm

  2. 一个简单例子理解C#的协变和逆变

    关于协变逆变,SolidMango的解释是比较可取的.有了协变,比如,在需要返回IEnumerable<object>类型的时候,可以使用IEnmerable<string>来 ...

  3. log4j直接输出日志到flume

    log4j.properties配置: log4j.rootLogger=INFOlog4j.category.com.besttone=INFO,flumelog4j.appender.flume ...

  4. 如何获得ios7系统中的蓝色

    最简洁的办法,直接使用下列代码: [UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0] 最彻底的办法: OS7Colors是U ...

  5. python测试开发django-27.表单提交之post修改密码

    前言 跟账号相关的功能一般是注册,登录,修改密码,密码找回功能,前面实现了登录和注册功能,本篇讲下修改密码功能实现 修改密码html <!DOCTYPE html> <html la ...

  6. Nginx中文手冊

    下载 : Nginx 中文手冊 Nginx 常见应用技术指南[Nginx Tips] 第二版 作者:NetSeek http://www.linuxtone.org (IT运维专家网|集群架构|性能调 ...

  7. ios成长之每日一遍(day 1)

    Hello world开始. 这里不讨论如何创建项目导入项目.由于趁上班时间打酱油所以也不谈细节, 只谈具体项目的实现与关键流程的解析, 只供本人实际程况使用.不喜请移驾. 首先来谈谈 AppDele ...

  8. List集合中的数据按照某一个属性进行分组

    有的时候,我们需要在java中对集合中的数据进行分组运算.例如:Bill对象有money(float)和type(String)属性,现有个集合List<Bill>,需要按照Bill的ty ...

  9. [转]用国内软件源为Ubuntu的apt-get提速方法

    FROM : http://www.jb51.net/os/Ubuntu/45293.html 刚装好Ubuntu系统之后根据需要还要安装一系列的软件,最省心的办法就是通过apt-get来进行   默 ...

  10. TCP/IP协议体系结构简介

    1.TCP/IP协议栈 四层模型 TCP/IP这个协议遵守一个四层的模型概念:应用层.传输层.互联层和网络接口层. 网络接口层:模型的基层是网络接口层.负责数据帧的发送和接收,帧是独立的网络信息传输单 ...