首页 > 代码库 > linux下nginx+php+mysql环境搭建

linux下nginx+php+mysql环境搭建

linux下nginx+php+mysql环境搭建 ++++++++++++++++++++++++++++++++++++++++++++++ 操作系统    : [CentOS6.0] 服务器     : [nginx-1.1.8] PHP      : [php-5.2.6] 数据库     : [mysql-5.1.59] ++++++++++++++++++++++++++++++++++++++++++++++ 准备安装软件(download)  1>[nginx-1.1.8]       http://nginx.org/download/nginx-1.1.8.tar.gz  2>[php-5.2.6]       http://museum.php.net/php5/php-5.2.6.tar.gz  3>[php-5.2.6-fpm-0.5.8.diff.gz]       http://php-fpm.org/downloads/php-5.2.6-fpm-0.5.8.diff.gz  4>[mysql-5.1.59]       http://downloads.mysql.com/archives/mysql-5.1/mysql-5.1.59.tar.gz  5>[libxml2-2.6.30]       http://download.chinaunix.net/down.php?id=28491&ResourceID=6095&site=1  6>[libmcrypt-2.5.8]       http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz/download  7>[zlib-1.2.3]       http://sourceforge.net/projects/libpng/files/zlib/1.2.3/zlib-1.2.3.tar.gz/download  8>[libpng-1.2.31]       http://files.directadmin.com/services/custombuild/libpng-1.2.31.tar.gz  9>[jpegsrc.v6b]       http://download.chinaunix.net/down.php?id=10021&ResourceID=5095&site=1 10>[freetype-2.3.5]        http://nongnu.askapache.com/freetype/freetype-2.3.5.tar.gz 11>[autoconf-2.61]        http://ftp.gnu.org/gnu/autoconf/autoconf-2.61.tar.gz 12>[gd-2.0.35]        http://code.google.com/p/google-desktop-for-linux-mirror/downloads/detail?name=gd-2.0.35.tar.gz&can=2&q= 13>[ncurses-5.6]        http://ftp.gnu.org/gnu/ncurses/ncurses-5.6.tar.gz 14>[pcre-8.10]        http://sourceforge.net/projects/pcre/files/pcre/8.10/pcre-8.10.tar.gz/download 15>[openssl-1.0.0e]        http://www.openssl.org/source/openssl-1.0.0e.tar.gz +++++++++++++++++++++++++++++++++++++++++++++ 1>【安装gcc, gcc-c++】

[html] view plaincopyprint?
  1. yum install gcc  
  2. yum install gcc-c++  
yum install gccyum install gcc-c++

2>【开放80、3306、22端口】

[html] view plaincopyprint?
  1. #关闭防火墙  
  2. service iptables stop  
  3. vi /etc/sysconfig/iptables  
  4. #添加  
  5. -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT  
  6. -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT  
  7. -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT  
  8. #重启防火墙  
  9. service iptables restart  
#关闭防火墙service iptables stopvi /etc/sysconfig/iptables#添加-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT#重启防火墙service iptables restart

3>【建立lamp/src目录, 将源码包上传】 4>【安装libxml2】

[html] view plaincopyprint?
  1. tar -zxvf libxml2-2.6.30.tar.gz  
  2. cd libxml2-2.6.30  
  3. ./configure --prefix=/usr/local/libxml2/  
  4. make   
  5. make install  
tar -zxvf libxml2-2.6.30.tar.gzcd libxml2-2.6.30./configure --prefix=/usr/local/libxml2/make make install

5>【安装libmcrypt】

[html] view plaincopyprint?
  1. tar -zxvf libmcrypt-2.5.8.tar.gz  
  2. cd libmcrypt-2.5.8  
  3. ./configure --prefix=/usr/local/libmcrypt/ --enable-ltdl-install  
  4. make  
  5. make install  
tar -zxvf libmcrypt-2.5.8.tar.gzcd libmcrypt-2.5.8./configure --prefix=/usr/local/libmcrypt/ --enable-ltdl-installmakemake install

