Nginx+Mysql+php 安装步骤

转自 http://asange.blog.51cto.com/7125040/1229976

一、首先安装工具、依赖包

      yum -y install gcc pcre pcre-devel gcc-c++ autoconf libxml2 libxml2-devel zlib zlib-devel glibc libjepg libjepg-devel libpng libpng-devel glibc-devel glib2 glib2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers make

二、添加用户、用户组 nginx

groupadd -r nginx
useradd -r -g nginx -s /bin/false -M nginx

2、安装nginx

1)、获取nginx

wget http://nginx.org/download/nginx-1.8.1.tar.gz

2)、解压

tar -zxvf nginx-1.8.1.tar.gz

3)、cd nginx-1.8.1

4)、配置ngnix

./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre --with-http_realip_module --with-http_gzip_static_module --with-file-aio

5)、编译和安装

make && make install

        6)、设置nginx启动脚本 (vim /etc/init.d/nginx)(copy)

#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig:   - 85 15
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /usr/local/nginx/conf/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /usr/local/nginx/logs/nginx.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network
     
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
     
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

ke_dirs() {
   # make required directories
   user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
   options=`$nginx -V 2>&1 | grep 'configure arguments:'`
   for opt in $options; do
       if [ `echo $opt | grep '.*-temp-path'` ]; then
           value=`echo $opt | cut -d "=" -f 2`
           if [ ! -d "$value" ]; then
               # echo "creating" $value
               mkdir -p $value && chown -R $user $value
           fi
       fi
   done
}

start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    make_dirs
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}
                                
stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}
                            
restart() {
    configtest || return $?
    stop
    sleep 1
    start
}
                               
reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
}
                            
force_reload() {
    restart
}
                          
configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}

rh_status() {
    status $prog
}
                               
rh_status_q() {
    rh_status >/dev/null 2>&1
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac


7)、设置权限以及开机启动

chmod +x /etc/init.d/nginx

chkconfig --add nginx

chkconfig nginx on

启动 service nginx start

8)、验证nginx

Welcome to nginx!

三、安装MySQL

1)、卸载本机自带MySQL

查看已安装的MySQL

yum list installed mysql*

卸载已存在的MySQL

yum -y remove 

2)、安装MySQL  (http://asange.blog.51cto.com/7125040/1229976)

1、首先下载文件:mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz

    2、为mysql创建数据目录、用户和组:

1
2
3
[root@ASANGE mysql] # mkdir -pv /mysql/data
[root@ASANGE mysql] # groupadd -r mysql
[root@ASANGE mysql] # useradd -g mysql -r -s /bin/false -M -d /mysql/data mysql

3、 解压并初始化安装

1
2
3
4
5
6
7
8
9
10
[root@ASANGE ~] # tar vxf mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz
[root@ASANGE ~] # mv mysql-5.6.12-linux-glibc2.5-x86_64 /usr/local/mysql
[root@ASANGE ~] # cd /usr/local/mysql
[root@ASANGE mysql] # ls
bin      data  include         lib  mysql- test   scripts  sql-bench
COPYING  docs  INSTALL-BINARY   man   README      share    support-files
[root@ASANGE mysql] # chown mysql:mysql /mysql/data/
[root@ASANGE mysql] # chown mysql:mysql ./*
[root@ASANGE mysql] # ./scripts/mysql_install_db --user=mysql --datadir=/mysql/data
[root@ASANGE mysql] # chown -R root ./*

 安装完成之后,主配置文件为/usr/local/mysql/my.cnf,可根据需要进行文件配置,这里添加如下项:

1
2
3
4
5
6
7
8
[root@ASANGE mysql]# mkdir / var /run/mysqld
[root@ASANGE mysql]# vim my.cnf
[mysqld]
datadir = /mysql/data
basedir = /usr/local/mysql
port =  3306
socket = /tmp/mysql.sock
pid_file = / var /run/mysqld/mysqld.pid


4、将mysql的头文件连接进系统头文件路径:

1
[root@ASANGE mysql] # ln -sv /usr/local/mysql/include  /usr/include/mysql


5、输出mysql库文件:

1
2
[root@ASANGE mysql] # echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
[root@ASANGE mysql] # ldconfig


6、添加mysql命令的环境变量

1
2
3
[root@ASANGE mysql] #  vim /etc/profile
PATH=$PATH: /usr/local/mysql/bin
[root@ASANGE mysql] # . /etc/profile


7、为mysql添加启动脚本 ,添加进服务列表并开机自动启动  

1
2
3
[root@ASANGE mysql] # cp support-files/mysql.server  /etc/rc.d/init.d/mysqld
[root@ASANGE mysql] # chkconfig --add mysqld
[root@ASANGE mysql] # chkconfig mysqld on

至此mysql安装完成,启动mysql服务

1
[root@ASANGE mysql] # service mysqld start
3)、初始化数据库
mysqladmin  -u  root  password  密码
4)、创建用户并授权
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL ON *.* TO 'username'@'%';
5)、MySQL test 连接成功

