跳至內容
阿里BaBa電腦筆記
使用者工具
登入
網站工具
工具
顯示頁面
舊版
反向連結
最近更新
多媒體管理器
網站地圖
登入
最近更新
多媒體管理器
網站地圖
足跡:
linux:web:nginx
本頁是唯讀的,您可以看到原始碼,但不能更動它。您如果覺得它不應被鎖上,請詢問管理員。
======Nginx網頁伺服器安裝====== 通常Linux環境下的網頁伺服器,預設是Apache為主。為了追求高效能及穩定高情況之下,Apache伺服器執行的品質就不是很好,因此俄羅斯的一個軟體公司就開發一款名為 [[wp>nginx|Nginx]]網頁伺服器。本篇主要介紹LNMP(Linux+Nginx+Mysql+PHP)安裝,以編譯方式來安裝Nginx、MySQL及PHP這三套軟體。 =====安裝前需的軟體工具===== - 增加新Repos (ex:[[http://www.howtoforge.com/installing-nginx-with-php5-and-php-fpm-and-mysql-support-on-centos-6.0|HowtoForge]]) - 下載Gcc,gcc-c++(編譯工具),libjpeg,libjpeg-devel...等等 <code bash 1> sudo bash LANG=C yum install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers </code> =====MySQL安裝===== * 安裝前先檢查,確定有bison及cmake這兩個套件 <code bash> rpm -qa|egrep '(bison|cmake)' </code> * 解壓縮 mysql-5.5.16.tar.gz後,執行cmake參數設定。可參考([[http://forge.mysql.com/wiki/Autotools_to_CMake_Transition_Guide|./configure與cmake差異對照]]) - 以下幾個常用參數-DCMAKE_INSTALL_PREFIX **指定mysql要安裝在哪個目錄** - DMYSQL_DATADIR **指定Mysql資料庫位置** - -DMYSQL_TCP_PORT **指定與Mysql伺服器連線所用的阜口。預設是3306** - -DMYSQL_UNIX_ADDR **使用UNIX socket file** - -DDEFAULT_CHARSET=utf8 **指定預設使用UTF8編碼** - -DDEFAULT_COLLATION=utf8_general_ci **指定Default collation 編碼** - -DEXTRA_CHARSETS=all **default is "all"** - -DMYSQL_USER=mysql **mysql is the default** - -DWITH_INNOBASE_STORAGE_ENGINE=1 **開啟InnoDB儲存引擎** - -DWITH_READLINE **開啟Readline函數庫** - -DWITH_SSL=system **開啟SSL library** <code bash> [root@yao88 src]#tar zxvf mysql-5.5.16.tar.gz [root@yao88 mysql-5.5.16]#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DMYSQL_TCP_PORT=3306 \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DEXTRA_CHARSETS=all \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_EMBEDDED_SERVER=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DWITH_SSL=system \ -DWITHOUT_PARTITION_STORAGE_ENGINE=1 \ </code> * 開始編譯及安裝 <code bash> [root@yao88 mysql-5.5.16]#make [root@yao88 mysql-5.5.16]#make install </code> * 建立系統帳號使用者集群組,並改變/usr/local/mysql權限 <code> #groupadd mysql #useradd -s /bin/nologin -r -g mysql mysql #cd /usr/local/mysql #chown -R mysql . #chgrp -R mysql . </code> * 新增Mysql資料庫,指定以使用者mysql帳號登入 <code> #/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data (此資料庫會建立在 /var/lib/mysql) </code> * 複製mysql設定檔、啟動檔及Binary檔 <code> #cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf #cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld #ln -s /usr/local/mysql/bin/mysql /bin/mysql </code> * 測試看看!啟動mysql伺服器 <code> #/etc/init.d/mysqld start </code> =====PHP安裝(包含FastCGI)===== - [[http://tw2.php.net/get/php-5.3.8.tar.bz2/from/tw.php.net/mirror|php-5.3.8套件版本]] - 安裝php前,所需套件 * [[http://blog.s135.com/soft/linux/nginx_php/libiconv/libiconv-1.14.tar.gz|libiconv-1.14]] * [[http://blog.s135.com/soft/linux/nginx_php/mcrypt/libmcrypt-2.5.8.tar.gz|libmcrypt-2.5.8]] * [[http://blog.s135.com/soft/linux/nginx_php/mhash/mhash-0.9.9.9.tar.gz|mhash-0.9.9.9]] * [[http://blog.s135.com/soft/linux/nginx_php/mcrypt/mcrypt-2.6.8.tar.gz|mcrypt-2.6.8 ]] =====安裝php前 所需套件==== * libiconv-1.13.1 <code> # cd libiconv-1.13.1/ #./configure #make #make install </code> * libmcrypt-2.5.8 <code> #cd libmcrypt-2.5.8/ #./configure #make #make install #ldconfig #cd libltdl/ #./configure --enable-ltdl-install #make #make install </code> * mhash-0.9.9.9 <code> #cd mhash-0.9.9.9/ #./configure #make #make install </code> * mcrypt-2.6.8 <code> 連結libmcrypt及mhash相關函數到 /usr/lib64/ (本文實作於64位元;若是32位元是在/usr/lib/) #ln -s /usr/local/lib/libmcrypt.la /usr/lib64/libmcrypt.la #ln -s /usr/local/lib/libmcrypt.so /usr/lib64/libmcrypt.so #ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib64/libmcrypt.so.4 #ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib64/libmcrypt.so.4.4.8 #ln -s /usr/local/lib/libmhash.a /usr/lib64/libmhash.a #ln -s /usr/local/lib/libmhash.la /usr/lib64/libmhash.la #ln -s /usr/local/lib/libmhash.so /usr/lib64/libmhash.so #ln -s /usr/local/lib/libmhash.so.2 /usr/lib64/libmhash.so.2 #ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib64/libmhash.so.2.0.1 #ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config #cd mcrypt-2.6.8 #./configure #make #make install </code> * 增加mysql相關函式庫到 /usr/lib64/mysql(本文實作於64位元;若是32位元是在/usr/lib/mysql/) <code> #ln -s /usr/local/mysql/lib/libmysqlclient.a /usr/lib64/mysql/libmysqlclient.a #ln -s /usr/local/mysql/lib/libmysqlclient_r.a /usr/lib64/mysql/libmysqlclient_r.a #ln -s /usr/local/mysql/lib/libmysqlclient_r.so /usr/lib64/mysql/libmysqlclient_r.so #ln -s /usr/local/mysql/lib/libmysqlclient_r.so.18 /usr/lib64/mysql/libmysqlclient_r.so.18 #ln -s /usr/local/mysql/lib/libmysqlclient_r.so.18.0.0 /usr/lib64/mysql/libmysqlclient_r.so.18.0.0 #ln -s /usr/local/mysql/lib/libmysqlclient.so /usr/lib64/mysql/libmysqlclient.so #ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/mysql/libmysqlclient.so.18 #ln -s /usr/local/mysql/lib/libmysqlclient.so.18.0.0 /usr/lib64/mysql/libmysqlclient.so.18.0.0 #ln -s /usr/local/mysql/lib/libmysqld.a /usr/lib64/mysql/libmysqld.a #ln -s /usr/local/mysql/lib/libmysqlservices.a /usr/lib64/mysql/libmysqlservices.a #ln -s /usr/local/mysql/lib/plugin/ /usr/lib64/mysql/plugin </code> *開始編譯PHP主程式 <code> php5.3.3版本之後,php-fpm模組已經包含在原始碼中了,不必透過patch再執行編譯。 #cd php-5.3.8 #./configure --prefix=/usr/local/php \ (指php安裝目錄) -> --with-config-file-path=/usr/local/php/etc \ (指php設定檔安裝位置) -> --with-mysql=/usr/local/mysql \ (指mysql安裝的地方) -> --with-mysqli=/usr/local/mysql/bin/mysql_config \ (指 mysqli 資料庫連線執行檔) -> --with-iconv-dir=/usr/local \ (打開文字編碼自符集間的轉換) -> --with-freetype-dir \ (打開對freetype字體庫的支持) -> --with-jpeg-dir \ (打開jpeg圖片的支持) -> --with-png-dir \ (打開png圖片的支持) -> --with-zlib \ (zlib庫的支持) -> -with-curl \ (curl瀏覽工具的支持) -> --with-curlwrappers \(curl工具打開url流) -> --with-libXML-dir \ (xml函式庫支持) -> --enable-xml \ (允許xml函式庫) -> --disable-rpath \ ( 關閉額外的運行庫文件) -> --enable-safe-mode \ (打開安全模式) -> --enable-bcmath \ (圖片大小調整) -> --enable-shmop \ -> --enable-sysvsem \ -> --enable-fpm \ (允許php-fpm) -> --enable-fastcgi \ (支持fastcgi方式啟動PHP) -> --enable-force-cgi-redirect \ -> --enable-inline-optimization \ -> --enable-mbregex \ -> --enable-mbstring \ (多字節,字符串的支持) -> --with-mcrypt \ (mcrypt 演算法) -> --with-gd \ (gd圖形) -> --enable-gd-native-ttf \ (支持TrueType字符串函數庫) -> --with-openssl \ (安全 ssl) -> --with-mhash \ (mhash 演算法) -> --enable-pcntl \ (連結mysql用到的) -> --enable-sockets \(打開復口支持) -> --with-ldap \ (ldap支持) -> --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap </code> <code> #make #make install </code> =====Nginx安裝===== * 先確定系統是否安裝pcre函式庫套件<code 1>#rpm -qi pcre</code> * 承第一項,若沒有pcre函式庫就安裝它<code 1>#yum -y install pcre</code> * 編譯安裝Nginx<code 1>#./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module # make && make install </code> * 新增使用者及群組名為www(系統帳號)<code 1>#useradd -s /sbin/nologin -d /usr/local/nginx/html -r www </code> * 複製php-fpm及nginx啟動檔<code 1>#cp -a /usr/local/php/sbin/php-fpm /etc/init.d/php-fpm #cp -a /usr/local/nginx/sbin/nginx /etc/init.d/nginx </code> * 修改nginx設定檔<code 1>#vim /usr/local/nginx/conf/nginx.conf </code><code 1>user www; #剛新增系統帳號 worker_processes 5; #error_log logs/error.log; #error_log logs/error.log notice; error_log /usr/local/nginx/logs/error.log info; pid /usr/local/nginx/logs/nginx.pid; #nginx啟動時,會給定一個程序ID events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; #Web server Port server_name andy; #主機名稱 #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm index.php; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; #執行 *.php 程式所使用的Port fastcgi_index index.php; #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443; # server_name localhost; # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_timeout 5m; # ssl_protocols SSLv2 SSLv3 TLSv1; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }</code> * 啟動 nginx及php-fpm服務及檢查服務的PORT是否有啟動<code 1>#/etc/init.d/nginx #/etc/init.d/php-fpm #netstat -tulnp|egrep '(80|9000)' </code> =====參考資料===== * [[http://blog.s135.com/nginx_php_v6/| Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建勝過Apache十倍的Web服務器]] * [[http://goodtool.blogspot.com/2011/08/mysql-5515.html|MySQL 5.5.15 原始碼 安裝 ]] * [[http://hi.baidu.com/emryslu/blog/item/b6e40bfeb46748e7fd037fd8.html|編譯安裝 mysql5.5]] * [[http://huangyu.blog.51cto.com/1021686/288093|php編譯參數解釋]] * [[http://netkiller.sourceforge.net/zh-tw/freebsd/php-fpm.html|編譯安裝 php 與 php-fpm]] * [[http://wiki.nginx.org/NginxChs#.E4.B8.BB.E8.A6.81.E6.96.87.E6.A1.A3|Cn_Nginx_wiki]] * [[http://www.thismail.org/bbs/thread-3002-1-1.html|nginx 上設定可執行 perl cgi 環境的過程]] * [[http://www.howtocn.org/nginx|Nginx How to(中文)]] * [[http://blog.luwenju.com/99.html|Nginx支持CGI]] * [[http://www.reistlin.com/blog/301|Nginx Http Proxy 代理服務器配置]]
linux/web/nginx.txt
· 上一次變更: 2013/07/06 01:28 (外部編輯)
頁面工具
顯示頁面
舊版
反向連結
回到頁頂