debian 5 lenny / nginx / tomcat安装手记

本文详细介绍了基于Debian Linux系统的配置与应用流程,包括系统设置、工具安装、JDK与MySQL安装、Tomcat与Nginx部署,以及如何进行优化与配置。
1. 系统基本设置。

mirrors 使用163的mirror。 网易好人。
[url]http://mirrors.163.com/.help/debian.html[/url]

以Lenny为例, 编辑/etc/apt/sources.list文件, 在文件最前面添加以下条目(操作前请做好相应备份)

[quote] deb http://mirrors.163.com/debian/ lenny main non-free contrib
deb http://mirrors.163.com/debian/ lenny-proposed-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ lenny main non-free contrib
deb-src http://mirrors.163.com/debian/ lenny-proposed-updates main non-free contrib[/quote]

apt-get update
apt-get upgrade

vi ~/.bashrc
uncomment lines for color and information
relogin.

vi /etc/network/interfaces
修改网络配置

2. 安装基本工具。
[quote]apt-get install sysv-rc-conf chkconfig
apt-get install ssh
apt-get install gcc make
[/quote]

3. 安装jdk
[quote]apt-cache search jdk
apt-get install sun-java6-jdk
ln -s /usr/lib/jvm/java-6-sun /usr/lib/jdk

vi /etc/profile
add:
JAVA_HOME=/usr/lib/jdk
export JAVA_HOME
LANG=C
export LANG[/quote]

4。 安装mysql
apt-cache search mysql
apt-get install mysql-server-5.0

5. 安装tomcat
Tomcat demon, jsvc 守护进程。
upload tomcat 6
[quote]tar xzvf tomcat-version
cd tomcat/bin
tar xzvf jsvc.tar.gz
cd jsvc-src
echo $JAVA_HOME
./configure
or
./configure --with-java=/usr/lib/jdk
make[/quote]
cp /opt/tomcat/jsvc-src/Tomcat5.sh /etc/init.d/tomcat
vi tomcat
...
chkconfig -a tomcat

....Apache的配置太麻烦了,和tomcat的连接也很难配。改为nginx+tomcat。

6. 编译nginx
[quote]
apt-get install libpcre3-dev libgcrypt11-dev libssl-dev
./configure \
--conf-path=/etc/nginx/nginx.conf \
--http-log-path=/var/log/nginx/access_log \
--error-log-path=/var/log/nginx/error_log \
--pid-path=/var/run/nginx.pid \
--http-client-body-temp-path=/var/tmp/nginx/client \
--http-proxy-temp-path=/var/tmp/nginx/proxy \
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi \
--with-md5-asm --with-md5=/usr/include \
--with-sha1-asm \
--with-sha1=/usr/include \
--with-http_realip_module \
--with-http_ssl_module \
--with-http_perl_module \
--with-http_stub_status_module
make && make install
[/quote]
/usr/bin/ld:cannot find -lperl

> locate libperl
没找到 libperl.so , 这个locate命令第一次用,挺爽。
apt-cache search libperl
apt-get install libperl-dev

make && make install
upload nginx.sh
vi nginx.sh
copy nignx.sh to /etc/init.d/nginx
chkconfig -a nginx

vi /etc/nginx/nginx.conf

location ~.*\.(jpg|js|png|swf){
expires 30d;
root /opt/tomcat/webapps/myapp;
}
location /{
proxy_pass http://127.0.0.1:8080/myapp/
proxy_set_header X-Real-IP $remote_addr;
}


