成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Cygwin 下編譯 Nginx

phpmatt / 1394人閱讀

摘要:再次搜索,得到原因分析通過運行測試程序來獲得等數(shù)據(jù)類型的大小,由于交叉編譯器所編譯出的程序無法在編譯主機上運行而產(chǎn)生錯誤。

首先安裝以下庫:

// 貌似一起安裝 apt-cyg 不能識別,得一個一個得安裝,有些庫貌似沒找到
// apt-cyg install 
openssl
pcre
zlib
automake 
bison 
curl-devel 
flex 
libiconv 
libmcrypt-devel 
libtool 
libxml2 
libxml2-devel 
patchutils 
pcre-devel 
jpeg 
libmcrypt 

配置

./configure --with-http_ssl_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module

報錯:

./configure: error: can not detect int size
cat: objs/autotest.c: No such file or directory

搜索解決方法:

去掉CPU優(yōu)化編譯選項:–with-cpu-opt=pentium

無效,本來就沒有加。。。

再次搜索,得到

原因分析:
configure通過運行測試程序來獲得“int、long、longlong”等數(shù)據(jù)類型的大小,由于交叉編譯器所編譯出的程序無法在編譯主機上運行而產(chǎn)生錯誤。

解決辦法:
可以通過修改configure文件來手動指定各數(shù)據(jù)類型的大小,但會非常麻煩。
這里,由于編譯主機與目標平臺均為32位系統(tǒng),故可以用 gcc 替代 mips-openwrt-linux-gcc 來進行數(shù)據(jù)類型大小的測試
(注意:不同的編譯環(huán)境可能編譯器有點不同)
編輯auto/types/sizeof文件,大概36行的位置( $CC 改為 gcc )

ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS

改為

ngx_test="gcc $CC_TEST_FLAGS $CC_AUX_FLAGS

修改后測試錯誤仍然存在,上述修改無效。
又找了一些方案:

增加參數(shù)跳過錯誤:

--with-ld-opt="-lstdc++" --with-cpp_test_module

仍然無效,估計是 nginx 版本太高(用的是 GitHub 上最新的),降低版本試試。
嘗試1.2.4版本。

這時發(fā)現(xiàn)有些重要的庫沒有安裝(因為不是 C 出身,對編譯幾乎一竅不通),偷偷地安裝了下:

apt-cyg install gcc-g++

1.2.4 版本有一些友好的提示,在提示下安裝了以下庫:

apt-cyg install libpcre-devel
apt-cyg install openssl-devel

再次 configure,顯示

Configuration summary
  + using system PCRE library
  + using system OpenSSL library
  + md5: using OpenSSL library
  + sha1: using OpenSSL library
  + using system zlib library
  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"

通過。

下面 make,最終提示:

objs/ngx_modules.o 
-lcrypt -lpcre -lssl -lcrypto -lz
make[1]: Leaving directory "/home/Tony/source/nginx-1.2.4"
make -f objs/Makefile manpage
make[1]: Entering directory "/home/Tony/source/nginx-1.2.4"
sed -e "s|%%PREFIX%%|/usr/local/nginx|" 
        -e "s|%%PID_PATH%%|/usr/local/nginx/logs/nginx.pid|" 
        -e "s|%%CONF_PATH%%|/usr/local/nginx/conf/nginx.conf|" 
        -e "s|%%ERROR_LOG_PATH%%|/usr/local/nginx/logs/error.log|" 
        < man/nginx.8 > objs/nginx.8
make[1]: Leaving directory "/home/Tony/source/nginx-1.2.4"

貌似應該是成功了。

最后 make install,提示:

