为了账号安全,请及时绑定邮箱和手机立即绑定

请问各位,Nginx安装过程中找不到uint32_t请问怎么解决 ?

/ 猿问

请问各位,Nginx安装过程中找不到uint32_t请问怎么解决 ?

慕姐8265434 2019-06-04 10:06:52

Nginx安装过程中找不到uint32_t请问怎么解决 


查看完整描述

4 回答

?
郎朗坤

1、下载:
到官网下载nginx稳定版,解压到e盘根目录;
到官网下载php非安装版,解压到e盘根目录。

2、配置:
打开nginx.conf,修改相关位置如下,
location / {
root html; #网站根目录
index index.html index.htm index.php;
autoindex on; #当网站没有默认文件时,打开域名可以看到文件目录结构
}
location ~ \.php$ {
#root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME e:/html/$fastcgi_script_name; #php文件存放目录,测试过相对路径不行,需要绝对路径
include fastcgi_params;
}

配置好后打开命令提示符,切换到e:\nginx,启动nginx命令:start nginx 。(相关介绍可到l)
注意:当修改配置文件后,要nginx -s quit 然后 start nginx 才有配置后的效果,用 nginx -s reload 没效果。可能是windows版本的一个bug吧。

配置php.ini,设置extension_die = "ext/",把相关用到的ext扩展dll前面的分号去掉,不然不能正常启动php-cgi.ext。
启动php-cgi.exe;切换到e:\php,在命令提示符下输入php-cgi.exe -b 127.0.0.1:9000。

3、测试:
写一个打印phpinfo()的php脚本放到html目录下面,测试php程序是否能够运行。经过测试成功运行。
========================================================

启动与停止
1. 启动Nginx:
D:/nginx-1.0.4/nginx.exe -p D:/nginx-1.0.4
2. 启动PHP-CGI
D:/php/php-cgi.exe -b 127.0.0.1:9001 -c D:/php/php.ini
为了方便可以写到一个批处理文件中,这里用到了一个RunHiddenConsole,可以在这里下载:
@echo off
REM Windows 下无效
REM set PHP_FCGI_CHILDREN=5

REM 每个进程处理的最大请求数,或设置为 Windows 环境变量
set PHP_FCGI_MAX_REQUESTS=1000
echo Starting PHP FastCGI...
REM RunHiddenConsole C:/php5/php-cgi.exe -b 127.0.0.1:9000 -c C:/php5/php.ini
D:/nginx-1.0.4/RunHiddenConsole.exe D:/php/php-cgi.exe -b 127.0.0.1:9001 -c D:/php/php.ini

echo Starting nginx...
D:/nginx-1.0.4/RunHiddenConsole.exe D:/nginx-1.0.4/nginx.exe -p D:/nginx-1.0.4
exit
3. 停止Nginx
D:/nginx-1.0.4/nginx.exe -p D:\nginx-1.0.4 -s stop
4. 停止PHP-CGI
taskkill /F /IM php-cgi.exe > nul
同样可以写到一个批处理文件中:
@echo off
echo Stopping nginx...
REM taskkill /F /IM nginx.exe > nul
D:/nginx-1.0.4/nginx.exe -p D:\nginx-1.0.4 -s stop

echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
Nginx配置的路径问题
由于在Windows下文件路径可以用”\”, 也可以用”\\”, 也可以用”/”作为路径做分隔符。但”\”最容易引发问题,所以要尽量避免使用。
例如下面的配置可以正常运行
root G:\ezdemo;
但是这样
root G:\tweb;
就会出现问题,访问程序时会出现500错误。
在logs/error.log里面会发现这类似这样的错误日志:
2011/06/16 22:07:28 [crit] 4756#5412: *2 GetFileAttributesEx() "G: web" failed (123: The filename, directory name, or volume label syntax is incorrect), client: 127.0.0.1, server: php.lab, request: "GET / HTTP/1.1", host: "php.lab"
2011/06/16 22:13:38 [crit] 4756#5412: *5 CreateFile() "G: pweb/test.html" failed (123: The filename, directory name, or volume label syntax is incorrect), client: 127.0.0.1, server: php.lab, request: "GET /test.html HTTP/1.1", host: "php.lab"
注意到G:后而有一个tab空格,你应该明白怎么回事了:)
========================================================
关于nginx以服务方式运行原理和实现方法参见 http://bbs3.chinaunix.net/thread-1264548-1-1.html
另在那个帖子中还有一个完整的所用工具和脚步的zip包,照readme.txt 安装好服务是没有问题的

本文主要是说说 nginx-0.7.58 以服务方式运行后“nginx -s reload”常见错误解决方法
注意,这个 nginx-0.7.58 下载自官方

