TinyCore Nginx server with php-cgi and vsftpd
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的更多相关文章
- 配置 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 ...
- 用Keepalived搭建双Nginx server集群,防止单点故障
综述: 浏览器访问虚拟IP: 192.168.1.57, 该虚拟IP被Keepalived接管,两个Keepalived进程分别运行在物理IP为192.168.1.56和192.168.1.59服务器 ...
- nginx server
配置nginx 首先apt install nginx 然后安装php apt-get install php7.0-fpm php7.0-mysql php7.0-common php7.0-mbs ...
- nginx server中的server_name配置的域名在客户机上无法访问
nginx配置如下: nginx.conf: #user nobody; worker_processes 2; #error_log logs/error.log; #error_log logs/ ...
- 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 ...
- NGINX server配置中if的用法
server的配置以php为例,如下: 1 server{ 2 root /var/webproject/www/mytools-php; 3 index index.html index.php; ...
- Nginx server之Nginx添加ssl支持
//环境介绍 1.nginx服务器:10.10.54.157 2.配置nginx服务器,当监听到来自客户端www.zijian.com:80请求时,转到10.10.54.150:1500这个web服务 ...
- nginx Server names
通配符名称 正則表達式名称 混合名称 优化 兼容性 server名称定义使用的server_name指令和决定哪个server块用于一个给定的请求. 參见"怎样Nginx处理一个请求&quo ...
- 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 ...
随机推荐
- asp.net MVC 中 Session统一验证的方法
验证登录状态的方法有:1 进程外Session 2 方法过滤器(建一个类继承ActionFilterAttribute)然后给需要验证的方法或控制器加特性标签 3 :新建一个BaseContro ...
- ASP.NET Web API中通过ETag实现缓存
通常情况下Server是无状态的,在ASP.NET Web API中,我们可以让服务端响应体中产生ETag属性,起到缓存的作用.大致实现原理是: 1.服务端的响应体中返回一个ETag属性2.客户端通过 ...
- 安装/使用 MVVMLight(转)
安装 MVVMLight Toolkit 为什么说是 MVVMLight Toolkit ?实际上我们一般安装的都是 MVVMLight Toolkit ,这个里面包含了工具就是在VS新建工程的时候你 ...
- ZServer4D开源项目
ZServer4D开源项目 ZServer4D 是一套从商业项目剥离而出的云服务器中间件,可以承载百万级的分布式负载服务,并且支持IoT及内网穿透. 作者将它开源了 https://github.co ...
- 【python】python安装步骤
1.官网下载python 官网地址:https://www.python.org/getit/ 2.下载完成后点击安装 勾选Add python to PATH 是可以自己去配置环境变量的 注意:这里 ...
- WordPress主题开发:评论框
方法一:调出内置评论框: 文章开启评论: 页面开启评论:(注意:如果使用的是插件,点快速编辑是没有“允许评论”可勾选的) 在对应的地方,插入 <?php comments_template(); ...
- .NET:枚举的默认值
.NET中的值类型默认都会设置为0,枚举也是如此,因此当你定义自己的枚举值类型且显式的指定了枚举值时,别忘记使用0,如果由于某种原因不能使用0,如使用了Flag标记,则别忘记在使用了枚举类型的构造方法 ...
- 详细解读Volley(三)—— ImageLoader & NetworkImageView
ImageLoader是一个加载网络图片的封装类,其内部还是由ImageRequest来实现的.但因为源码中没有提供磁盘缓存的设置,所以咱们还需要去源码中进行修改,让我们可以更加自如的设定是否进行磁盘 ...
- Leetcode刷题记录:构建最大数二叉树
题目要求,题目地址 给定一个不含重复数字的数组,最大二叉树构建规则如下: 1.根是数组中最大的数字 2.左边的子树是最大数字左边的内容 3.右边的子树是最大数字右边的内容 答案 class Solut ...
- PHP检测及判断手机登录用户是安卓或爱疯(iPhone)客户端
<?php /* PHP 自动判断客户端平台(PC.安卓.iPhone.平板) * strtolower() 函数把字符串转换为小写: * strpos() 函数返回字符串在另一个字符串中第一次 ...