6>【安装libxml2-devel】

[html] view plaincopyprint?
  1. yum install libxml2-devel  
yum install libxml2-devel

7>【安装zlib】

[html] view plaincopyprint?
  1. tar -zxvf zlib-1.2.3.tar.gz  
  2. cd zlib-1.2.3  
  3. ./configure  
  4. make  
  5. make install  
tar -zxvf zlib-1.2.3.tar.gzcd zlib-1.2.3./configuremakemake install

8>【安装libpng】

[html] view plaincopyprint?
  1. tar -zxvf libpng-1.2.31.tar.gz  
  2. cd libpng-1.2.31  
  3. ./configure --prefix=/usr/local/libpng/  
  4. make  
  5. make install  
tar -zxvf libpng-1.2.31.tar.gzcd libpng-1.2.31./configure --prefix=/usr/local/libpng/makemake install

9>【安装jpegsrc.v6b】

[html] view plaincopyprint?
  1. mkdir /usr/local/jpeg6  
  2. mkdir /usr/local/jpeg6/bin  
  3. mkdir /usr/local/jpeg6/lib  
  4. mkdir /usr/local/jpeg6/include  
  5. mkdir -p /usr/local/jpeg6/man/man1  
  6.   
  7. tar -zxvf jpegsrc.v6b.tar.gz  
  8. cd jpeg-6b  
  9. ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static  
  10. make  
  11. make install  
mkdir /usr/local/jpeg6mkdir /usr/local/jpeg6/binmkdir /usr/local/jpeg6/libmkdir /usr/local/jpeg6/includemkdir -p /usr/local/jpeg6/man/man1tar -zxvf jpegsrc.v6b.tar.gzcd jpeg-6b./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-staticmakemake install

10>【安装freetype】

[html] view plaincopyprint?
  1. tar -zxvf freetype-2.3.5.tar.gz  
  2. cd freetype-2.3.5  
  3. ./configure --prefix=/usr/local/freetype/  
  4. make  
  5. make install  
tar -zxvf freetype-2.3.5.tar.gzcd freetype-2.3.5./configure --prefix=/usr/local/freetype/makemake install

11>【安装autoconf】

[html] view plaincopyprint?
  1. tar -zxvf autoconf-2.61.tar.gz  
  2. cd autoconf-2.61  
  3. ./configure  
  4. make  
  5. make install  
tar -zxvf autoconf-2.61.tar.gzcd autoconf-2.61./configuremakemake install

12>【安装gd】

[html] view plaincopyprint?
  1. tar -zxvf gd-2.0.35.tar.gz  
  2. cd gd-2.0.35  
  3. ./configure --prefix=/usr/local/gd2/ --with-jpeg=/usr/local/jpeg6/ --with-freetype=/usr/local/freetype/  
  4. make  
  5. make install  
tar -zxvf gd-2.0.35.tar.gzcd gd-2.0.35./configure --prefix=/usr/local/gd2/ --with-jpeg=/usr/local/jpeg6/ --with-freetype=/usr/local/freetype/makemake install

13>【pcre-8.10】

[html] view plaincopyprint?
  1. tar -zxvf pcre-8.10.tar.gz  
  2. cd pcre-8.10  
  3. ./configure  
  4. make  
  5. make install  
tar -zxvf pcre-8.10.tar.gzcd pcre-8.10./configuremakemake install

14>【安装openssl】

[html] view plaincopyprint?
  1. tar -zxvf openssl-1.0.0e.tar.gz  
  2. cd openssl-1.0.0e  
  3. ./config --prefix=/usr/local/openssl  
  4. make  
  5. make install  
tar -zxvf openssl-1.0.0e.tar.gzcd openssl-1.0.0e./config --prefix=/usr/local/opensslmakemake install

15>【安装nginx】

