linux nginx+apache+php+mysql 安装配置

http://blog.csdn.net/jhg_2009/article/details/6898539



CentOS-5.6-i386操作系统

nginx-1.1.6.tar.gz
httpd-2.2.21.tar.gz
mysql-5.1.44.tar.gz
php-5.3.8.tar.gz
1. lsb_release -a 查看系统环境

[plain]  view plain copy
  1. LSB Version: :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch  
  2. Distributor ID: CentOS  
  3. Description: CentOS release 5.6 (Final)  
  4. Release: 5.6  
  5. Codename: Final  

2. 查找是否已经安装过环境

[plain]  view plain copy
  1. [root@localhost www]# rpm -qa|grep httpd  
  2. [root@localhost www]# rpm -qa|grep mysqld  
  3. [root@localhost www]# rpm -qa|grep php  
  4. [root@localhost www]# rpm -qa|grep apache  
  5.   
  6. 如果找到 删除  (--nodeps 是强制删除的意思)  
  7. [root@localhost ~]# rpm -qa|grep httpd  
  8. httpd-2.2.3-31.el5.centos  
  9. [root@localhost ~]# rpm -e --nodeps httpd     

3. 解压缩

[plain]  view plain copy
  1. [root@localhost www]# tar -zxf nginx-1.1.6.tar.gz   
  2. [root@localhost www]# tar -zxf httpd-2.2.21.tar.gz   
  3. [root@localhost www]# tar -zxf mysql-5.1.44.tar.gz   
  4. [root@localhost www]# tar -zxf php-5.3.8.tar.gz   


4. 安装PHP所需的软件包

  所有的软件包可以到http://code.google.com/p/myphp-appstore/downloads/list 下载

  4.1  安装libiconv(iconv函数需要用到)

[plain]  view plain copy
  1. # tar zxvf libiconv-1.13.1.tar.gz  
  2. # cd libiconv-1.13.1/  
  3. # ./configure --prefix=/usr/local  
  4. # make  
  5. # make install  
  6. # cd ../  

 4.2  安装jpegsrc(magejpeg需要用到) 

[plain]  view plain copy
  1. # tar zxvf jpegsrc.v6b.tar.gz   
  2. # cd jpeg-6b/   
  3. # ./configure –-enable-static –-enable-shared   
  4. # make   
  5. # make install   
  6. # make install-lib   
  7. # cd ../  

 4.3 安装libpng包(支持PNG)

[plain]  view plain copy
  1. # cd /root/Software/   
  2. # tar -zvxf libpng-1.5.4.tar.gz  
  3. # cd libpng-1.5.4  
  4. # ./configure --prefix=/usr/local/libpng  
  5. # make  
  6. # make install  

4.4 安装freetype

[plain]  view plain copy
  1. # cd /root/Software/   
  2. # tar -zvxf freetype-2.4.6.tar.gz   
  3. # cd freetype-2.4.6   
  4. # mkdir -p /usr/local/freetype   
  5. # ./configure --prefix=/usr/local/freetype   
  6. # make  
  7. # make install  

4.5  安装gettext(gd所需)

[plain]  view plain copy
  1. # tar zxvf gettext-0.17.tar.gz  
  2. # cd gettext-0.17  
  3. # ./configure  
  4. # make  
  5. # make install  

 4.6 安装gd

[plain]  view plain copy
  1. # tar zxf gd-2.0.35.tar.gz   
  2. # cd gd  
  3. # cd  2.0.35/   
  4. # ./configure --enable-m4_pattern_allow  
  5. # make   
  6. # make install   
  7. cd ../  

 4.7  安装libssh(可能ssh连接用到)

[plain]  view plain copy
  1. # tar zxf libssh2-0.12.tar.gz   
  2. # cd libssh2-0.12/   
  3. # ./configure   
  4. # make   
  5. # make install   

 4.8  安装libmcrypt(加密算法扩展库 例如 DES 3DES)

[plain]  view plain copy
  1. # tar zxvf libmcrypt-2.5.8.tar.gz  
  2. # cd libmcrypt-2.5.8/  
  3. # ./configure  
  4. # make  
  5. # make install  
  6. # /sbin/ldconfig  
  7. # cd libltdl/  
  8. # ./configure --enable-ltdl-install  
  9. # make  
  10. # make install  
  11. # cd ../../  

 4.9 安装mhash(哈希函数库 例如 MD5 SHA CRC 等) 

[plain]  view plain copy
  1. # tar zxvf mhash-0.9.9.9.tar.gz  
  2. # cd mhash-0.9.9.9/  
  3. # ./configure  
  4. # make  
  5. # make install  
  6. # cd ../  

 4.10 建立软链接

[plain]  view plain copy
  1. # ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la  
  2. # ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so  
  3. # ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4  
  4. # ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8  
  5. # ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a  
  6. # ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la  
  7. # ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so  
  8. # ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2  
  9. # ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1  
  10. # ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config  

 4.11 安装 mcrypt(加密算法扩展库) 

