Skip to content

The how to article below describes installing the usual components for the LAMP stack (Linux, Apache, MySQL, and PHP), however the Apache part is exchanged for Nginx.

Make sure the apt sources are up to date before installing:

$ sudo apt-get update

MySQL Configuration

Install MySQL:

$ sudo apt-get install -y mysql-server mysql-client

You will be asked to enter a “root” password for the MySQL server. Generate a strong password, type it in, and keep note of it for future reference.

PHP Configuration

To use PHP with Nginx, you require the PHP5-CGI package. Install PHP with php5-cgi and any other modules that you may require:

$ sudo apt-get install -y php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick \
php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode \
php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-json

Note: You can modify the above command to add/remove individual PHP packages if needed. The php5-cgi package is however required when used with Nginx.

Download and set up the php-fastcgi init script for Ubuntu, using the following commands:

$ cd /etc/init.d
$ sudo wget -O php-fastcgi http://www.networkinghowtos.com/wp-content/uploads/scripts/php-fastcgi
$ sudo chmod +x php-fastcgi
$ sudo update-rc.d -f php-fastcgi defaults

The source for this file and more details can be found on the following page:
http://www.networkinghowtos.com/howto/ubuntu-php-fastcgi-init-script/

Start (or Restart) PHP Fast CGI:

$ sudo /etc/init.d/php-fastcgi restart

NGiNX Configuration

Install Nginx:

$ sudo apt-get install -y nginx

Edit the Nginx configuration file so that it knows what to do with .PHP files:

$ sudo nano /etc/nginx/sites-available/default

There will be a section with the heading starting with “pass the PHP scripts to FastCGI server” as seen below:

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
                #fastcgi_pass   127.0.0.1:9000;
                #fastcgi_index  index.php;
                #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
                #includefastcgi_params;
        #}

Uncomment the lines as shown below, and modify the “fastcgi_param” line to reflect your website folder path. In my example I am using /var/www.

Also take note of the space added to the “include” line. For some reason the example code in the config file was missing the space. Add this space (or tab) as per the below example.

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;
                include fastcgi_params;
        }

Save and exit the editor.

Please note that there could be potential security issues with this generic base configuration (particularly if you are running a publicly accessible website, and allow file uploads). If you would like further information on this, please read the blog post at https://nealpoole.com/blog/2011/04/setting-up-php-fastcgi-and-nginx-dont-trust-the-tutorials-check-your-configuration/ and also read through the Nginx documentation.

Start Nginx:

$ sudo /etc/init.d/nginx start

Conclusion and Testing

Create a .php file containing the following PHP code and save it in your website folder and call it test.php (/var/www/test.php in my example.):

1 <?php
2    phpinfo();
3 ?>

Load up your site in a browser, and add the file /test.php to the url, and make sure it comes up with the usual PHP information page, and not just the source code for the .php file you created.

You should now have a working Nginx, PHP, and MySQL stack. Read the Nginx documentation for more detailed configuration options.

The Nginx documentation can be found on the Nginx website at http://nginx.org/

profile

일요일은 짜빠게뤼~ 먹는날~^^

엮인글 :
http://adminplay.com/193433/cb8/trackback
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
267 time.bora.net 시간 동기화후 dovecot 데몬이 죽는 현상 해결 ADMINPLAY 2009-04-27 23932
266 [Linux] too many files 에러가 날때 ADMINPLAY 2009-09-20 23867
265 DRBD(Distributed Replicated Block Device) 에 대해서 ADMINPLAY 2012-01-16 23794
264 [Linux]RedHat Enterprise Linux 5 계열 VNC Server 설정 ADMINPLAY 2009-09-25 23752
263 리눅스에서 실수로 삭제한 파일을 복구 ADMIN 2008-12-10 23636
262 kernel: nf_conntrack: table full, dropping packet. ADMINPLAY 2009-11-26 23625
261 리눅스 로그파일 관리 [로그파일 삭제하는 방법] ADMINPLAY 2009-07-31 23580
260 libphp4.so: cannot restore segment prot after reloc: P... ADMINPLAY 2011-02-07 23577
259 리눅스 쓸데없는 파일,로그파일 주기적으로 삭제하기 ADMINPLAY 2009-07-02 23572
258 포트 포워딩 도구 ipmasqadm file ADMINPLAY 2009-09-08 23548
257 리눅스에서 베드섹터 검사명령어 ADMINPLAY 2009-08-18 23545
256 eAccelerator설치와 PHP 성능 향상 분석 ADMINPLAY 2011-06-22 23529
255 vi 이용한 파일내용 일괄변경 ADMINPLAY 2010-08-10 23526
254 서버 점검 : 자원 및 apache, mysql ADMIN 2008-12-10 23513
253 LVS 기능 및 장점과 설치프로그램 및 적용사이트 ADMINPLAY 2009-11-04 23437
252 Linux 파일 오픈 갯수 확인 ADMINPLAY 2009-05-10 23422
251 X-window 설치 ADMINPLAY 2010-03-24 23413
250 single mode readonly 파티션 rw로 다시 마운트 ADMINPLAY 2008-12-10 23354
249 인터넷 속도 단위 (bps, cps) ADMINPLAY 2009-08-03 23339
248 FreeBSD SSH 접속 안되요 ADMINPLAY 2009-07-14 23322

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234