[html] view plaincopyprint?
  1. groupadd www  
  2. useradd -g www www  
  3. tar -zxvf nginx-1.1.8.tar.gz  
  4. cd nginx-1.1.8  
  5. ./configure --user=www --group=www --prefix=/usr/local/nginx --with-openssl=/lamp/src/openssl-1.0.0e --with-http_stub_status_module --with-http_ssl_module   
  6. make  
  7. make install  
groupadd wwwuseradd -g www wwwtar -zxvf nginx-1.1.8.tar.gzcd nginx-1.1.8./configure --user=www --group=www --prefix=/usr/local/nginx --with-openssl=/lamp/src/openssl-1.0.0e --with-http_stub_status_module --with-http_ssl_module makemake install

16>【安装ncurses】

[html] view plaincopyprint?
  1. tar -zxvf ncurses-5.6.tar.gz  
  2. cd ncurses-5.6  
  3. ./configure --with-shared --without-debug --without-ada --enable-overwrite  
  4. make  
  5. make install  
tar -zxvf ncurses-5.6.tar.gzcd ncurses-5.6./configure --with-shared --without-debug --without-ada --enable-overwritemakemake install

17>【安装mysql】

[html] view plaincopyprint?
  1. groupadd mysql  
  2. useradd -g mysql mysql  
  3. tar -zxvf mysql-5.1.59.tar.gz  
  4. cd mysql-5.1.59  
  5. ./configure --prefix=/usr/local/mysql/ --with-extra-charsets=all  
  6. make  
  7. make install  
  8.   
  9. cp support-files/my-medium.cnf /etc/my.cnf  
  10. /usr/local/mysql/bin/mysql_install_db --user=mysql  
  11. chown -R root /usr/local/mysql  
  12. chown -R mysql /usr/local/mysql/var  
  13. chgrp -R mysql /usr/local/mysql  
  14.   
  15. /usr/local/mysql/bin/mysqld_safe  --user=mysql &  
  16. cp /lamp/src/mysql-5.1.59/support-files/mysql.server /etc/rc.d/init.d/mysqld  
  17. chown root.root /etc/rc.d/init.d/mysqld  
  18. chmod 755 /etc/rc.d/init.d/mysqld  
  19. chkconfig --add mysqld  
  20. chkconfig --list mysqld  
  21. chkconfig --levels 245 mysqld off  
  22.   
  23. #配置mysql  
  24. cd /usr/local/mysql  
  25. #简单的测试  
  26. bin/mysqladmin version  
  27. #查看所有mysql参数  
  28. bin/mysqladmin Variables  
  29. #没有密码可以直接登录本机服务器  
  30. bin/mysql -uroot  
  31. DELETE FROM mysql.user WHERE Host=‘localhost‘ AND User=‘‘;  
  32. FLUSH PRIVILEGES;  
  33. #设置root密码为123456  
  34. SET PASSWORD FOR ‘root‘@‘localhost‘ = PASSWORD(‘123456‘);  
  35. #配置可远程连接mysql  
  36. use mysql  
  37. SELECT user,password,host FROM user;  
  38. DELETE FROM user WHERE host=‘localhsot.localdomain‘  
  39. DELETE FROM user WHERE host=‘127.0.0.1‘;  
  40. UPDATE user SET host=‘%‘ WHERE user=‘root‘;  
  41. #重启mysql  
  42. service mysqld restart  