[plain]  view plain copy
  1. # /sbin/ldconfig  
  2. # tar zxvf mcrypt-2.6.8.tar.gz  
  3. # cd mcrypt-2.6.8/  
  4. # ./configure  
  5. # make  
  6. # make install  
  7. # cd ../  

5 安装MySQL

[plain]  view plain copy
  1. # cd mysql-5.1.44  
  2. # ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile  
  3. # make && make install  

  创建MySQL数据库,用默认的配置my.cnf 

[plain]  view plain copy
  1. # groupadd mysql  
  2. # useradd -g mysql mysql  
  3. # cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf  
  4. # /usr/local/mysql/bin/mysql_install_db --user=mysql  
  5. # chown -R mysql /usr/local/mysql/var  
  6. # chgrp -R mysql /usr/local/mysql/    

  添加MySQL启动服务,并且设置root密码

[plain]  view plain copy
  1. # cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysql  
  2. # chmod 755 /etc/init.d/mysql  
  3. # chkconfig --level 345 mysql on  
  4. # echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf  
  5. # echo "/usr/local/lib" >>/etc/ld.so.conf  
  6. # ldconfig  
  7. # ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql  
  8. # ln -s /usr/local/mysql/include/mysql /usr/include/mysql  
  9. # service mysql start  
  10. # /usr/local/mysql/bin/mysqladmin -u root password root    //root改为你需要的密码  
  11. # service mysql restart  

6  安装Apache 

[plain]  view plain copy
  1. # cd httpd-2.2.21  
  2. # ./configure --prefix=/usr/local/apache2 --enable-modules=so --enable-rewrite  
  3. # make && make install  
[plain]  view plain copy
  1. # /usr/local/apache2/bin/apachectl  start    //启动apahce  
错误:httpd: Could not reliably determine the server's fully qualified domain name,  using 127.0.0.1 for ServerName
解决办法:cd /usr/local/apache/conf,  用记事本打开httpd.conf,  将里面的#ServerName localhost:80注释去掉即可。
用浏览器查看  http://127.0.0.1 http://localhost , 得到it works,说明apache已经配置成功了.

7 安装PHP

[plain]  view plain copy
  1. # ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir=/usr/local/libpng --with-zlib --with-libxml-dir=/usr --enable-xml --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curlwrappers --enable-mbregex --enable-soap --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-ftp   
  2. # make ZEND_EXTRA_LIBS='-liconv' (必须要加,要不然PHP编译出错)  
  3. # make install  
  4. # cp php.ini-development /usr/local/php/etc/php.ini (好象PHP5.3开始就没有php.ini-dist文件了,可以是php.ini-development或php.ini-production)  
  5. # cd ../  

8 安装PHP扩展模块
   8.1 memcache 客户端

[plain]  view plain copy
  1. # tar zxvf memcache-2.2.5.tgz  
  2. # cd memcache-2.2.5/  
  3. # /usr/local/php/bin/phpize  
  4. # ./configure --with-php-config=/usr/local/php/bin/php-config  
  5. # make  
  6. # make install  
  7. # cd ../  

   8.2 PDO_MySQL

[plain]  view plain copy
  1. # tar zxvf PDO_MYSQL-1.0.2.tgz  
  2. # cd PDO_MYSQL-1.0.2/  
  3. # /usr/local/php/bin/phpize  
  4. # ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql  
  5. # make  
  6. # make install  
  7. # cd ../  

  8.3 安装eaccelerator (PHP加速器)

[plain]  view plain copy
  1. # tar jxvf eaccelerator-0.9.6.tar.bz2  
  2. # cd eaccelerator-0.9.6/  
  3. # /usr/local/php/bin/phpize  
  4. # ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config  
  5. # make  
  6. # make install  
  7. # cd ../  

9 修改PHP.INI 文件

查找/usr/local/php/etc/php.ini中的extension_dir = "./"
修改为extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"
并在此行后增加以下几行
extension = "memcache.so"
extension = "pdo_mysql.so"
保存。

10 配置eAccelerator加速

PHP创建缓存目录
mkdir -p /usr/local/eaccelerator_cache
在php.ini文件最后面添加下面几行内容就可以了
[eaccelerator]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/usr/local/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

11 重新配置apache2让他支持php

在LoadModule php5_module modules/libphp5.so
添加AddType application/x-httpd-php  .php
OK,基本的安装已经完成.
重新起动APACHE:
# /usr/local/apache2/bin/apachectl  graceful   ---记得每次修改php.ini配置或httpd.conf 配置都要重启Apache

12  Apache配置httpd-vhosts虚拟主机

   12.1 修改httpd.conf 文件

    (a)  添加如下两行(假设当前是基于同一IP的两个端口)

       Listen 8080 
       Listen 8081 

     (b) 注释以下内容

      #ServerAdmin [email protected]

      #DocumentRoot "/usr/local/apache2/htdocs"

     #<Directory "/usr/local/apache2/htdocs">

     (c) 修改Directory模块内容(相当是全局的,以后httpd-vhosts.conf也会用到这个设置)

      <Directory />
        Options FollowSymLinks
         AllowOverride None
        Order deny,allow
          Deny from all    (将 Deny 改成 Allow)
       </Directory>

     (c)  找到如下模块             

        # Virtual hosts
       #Include conf/extra/httpd-vhosts.conf
     去掉前面的#,这样就开启了httpd-vhosts虚拟主机文件。

   12.2  修改httpd-vhosts文件