四、安装PHP (COPY http://asange.blog.51cto.com/7125040/1229976)
 编译过程中,报错 : make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1
  解决方法: ./configure 加上 --disable-fileinfo   

php依赖很多库,这里将php依赖的库编译安装进/usr/local/phpextend文件夹里

1
[root@ASANGE ~]# mkdir /usr/local/phpextend


   1、编译安装jpegsrc,增强对jpeg格式图片的处理功能。jpegsrc.v9.tar.gz

1
2
3
4
[root@ASANGE ~] # tar xf jpegsrc.v9.tar.gz
[root@ASANGE ~] # cd jpeg-9/
[root@ASANGE jpeg-9] # ./configure --prefix=/usr/local/phpextend --enable-shared --enable-static
[root@ASANGE jpeg-9] # make && make install

   2、编译安装libpng,增强对png格式图片的处理功能。libpng-1.6.2.tar.gz

1
2
3
4
[root@ASANGE ~] # tar xf libpng-1.6.2.tar.gz
[root@ASANGE ~] # cd libpng-1.6.2
[root@ASANGE libpng-1.6.2] # ./configure --prefix=/usr/local/phpextend
[root@ASANGE libpng-1.6.2] # make && make install

   3、编译安装freetype,增强php对字体的处理功能。 freetype-2.4.12.tar.gz

1
2
3
4
[root@ASANGE ~] # tar xf freetype-2.4.12.tar.gz
[root@ASANGE ~] # cd freetype-2.4.12
[root@ASANGE freetype-2.4.12] # ./configure --prefix=/usr/local/phpextend
[root@ASANGE freetype-2.4.12] # make && make install

   4、编译安装mhash,使php支持多种哈稀演算法。 mhash-0.9.9.9.tar.gz

1
2
3
4
[root@ASANGE ~] # tar xf mhash-0.9.9.9.tar.gz
[root@ASANGE ~] # cd mhash-0.9.9.9
[root@ASANGE mhash-0.9.9.9] # ./configure --prefix=/usr/local/phpextend
[root@ASANGE mhash-0.9.9.9] # make && make install

   5、编译安装libmcrypt,使php支持多种加密算法。libmcrypt-2.5.8.tar.gz

1
2
3
4
[root@ASANGE ~] # tar xf libmcrypt-2.5.8.tar.gz
[root@ASANGE ~] # cd libmcrypt-2.5.8
[root@ASANGE libmcrypt-2.5.8] # ./configure --prefix=/usr/local/phpextend
[root@ASANGE libmcrypt-2.5.8] # make && make install

    6、编译安装libevent,支持select、epoll、kqueue等事件调度机制。 libevent-2.0.21-stable.tar.gz

1
2
3
4
[root@ASANGE ~] # tar xf libevent-2.0.21-stable.tar.gz
[root@ASANGE ~] # cd libevent-2.0.21-stable
[root@ASANGE libevent-2.0.21-stable] # ./configure --prefix=/usr/local/phpextend
[root@ASANGE libevent-2.0.21-stable] # make && make install

   7、编译安装libiconv,实现一个字符编码到另一个字符编码的转换。 libiconv-1.14.tar.gz

1
2
3
4
[root@ASANGE ~] # tar xf libiconv-1.14.tar.gz
[root@ASANGE ~] # cd libiconv-1.14
[root@ASANGE libiconv-1.14] # ./configure --prefix=/usr/local/phpextend
[root@ASANGE libiconv-1.14] # make && make install

   8、输出库文件

1
2
[root@ASANGE ~] # echo "/usr/local/phpextend/lib" >> /etc/ld.so.conf.d/phpextend.conf
[root@ASANGE ~] # ldconfig

   9、编译安装php。   php-5.5.0.tar.bz2

1
2
3
4
5
[root@ASANGE php-5.5.0] # tar xf php-5.5.0.tar.bz2
[root@ASANGE php-5.5.0] # cd php-5.5.0
[root@ASANGE php-5.5.0] # ./configure --prefix=/usr/local/php  --enable-fastcgi --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir --with-freetype-dir=/usr/local/phpextend --with-jpeg-dir=/usr/local/phpextend --with-png-dir=/usr/local/phpextend --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring  --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap
[root@ASANGE php-5.5.0] # make       //  如果报错“make: *** [sapi/cli/php] Error 1”  使用命令“make ZEND_EXTRA_LIBS='-liconv' ”进行编译
[root@ASANGE php-5.5.0] # make install

   提供php主配置文件:

1
[root@ASANGE php-5.5.0] # cp php.ini-development /usr/local/php/lib/php.ini

为php-fpm提供启动脚本,添加至服务列表并开机启动:

1
2
3
4
[root@ASANGE php-5.5.0] # cp sapi/fpm/init.d.php-fpm  /etc/rc.d/init.d/php-fpm
[root@ASANGE php-5.5.0] # chmod +x /etc/init.d/php-fpm
[root@ASANGE php-5.5.0] # chkconfig --add php-fpm
[root@ASANGE php-5.5.0] # chkconfig php-fpm on

   10、启用fastcgi:

   fastcgi比较重要,这里介绍一下:fastcgi是http server和动态脚本语言间通信的接口,nginx支持fastcgi;同时fastcgi也被许多脚本语言支持,包括php。传统的cgi接口性能很差,每次http server遇到动态程序时,都需要重启脚本解释器来执行解析,然后将结果返回给http server。fastcgi采用C/S架构,将http server和脚本解析器分开,同时在脚本解析器上启动一个或多个脚本解析守护进程,当httt server遇到动态程序时,可以直接交付给fastcgi进程执行,然后将得到的结果返回给浏览器,这样http server只处理静态请求或将动态服务器的结果返回给客户端,从而提高性能。

   nginx通过fastcgi来调用php,而php-fpm是fastcgi的进程管理器。fastcgi的主要作用就是将动态语言和http server分离开来,所以nginx和php/php-fpm经常配置在不同服务器上,各司其职,从而提高性能。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# cd /usr/local/php/etc/
# cp php-fpm.conf. default  php-fpm.conf
# vi php-fpm.conf     //一般配置的依据如下
内存小于4G服务器(值可逐级递减):
修改如下参数:
pm= dynamic
pm.max_children= 40
pm.start_servers= 10
pm.min_spare_servers= 10
pm.max_spare_servers= 40
  ******************************
内存大于4G服务器(值可逐级递增):
修改如下参数:
pm= static
pm.max_children= 100


11、配置ngin支持php

编辑nginx的主配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
location / {
             root   html;
             index  index.html index.htm index.php;     // 添加index.php
         }
// 启用下面的配置
location ~ \.php$ {
             root           html;
             fastcgi_pass   127.0.0.1:9000;
             fastcgi_index  index.php;
             fastcgi_param  SCRIPT_FILENAME   /scripts $fastcgi_script_name;
             #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
             include        fastcgi_params;
         }

   编辑fastcgi_params参数,将里面的内容全部替换为以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#vim /etc/nginx/fastcgi_params
fastcgi_param  GATEWAY_INTERFACE  CGI /1 .1;
fastcgi_param  SERVER_SOFTWARE    nginx;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

  启动php-fpm,重启nginx

1
2
3
4
5
6
7
[root@ASANGE ~] # service php-fpm start
Starting php-fpm   done
[root@ASANGE ~] # service nginx restart
nginx: the configuration  file  /etc/nginx/nginx .conf syntax is ok
nginx: configuration  file  /etc/nginx/nginx .conf  test  is successful
停止 nginx:                                               [确定]
正在启动 nginx:tig


   添加php测试页面:

1
2
3
4
[root@ASANGE ~] # vim /usr/local/nginx/html/index.php
<?php
phpinfo();
?>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值