groupadd mysqluseradd -g mysql mysqltar -zxvf mysql-5.1.59.tar.gzcd mysql-5.1.59./configure --prefix=/usr/local/mysql/ --with-extra-charsets=allmakemake installcp support-files/my-medium.cnf /etc/my.cnf/usr/local/mysql/bin/mysql_install_db --user=mysqlchown -R root /usr/local/mysqlchown -R mysql /usr/local/mysql/varchgrp -R mysql /usr/local/mysql/usr/local/mysql/bin/mysqld_safe  --user=mysql &cp /lamp/src/mysql-5.1.59/support-files/mysql.server /etc/rc.d/init.d/mysqldchown root.root /etc/rc.d/init.d/mysqldchmod 755 /etc/rc.d/init.d/mysqldchkconfig --add mysqldchkconfig --list mysqldchkconfig --levels 245 mysqld off#配置mysqlcd /usr/local/mysql#简单的测试bin/mysqladmin version#查看所有mysql参数bin/mysqladmin Variables#没有密码可以直接登录本机服务器bin/mysql -urootDELETE FROM mysql.user WHERE Host=‘localhost‘ AND User=‘‘;FLUSH PRIVILEGES;#设置root密码为123456SET PASSWORD FOR ‘root‘@‘localhost‘ = PASSWORD(‘123456‘);#配置可远程连接mysqluse mysqlSELECT user,password,host FROM user;DELETE FROM user WHERE host=‘localhsot.localdomain‘DELETE FROM user WHERE host=‘127.0.0.1‘;UPDATE user SET host=‘%‘ WHERE user=‘root‘;#重启mysqlservice mysqld restart

18>【安装php】

[html] view plaincopyprint?
  1. tar -zxvf php-5.2.6.tar.gz  
  2. gzip -cd php-5.2.6-fpm-0.5.8.diff.gz | patch -d php-5.2.6 -p1  
  3.   
  4. cd php-5.2.6  
  5. ./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-mysql=/usr/local/mysql/ --with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg6/ --with-freetype-dir=/usr/local/freetype/ --with-gd=/usr/local/gd2/ --with-mcrypt=/usr/local/libmcrypt/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets --enable-fastcgi --enable-fpm  
  6. make  
  7. make install  
  8. cp php.ini-dist /usr/local/php/etc/php.ini  
  9. #修改php-fpm.conf  
  10. vi /usr/local/php/etc/php-fpm.conf  
  11. #查找63,66行将注释去掉  
  12. <value name="user">nobody</value>  
  13. <value name="group">nobody</value>  
  14. #启动php  
  15. /usr/local/php/sbin/php-fpm start  
tar -zxvf php-5.2.6.tar.gzgzip -cd php-5.2.6-fpm-0.5.8.diff.gz | patch -d php-5.2.6 -p1cd php-5.2.6./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-mysql=/usr/local/mysql/ --with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg6/ --with-freetype-dir=/usr/local/freetype/ --with-gd=/usr/local/gd2/ --with-mcrypt=/usr/local/libmcrypt/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets --enable-fastcgi --enable-fpmmakemake installcp php.ini-dist /usr/local/php/etc/php.ini#修改php-fpm.confvi /usr/local/php/etc/php-fpm.conf#查找63,66行将注释去掉<value name="user">nobody</value><value name="group">nobody</value>#启动php/usr/local/php/sbin/php-fpm start

19>【nginx配置】

[html] view plaincopyprint?
  1. vi /usr/local/nginx/conf/nginx.conf  
  2. #在server下找到location / 修改解析PHP文件存放的路径, 修改为:  
  3. location / {  
  4.         root   /var/www/html;  
  5.         index  index.html index.htm index.php;  
  6. }  
  7. #root表示虚拟目录设置为/var/www/html,增加默认解析index.php  
  8. #在server下找到location ~ /.php$ 修改php解释器FastCGI配置,修改为:  
  9. location ~ \.php$ {  
  10.             root           /var/www/html;  
  11.             fastcgi_pass   127.0.0.1:9000;  
  12.             fastcgi_index  index.php;  
  13.             fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;  
  14.             include        fastcgi_params;  
  15. }  
  16. #将nginx添加到自启动中  
  17. echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.d/rc.local  
  18. #将php添加到自启动中  
  19. echo "/usr/local/php/sbin/php-fpm start" >> /etc/rc.d/rc.local  
