linux基礎(二)Apache和Nginx原始碼安裝及報錯處理
Apache安裝步驟
1.下載所依賴檔案
wget -chttp://archive.apache.org/dist/apr/apr-1.6.2.tar.gz wget -chttp://archive.apache.org/dist/apr/apr-util-1.6.1.tar.gz wget -chttps://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz wget -chttp://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.37.tar.gz
2.分別解壓
tar -xfapr-1.6.2.tar.gz tar -xfapr-util-1.6.1.tar.gz tar -xfpcre-8.41.tar.gz tar -xfhttpd-2.4.37.tar.gz
3.進行apr的安裝
[root@myredhat Desktop]# cd apr-1.6.2 [root@myredhat apr-1.6.2]# ./configure --prefix=/usr/local/apr 此時若出現: configure: error: no acceptable C compiler found in $PATH 則: yum install gcc-c++ [root@myredhat apr-1.6.2]# make#繼續安裝三步驟 [root@myredhat apr-1.6.2]# make install
4.apr-util的安裝
[root@myredhat apr-util-1.6.1]./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr [root@myredhat apr-util-1.6.1]# make 此時若出現: xml/apr_xml.c:434: error: ‘apr_xml_parser’ has no member named ‘xp’ xml/apr_xml.c:438: error: ‘apr_xml_parser’ has no member named ‘xp’ xml/apr_xml.c:442: error: ‘apr_xml_parser’ has no member named ‘xp_err’ xml/apr_xml.c:442: error: ‘apr_xml_parser’ has no member named ‘xp’ xml/apr_xml.c: In function ‘apr_xml_parser_geterror’: xml/apr_xml.c:500: error: ‘apr_xml_parser’ has no member named ‘xp_err’ xml/apr_xml.c:500: error: ‘apr_xml_parser’ has no member named ‘xp_err’ make[1]: *** [xml/apr_xml.lo] Error 1 make[1]: Leaving directory `/root/Desktop/apr-util-1.6.1' make: *** [all-recursive] Error 1 則執行:yum -y install expat-devel [root@myredhat apr-util-1.6.1]# make#繼續三步驟 [root@myredhat apr-util-1.6.1]# make install 若在make中出現錯誤:則清除快取:make clean後執行相對應的操作
5.pcre的安裝
[root@myredhat Desktop]# cd pcre-8.41 [root@myredhat pcre-8.41]# ./configure --prefix=/usr/local/pcre [root@myredhat pcre-8.41]# make [root@myredhat pcre-8.41]# make install
6.apache的安裝
[root@myredhat Desktop]# cd httpd-2.4.37 [root@myredhat httpd-2.4.37]# ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre 若出現: checking for pcre-config... false configure: error: pcre-config for libpcre not found. PCRE is required and available from [http://pcre.org/](http://pcre.org/) 則執行:yum –y install pcre-devel 後重新執行上一步 [root@myredhat httpd-2.4.37]# make 在編譯時:若出現: /usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_StopParser' /usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_Parse' /usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_ErrorString' /usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_SetElementHandler' collect2: error: ld returned 1 exit status make[2]: *** [htpasswd] 錯誤 1 make[2]: 離開目錄“/usr/local/src/httpd-2.4.28/support” make[1]: *** [all-recursive] 錯誤 1 make[1]: 離開目錄“/usr/local/src/httpd-2.4.28/support” make: *** [all-recursive] 錯誤 1 則: 安裝yum install -y libxml2-devel 後執行: [root@myredhat httpd-2.4.37]# rm -rf /usr/local/apr-util [root@myredhat Desktop]# cd apr-util-1.6.1 # 這一步很重要,必須清除之前配置時的快取 [root@myredhat apr-util-1.6.1]# make clean [root@myredhat apr-util-1.6.1] ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr [root@myredhat apr-util-1.6.1] make ;make install 然後進入:http目錄 make clean#清除快取 重新./configure配置安裝 make && make install yum –yinstall gcc-c++ expat-develpcre-devel
Nginx安裝步驟
1.使用yum安裝依賴檔案
yum -y install openssl-devel pcre-devel 注:使用yum安裝openssl-devel時,會自動安裝openssl,依次只用安裝openssl-devel就好
2.下載Nginx
wget -q http://nginx.org/download/nginx-1.6.3.tar.gz
3.解壓安裝
tar xfnginx-1.6.3.tar.gz cdnginx-1.6.3 ./configure --prefix=/application/nginx--user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module 注: --prefix=安裝位置 --user=USER 程序使用者許可權 --group=GROUP程序使用者組許可權 --with-http_stub_status_module 啟用狀態資訊 --with-http_ssl_module啟用ssl功能
4.啟動Nginx
/application/nginx/sbin/nginx –t
若出現:
nginx: [emerg] getpwnam("nginx") failed
則需要建立對應使用者
useradd nginx -s /sbin/nologin –M
注:-s指定預設的shell直譯器-M不建立家目錄
啟動Nginx:
/application/nginx/sbin/nginx
或者
/application/nginx/sbin/nginx-s reload
若第二種方式出現:
nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
則
/application/nginx/sbin/nginx-c/application/nginx/conf/nginx.conf 注;此時就會平滑重啟,但是stop後又無法平滑重啟
關閉Nginx:
/application/nginx/sbin/nginx-sstop