Ubuntu에 Naginx, PHP5(및 PHP-FPM), MySQL 설치

11009 단어
환경: ubuntu 12.04 LTS nginx(engine x)는 자유롭고 원본을 개방하며 고성능의 HTTP 서버입니다. Nginx는 안정성, 풍부한 기능집합, 간단한 설정, 낮은 자원 소모로 유명합니다. 본고는 ubuntu 12.0.4 LTS에 Nginx, php5(및 php-fpm), mysql를 설치하는 방법을 보여 드리겠습니다.
1. 설치 전에 간단한 설명
내가 사용하는 도메인 이름은 example입니다.com,ip주소는 218.198.177.252입니다.너는 구체적인 상황을 보고 이 설정들을 변경할 수 있다.다음 글에서 루트 권한으로 필요한 소프트웨어를 설치할 것입니다. 따라서 루트 사용자로 전환하십시오: sudo su
2: MySQL 설치
apt-get install mysql-server mysql-client
MySQL 루트 사용자에게 암호를 입력하라는 메시지가 표시됩니다. - 이 암호는root@localhost사용 가능[email protected]또한 사용할 수 있습니다. 따라서 MySQL 루트 사용자에게 수동으로 비밀번호를 지정해야 합니다. New password for the MySQL "root"user: < - yourrootsqlpassword Repeat password for the MySQL "root"user: < - yourrootsqlpassword
3: Nginx 설치
apt-get install nginx
1, nginx/etc/init. 시작d/nginx start
2, 브라우저 입력 열기http://127.0.0.1, Welcome to nginx를 보면,설치가 성공했다는 뜻입니다. ubuntu 12.0.4 LTS에서nginx의 기본 사이트 루트 디렉터리는/usr/share/nginx/www에 있습니다.
4: PHP5 설치
PHP5는nginx에서 PHP-FPM(PHP-FPM(FastCGI Process Manager)을 통해 선택할 수 있는FastCGI로 매우 유용한 특성을 추가하였으며, 특히 바쁜 사이트에서는 유용한 기능을 추가하였다.설명: Nginx는 외부 프로그램에 대한 직접 호출이나 해석을 지원하지 않으며, 모든 외부 프로그램(PHP 포함)은FastCGI 인터페이스를 통해 호출해야 합니다.
apt-get install php5-fpm
PHP-FPM은 수호 프로세스입니다. (init 스크립트 파일은/etc/init.d/php5-fpm) 이것은FastCGI 서버를 실행하고 포트는 9000입니다.
5:nginx를 설정합니다. 다음은 제 컴퓨터의 프로필입니다.
1,nginx의 프로필은/etc/nginx/nginx에 있습니다.conf, vim/etc/nginx/nginx.conf는 다음과 같습니다.

user www-data;        //  Nginx Worker           
<!-- lang: php -->
worker_processes 4;      / /  Nginx      ,  Nginx      10M-20M  。
<!-- lang: php -->
pid /var/run/nginx.pid;    //      id        
<!-- lang: php -->

<!-- lang: php -->
events {                      //    Nginx     ,      
<!-- lang: php -->
           use epoll;       
<!-- lang: php -->
           worker_connections 768;
<!-- lang: php -->
           # multi_accept on;
<!-- lang: php -->
}
<!-- lang: php -->

<!-- lang: php -->
http {
<!-- lang: php -->

<!-- lang: php -->
        ##
<!-- lang: php -->
        # Basic Settings    //     
<!-- lang: php -->
        ##
<!-- lang: php -->

<!-- lang: php -->
        sendfile on;
<!-- lang: php -->
        tcp_nopush on;
<!-- lang: php -->
        tcp_nodelay on;
<!-- lang: php -->
        keepalive_timeout 65;
<!-- lang: php -->
        types_hash_max_size 2048;
<!-- lang: php -->
        # server_tokens off;
<!-- lang: php -->

<!-- lang: php -->
        # server_names_hash_bucket_size 64;
<!-- lang: php -->
        # server_name_in_redirect off;
<!-- lang: php -->

<!-- lang: php -->
        include /etc/nginx/mime.types;
<!-- lang: php -->
        default_type application/octet-stream;
<!-- lang: php -->

<!-- lang: php -->
        ##
<!-- lang: php -->
        # Logging Settings   //         
<!-- lang: php -->
        ##
<!-- lang: php -->

<!-- lang: php -->
        access_log /var/log/nginx/access.log;
<!-- lang: php -->
        error_log /var/log/nginx/error.log;
<!-- lang: php -->

<!-- lang: php -->
        ##
<!-- lang: php -->
        # Gzip Settings         //  Gzip   
<!-- lang: php -->
        ##
<!-- lang: php -->

<!-- lang: php -->
        gzip on;
<!-- lang: php -->
        gzip_disable "msie6";
<!-- lang: php -->

<!-- lang: php -->
         gzip_vary on;
<!-- lang: php -->
         gzip_proxied any;
<!-- lang: php -->
         gzip_comp_level 6;
<!-- lang: php -->
         gzip_buffers 16 8k;
<!-- lang: php -->
         gzip_http_version 1.1;
<!-- lang: php -->
         gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
<!-- lang: php -->

<!-- lang: php -->
        ##
<!-- lang: php -->
        # nginx-naxsi config
<!-- lang: php -->
        ##
<!-- lang: php -->
        # Uncomment it if you installed nginx-naxsi
<!-- lang: php -->
        ##
<!-- lang: php -->

<!-- lang: php -->
        #include /etc/nginx/naxsi_core.rules;
<!-- lang: php -->

<!-- lang: php -->
        ##
<!-- lang: php -->
        # nginx-passenger config
<!-- lang: php -->
        ##
<!-- lang: php -->
        # Uncomment it if you installed nginx-passenger
<!-- lang: php -->
        ##
<!-- lang: php -->

<!-- lang: php -->
        #passenger_root /usr;
<!-- lang: php -->
        #passenger_ruby /usr/bin/ruby;
<!-- lang: php -->

<!-- lang: php -->
        ##
<!-- lang: php -->
        # Virtual Host Configs      //       
<!-- lang: php -->
        ##
<!-- lang: php -->

<!-- lang: php -->
        include /etc/nginx/conf.d/*.conf;
<!-- lang: php -->
        include /etc/nginx/sites-enabled/*;
<!-- lang: php -->

<!-- lang: php -->

<!-- lang: php -->
}
<!-- lang: php -->
#mail {
<!-- lang: php -->
#       # See sample authentication script at:
<!-- lang: php -->
#       # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
<!-- lang: php -->
#
<!-- lang: php -->
#       # auth_http localhost/auth.php;
<!-- lang: php -->
#       # pop3_capabilities "TOP" "USER";
<!-- lang: php -->
#       # imap_capabilities "IMAP4rev1" "UIDPLUS";
<!-- lang: php -->
#
<!-- lang: php -->
#       server {
<!-- lang: php -->
#               listen     localhost:110;
<!-- lang: php -->
#               protocol   pop3;
<!-- lang: php -->
#               proxy      on;
<!-- lang: php -->
#       }
<!-- lang: php -->
#
<!-- lang: php -->
#       server {
<!-- lang: php -->
#               listen     localhost:143;
<!-- lang: php -->
#               protocol   imap;
<!-- lang: php -->
#               proxy      on;
<!-- lang: php -->
#       }
<!-- lang: php -->
#}
<!-- lang: php -->

2, 가상 호스트는 서버 {}에 정의되고 기본 파일은/etc/nginx/sites-available/default,vim/etc/nginx/sites-available/default에 있습니다.
server {
    listen   80; ## listen for ipv4; this line is default and implied
    listen   [::]:80 default ipv6only=on; ## listen for ipv6
    root /usr/share/nginx/www;
    index index.php index.html index.htm;
    # Make site accessible from http://localhost/
    server_name _;
    location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to index.html
            try_files $uri $uri/ /index.html;
    }
    location /doc {
            root /usr/share;
            autoindex on;
            allow 127.0.0.1;
            deny all;
    }
    location /images {
            root /usr/share;
            autoindex off;
    }
    #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 /usr/share/nginx/www;
    }
    # 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$ {
            try_files $uri =404;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi_params;
    }
    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
            deny all;
    }

}
3, 구성 적용/etc/init.d/nginx reload
4, Nginx의 기본 웹 사이트 루트 디렉터리에 PHP 테스트 파일vim/usr/share/nginx/www/info를 만듭니다.php
phpinfo(); ?>
5, 브라우저 입력 열기http://127.0.0.1/info.php
PHP5가 FPM/FastCGI를 통해 일하고 있는 것을 볼 수 있습니다. 구체적으로는 서버 API 줄을 보십시오.아래로 스크롤하면 모든 모듈이 PHP5에서 사용할 수 있음을 알 수 있습니다. MySQL이 열거되지 않은 것은 MySQL이 PHP5를 지원하지 않았다는 것을 의미합니다.
6: MySQL에서 PHP5 지원
1, MySQL에서 PHP5를 지원하고 php5-mysql 패키지를 설치할 수 있습니다.나머지 가방은 필요에 따라 설치할 수 있습니다. apt-cache search php5로 PHP 가방을 열거해 보세요. 그게 당신이 필요로 하는 가방입니다.
2, 필요한 패키지를 선택하여 이렇게 설치: apt-get install php5-mysql php5-curl ph5-gd php5-intl php-pear ph5-imagick ph5-imap ph5-mcrypt php5-memcache php5-ming php5-psp5-pspell php5-pspell php5-recode php5-snmp php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
3, PHP-FPM/etc/init. 재부팅d/php5-fpm restart
4, 브라우저 열기, 입력http://127.0.0.1/info.php, 당신이 설치한 가방이 이미 지원되었는지 확인하세요.
7: PHP-FPM 구성
vim/etc/php5/fpm/php-fpm.conf 또는vim/etc/php5/fpm/conf.d/에서 더 자세한 설정을 하거나 실제 사람의 기본값을 모르면 되고 최적화되지 않습니다.
8:/etc/nginx/sites-available/default에 가상 호스트를 추가합니다.
내 프로파일:
server {
    listen   80 ; ## listen for ipv4; this line is default and implied

listen [::]:80 default ipv6only=on; ## listen for ipv6
    root /web/example;
    index index.php index.html index.htm;

    # Make site accessible from http://localhost/
    server_name 218.198.177.252 example.com ;   //   apache    ,      

    location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to index.html
            try_files $uri $uri/ /index.html;
            # Uncomment to enable naxsi on this location
            # include /etc/nginx/naxsi.rules
    }

    location /doc/ {
            alias /usr/share/doc/;
            autoindex on;
            allow 127.0.0.1;
            deny all;
    }

    # Only for nginx-naxsi : process denied requests
    #location /RequestDenied {
            # For example, return an error code
            #return 418;
    #}

    #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 /web/example;
    }

location ~ .php${//nginx는 정적 페이지를 처리하고FastCGI로 동적으로 전달
    #       fastcgi_split_path_info ^(.+\.php)(/.+)$;
    #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    #
    #       # With php5-cgi alone:
             fastcgi_pass 127.0.0.1:9000;
    #       # With php5-fpm:
    #       fastcgi_pass unix:/var/run/php5-fpm.sock;
             fastcgi_index index.php;
             include fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
            deny all;
    }

}
효과를 봐라, 만약 네가 성공하지 못한다면, 스스로 검사해 봐라...
참고 자료: 1,http://www.howtoforge.com/installing-nginx-with-php5-and-php-fpm-and-mysql-support-on-ubuntu-11.10 2,http://www.howtoforge.com/installing-nginx-with-php5-and-php-fpm-and-mysql-support-on-ubuntu-11.10-p23, "실전 Nginx: Apache를 대체하는 고성능 웹 서버"

좋은 웹페이지 즐겨찾기