vi /usr/local/nginx/conf/nginx.conf#在server下找到location / 修改解析PHP文件存放的路径, 修改为:location / {        root   /var/www/html;        index  index.html index.htm index.php;}#root表示虚拟目录设置为/var/www/html,增加默认解析index.php#在server下找到location ~ /.php$ 修改php解释器FastCGI配置,修改为:location ~ \.php$ {            root           /var/www/html;            fastcgi_pass   127.0.0.1:9000;            fastcgi_index  index.php;            fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;            include        fastcgi_params;}#将nginx添加到自启动中echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.d/rc.local#将php添加到自启动中echo "/usr/local/php/sbin/php-fpm start" >> /etc/rc.d/rc.local

20>【nginx虚拟主机配置】

vi /usr/local/nginx/conf/nginx.conf #在http最后一行加入 include    /usr/local/nginx/conf/vhost/dev_localhost.config; #不带url重写

[html] view plaincopyprint?
  1. server {    
  2.     listen 80 default;    
  3.     server_name dev.localhost;    
  4.     access_log logs/dev.access.log;    
  5.   
  6.   
  7.     root /var/www/html/dev;    
  8.   
  9.   
  10.     server_name_in_redirect off;    
  11.   
  12.   
  13.     location / {    
  14.         index index.html index.php;  
  15.     }    
  16.   
  17.   
  18.     location ~ \.php$ {  
  19.         fastcgi_pass   127.0.0.1:9000;  
  20.         fastcgi_index  index.php;  
  21.         fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;  
  22.         include        fastcgi_params;  
  23.     }  
  24. }    
server {  	listen 80 default;  	server_name dev.localhost;  	access_log logs/dev.access.log;  	root /var/www/html/dev;  	server_name_in_redirect off;  	location / {  		index index.html index.php;	}  	location ~ \.php$ {		fastcgi_pass   127.0.0.1:9000;		fastcgi_index  index.php;		fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;		include        fastcgi_params;	}}  

 

#带url重写(zend framework)

[html] view plaincopyprint?
  1. server {  
  2.     listen 80;  
  3.     server_name dev.localhost;  
  4.     access_log logs/dev.access.log;    
  5.           
  6.     root   /var/www/html/dev/code/html;  
  7.     location / {  
  8.         index index.html index.php;  
  9.   
  10.   
  11.         if (-e $request_filename ) {  
  12.             break;  
  13.         }  
  14.               
  15.         if ( $request_filename ~* \.(js|ico|gif|jpg|jpeg|xml|swf|txt|png|css|html|htm)$ ) {  
  16.             return 404;  
  17.         }  
  18.               
  19.         rewrite .* index.php;  
  20.     }  
  21.     location ~ .*\.php$ {  
  22.         include fastcgi_params;  
  23.         fastcgi_param  SCRIPT_FILENAME    $document_root/index.php;  
  24.         #fastcgi_param REQUEST_URI $document_uri?$query_string;  
  25.         fastcgi_read_timeout 120;  
  26.         fastcgi_pass  127.0.0.1:9000;  
  27.         fastcgi_index index.php;  
  28.     }  
  29. }  
server {	listen 80;	server_name dev.localhost;	access_log logs/dev.access.log;  			root   /var/www/html/dev/code/html;	location / {		index index.html index.php;		if (-e $request_filename ) {			break;		}					if ( $request_filename ~* \.(js|ico|gif|jpg|jpeg|xml|swf|txt|png|css|html|htm)$ ) {			return 404;		}					rewrite .* index.php;	}	location ~ .*\.php$ {		include fastcgi_params;		fastcgi_param  SCRIPT_FILENAME    $document_root/index.php;		#fastcgi_param REQUEST_URI $document_uri?$query_string;		fastcgi_read_timeout 120;		fastcgi_pass  127.0.0.1:9000;		fastcgi_index index.php;	}}
[html] view plaincopyprint?
  1. #重启nginx  
  2. /usr/local/nginx/sbin/nginx -s reload  
  3. #重启php  
  4. /usr/local/php/sbin/php-fpm restart  

linux下nginx+php+mysql环境搭建