centos 下 编译安装 nginx + mysql + php 服务

标签: centos 编译 nginx | 发表时间:2013-03-22 09:31 | 作者:yincg
出处:http://blog.csdn.net
1、安装nginx
1.1、安装依赖包
yum install wget make gcc gcc-c++  pcre-devel openssl-devel -y
yum install ncurses-devel libtool zilib-devel -y




1.2、创建www用户
useradd www -s /sbin/nologin -M


1.3、创建目录
mkdir -p /var/log/nginx
mkdir -p /var/tmp/nginx


1.4、解压nginx
tar xvf nginx-0.8.55.tar.gz
cd nginx-0.8.55
./configure --user=www --group=www \
--prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_gzip_static_module \
--pid-path=/var/run/nginx.pid \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/tmp/nginx/client_body_temp \
--http-proxy-temp-path=/var/tmp/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp \
--http-scgi-temp-path=/var/tmp/nginx/scgi_temp


make && make  install


1.5、创建目录
mkdir /usr/local/nginx/conf/conf.d


1.6、创建nginx启动脚本
#! /bin/sh
# Author: Ryan Norbauer http://norbauerinc.com
# Modified: Geoffrey Grosenbach http://topfunky.com
# Modified: Clement NEDELCU
# Reproduced with express authorization from its contributors
# chkconfig: - 85 15
# description: nginx is a World Wide Web server. It is used to server


set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="nginx daemon"
NAME=nginx
DAEMON=/usr/local/nginx/sbin/$NAME
SCRIPTNAME=/etc/init.d/$NAME


# If the daemon file is not found, terminate the script.


test -x $DAEMON || exit 0


d_start() {
        $DAEMON || echo -n " already running"
        }
d_stop() {
        $DAEMON -s quit || echo -n " not running"
        }
d_reload() {
        $DAEMON -s reload || echo -n " could not reload"
        }


case "$1" in
        start)
                echo -n "Starting $DESC: $NAME"
                d_start
                echo "."
                ;;
        stop)
                echo -n "Stopping $DESC: $NAME"
                d_stop
                echo "."
                ;;
        reload)
                echo -n "Reloading $DESC configuration..."
                d_reload
                echo "reloaded."
                ;;
        restart)
                echo -n "Restarting $DESC: $NAME"
                d_stop
                # Sleep for two seconds before starting again, this should give the
                # Nginx daemon some time to perform a graceful stop.
                sleep 2
                d_start
                echo "."
                ;;
        *)
                echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
                exit 3
                ;;
        esac
        exit 0
·
chmod 700 /etc/init.d/nginx 
chkconfig nginx on


1.7、修改nginx配置文件
cp /conf/nginx.conf /usr/local/nginx/conf
cp /conf/default.conf /usr/local/nginx/conf/conf.d/


2、安装mysql
2.1、安装依赖包
yum -y remove mysql*
yum install wget gcc gcc-c++ make -y
yum install ncurses-devel libtool zilib-devel -y


2.2、创建mysql用户
useradd -s /sbin/nologin -M mysql


2.3、创建所需目录
mkdir -p /var/run/mysql
mkdir -p /data/mysql


2.4、解压安装mysql
tar xvf mysql-5.1.66.tar.gz
cd mysql-5.1.66 


#执行三条语句 解决 /bin/rm: cannot remove `libtoolT': No such file or directory
autoreconf --force --install
libtoolize --automake --force
automake --force --add-missing


./configure \
--prefix=/usr/local/mysql/ \
--localstatedir=$mysqldatadir \
--enable-assembler \
--enable-thread-safe-client \
--enable-local-infile \
--with-pthread  \
--with-ssl \
--with-mysqld-ldflags=-all-static \
--with-client-ldflags=-all-static \
--with-mysqld-user=mysql \
--with-charset=utf8 \
--with-collation=utf8_general_ci \
--with-extra-charsets=complex  \
--with-plugins=innobase,myisam,myisammrg \
--with-big-tables \
--with-unix-socket-path=/var/run/mysql/mysql.sock \
--without-docs \
--without-man  \
--with-embedded-server \
--with-readline 


make && make install


2.5、修改配置文件并启动数据库
cd /usr/local/mysql/
cp share/mysql/my-huge.cnf /etc/my.cnf
/usr/local/mysql/bin/mysql_install_db --user=mysql


chown -R root.mysql /usr/local/mysql
chown -R mysql.mysql /data/mysql/
chown -R mysql.mysql /var/run/mysql/


