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 ...
随机推荐
- SQL Server 2000 绿色精简版gsql适用于xp/win7/win8/win10
老的程序员肯定都用过sql2000数据库,我在2006-2010年之间,做的不少网站也都是sql2000数据库的,但是后来随着mysql的兴起,就逐渐不再使用sql数据库了.但是最近有个客户的网站要修 ...
- .Net Discovery 系列之五--深入浅出.Net实时编译机制(上)
欢迎阅读“.Net Discovery 系列”文章,本文将分上.下两部分为大家讲解.Net JIT方面的知识,敬请雅正. JIT(Just In Time简称JIT)是.Net边运行边编译的一种机制, ...
- 对json数据key进行替换
原文:https://blog.csdn.net/qq_39750658/article/details/83411897 import java.util.HashMap; import java. ...
- Winfrom固定Label宽度,根据文本动态改变Label的高度 z
Label,要固定住宽度,然后根据文本的长度来动态改变高度,一开始去网上找解决方案,各种根据字体大小啊,字数啊来动态改变,但是效果却不怎么好.最后灵机一动,想起了偶尔用过一次的FlowLayoutPa ...
- URAL 1837. Isenbaev's Number (map + Dijkstra || BFS)
1837. Isenbaev's Number Time limit: 0.5 second Memory limit: 64 MB Vladislav Isenbaev is a two-time ...
- JForum 源码分析
怎么才算好的源码分析呢?当然我这个肯定不算.我想大概分为几个层面吧,写写注释那算最基本的了,写写要点思路和难点,算是还不错拉,再难的就是跳出源码举一反三,形成自己的一套思路吧.好好努力吧. 这次针对的 ...
- Swift - UITableView状态切换效果
Swift - UITableView状态切换效果 效果 源码 https://github.com/YouXianMing/Swift-Animations // // TableViewTapAn ...
- Linux 安全信息查看
终端登录情况 last ssh登录情况 cat /var/log/secure | grep -i "accepted password" 定时任务 cat /var/log/cr ...
- 得到ImageView中drawable显示的区域的计算方法
我们都知道Imageview中有不同的拉伸比率,比如fitStart,centCrop这样的,所以imageview中的drawable不一定和imageview占有相同的位置和大小,那么怎么计算呢? ...
- 得到手机当前显示的activity的名字
/** * @return 手机当前的activity */ String getRunningActivityName(){ ActivityManager activityManager=(Act ...