CentOS 6.2編譯安裝Nginx1.2.0+MySQL5.5.25+PHP5.3.13

來源:互聯網
上載者:User

標籤:str   源碼包編譯安裝   5.5   curses   software   efi   als   soft   /var   

 CentOS 6.2編譯安裝Nginx1.2.0+MySQL5.5.25+PHP5.3.13
2013-10-24 15:31:12
標籤:伺服器 防火牆 file 設定檔 written

一、配置好IP、DNS 、網關,確保使用遠端連線工具能夠串連伺服器

二、配置防火牆,開啟80連接埠、3306連接埠
1    vi/etc/sysconfig/iptables #編輯防火牆設定檔
1    -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT(允許80連接埠通過防火牆)
2    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT(允許3306連接埠通過防火牆)

特別提示:很多網友把這兩條規則添加到防火牆配置的最後一行,導致防火牆啟動失敗

正確的應該是添加到預設的22連接埠這條規則的下面,添加好之後防火牆規則如下所示:
01    #########################################################
02    # Firewall configuration written by system-config-firewall
03    # Manual customization of this file is not recommended.
04    *filter
05    :INPUT ACCEPT [0:0]
06    :FORWARD ACCEPT [0:0]
07    :OUTPUT ACCEPT [0:0]
08    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
09    -A INPUT -p icmp -j ACCEPT
10    -A INPUT -i lo -j ACCEPT
11    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
12    -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
13    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
14    -A INPUT -j REJECT --reject-with icmp-host-prohibited
15    -A FORWARD -j REJECT --reject-with icmp-host-prohibited
16    COMMIT
17    #########################################################
1    /etc/init.d/iptables restart #最後重啟防火牆使配置生效

三、關閉SELINUX
1    vi/etc/selinux/config #編輯
1    #SELINUX=enforcing #注釋掉
2    #SELINUXTYPE=targeted #注釋掉
3    SELINUX=disabled #增加
4    :wq #儲存退出
1    shutdown-r now #重啟系統

四 、系統約定

軟體原始碼包存放位置:/usr/local/src

源碼包編譯安裝位置:/usr/local/軟體名字

五、下載軟體包

1、下載nginx(目前最新穩定版)

http://nginx.org/download/nginx-1.2.0.tar.gz

2、下載pcre (支援nginx偽靜態)

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.30.tar.gz

3、下載MySQL(目前穩定版)

http://mysql.mirror.kangaroot.net/Downloads/MySQL-5.5/mysql-5.5.25.tar.gz

4、下載php

http://www.php.net/releases/

5、下載cmake(MySQL編譯工具)

http://www.cmake.org/files/v2.8/cmake-2.8.8.tar.gz

6、下載libmcrypt(PHPlibmcrypt模組)

ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz

六、安裝編譯工具及庫檔案(使用CentOS yum命令安裝)

yum install make apr* autoconf automake curl-devel gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel gd kernel keyutils patch perl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-devel ppl cloog-ppl keyutils-libs-devel libcom_err-devel libsepol-devel libselinux-devel krb5-devel zlib-devel libXpm* freetype libjpeg* libpng* php-common php-gd ncurses* libtool* libxml2 libxml2-devel patch freetype-devel


安裝篇


一、安裝cmake
1    cd/usr/local/src
2    tarzxvf cmake-2.8.8.tar.gz
3    cdcmake-2.8.8
4    ./configure
5    make#編譯
6    makeinstall#安裝