cp share/mysql/mysql.server /etc/init.d/mysql
chmod u+x /etc/init.d/mysql
chkconfig mysql on


cat > /etc/ld.so.conf.d/mysql.conf<<EOF
/usr/local/mysql/lib/mysql
EOF
ldconfig




echo "pid-file = /var/run/mysql/mysqld.pid" >> /etc/my.cnf


sed -i 's/skip-locking/skip-external-locking\nmax_connect_errors = 1844674407370954751\nconnect_timeout = 20\nskip-name-resolve/g' /etc/my.cnf




/etc/init.d/mysql start


2.6、创建mysql用户
bin/mysqladmin -u root password root
/usr/local/mysql/bin/mysql_secure_installation


3、安装php
3.1、yum依赖包安装
yum -y remove php*


yum -y install patch
yum install gd-devel libpng-devel zlib-devel freetype-devel libjpeg-devel libxml2-devel  glibc-devel  glib2-devel  bzip2-devel  libidn-devel curl-devel  libtool-ltdl-devel -y
#yum install libtidy-devel gettext-devel libxslt-devel   -y
#yum install giflib-devel libc-client-devel -y
yum install krb5-devel  -y
yum install openldap-devel -y
yum install perl-devel -y


3.2、安装php扩展
tar zxvf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
./configure --prefix=/usr/local
make && make install


tar zxvf libmcrypt-2.5.8.tar.gz 
cd /src/libmcrypt-2.5.8/
./configure
make && make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make && make install
/sbin/ldconfig


tar zxvf mhash-0.9.9.9.tar.gz
cd /src/mhash-0.9.9.9/
./configure
make && make install
/sbin/ldconfig


cat > /etc/ld.so.conf.d/locallib.conf<<EOF
/usr/local/lib
EOF
ldconfig


tar zxvf mcrypt-2.6.8.tar.gz
cd /src/mcrypt-2.6.8/
./configure
make && make install
/sbin/ldconfig


3.3、安装php
tar xvf php-5.2.17.tar.gz
gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-5.2.17 -p1
cd php-5.2.17


./configure --prefix=/usr/local/php \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-iconv-dir=/usr/local \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-discard-path \
--enable-safe-mode \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--with-curlwrappers \
--enable-mbregex \
--enable-fastcgi \
--enable-fpm \
--enable-force-cgi-redirect \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-ldap \
--with-ldap-sasl \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--with-gettext


make ZEND_EXTRA_LIBS='-liconv'  
make install


3.4、修改配置文件并启动php-fpm
cp php.ini-dist /usr/local/php1/etc/php.ini
/usr/local/php/sbin/php-fpm start
注:php-fpm启动失败的时候,可以根据错误提示进行配置文件的用户修改,或者是重新编译php。


3.5、修改nginx 配置文件,使其支持php
server
{
    listen       80;
    server_name localhost;
    index index.html index.htm index.php;
    root  html;


    #limit_conn   crawler  20;
    
    #location ~ /data/(attachment|avatar)/.*\.(php|php5)?$ {
    #    deny all;
    #    }
    location ~ /(attachments|upfile|demo|demo1|flowplayer|image|js|template|static|data)/.*\.(php|php5)?$ {
        deny all;
        }
    
    location ~ ^/attachments/
    {
    root /data/www/oldweb/;
    index  index.html;
    }


    location ~ ^/upfile/
    {
    root /data/www/oldweb/;
    index  index.html;
    }


    location ~ .*\.(php|php5)?$
    {
      #fastcgi_pass  unix:/tmp/php-cgi.sock;
      #fastcgi_pass  127.0.0.1:9000;
      fastcgi_pass fastcgi;
      fastcgi_index index.php;
      include fcgi.conf;
    }
    


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


    location ~ .*\.(js|css)?$
    {
      expires      1h;
    }
    
    log_format bbsaccess  '$remote_addr - $remote_user [$time_local] "$request"' '$status $body_bytes_sent "$http_referer"' '"$http_user_agent" $http_x_forwarded_for';
    #access_log  /data/logs/www/lnts/access.log  bbsaccess;
    #access_log /dev/null access;
}


3.6测试php支持


创建test.php文件,内容如下:
<?php
phpinfo();
?>
作者:yincg 发表于2013-3-22 9:31:57 原文链接
阅读:101 评论:0 查看评论

相关 [centos 编译 nginx] 推荐:

centos 下 编译安装 nginx + mysql + php 服务

- - CSDN博客系统运维推荐文章
1.6、创建nginx启动脚本. 1.7、修改nginx配置文件. 2.2、创建mysql用户. 2.4、解压安装mysql. #执行三条语句 解决 /bin/rm: cannot remove `libtoolT': No such file or directory. 2.5、修改配置文件并启动数据库.

centos下搭建nginx+tomcat实现集群负载与session复制

- - CSDN博客系统运维推荐文章
系统均选用最小化安装的centos 5.7. 客户端通过访问nginx做的负载均衡层去访问后端的web运行层(tomcat),如下图:. 另外,关于session复制原理,简单来说如下图:. 负载层:192.168.254.200. 安装:pcre、nginx、nginx-upstream-jvm-route-0.1.

图文:CentOS 下对 Nginx + Tomcat 配置 SSL 实现服务器 / 客户端双向认证

- - CSDN博客推荐文章
1.1 nginx 包及其依赖包下载. 出于模块的依赖性,Nginx 依赖以下三个包:. gzip 模块需要 zlib 库( http://www.zlib.net/);. rewrite 模块需要 pcre 库( http://www.pcre.org/);. ssl 功能需要 openssl 库( http://www.openssl.org/);.

CentOS配置RPMForge源

- - 启光博客
  之前以发过一篇Linux安装配置网易的第三方源的文章,不过网易源与CentOS自带的官方源中的软件有时候还是感觉不够多,特别是桌面版用户应该深有体会,这个时候你就需要RPMForge,RPMForge被CentOS社区认为是最安全也是最稳定的一个软件仓库,拥有10000多种的软件包.   呵呵,好像有点给RPMForge做广告的感觉.

centos 使用fedora源

- - C++博客_首页
可以从该处理下 http://fedoraproject.org/wiki/EPEL包.   http://dl.fedoraproject.org/pub/epel/ 目录下查找:.   http://dl.fedoraproject.org/pub/epel/6/x86_64/下.

centos 6.2 关闭 IPV6

- - CSDN博客系统运维推荐文章
在现在的Linux上IPv6已经在默认安装下被支持,但是对于一些对IPv6支持不是很好的应用服务器来说,开启了IPv6反而会影响服务器的网络性能,毕竟现在的网络交换设备不是IPv6的. 如何判断系统是否开了ipv6. 第二,也可以通过查看开启的端口. 既然确定开启了之后,那怎样才能关闭呢. 我用的是centos6.2 没有找到/etc/modprobe.conf 文件,所以我就直接vi了一个,并加了两行.

CentOS 6.0 正式发布

- Power - cnBeta.COM
CentOS 是一个企业级的 Linux 发行版本,它源于上游操作系统提供者免费公开的源代码. CentOS 完全遵守上游供应商的再发行政策,并且以百分之百的软件兼容性为目标. (CentOS 对组件的修改主要是去除上游供应商的商标及美工图. )CentOS 6.0 与以往的发行版本有很大改动. CentOS 6.0 是用一个较新的建设系统所建造出来的,而函数库亦被检定可兼容上游的二元档.

centos linux 服务器安全

- - 操作系统 - ITeye博客
我们必须明白:最小的权限+最少的服务=最大的安全. 所以,无论是配置任何服务器,我们都必须把不用的服务关闭、把系统权限设置到最小话,这样才能保证服务器最大的安全. 下面是CentOS服务器安全设置,供大家参考. 一、注释掉系统不需要的用户和用户组. 注意:不建议直接删除,当你需要某个用户时,自己重新添加会很麻烦.

CentOS 6 下载地址出现

- Power - cnBeta.COM
Centos 6下载地址 发表于 2011 年 07 月 08 日 千呼万唤始出来,CentOS 6下载地址已经放出,内部镜像正在向外部镜像站点更新,但是国内镜像站点暂时没有更新. 下载地址如下(暂时只有两个个镜像站点提供下载):.

CentOS 6下搭建Apache+MySQL+PHP+SSL

- 〤依然特雷西 - 博客园-首页原创精华区
网上的一些文章都已经比较老了,现在版本高了之后,其实配置是很省力的(不考虑什么负载的话). 分享全过程,出了文中提到的安装epel rpmfushion 源指令不同外,其他的过程也适用与Centos 5. 1.安装CentOS 6 ,可以选择最小安装,也可以安装桌面. 3.安装mysql,并设置mysql开机自启动,同时启动mysql.