NameVirtualHost *:8080
NameVirtualHost *:8081
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:8080>
    ServerAdmin [email protected]
    DocumentRoot "/home/www/htdocs/8080"
    ServerName  test.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "/home/www/logs/8080-error.log"
    CustomLog "/home/www/logs/8080-access.log" common
</VirtualHost>
<VirtualHost *:8081>
    ServerAdmin [email protected]
    DocumentRoot "/home/www/htdocs/8081"
    ServerName  test2.example.com
    ErrorLog "/home/www/logs/8081-error.log"
    CustomLog "/home/www/logs/8081-access.log" common
</VirtualHost>

13  查看配置是否正确并重启apache

 /usr/local/apache2/bin/apachectl -S    --检查配置文件的语法

[plain]  view plain copy
  1. # /usr/local/apache2/bin/apachectl graceful  

或者

[plain]  view plain copy
  1. # /usr/local/apache2/bin/apachectl -k restart  

前一种方法不会中断当前的客户端连接,后一种方法则会中断当前客户端的连接
如果配置没有什么问题,到此就可以http://127.0.0.1:8080和http://127.0.0.1:80801 访问虚拟机的web页面了。

接下来要做的事情就是通过nginx 反向代理php请求

14  安装nginx所需软件包

[plain]  view plain copy
  1. tar zxvf pcre-8.01.tar.gz  
  2. cd pcre-8.01/  
  3. ./configure  
  4. make && make install  
  5. cd ../  

15 安装nginx

[plain]  view plain copy
  1. tar zxvf nginx-0.7.65.tar.gz  
  2. cd nginx-0.7.65/  
  3. ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module  
  4. make && make install  
  5. cd ../  

16 nginx做负载均衡(实现动静分离),其详细配置如下:

[plain]  view plain copy
  1. user  www www;  
  2. worker_processes  8;  
  3.   
  4. error_log  logs/error.log;  
  5. pid        logs/nginx.pid;  
  6.   
  7. worker_rlimit_nofile 65535;  
  8. events  
  9. {  
  10.   use epoll;  
  11.   worker_connections 65535;  
  12. }  
  13.   
  14.   
  15. http {  
  16.   include       mime.types;  
  17.   default_type  application/octet-stream;  
  18.   
  19.   #charset  gb2312;  
  20.   server_names_hash_bucket_size 128;  
  21.   client_header_buffer_size 64k;  
  22.   large_client_header_buffers 4 128k;  
  23.   client_max_body_size 8m;  
  24.   
  25.   tcp_nopush     on;  
  26.   keepalive_timeout 60;  
  27.   tcp_nodelay on;  
  28.   
  29.   gzip on;  
  30.   gzip_min_length  1k;  
  31.   gzip_buffers     4 16k;  
  32.   gzip_http_version 1.0;  
  33.   gzip_comp_level 2;  
  34.   gzip_types       text/plain application/x-javascript text/css application/xml;  
  35.   gzip_vary on;  
  36.   
  37.   upstream  backphp_service  
  38.   {  
  39.       server 192.168.52.246:8080 weight=1 max_fails=2 fail_timeout=180s;  
  40.       server 192.168.52.246:8081 weight=1 max_fails=2 fail_timeout=180s;  
  41.   }  
  42.   
  43.  server  
  44.     {  
  45.         listen       80;  
  46.         server_name  test.nginx.sdo.com;  
  47.         root  /home/www/static;  
  48.   
  49.         location ~ .+\.php($|/)  
  50.         {  
  51.            proxy_set_header   Host             $host;  
  52.            proxy_set_header   X-Real-IP        $remote_addr;  
  53.            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;  
  54.            proxy_pass        http://backphp_service;  
  55.         }  
  56.   
  57.         location ~ .*\.(html|gif|jpg|jpeg|png|bmp|swf)$  
  58.         {  
  59.           expires 30d;  
  60.         }  
  61.   
  62.         location ~ .*\.(js|css)?$  
  63.         {  
  64.           expires 1h;  
  65.         }  
  66.   
  67.     }  
  68.   
  69. }  


17 启动nginx 进程

 ulimit -SHn 65535
/usr/local/nginx/sbin/nginx

18  配置开机自启动
echo "ulimit -SHn 65535" >>/etc/rc.local
echo "/usr/local/apache2/bin/apachectl  -k start" >>/etc/rc.local
echo "/usr/local/nginx/sbin/nginx" >>/etc/rc.local
 

到这里工作已经全部完成! 

 

你可能感兴趣的:(linux nginx+apache+php+mysql 安装配置)