`

nginx,mysql,php环境搭建

阅读更多
1、安装Linux Nginx
# tar -zxvf nginx-0.8.5.tar.gz 
# cd nginx-0.8.5 
# ./configure --prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module –with-http_gzip_static_module –with-http_ssl_module(安装路径及
所需依赖包)--prefix(安装路径)
# make && make install
启动nginx# /usr/local/nginx/sbin/nginx
停止nginx# kill -QUIT `cat /usr/local/nginx/logs/nginx.pid`
重启nginxkill -HUP `cat /usr/local/nginx/logs/nginx.pid`
添加到自启动# echo "/usr/local/nginx/sbin/nginx">>/etc/rc.local
或者用 /usr/local/nginx/sbin/nginx 启动 nginx
/usr/local/nginx/sbin/nginx -s quit 退出nginx
/usr/local/nginx/sbin/nginx -s reload 重新载入
还需要安装 apt-get install spawn-fcgi
每次运行的时候执行:告诉php需要相应的端口号 跟之前做的java一样
spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f
/usr/bin/php-cgi(必须滴)
2、spawn-fcgi,用来启动PHP的FastCGI模式
(linux下载包用 wget方式 或者可以直接安装用apt-get install spawn-fcgi方式)
wget http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz
tar -zxf spawn-fcgi-1.6.3.tar.gz
cd spawn-fcgi-1.6.3
./configure –bindir=/usr/bin –libdir=/usr/lib –prefix=/etc
make&&make install
3、安装mysql
# tar -zxvf mysql-5.0.67.tar.gz 
# cd mysql-5.0.67 
# groupadd mysql 
# useradd -g mysql -s /sbin/nologin -M mysql 
# ./configure --prefix=/usr/local/mysql --with-charset=gbk --with-extra-charset=all --enable-hread-safe-client
--enable-local-infile --with-low-memory 
# make && make install 
# cp support-files/my-medium.cnf     /etc/my.cnf 
# chown -R mysql.mysql /usr/local/mysql/ 
# /usr/local/mysql/bin/mysql_install_db --user=mysql
# chown -R root.root /usr/local/mysql/ 
# chown -R mysql.mysql /usr/local/mysql/var/
启动数据库服务,并添加到自启动
# /usr/local/mysql/bin/mysqld_safe --user=mysql & 
#cp     support-files/mysql.server     /etc/rc.d/init.d/mysqld 
#chmod     755     /etc/rc.d/init.d/mysqld
加入自动启动服务队列:
#chkconfig --add mysqld 
#chkconfig     --level     345     mysqld     on添加root密码 
# /usr/local/mysql/bin/mysqladmin -u root password "123456" 
测试一下:# /usr/local/mysql/bin/mysql -u root -p输入密码:123456,看能不能进入到数据库
配置库文件搜索路径
# echo "/usr/local/mysql/lib/mysql">>/etc/ld.so.conf 
# ldconfig 
# ldconfig -v 
添加/usr/local/mysql/bin到环境变量PATH中 
#echo "export PATH=$PATH:/usr/local/mysql/bin">>/etc/profile 
#source /etc/profile
4、安装PHP
这里产生的是可执行文件,和apache的不一样,和apache结合的时候产生的是动态库
# tar -jxvf php-5.2.6.tar.bz2 
# gzip -cd php-5.2.6-fpm-0.5.9.diff.gz |patch -d php-5.2.6 -p1 
# cd php-5.2.6 
# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --enable-fastcgi --enable-fpm  
--with-config-file-path=/usr/local/php/etc --enable-force-cgi-redirect 
# make && make install 
# cp php.ini-recommended /usr/local/php/etc/php.ini 
# vi /usr/local/php/php-fpm.conf
(1)<value name="listen_address">127.0.0.1:9000</value>修改为<value name="listen_address">IP:9000</value> 
//本机就用默认的127.0.0.1 
(2)下面这两行去掉注释并修改                           
<value name="sendmail_path">/usr/sbin/sendmail -t -i</value>
<value name="display_errors">1</value>
(3)<value name="user">nobody</value>      //去注释 
(4)<value name="group">nobody</value>     //去注释 
(5)<value name="allowed_clients">127.0.0.1</value>      //允许连接的PC,本机就用127.0.0.1
启动php-fpm# /usr/local/php/sbin/php-fpm start添加到自启动# echo "/usr/local/php/sbin/php-fpm start">>/etc/rc.local
5、修改Linux Nginx的配置文件,支持PHP
# vim /usr/local/nginx/conf/nginx.conf 
user     nobody; 
worker_processes     8; 
pid     /usr/local/nginx/logs/nginx.pid; 
worker_rlimit_nofile 1024; 
events 
{use epoll; 
worker_connections 1024;} 
http{ 
include          mime.types; 
default_type     application/octet-stream; 
server_names_hash_bucket_size 128; 
client_header_buffer_size 32k; 
large_client_header_buffers 4 32k; 
client_max_body_size 8m;
sendfile on; 
tcp_nopush        on; 
keepalive_timeout 60; 
tcp_nodelay on; 
fastcgi_connect_timeout 300; 
fastcgi_send_timeout 300; 
fastcgi_read_timeout 300; 
fastcgi_buffer_size 64k; 
fastcgi_buffers 4 64k; 
fastcgi_busy_buffers_size 128k; 
fastcgi_temp_file_write_size 128k; 
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; 

server { 
listen          80; 
server_name     www.bbb.com; 
root      /www/uuweb; 
index     index.html index.htm index.php; 
location ~ .*\.(php|php5)?$ {  或者  location / {
不知道怎么回事我用前一个css不起作用,只能用后面一个。
root              /www/uuweb; 
fastcgi_pass      127.0.0.1:9000;        
fastcgi_index     index.php; 
fastcgi_param     SCRIPT_FILENAME     /www/uuweb$fastcgi_script_name; 
include           fastcgi_params;} 
#location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ 
#{expires         30d;} 
#location ~ .*\.(js|css)?$ 
#{expires         1h;}       
log_format     access     '$remote_addr - $remote_user [$time_local] "$request" ' 
'$status $body_bytes_sent "$http_referer" ' 
'"$http_user_agent" $http_x_forwarded_for'; 
access_log     /var/logs/access.log     access;}}
注:server部分为PHP虚拟主机127.0.0.1:9000为fastcgi的PC,我这里用的本机/www/uuweb$fastcgi_script_name; 为PHP网页保存的目录测试配置文件:
# /usr/local/nginx/sbin/nginx -t


----------------------------------------------------------------

编译pcre库以及nginx

cd /data/download
tar zxvf pcre-8.00.tar.gz -C /usr/local/src/
cd /usr/local/src/pcre-8.00/
./configure
make && make install

cd /data/download
tar zxvf nginx-0.7.64.tar.gz -C /usr/local/src/
cd /usr/local/src/nginx-0.7.64/
./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install

建立nginx的log文件夹

mkdir -p /data/logs
chmod +w /data/logs
chown -R nginx:nginx /data/logs
创建nginx的配置文件

rm -f /usr/local/nginx/conf/nginx.conf
vi /usr/local/nginx/conf/nginx.conf
配置文件内容:

user  nginx nginx;

worker_processes 1;

error_log  /data/logs/nginx_error.log  crit;

pid        /usr/local/nginx/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;

events
{
  use epoll;
  worker_connections 51200;
}

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

  #charset  utf-8;

  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 8m;

  sendfile on;
  tcp_nopush     on;

  keepalive_timeout 60;

  tcp_nodelay on;

  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 64k;
  fastcgi_buffers 4 64k;
  fastcgi_busy_buffers_size 128k;
  fastcgi_temp_file_write_size 128k;

  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;

  server
  {
    listen       80;
    server_name  www.web.cn *.web.cn;
    index index.php;
    root  /data/htdocs/webroot;
    autoindex on;

    if (!-f $request_filename){
      rewrite ^/(.+)$ /index.php?$1& last;
    }

    location ~* ^.+\.(jpg|jpeg|gif|ico)$  {
      access_log off;
      gzip off;
      expires 30d;
    }

    location ~* ^.+\.(css|js)$ {
      access_log off;
      expires 1d;
    }

    location ~* ^.+\.(pdf|gz|bz2|exe|rar|zip|7z)$ {
      gzip off;
    }

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

    log_format  minhlog  '$remote_addr - $remote_user [$time_local] "$request" '
              '$status $body_bytes_sent "$http_referer" '
              '"$http_user_agent" $http_x_forwarded_for';
    access_log  /data/logs/webroot_access.log;
  }
}
上面是假设域名为web.cn,目录就是前面安装php时建立的目录。在能看懂配置内容的时候可以自己修改里面具体的写法,并不复杂的,只有几句而已。

配置fcgi.conf文件:

vi /usr/local/nginx/conf/fcgi.conf
文件内容:

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;
fastcgi_param  REDIRECT_STATUS    200;
配置完成,启动服务:

ulimit -SHn 65535
/usr/local/nginx/sbin/nginx
添加nginx,mysql,php的启动项到启动文件:

vi /etc/rc.local
/data/mysql/3306/mysql start
/usr/local/php/sbin/php-fpm start
/usr/local/nginx/sbin/nginx
这样就能开机自动启动各个服务了。

平滑重启nginx的命令是:

kill -HUP `cat /usr/local/nginx/nginx.pid`
至此web服务已经可以正常运行。对于日志切割的部分,有需要的可以自己参考张宴大牛的博客,一般小站日志也没什么好看的,我自己是直接关闭了的, 当然如果被攻击的话可以再临时打开,具体自己掌握了。也可以自己找一些nginx配置和优化的资料来看,相对来说一点也不复杂,只是要花些时间。

五、后续工作

后续的修改和设置需要看自己的个性化需要,不能一概而论了,这里只给出一点思路。大体分为两块,一是系统的安全与优化,二是网站功能的扩展。第一方 面,包括修改root密码或登录方式、更改ssh端口、配置防ping,清理系统不需要的服务、用户组、用户、精确限制用户的权限等。以及对nginx、 mysql等的安全设置。第二方面,如果需要安装ftp,可以考虑使用centos自带的vsftpd,安装其他扩展时尽量自己编译为好。

使用中注意整理常用的参数,记好各个程序的安装路径、配置文件路径、各类log文件的路径等,常用的系统命令不用说自然要熟记了。尤其强调一定要注意备份,不仅包括网站数据,也包括各类配置文件。

http://guitarsdw2.blog.163.com/blog/static/101437600201021345136141/

===========================================
在配置nginx提示如下错误时:
[emerg]: getpwnam(“www”) failed 
解决方案:
在nginx.conf中 把user www www改为user nobody nobody既可

这里的www是 nginx.conf 中配置的.
user               www; (原来)
user               nobody nobody;

======================================
ginx启动报错,信息如下:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
.....

使用ps ef|grep nginx,并未发现有nginx进程,有可能被其他进程占用,这时可以采用如下方式处理:

1. 查看80端口占用
   netstat -ntpl

2. 杀掉占用80端口的进程

kill -9 $pid

发现httpd 仍然占用
ps -aux | grep httpd
再把找到的请求kill掉.
分享到:
评论

相关推荐

    Linux nginx mysql php LNMP环境搭建

    ### Linux Nginx MySQL PHP (LNMP) 环境搭建详细步骤 #### 一、基础知识简介 在深入了解LNMP的安装配置之前,我们先简要回顾一下这四个组件的基本概念: - **Linux**:一个开源的操作系统,是服务器领域的主流选择...

    Win+Nginx+PHP+MySQL环境搭建.docx

    Win+Nginx+PHP+MySQL 环境搭建 Win+Nginx+PHP+MySQL 环境搭建是指在 Windows 操作系统上安装和配置 Nginx、PHP、MySQL 等组件,以便搭建一个完整的 Web 服务器环境。该环境搭建主要涉及到 Nginx、PHP、MySQL 三个...

    Web环境搭建:Linux+Nginx+PHP+Mysql+Redis

    ### Web环境搭建:Linux+Nginx+PHP+MySQL+Redis #### 一、环境概述与推荐版本 在构建一个高效且稳定的商城系统时,选择合适的Web环境至关重要。本指南将介绍一套广泛应用于电商平台的技术栈——**Ubuntu + PHP + ...

    Linux下php+nginx+mysql环境搭建(CentOS)

    一、搭建环境前的准备工作: 1. 准备知识:首先需要了解VMware的原理及使用方法,熟悉Linux系统常用命令,为后续操作打下基础。 2. 准备资料:熟悉内网下载地址,准备安装软件VMwareWorkstation-v*.*.*.***31和...

    lnmp(centos6.2+nginx+mysql+php)环境搭建系统教程--宋正河

    在IT行业中,构建LNMP(Linux + Nginx + MySQL + PHP)环境是常见的服务器配置方式,用于搭建高性能的Web应用程序。本教程由宋正河创作,主要针对CentOS 6.2操作系统,搭配Nginx 1.2.0、MySQL 5.5.3和PHP 5.4.3的...

    WLNMP(Nginx MySQL PHP集合包) v1.0.1.zip

    WLNMP是一个包含Nginx MySQL PHP的集合包,是由 WordPress联盟开发团队精心开发的本地 PHP 环境安装包,WLNMP可以让你简单地一键在本地建立PHP运行环境,让你的系统瞬间变成服务器,方便开发者本地开发和测试程序。...

    OpenBSD+Nginx+MySQL+PHP环境搭建手册[第二版][汇编].pdf

    OpenBSD+Nginx+MySQL+PHP环境搭建手册[第二版][汇编].pdf

    Nginx PHP MySQL服务器环境搭建技术实践.pdf

    ### Nginx PHP MySQL服务器环境搭建技术实践 #### 一、引言 随着互联网技术的发展,Web应用程序的需求日益增长。为了构建稳定、高效的应用程序,选择合适的Web服务器、编程语言和数据库至关重要。其中,Nginx、PHP...

    Windows 下 Nginx+PHP+MySQL 服务器环境安装配置包

    包含 Nginx+PHP+MySQL 安装包,还有 OpenSSL 安装包和几个实用 bat 小脚本,涵盖了从搭建 Nginx,自签署 SSL 证书,配置 HTTPS ,部署和配置 Windows PHP 服务器环境,连接 MySQL 的全部所需软件。Linux 可能是搭建...

    lnmp安装(nginx mysql php )

    LNMP(Linux + Nginx + MySQL + PHP)是一种常见的Web服务器组合,广泛应用于网站部署和开发环境中。本文将详细讲解如何在Linux系统上安装这三个关键组件,构建一个功能强大的Web服务环境。 首先,让我们从Nginx...

    centOS7 配置php+nginx+mysql 环境脚本

    本文将详细介绍如何在CentOS7操作系统上配置PHP+nginx+MySQL的环境,以及使用自动脚本来简化这一过程。这个环境是许多网站和应用程序的常用基础架构,它提供了强大的动态内容处理(PHP),高效的静态资源服务(nginx...

    linux+nginx+mysql+php搭建

    linux下搭建php项目运行环境,其中包括nginx1.3的编译安装与配置,mysql5.7二进制包的详细安装过程,php7.1的编译安装与配置,php扩展新增的挂载编译安装与配置。

    nginx+apache+mysql+php+memcached+squid搭建门户网站

    ### Nginx+Apache+MySQL+PHP+Memcached+Squid 搭建门户网站 #### 一、前言与架构概述 随着互联网技术的发展,如何构建一个高效、稳定且能够应对高并发访问的Web服务器成为了许多企业和开发者关注的重点。本文将...

    php运行环境搭建(apache nginx)

    这里我们关注的是两种常见的服务器环境配置:Apache和Nginx,这两种服务器软件与PHP和MySQL的集成。这两种环境配置都能为PHP提供稳定且高效的运行平台。 **Apache + PHP + MySQL** Apache是世界上最流行的Web...

    CentOS7 自动化搭建Nginx+PHP7+Mysql+Docker+Docker-Compose Shell脚本

    CentOS7 自动化搭建Nginx+PHP7+Mysql+Docker+Docker-Compose Shell脚本,Docker version 18.06.1-ce,docker-compose version 1.22.0

    linux+nginx+php+mysql环境配置指南.pdf

    本文档旨在指导用户如何配置 Linux+Nginx+PHP+MySQL 环境,以便搭建一个功能齐全的 Web 服务器。下面是详细的配置步骤: 一、安装 Red Hat Linux 首先,需要安装 Red Hat Linux 操作系统。安装过程中,选择中文...

    nginx+apache+mysql+php+memcached+squid搭建集群web环境

    本篇文章将详细阐述如何使用nginx、apache、mysql、php、memcached和squid来搭建这样一个集群。 **一、前言与准备** 首先,我们需要了解集群Web环境的基本架构,通常包括客户端、负载均衡器、反向代理/缓存、Web...

    Nginx+PHP+MySQL (Windows版)

    Nginx+PHP+MySQL是构建高性能Web应用的典型组合,尤其在Windows环境下,这个配置提供了灵活且高效的服务器环境。让我们深入探讨这三个组件以及如何在Windows系统上搭建和使用它们。 **Nginx(发音为“engine x”)*...

Global site tag (gtag.js) - Google Analytics