Home > php教程 > php手册 > body text

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

WBOY
Release: 2016-06-06 19:59:33
Original
1269 people have browsed it

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 查看系统环境 LSB Version: :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-

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 查看系统环境
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
Distributor ID: CentOS
Description: CentOS release 5.6 (Final)
Release: 5.6
Codename: Final
Copy after login

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

[root@localhost www]# rpm -qa|grep httpd
[root@localhost www]# rpm -qa|grep mysqld
[root@localhost www]# rpm -qa|grep php
[root@localhost www]# rpm -qa|grep apache

如果找到 删除  (--nodeps 是强制删除的意思)
[root@localhost ~]# rpm -qa|grep httpd
httpd-2.2.3-31.el5.centos
[root@localhost ~]# rpm -e --nodeps httpd	
Copy after login

3. 解压缩

[root@localhost www]# tar -zxf nginx-1.1.6.tar.gz 
[root@localhost www]# tar -zxf httpd-2.2.21.tar.gz 
[root@localhost www]# tar -zxf mysql-5.1.44.tar.gz 
[root@localhost www]# tar -zxf php-5.3.8.tar.gz 
Copy after login


4. 安装PHP所需的软件包

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

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

# tar zxvf libiconv-1.13.1.tar.gz
# cd libiconv-1.13.1/
# ./configure --prefix=/usr/local
# make
# make install
# cd ../
Copy after login

 4.2  安装jpegsrc(magejpeg需要用到) 

# tar zxvf jpegsrc.v6b.tar.gz 
# cd jpeg-6b/ 
# ./configure –-enable-static –-enable-shared 
# make 
# make install 
# make install-lib 
# cd ../
Copy after login

 4.3 安装libpng包(支持PNG)

# cd /root/Software/ 
# tar -zvxf libpng-1.5.4.tar.gz
# cd libpng-1.5.4
# ./configure --prefix=/usr/local/libpng
# make
# make install
Copy after login

4.4 安装freetype

# cd /root/Software/ 
# tar -zvxf freetype-2.4.6.tar.gz 
# cd freetype-2.4.6 
# mkdir -p /usr/local/freetype 
# ./configure --prefix=/usr/local/freetype 
# make
# make install
Copy after login

4.5  安装gettext(gd所需)

# tar zxvf gettext-0.17.tar.gz
# cd gettext-0.17
# ./configure
# make
# make install
Copy after login

 4.6 安装gd

# tar zxf gd-2.0.35.tar.gz 
# cd gd
# cd  2.0.35/ 
# ./configure --enable-m4_pattern_allow
# make 
# make install 
cd ../
Copy after login

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

# tar zxf libssh2-0.12.tar.gz 
# cd libssh2-0.12/ 
# ./configure 
# make 
# make install 
Copy after login

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

# tar zxvf libmcrypt-2.5.8.tar.gz
# cd libmcrypt-2.5.8/
# ./configure
# make
# make install
# /sbin/ldconfig
# cd libltdl/
# ./configure --enable-ltdl-install
# make
# make install
# cd ../../
Copy after login

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

# tar zxvf mhash-0.9.9.9.tar.gz
# cd mhash-0.9.9.9/
# ./configure
# make
# make install
# cd ../
Copy after login

 4.10 建立软链接

# ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
# ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
# ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
# ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
# ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
# ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
# ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
# ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
# ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
# ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
Copy after login

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

# /sbin/ldconfig
# tar zxvf mcrypt-2.6.8.tar.gz
# cd mcrypt-2.6.8/
# ./configure
# make
# make install
# cd ../
Copy after login

5 安装MySQL

# cd mysql-5.1.44
# ./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
# make && make install
Copy after login

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

# groupadd mysql
# useradd -g mysql mysql
# cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
# /usr/local/mysql/bin/mysql_install_db --user=mysql
# chown -R mysql /usr/local/mysql/var
# chgrp -R mysql /usr/local/mysql/  
Copy after login

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

# cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysql
# chmod 755 /etc/init.d/mysql
# chkconfig --level 345 mysql on
# echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
# echo "/usr/local/lib" >>/etc/ld.so.conf
# ldconfig
# ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
# ln -s /usr/local/mysql/include/mysql /usr/include/mysql
# service mysql start
# /usr/local/mysql/bin/mysqladmin -u root password root    //root改为你需要的密码
# service mysql restart
Copy after login

6  安装Apache 

# cd httpd-2.2.21
# ./configure --prefix=/usr/local/apache2 --enable-modules=so --enable-rewrite
# make && make install
Copy after login
# /usr/local/apache2/bin/apachectl  start    //启动apahce
Copy after login
错误: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

# ./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 
# make ZEND_EXTRA_LIBS='-liconv' (必须要加,要不然PHP编译出错)
# make install
# cp php.ini-development /usr/local/php/etc/php.ini (好象PHP5.3开始就没有php.ini-dist文件了,可以是php.ini-development或php.ini-production)
# cd ../
Copy after login

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

# tar zxvf memcache-2.2.5.tgz
# cd memcache-2.2.5/
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config
# make
# make install
# cd ../
Copy after login

   8.2 PDO_MySQL

# tar zxvf PDO_MYSQL-1.0.2.tgz
# cd PDO_MYSQL-1.0.2/
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
# make
# make install
# cd ../
Copy after login

  8.3 安装eaccelerator (PHP加速器)

# tar jxvf eaccelerator-0.9.6.tar.bz2
# cd eaccelerator-0.9.6/
# /usr/local/php/bin/phpize
# ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
# make
# make install
# cd ../
Copy after login

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 you@example.com

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

     #

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

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

     (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 div is used for all requests that do not
# match a ServerName or ServerAlias in any block.
#

    ServerAdmin webmaster@dummy-host.example.com
    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


    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/home/www/htdocs/8081"
    ServerName  test2.example.com
    ErrorLog "/home/www/logs/8081-error.log"
    CustomLog "/home/www/logs/8081-access.log" common

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

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

# /usr/local/apache2/bin/apachectl graceful
Copy after login

或者

# /usr/local/apache2/bin/apachectl -k restart
Copy after login

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

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

14  安装nginx所需软件包

tar zxvf pcre-8.01.tar.gz
cd pcre-8.01/
./configure
make && make install
cd ../
Copy after login

15 安装nginx

tar zxvf nginx-0.7.65.tar.gz
cd nginx-0.7.65/
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
make && make install
cd ../
Copy after login

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

user  www www;
worker_processes  8;

error_log  logs/error.log;
pid        logs/nginx.pid;

worker_rlimit_nofile 65535;
events
{
  use epoll;
  worker_connections 65535;
}


http {
  include       mime.types;
  default_type  application/octet-stream;

  #charset  gb2312;
  server_names_hash_bucket_size 128;
  client_header_buffer_size 64k;
  large_client_header_buffers 4 128k;
  client_max_body_size 8m;

  tcp_nopush     on;
  keepalive_timeout 60;
  tcp_nodelay on;

  gzip on;
  gzip_min_length  1k;
  gzip_buffers     4 16k;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_types       text/plain application/x-javascript text/css application/xml;
  gzip_vary on;

  upstream  backphp_service
  {
      server 192.168.52.246:8080 weight=1 max_fails=2 fail_timeout=180s;
      server 192.168.52.246:8081 weight=1 max_fails=2 fail_timeout=180s;
  }

 server
    {
        listen       80;
        server_name  test.nginx.sdo.com;
        root  /home/www/static;

        location ~ .+\.php($|/)
        {
           proxy_set_header   Host             $host;
           proxy_set_header   X-Real-IP        $remote_addr;
           proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
           proxy_pass        http://backphp_service;
        }

        location ~ .*\.(html|gif|jpg|jpeg|png|bmp|swf)$
        {
          expires 30d;
        }

        location ~ .*\.(js|css)?$
        {
          expires 1h;
        }

    }

}
Copy after login


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
 

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

 

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template