Tony@TPX240 ~/source/nginx-1.2.4
$ make install
make -f objs/Makefile install
make[1]: Entering directory "/home/Tony/source/nginx-1.2.4"
test -d "/usr/local/nginx" || mkdir -p "/usr/local/nginx"
test -d "/usr/local/nginx/sbin"                 || mkdir -p "/usr/local/nginx/sbin"
test ! -f "/usr/local/nginx/sbin/nginx"                 || mv "/usr/local/nginx/sbin/nginx"                     "/usr/local/nginx/sbin/nginx.old"
cp objs/nginx "/usr/local/nginx/sbin/nginx"
test -d "/usr/local/nginx/conf"                 || mkdir -p "/usr/local/nginx/conf"
cp conf/koi-win "/usr/local/nginx/conf"
cp conf/koi-utf "/usr/local/nginx/conf"
cp conf/win-utf "/usr/local/nginx/conf"
test -f "/usr/local/nginx/conf/mime.types"              || cp conf/mime.types "/usr/local/nginx/conf"
cp conf/mime.types "/usr/local/nginx/conf/mime.types.default"
test -f "/usr/local/nginx/conf/fastcgi_params"          || cp conf/fastcgi_params "/usr/local/nginx/conf"
cp conf/fastcgi_params          "/usr/local/nginx/conf/fastcgi_params.default"
test -f "/usr/local/nginx/conf/fastcgi.conf"            || cp conf/fastcgi.conf "/usr/local/nginx/conf"
cp conf/fastcgi.conf "/usr/local/nginx/conf/fastcgi.conf.default"
test -f "/usr/local/nginx/conf/uwsgi_params"            || cp conf/uwsgi_params "/usr/local/nginx/conf"
cp conf/uwsgi_params            "/usr/local/nginx/conf/uwsgi_params.default"
test -f "/usr/local/nginx/conf/scgi_params"             || cp conf/scgi_params "/usr/local/nginx/conf"
cp conf/scgi_params             "/usr/local/nginx/conf/scgi_params.default"
test -f "/usr/local/nginx/conf/nginx.conf"              || cp conf/nginx.conf "/usr/local/nginx/conf/nginx.conf"
cp conf/nginx.conf "/usr/local/nginx/conf/nginx.conf.default"
test -d "/usr/local/nginx/logs"                 || mkdir -p "/usr/local/nginx/logs"
test -d "/usr/local/nginx/logs" ||              mkdir -p "/usr/local/nginx/logs"
test -d "/usr/local/nginx/html"                 || cp -R html "/usr/local/nginx"
test -d "/usr/local/nginx/logs" ||              mkdir -p "/usr/local/nginx/logs"
make[1]: Leaving directory "/home/Tony/source/nginx-1.2.4"

因為我 Win 本地也配置了 Nginx,所以用 whereis 命令查看 Nginx 的時候出現(xiàn)以下情況:

Tony@TPX240 ~/source/nginx-1.2.4
$ whereis nginx
nginx: /usr/local/nginx /cygdrive/c/dev/nginx.bat /cygdrive/c/dev/nginx-1.2.3/nginx.exe

nginx -v 出來的版本號也是 1.2.3 (Win 本地的版本號)

但寫全路徑就可以看到 1.2.4,說明安裝成功,下面看下能不能跑。

$ /usr/local/nginx/sbin/nginx.exe -v
nginx version: nginx/1.2.4

看到一個參數(shù)比較全的配置:

./configure --prefix=/cygdrive/d/nginx --sbin-path=/cygdrive/d/nginx --with-cc-opt="-D FD_SETSIZE=4096" --with-rtsig_module --with-select_module --with-poll_module --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-mail --with-cpp_test_module--with-mail_ssl_module
make && make install

運行 nginx,出現(xiàn)錯誤:

$ /usr/local/nginx/sbin/nginx.exe
nginx: [emerg] the maximum number of files supported by select() is 64

表示FD_SETSIZE的值比nginx配置文件中worker_connections指令所指定的值,你可以把 nginx.conf 里的 worker_connections 選項改小一些,比如44,加了 --with-cc-opt="-D FD_SETSIZE=4096" 后就不會碰到這問題

我的 nginx.conf 文件在 /usr/local/nginx/conf/nginx.conf

改為 64后,nginx 正常啟動。

參考文章:
http://www.softwareprojects.c...
http://blog.csdn.net/fish4323...
http://blog.csdn.net/chenyuji...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/39120.html

相關(guān)文章

  • CentOS7.0下編安裝Nginx 1.10.0

    摘要:寫在前面的話每次在搭建環(huán)境都要一頓求參考文檔,這次索性寫個簡單的文章記錄一下。其實下編譯安裝主要就是這幾個步驟。這樣指定后以后配置使用也方便。 寫在前面的話 每次在Linux搭建web環(huán)境都要一頓google求參考文檔,這次索性寫個簡單的文章記錄一下。其實Linux下編譯安裝主要就是這幾個步驟。 安裝編譯工具、依賴包及下載源碼包 解壓編譯 安裝 啟動 準備工作 安裝編譯工具、依賴包...

    avwu 評論0 收藏0
  • CentOS7.0下編安裝Nginx 1.10.0

    摘要:寫在前面的話每次在搭建環(huán)境都要一頓求參考文檔,這次索性寫個簡單的文章記錄一下。其實下編譯安裝主要就是這幾個步驟。這樣指定后以后配置使用也方便。 寫在前面的話 每次在Linux搭建web環(huán)境都要一頓google求參考文檔,這次索性寫個簡單的文章記錄一下。其實Linux下編譯安裝主要就是這幾個步驟。 安裝編譯工具、依賴包及下載源碼包 解壓編譯 安裝 啟動 準備工作 安裝編譯工具、依賴包...

    MASAILA 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<