1、[alert]: CreateFileMapping(1024, nginx_shared_zone) failed (5: Access is denied)
根据这个提示我分析了一下,应该是权限问题,这时我分别用服务启动和命令启动nginx后发现
服务启动后 nginx 是以 system 身份运行的,而 命令启动后 nginx 是以 administrator 身份运行的
这样看问题应该是出在了服务的运行身份上,所以我们应该修改服务的运行身份,具体修改方法:
服务--》NGNIX--》属性--》登陆--》登陆身份--》选择此账户后账户填入administration,再填入密码
修改完后重启服务再试 nginx -s reload ,一切正常

2、[error]: OpenEvent("ngx_reload_31796") failed (2: The system cannot find the file specified)
这个应该是最常见的错误了,一般引起这个错误的主要原因是 nginx 不能处理特定pid的 nginx 进程而造成的
这个错误信息中 reload 还有可能是 stop reopen quit,而后面的31796则是当前 logs\nginx.pid 中的值
我碰到这个问题的时候是在我mstsc登陆vps上的win03时,下面是当时复制出的一些信息

D:\httpd\nginx>sc stop nginx
D:\httpd\nginx>sc start nginx
D:\httpd\nginx>tasklist | findstr nginx
nginx.exe 16360 Console 0 3,184 K
nginx.exe 31112 Console 0 3,512 K
D:\httpd\nginx>start nginx.exe
D:\httpd\nginx>tasklist | findstr nginx
nginx.exe 16360 Console 0 3,184 K
nginx.exe 31112 Console 0 3,512 K
nginx.exe 32696 RDP-Tcp#3 7 3,212 K
nginx.exe 14988 RDP-Tcp#3 7 3,524 K
D:\httpd\nginx>

当时我没有发现有啥问题,以为是程序的问题,后来我在本地虚拟机上win03上使用没有碰到此错误,一样的操作为啥结果会不同?
我就又重新在vps上的win03上做试验,发现了猫腻,服务启动和远程登陆后手动启动的会话id不同
就拿上面抓的信息为例子
nginx以服务方式启动的会话id是0,而我远程登陆后的会话id是7,所以不能操作会话id 0启动的nginx
而我远程登陆后自己手动 start nginx 启动,这时nginx.exe的会话id就是我现在用的,所以我此时是能正常使用 nginx -s reload 的

综上所述,这个错误是由于不能正常结束特定进程所引起的,也大多数情况是在远程登陆后操作才会出现,具体的解决方法未知,最关键的问题远程登陆后如何切换到会话id 0上去

 

查看完整回答
反对 回复 2019-06-08
?
拉风的咖菲猫

1、[root@server4 ~]# which htpasswd
/usr/bin/htpasswd
2、[root@server4 ~]# rpm -qf /usr/bin/htpasswd
httpd-2.2.3-87.el5.centos
3、你需要安装httpd才有htpasswd命令,或者从安装过apache的主机上复制一个htpasswd文件看能不能用。

查看完整回答
反对 回复 2019-06-08
?
料青山看我应如是

你可以用这两个命令,找安装启用的路径 netstat -tnlp|grep nginx 然后看到一行记录,复制最后的一个数据(进程ID) ps -aux |grep 进程ID 就可以看到 NINGX的启动方式了。 如果你现在不知道,并且没重动NIGNX,则可以 find /|grep nginx.conf ...

查看完整回答
反对 回复 2019-06-08
?
大话西游666

[root@wm nginx-1.0.5]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-openssl=n3/openssl-1.0.0d --with-zlib=/n3/zlib-1.2.7
checking for OS
+ Linux 2.6.18-53.el5 i686
checking for C compiler ... found
+ using GNU C compiler
+ gcc version: 4.1.2 20070626 (Red Hat 4.1.2-14)
checking for gcc -pipe switch ... found
checking for gcc builtin atomic operations ... not found
checking for C99 variadic macros ... found
checking for gcc variadic macros ... found
checking for unistd.h ... found
checking for inttypes.h ... found
checking for limits.h ... found
checking for sys/filio.h ... not found
checking for sys/param.h ... found
checking for sys/mount.h ... found
checking for sys/statvfs.h ... found
........
checking for PCRE library ... found
creating objs/Makefile
Configuration summary
+ using system PCRE library
+ using OpenSSL library: n3/openssl-1.0.0d
+ md5: using OpenSSL library
+ sha1: using OpenSSL library
+ using zlib library: /n3/zlib-1.2.7
nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
[root@wm nginx-1.0.5]# make
make -f objs/Makefile
make[1]: Entering directory `/n3/nginx-1.0.5'
cd n3/openssl-1.0.0d \
&& make clean \
&& ./config --prefix=/n3/nginx-1.0.5/n3/openssl-1.0.0d/.openssl no-shared no-threads \
&& make \
&& make install LIBDIR=lib
/bin/sh: line 0: cd: n3/openssl-1.0.0d: No such file or directory
make[1]: *** [n3/openssl-1.0.0d/.openssl/include/openssl/ssl.h] Error 1
make[1]: Leaving directory `/n3/nginx-1.0.5'
make: *** [build] Error 2



查看完整回答
反对 回复 2019-06-08

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信