二、安裝MySQL
01    groupadd mysql #添加mysql組
02    useradd-g mysql mysql -s /bin/false#建立使用者mysql並加入到mysql組,不允許mysql使用者直接登入系統
03    mkdir-p /data/mysql #建立MySQL資料庫存放目錄
04    chown-R mysql:mysql /data/mysql #設定MySQL資料庫目錄許可權
05    mkdir-p /usr/local/mysql #建立MySQL安裝目錄
06    cd/usr/local/src
07    tarzxvf mysql-5.5.25.tar.gz #解壓
08    cdmysql-5.5.25
09    cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc #配置
10    make#編譯
11    makeinstall#安裝
12    cd/usr/local/mysql
13    cp./support-files/my-huge.cnf /etc/my.cnf #拷貝設定檔(注意:如果/etc目錄下面預設有一個my.cnf,直接覆蓋即可)
14    vi/etc/my.cnf #編輯設定檔,在 [mysqld] 部分增加下面一行
15    datadir = /data/mysql #添加MySQL資料庫路徑
16    :wq! #儲存退出
17    ./scripts/mysql_install_db --user=mysql #產生mysql系統資料庫
18    cp./support-files/mysql.server /etc/rc.d/init.d/mysqld #把Mysql加入系統啟動
19    chmod755 /etc/init.d/mysqld #增加執行許可權
20    chkconfig mysqld on #設定開機啟動
21    vi/etc/rc.d/init.d/mysqld #編輯
22    basedir = /usr/local/mysql #MySQL程式安裝路徑
23    datadir = /data/mysql #MySQl資料庫存放目錄
24    service mysqld start #啟動
25    vi/etc/profile #把mysql服務加入系統內容變數:在最後添加下面這一行
26    exportPATH=$PATH:/usr/local/mysql/bin
27    :wq! #儲存退出
28    下面這兩行把myslq的庫檔案連結到系統預設的位置,在編譯類似PHP等軟體時可以不用指定mysql的庫檔案地址。
29    ln-s /usr/local/mysql/lib/mysql /usr/lib/mysql
30    ln-s /usr/local/mysql/include/mysql /usr/include/mysql
31    shutdown-r now #需要重啟系統,等待系統重新啟動之後繼續在終端命令列下面操作
32    mysql_secure_installation #設定Mysql密碼
33    根據提示按Y 斷行符號(預設密碼為空白)
34    然後輸入2次密碼
35    繼續按Y 斷行符號,直到設定完成
36    或者直接修改密碼/usr/local/mysql/bin/mysqladmin -u root -p password "123456"#修改密碼
37    service mysqld restart #重啟
38    到此,mysql安裝完成!

三、安裝pcre
1    cd/usr/local/src
2    mkdir/usr/local/pcre #建立安裝目錄
3    tarzxvf pcre-8.30.tar.gz
4    cdpcre-8.30
5    ./configure --prefix=/usr/local/pcre #配置
6    make
7    makeinstall

四、安裝 nginx
01    cd/usr/local/src
02    groupadd www #添加www組
03    useradd-g www www -s /bin/false#建立nginx運行賬戶www並加入到www組,不允許www使用者直接登入系統
04    tarzxvf nginx-1.2.0.tar.gz
05    cdnginx-1.2.0
06    ./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-openssl=/usr/ --with-pcre=/usr/local/src/pcre-8.30
07    #注意:--with-pcre=/usr/local/src/pcre-8.30指向的是源碼包解壓的路徑,而不是安裝的路徑,否則會報錯
08    make
09    makeinstall
10    /usr/local/nginx/sbin/nginx #啟動nginx
11    vi/etc/rc.d/init.d/nginx #設定nginx開啟啟動,編輯開機檔案添加下面內容
01    #################################################################
02    #!/bin/bash
03    # nginx Startup script for the Nginx HTTP Server
04    # it is v.0.0.2 version.
05    # chkconfig: - 85 15
06    # description: Nginx is a high-performance web and proxy server.
07    # It has a lot of features, but it‘s not for everyone.
08    # processname: nginx
09    # pidfile: /var/run/nginx.pid
10    # config: /usr/local/nginx/conf/nginx.conf
11    nginxd=/usr/local/nginx/sbin/nginx
12    nginx_config=/usr/local/nginx/conf/nginx.conf
13    nginx_pid=/usr/local/nginx/logs/nginx.pid
14    RETVAL=0
15    prog="nginx"
16    # Source function library.
17    . /etc/rc.d/init.d/functions
18    # Source networking configuration.
19    . /etc/sysconfig/network
20    # Check that networking is up.
21    [ ${NETWORKING} = "no"] && exit0
22    [ -x $nginxd ] || exit0
23    # Start nginx daemons functions.
24    start() {
25    if[ -e $nginx_pid ];then
26    echo"nginx already running...."
27    exit1
28    fi
29    echo-n $"Starting $prog: "
30    daemon $nginxd -c ${nginx_config}
31    RETVAL=$?
32    echo
33    [ $RETVAL = 0 ] && touch/var/lock/subsys/nginx
34    return$RETVAL
35    }
36    # Stop nginx daemons functions.
37    stop() {
38    echo-n $"Stopping $prog: "
39    killproc $nginxd
40    RETVAL=$?
41    echo
42    [ $RETVAL = 0 ] && rm-f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx.pid
43    }
44    reload() {
45    echo-n $"Reloading $prog: "
46    #kill -HUP `cat ${nginx_pid}`
47    killproc $nginxd -HUP
48    RETVAL=$?
49    echo
50    }
51    # See how we were called.
52    case"$1"in
53    start)
54    start
55    ;;
56    stop)
57    stop
58    ;;
59    reload)
60    reload
61    ;;
62    restart)
63    stop
64    start
65    ;;
66    
67    status)
68    status $prog
69    RETVAL=$?
70    ;;
71    *)
72    echo$"Usage: $prog {start|stop|restart|reload|status|help}"
73    exit1
74    esac
75    exit$RETVAL
76    #################################################################
1    :wq! #儲存退出
2    chmod775 /etc/rc.d/init.d/nginx #賦予檔案執行許可權
3    chkconfig nginx on #設定開機啟動
4    /etc/rc.d/init.d/nginx restart #重啟