Tips:
copy entire directories.
cp -R dirtocopy/ newdir/
[url=http://wiki.nginx.org/NginxChs]Nginx中文文档[/url]
[url=http://wiki.nginx.org/NginxChsInstallOptions]Nginx编译选项[/url]
[url=http://www.debian.org/doc/manuals/reference/index.zh-cn.html] debian中文手册[/url]
[url=http://www.debian.org/doc/manuals/reference/ch-tips.zh-cn.html] debian小技巧[/url]
[url=http://man.ddvip.com/]豆豆手册,很多手册[/url]
[url]http://www.debianhelp.co.uk/apachetomcat.htm[/url]
基于51单片机,实现对直流电机的调速、测速以及正反转控制。项目包含完整的仿真文件、源程序、原理图和PCB设计文件,适合学习和实践51单片机在电机控制方面的应用。 功能特点 调速控制:通过按键调整PWM占空比,实现电机的速度调节。 测速功能:采用霍尔传感器非接触式测速,实时显示电机转速。 正反转控制:通过按键切换电机的正转和反转状态。 LCD显示:使用LCD1602液晶显示屏,显示当前的转速和PWM占空比。 硬件组成 主控制器:STC89C51/52单片机(与AT89S51/52、AT89C51/52通用)。 测速传感器:霍尔传感器,用于非接触式测速。 显示模块:LCD1602液晶显示屏,显示转速和占空比。 电机驱动:采用双H桥电路,控制电机的正反转和调速。 软件设计 编程语言:C语言。 开发环境:Keil uVision。 仿真工具:Proteus。 使用说明 液晶屏显示: 第一行显示电机转速(单位:转/分)。 第二行显示PWM占空比(0~100%)。 按键功能: 1键:加速键,短按占空比加1,长按连续加。 2键:减速键,短按占空比减1,长按连续减。 3键:反转切换键,按下后电机反转。 4键:正转切换键,按下后电机正转。 5键:开始暂停键,按一下开始,再按一下暂停。 注意事项 磁铁和霍尔元件的距离应保持在2mm左右,过近可能会在电机转动时碰到霍尔元件,过远则可能导致霍尔元件无法检测到磁铁。 资源文件 仿真文件:Proteus仿真文件,用于模拟电机控制系统的运行。 源程序:Keil uVision项目文件,包含完整的C语言源代码。 原理图:电路设计原理图,详细展示了各模块的连接方式。 PCB设计:PCB布局文件,可用于实际电路板的制作。
【四旋翼无人机】具备螺旋桨倾斜机构的全驱动四旋翼无人机:建模与控制研究(Matlab代码、Simulink仿真实现)内容概要:本文围绕具备螺旋桨倾斜机构的全驱动四旋翼无人机展开研究,重点进行了系统建模与控制策略的设计与仿真验证。通过引入螺旋桨倾斜机构,该无人机能够实现全向力矢量控制,从而具备更强的姿态调节能力和六自由度全驱动特性,克服传统四旋翼欠驱动限制。研究内容涵盖动力学建模、控制系统设计(如PID、MPC等)、Matlab/Simulink环境下的仿真验证,并可能涉及轨迹跟踪、抗干扰能力及稳定性分析,旨在提升无人机在复杂环境下的机动性与控制精度。; 适合人群:具备一定控制理论基础和Matlab/Simulink仿真能力的研究生、科研人员及从事无人机系统开发的工程师,尤其适合研究先进无人机控制算法的技术人员。; 使用场景及目标:①深入理解全驱动四旋翼无人机的动力学建模方法;②掌握基于Matlab/Simulink的无人机控制系统设计与仿真流程;③复现硕士论文级别的研究成果,为科研项目或学术论文提供技术支持与参考。; 阅读建议:建议结合提供的Matlab代码与Simulink模型进行实践操作,重点关注建模推导过程与控制器参数调优,同时可扩展研究不同控制算法的性能对比,以深化对全驱动系统控制机制的理解。
<think>我们正在解决两个问题:1.用户执行`sudochown-rwww-data:www-data/user/local/nginx/logs`时出现错误:`chown:不适用的选项--r`,因为正确的递归选项是`-R`(大写)而且路径应该是`/usr/local/nginx/logs`(注意是`usr`不是`user`)。2.用户遇到`sudonginx`命令未找到的错误,这可能是因为nginx的可执行文件路径没有加入环境变量,或者安装方式不同导致。根据引用内容:引用[2]中提到了一个init脚本,其中指定了nginx的路径为`DAEMON=/usr/local/nginx/sbin/nginx`,所以用户可能使用的是通过源代码编译安装的方式,将nginx安装到了`/usr/local/nginx/`目录下。解决方案:问题1:修正chown命令-使用正确的递归选项`-R`-修正路径(将`/user/`改为`/usr/`)问题2:解决“nginx命令未找到”-方法1:使用绝对路径执行nginx,例如:`/usr/local/nginx/sbin/nginx`-方法2:将nginx的可执行文件目录加入PATH环境变量-方法3:创建软链接到/usr/bin或者/usr/sbin目录下另外,引用[1]中还提到了一些nginx命令:-`sudonginx-t`检查配置文件语法-`sudonginx-sreload`重新加载配置-`sudosystemctlrestartnginx`重启nginx(这个要求nginx已经注册为系统服务)注意:用户是编译安装,所以可能没有注册为系统服务(引用[2]中的init脚本就是用来注册服务的)。但是引用[3]提到默认情况下nginx会在服务器启动时自动启动,所以用户可能已经注册了服务。如果用户按照引用[2]的方式创建了init脚本,那么就可以使用`systemctl`命令。步骤:1.修改chown命令:```bashsudochown-Rwww-data:www-data/usr/local/nginx/logs```2.对于nginx命令找不到的问题:临时解决方案:使用绝对路径```bashsudo/usr/local/nginx/sbin/nginx-tsudo/usr/local/nginx/sbin/nginx-sreload```永久解决方案(二选一):a)将nginx路径加入PATH环境变量:编辑当前用户的.bashrc或.profile文件(或者全局的/etc/profile):```bashecho'exportPATH=$PATH:/usr/local/nginx/sbin'>>~/.bashrcsource~/.bashrc```或者如果是root用户,可以添加到/etc/profile中(需要重新登录或source/etc/profile)。b)创建软链接:```bashsudoln-s/usr/local/nginx/sbin/nginx/usr/sbin/nginx```3.检查nginx服务是否已注册(以便使用systemctl):如果用户已经按照引用[2]创建了/etc/init.d/nginx脚本,那么还需要将其转换为systemctl可用的服务(或者直接使用service命令):对于Debian,可以使用update-rc.d将init脚本加入启动项:```bashsudoupdate-rc.dnginxdefaults```然后就可以使用:```bashsudoservicenginxrestart#或者sudosystemctlrestartnginx```但是,如果用户没有创建该脚本,则可以使用引用[2]中的脚本创建/etc/init.d/nginx文件,然后执行update-rc.d。4.配置日志路径(引用[1]中提到了自定义日志路径):如果用户需要将日志放到其他位置(比如/home/wwwroot/debian_logs/),需要确保该目录存在,并且nginx进程有写入权限。例如,在nginx配置文件中(如/usr/local/nginx/conf/nginx.conf):```nginxerror_log/home/wwwroot/debian_logs/nginx_error.log;http{access_log/home/wwwroot/debian_logs/access.log;#或者关闭访问日志:access_logoff;}```然后创建目录并设置权限:```bashsudomkdir-p/home/wwwroot/debian_logssudochown-Rwww-data:www-data/home/wwwroot/debian_logs```5.测试nginx配置:```bashsudo/usr/local/nginx/sbin/nginx-t```注意:如果用户修改了nginx.conf,需要重新加载nginx配置(使用绝对路径或者通过systemctl/service)。总结步骤:1.修正chown命令(使用-R并修正路径)。2.解决nginx命令找不到的问题(建议创建软链接,简单方便)。3.配置日志路径(如果需要)并设置权限。4.测试并重新加载配置。相关问题:1.如何将编译安装nginx注册为系统服务?2.如何配置nginx的日志轮转(logrotation)?3.如何设置Nginx环境变量使其在任何目录都可以执行?</think> ### 解决Debian系统中Nginx权限与命令问题 #### 问题1:`chown -r` 无效选项错误 根本原因是Linux命令区分大小写,正确递归参数应为 **`-R`**(大写R)。同时您使用了错误的路径 `/user/local/`(正确应为 `/usr/local/`),建议执行: ```bash sudo chown -R www-data:www-data /usr/local/nginx/logs ``` - 修正说明: - `-R`:递归修改目录及子文件权限 - `/usr/`:Linux标准系统路径(非`/user/`) - `www-data:www-data`:Nginx默认服务账户和组[^1] #### 问题2:`sudo nginx` 命令未找到 该错误通常由以下原因导致: 1. **编译安装路径未加入环境变量** Nginx默认安装路径为 `/usr/local/nginx/sbin/`(编译安装) ```bash # 临时使用绝对路径 sudo /usr/local/nginx/sbin/nginx -t # 永久添加到环境变量 echo 'export PATH=$PATH:/usr/local/nginx/sbin' | sudo tee -a /etc/profile source /etc/profile ``` 2. **未注册系统服务**(参考您提供的引用[2]) ```bash # 创建服务启动脚本 sudo vim /etc/init.d/nginx ``` 粘贴以下内容: ```sh #!/bin/sh DAEMON=/usr/local/nginx/sbin/nginx test -x $DAEMON || exit 0 case "$1" in start) $DAEMON ;; stop) $DAEMON -s stop ;; reload) $DAEMON -s reload ;; restart) $DAEMON -s quit && $DAEMON ;; *) echo "Usage: /etc/init.d/nginx {start|stop|reload|restart}" ;; esac exit 0 ``` 启用服务: ```bash sudo chmod +x /etc/init.d/nginx sudo update-rc.d nginx defaults # 注册为系统服务 sudo systemctl start nginx # 现在可用systemctl管理 ``` #### 权限和路径验证流程 ```mermaid graph TD A[问题诊断] --> B{命令错误类型} B -->|权限问题| C[chown -R 递归修复] B -->|命令不存在| D[检查Nginx路径] D --> E[/usr/local/nginx/sbin/] D --> F[/usr/sbin/] E --> G[添加到PATH] F --> H[创建符号链接] G --> I[测试命令 nginx -t] H --> I I --> J[成功?] J -->|是| K[注册系统服务] J -->|否| L[重装Nginx] ``` #### 完整解决方案 1. **修正日志权限**: ```bash sudo chown -R www-data:www-data /usr/local/nginx/logs sudo chmod 750 /usr/local/nginx/logs ``` 2. **修复nginx命令缺失**: ```bash # 创建符号链接(如果未注册服务) sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx # 验证安装 sudo nginx -v # 应显示版本号 ``` 3. **检查服务状态**: ```bash sudo systemctl status nginx # 若未激活则启用 sudo systemctl enable --now nginx ``` 4. **测试配置**(引用[1]内容): ```bash sudo nginx -t # 验证配置语法 sudo nginx -s reload # 热重载配置 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值