五、安裝libmcrypt
1    cd/usr/local/src
2    tarzxvf libmcrypt-2.5.7.tar.gz #解壓
3    cdlibmcrypt-2.5.7 #進入目錄
4    ./configure #配置
5    make#編譯
6    makeinstall#安裝

六、安裝php
01    cd/usr/local/src
02    tar-zvxf php-5.3.13.tar.gz
03    cdphp-5.3.13
04    mkdir-p /usr/local/php5 #建立php安裝目錄
05    ./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/tmp/mysql.sock --with-gd --with-iconv --with-zlib --enable-xml --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp--enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl --with-jpeg-dir--with-freetype-dir#配置
06    make#編譯
07    makeinstall#安裝
08    cpphp.ini-production /usr/local/php5/etc/php.ini #複製php設定檔到安裝目錄
09    rm-rf /etc/php.ini #刪除系統內建設定檔
10    ln-s /usr/local/php5/etc/php.ini /etc/php.ini #添加軟連結
11    cp/usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf #拷貝模板檔案為php-fpm設定檔
12    vi/usr/local/php5/etc/php-fpm.conf #編輯
13    user = www #設定php-fpm運行帳號為www
14    group = www #設定php-fpm運行組為www
15    pid = run/php-fpm.pid #取消前面的分號
16    cp/usr/local/src/php-5.3.13/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm #設定 php-fpm開機啟動,拷貝php-fpm到啟動目錄
17    chmod+x /etc/rc.d/init.d/php-fpm #添加執行許可權
18    chkconfig php-fpm on #設定開機啟動
19    vi/usr/local/php5/etc/php.ini #編輯設定檔
20    找到:disable_functions =
21    修改為:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
22    #列出PHP可以禁用的函數,如果某些程式需要用到這個函數,可以刪除,取消禁用。
23    找到:;date.timezone =
24    修改為:date.timezone = PRC #設定時區
25    找到:expose_php = On
26    修改為:expose_php = OFF #禁止顯示php版本的資訊

在編譯PHP的過程中可能會報UNDEFINED REFERENCE TO `LIBICONV_OPEN 無法編譯PHP LIBICONV錯誤.

七、配置nginx支援php
01    vi/usr/local/nginx/conf/nginx.conf #編輯設定檔
02    user www www; #首行user去掉注釋,修改Nginx運行組為www www;必須與/usr/local/php5/etc/php-fpm.conf中的user,group配置相同,否則php運行出錯
03    index index.php index.html index.htm; #添加index.php
04    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
05    #
06    location ~ \.php$ {
07    root html;#此處和server下面root保持一致,預設為html
08    fastcgi_pass 127.0.0.1:9000;
09    fastcgi_index index.php;
10    fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
11    include fastcgi_params;
12    }

注意:取消FastCGI server部分location的注釋,並要注意fastcgi_param行的參數,改為/data/webroot/(此為網站根目錄絕對路徑)$fastcgi_script_name
1    /etc/init.d/nginx restart #重啟nginx

CentOS 6.2編譯安裝Nginx1.2.0+MySQL5.5.25+PHP5.3.13

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.