nginx php iconv,Nginx +PHP部署一

Nginx  +PHP部署一

Alvin.zeng

目录

一、安装PHP

1、Yum安装需要的包

yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers mysql-devel libevent-devel

2、编译gd和libiconv

官方网站GD

http://www.libgd.org/releases/gd-2.0.35.tar.bz2

#:tar–xvfgd-2.0.35.tar.bz2–C /opt/

#:cd /opt/gd-2.0.35

#:./configure  --prefix=/usr/local/gd2

#: make && make install

需要make两次,第一次会出错,

编译libiconv

#: tar–xvflibiconv-1.13.1.tar.gz

#: cdlibiconv-1.13.1

#:./configure --prefix=/usr/local/libiconv

#: make && make install

3、编译PHP5.3.3

官方网站

http://cn.php.net/distributions/php-5.3.3.tar.gz

#:rpm -vih libmcrypt-2.5.8-4.el5.centos.x86_64.rpm

#:rpm -vih libmcrypt-devel-2.5.8-4.el5.centos.x86_64.rpm

#: tar–xvfphp-5.3.3.tar.gz–C /opt/

#:cd /opt/php-5.3.3

#:./configure --prefix=/usr/local/php5.3 --enable-fpm --with-mysql --with-iconv=/usr/local/libiconv/ --with-pdo-mysql --with-mysqli --with-fpm-user --with-config-file-path=/etc --disable-sqlite3 --enable-soap --with-zlib --enable-xml --with-gd=/usr/local/gd2  --enable-mbstring --enable-mcrypt --enable-mbstring --enable-gd-native-ttf --with-jpeg-dir --with-png-dir --with-freetype-dir --with-openssl --with-mcrypt

#: make && make install

错误:configure: error: mysql configure failed. Please check config.log for more information.

解决:export LDFLAGS=-L/usr/lib64/mysql/指定一下64位环境变量,默认是找32位的。

4、编译eaccelerator和编译xhprof和Client-phpredis

官方网站

http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2

#:tar–xvfeaccelerator-0.9.6.1.tar.bz2–C /opt/

#: cd /opt/eaccelerator-0.9.6.1

#:/usr/local/php5.3/bin/phpize运此命令生成configure文件

#:./configure --prefix=/usr/local/eaccelerator --with-php-config=/usr/local/php5.3/bin/php-config --enable-eaccelerator

#: make && make install

官方网站

http://pecl.php.net/get/xhprof

#:tar–xvfxhprof-0.9.2.tar.gz–C /opt/

#:cd/opt/xhprof-0.9.2/extension

#:/usr/local/php5.3/bin/phpize运此命令生成configure文件

#: ./configure--with-php-config=/usr/local/php5.3/bin/php-config

#: make && make install

官方网站,

http://download.github.com/owlient-phpredis-2.0.8-0-g0c0409a.tar.gz

#:tar–xvfowlient-phpredis-2.0.8-0-g0c0409a.tar.gz/opt/

#: cdowlient-phpredis-2.0.8-0-g0c0409

#:/usr/local/php5.3/bin/phpize运此命令生成configure文件

#: ./configure--with-php-config=/usr/local/php5.3/bin/php-config

#: make && make install

5、配置PHP

(1)、拷贝库

#:cd /usr/local/php5.3/lib/php/extensions/no-debug-non-zts-20090626/

#:cp eaccelerator.soxhprof.so  /usr/local/php5.3/lib/php/extensions/

(2)、创建PHP用户

#:groupadd php

#:useradd–g php php

#:chgrp–R php /usr/local/php5.3

(3)、拷贝PHP.ini

spacer.gif

#:cp php.ini /etc/

将PHP这两个功能打开

extension = "xhprof.so"

extension = "eaccelerator.so"

[xhprof]

xhprof.output_dir=/tmp/xhprof

[eAccelerator]

;extension="eaccelerator.so"

eaccelerator.shm_size="16"

eaccelerator.cache_dir="/tmp/eaccelerator"

eaccelerator.enable="1"

eaccelerator.optimizer="1"

eaccelerator.check_mtime="1"

eaccelerator.debug="0"

eaccelerator.filter=""

eaccelerator.shm_max="0"

eaccelerator.shm_ttl="0"

eaccelerator.shm_prune_period="0"

eaccelerator.shm_only="0"

eaccelerator.compress="1"

eaccelerator.compress_level="9"

(4)、拷贝fpm配置文件

#:cp /usr/local/php5.3/etc/php-fpm.conf.default/usr/local/php5.3/etc/php-fpm.conf

(5)、修改fpm配置文件

spacer.gif

# cat /usr/local/php5.3/etc/php-fpm.conf | grep -v ";"

[global]

[www]

listen = 127.0.0.1:9000

user = php

group = php

pm = dynamic

pm.max_children = 50

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

pm.max_requests = 500

6、启动PHP

#:cd /usr/local/php5.3/sbin/

# ./php-fpm

#: ps–ef | grep php

# ps -ef | grep php

root     14104 24282  0 22:43 pts/1    00:00:00 grep php

root     27635     1  0 20:54 ?        00:00:00 ./php-fpm

php      27636 27635  0 20:54 ?        00:00:00 ./php-fpm

php      27637 27635  0 20:54 ?        00:00:00 ./php-fpm

php      27638 27635  0 20:54 ?        00:00:00 ./php-fpm

php      27639 27635  0 20:54 ?        00:00:00 ./php-fpm

php      27640 27635  0 20:54 ?        00:00:00 ./php-fpm

php      27641 27635  0 20:54 ?        00:00:00 ./php-fpm

php      27642 27635  0 20:54 ?        00:00:00 ./php-fpm

php      27643 27635  0 20:54 ?        00:00:00 ./php-fpm

php      27644 27635  0 20:54 ?        00:00:00 ./php-fpm

php      27645 27635  0 20:54 ?        00:00:00 ./php-fpm

php      27646 27635  0 20:54 ?        00:00:00 ./php-fpm

php      27647 27635  0 20:54 ?        00:00:00 ./php-fpm

php      27648 27635  0 20:54 ?        00:00:00 ./php-fpm

php      27649 27635  0 20:54 ?        00:00:00 ./php-fpm

php      27650 27635  0 20:54 ?        00:00:00 ./php-fpm

php      27651 27635  0 20:54 ?        00:00:00 ./php-fpm

php      27652 27635  0 20:54 ?        00:00:00 ./php-fpm

php      27653 27635  0 20:54 ?        00:00:00 ./php-fpm

php      27654 27635  0 20:54 ?        00:00:00 ./php-fpm

php      27655 27635  0 20:54 ?        00:00:00 ./php-fpm

二、安装Nginx

1、创建用户,建立网站数据目录

#:groupadd  www

#:useradd–g www www

#:mkdir–p /data/htdocs/zeng

#:mkdir–p /data/htdocs/yong

#:chown + w /data/htdocs/zeng

#:chwon +w /data/htdocs/yong

#:chown–R www:www /data/htdocs/zeng

#:chwon–R www:www /data/htdocs/yong

2、编译pcre-8.10稳定版

官方网站

下载ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.10.tar.gz

#:tar–xvf pcre-8.10–C /opt/

#:cd /opt/pcre-8.10

#:./configure     注意不要指定路经,否则下面Nginx会编译出错

#:make && make install

3、编译nginx-0.8.51稳定版

官方网站下载

下载http://nginx.org/download/nginx-0.8.52.tar.gz

#:tar–xvf nginx-0.8.52.tar.gz–C /opt/

#:cd /opt/ nginx-0.8.52

#:./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

#:make && make install

4、创建日志目录

#:mkdir–p /nginxlog/logs

#:chmod +w /nginxlog/logs

#:chown–R www:www /nginxlog/logs

5、编辑Nginx配置文件

spacer.gif

#:vi/usr/local/nginx/confuser  www www;

worker_processes8;#:启动8个进程

error_log  /nginxlog/logs/nginx_error.log  crit;#:日志文件路径

pid        /usr/local/nginx/nginx.pid;#:pid文件路经

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

worker_rlimit_nofile 65535;#:连接数量65535

events

{

use epoll;

worker_connections 65535;#:连接数量65535

}

http

{

include       mime.types;

default_type  application/octet-stream;

#charset  gb2312;

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;

#limit_zone  crawler  $binary_remote_addr  10m;

server

{

listen       80;#:监听端口80

server_name  www.yong.com;#:网站域名

index index.html index.htm index.php;

root  /data0/htdocs/blog;#:网站数据聚路径

#limit_conn   crawler  20;

location ~ .*\.(php|php5)?$

{

#fastcgi_pass  unix:/tmp/php-cgi.sock;

fastcgi_pass  127.0.0.1:9000;

fastcgi_index index.php;

include fcgi.conf;

}

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  /data1/logs/access.log  access;

}

server

{

listen       80;#:监听端口

server_name  www.zeng.com;#:网站域名

index index.html index.htm index.php;#:主页格式

root  /data0/htdocs/www;#:网站数据存放路径

location ~ .*\.(php|php5)?$

{

#fastcgi_pass  unix:/tmp/php-cgi.sock;

fastcgi_pass  127.0.0.1:9000;

fastcgi_index index.php;

include fcgi.conf;

}

log_format  wwwlogs  '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" $http_x_forwarded_for';

access_log  /data1/logs/wwwlogs.log  wwwlogs;#:数据日志存放路径

}

server

{

listen  80;

server_name  status.blog.s135.com;

location / {

stub_status on;

access_log   off;

}

}

}

6、新建fcgi配置文件

spacer.gif

#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;

# PHP only, required if PHP was built with --enable-force-cgi-redirect

fastcgi_param  REDIRECT_STATUS    200;

7、优化Linux内核参数

#:vi /etc/sysctl.conf 在文件末尾增加

#:/sbin/sysctl –p可立即生效

# Add

net.ipv4.tcp_max_syn_backlog = 65536

net.core.netdev_max_backlog =  32768

net.core.somaxconn = 32768

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

net.ipv4.tcp_timestamps = 0

net.ipv4.tcp_synack_retries = 2

net.ipv4.tcp_syn_retries = 2

net.ipv4.tcp_tw_recycle = 1

#net.ipv4.tcp_tw_len = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_mem = 94500000 915000000 927000000

net.ipv4.tcp_max_orphans = 3276800

#net.ipv4.tcp_fin_timeout = 30

#net.ipv4.tcp_keepalive_time = 120

net.ipv4.ip_local_port_range = 1024  65535

8、启动Nginx

检查配置文件是否正确,

#:/usr/local/nginx/sbin/nginx –t

启动

#:/usr/local/nginx/sbin/nginx

8.0X版本,重起

#:/usr/local/nginx/sbin/nginx–sreload

9、每写每天定时切割Nginx日志的脚本

#:vi /usr/local/webserver/nginx/sbin/cut_nginx_log.sh

#!/bin/bash

# This script run at 00:00

# The Nginx logs path

logs_path="/usr/local/webserver/nginx/logs/"

Cutlog(){

mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/

mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log

kill -USR1 `cat /usr/local/webserver/nginx/nginx.pid`

}

Main()

{

Cutlog

}

#:Main

Main

设置crontab,每天凌晨00:00切割nginx访问日志

crontab -e

00 00 * * * /bin/bash  /usr/local/webserver/nginx/sbin/cut_nginx_log.sh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/310880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

以Blog.Core的方式来打开Abp.vNext

(发现Abp这个logo真像佐助写轮眼)最近自己的框架已经基本的成型了,当然还有很多质疑的地方,比如这些人是这么说的,基本都是原文:你的教程太乱了,和框架代码都不一样(?&am…

算法题目中常见的几种输入小点-gets,cin,scanf,getline,sstream

cin,scanf遇到空格都会停下来。gets可读入空格 例如: 在这里由于要读入空格,我们用gets来读入。 const int N 8; char g[N][N];while(gets(g[0])!NULL) {gets(g[1]);}C关于getline()和getchar()的小点C stringstream输入方式下面这两段代码要注意一下: const in…

如何做好一个开源项目(一)

做好一个开源项目其实是一件比较费时费力费心的工作,它的最大难点除了代码维护之外,还包括后期的维护和持续的跟进。我曾经做过不少开源项目,但是坚持下来的,目前有信心能够持续维护的也只有Magicodes.IE。这里请允许我来一波硬广…

Abp商业版 - Identity Server模块

该模块提供了Identity Server的集成和管理功能.建立在IdentityServer4类库之上.管理系统中的客户端,身份资源和API资源(Clients, Identity resources, API resources)设置客户端(Clients)权限.轻松创建标准的身份资源(例如role, profile)创建自定义身份资源(identity resources…

洛谷 P1162 填涂颜色-dfs染色法

输入: 6 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1输出: 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 2 2 1 1 1 2 2 2 1 1 2 2 2 2 1 1 1 1 1 1 1代码如下: #include <iostream> using namespace std; const int N 40; int mp[N][N], mps[N][N…

15个基本的C#面试问题

原文来自互联网&#xff0c;由长沙DotNET技术社区【笑语】编译。原文来自&#xff1a;https://www.toptal.com/c-sharp/top-10-mistakes-that-c-sharp-programmers-make1、给定一个int数组&#xff0c;编写方法以统计所有偶数的值。有很多方法可以做到这一点&#xff0c;但是最…

洛谷 P1122 最大子树和-求树的最大子树权值和

输入: 7 -1 -1 -1 1 1 1 0 1 4 2 5 3 6 4 7 5 7 6 7输出: 3代码如下: #include <iostream> #include <vector> using namespace std; const int N 100010; typedef long long LL; LL ans; vector<LL>t[N]; LL w[N];void dfs(int root, int fa) {for (int…

玩转控件:封装Dev的LabelControl和TextEdit

缘由俗话说的好&#xff1a;"工欲善其事必先利其器"&#xff0c;作为软件攻城狮也是同样道理&#xff0c;攻城狮开发的软件目的是简化客户的操作&#xff0c;让客户动动手指就可以完成很多事情&#xff0c;减少人力成本。这也是系统/软件存在的目的。那对于攻城狮来说…

洛谷 P1958 上学路线-dfs

输入: 5 4 3 2 2 2 3 4 2输出: 5注意点:这题目输入的时候先输入列&#xff0c;再输入行&#xff0c;这点要注意&#xff0c;然后这个图跟我们二维数组是反过来的&#xff0c;所以题目说得向北走要变成向南走&#xff0c;注意一下细节就好了。 代码如下: #include <io…

.NET Core开发实战(第33课:集成事件:使用RabbitMQ来实现EventBus)--学习笔记(下)...

33 | 集成事件&#xff1a;使用RabbitMQ来实现EventBus为了演示我们的发布和订阅的话&#xff0c;我们在这里的代码做一些稍微的调整namespace GeekTime.API.Application.DomainEventHandlers {public class OrderCreatedDomainEventHandler : IDomainEventHandler<OrderCre…

文本框赋值guide matlab,科学网-Matlab: 学习GUI (使用GUIDE时需注意的几个问题)-刘磊的博文...

在博文《Matlab&#xff1a;学习GUI(一个简单的例子)》(介绍的方法是完全用代码来建立一个GUI&#xff0c;实际上Matlab本身有一个设计GUI的交互系统——GUIDE&#xff0c;用户可以使用该系统更方便的建立自己的GUI.本文将介绍使用GUIDE时常常遇到的几个问题。本文将通过一个简…

洛谷 P1294 高手去散步-邻接矩阵+dfs-求无向图的一条最长路径

输入: 4 6 1 2 10 2 3 20 3 4 30 4 1 40 1 3 50 2 4 60输出: 150邻接矩阵&#xff1a; 代码如下: #include <iostream> using namespace std;int ans -1; const int N 25; int mp[N][N]; bool vis[N]; int n, m; void dfs(int u, int sum) {ans max(ans, sum);for …

论ORM框架—EntityFrameworkCore

欢迎大家阅读《朝夕Net社区技术专刊》我们致力于.NetCore的推广和落地&#xff0c;为更好的帮助大家学习&#xff0c;方便分享干货&#xff0c;特创此刊&#xff01;很高兴你能成为忠实读者&#xff0c;文末福利不要错过哦&#xff01;01PARTORM框架ORM&#xff08;Object Rela…

苏老师首播3小时!超500人观看!录屏!源码!PPT……你要的都在这里!

点击视频 ☝ 回顾直播现场2020年3月25日晚18&#xff1a;30&#xff0c;“盛派周三分享”首次直播交流会&#xff0c;由盛派技术团队带头人Jeffrey&#xff0c;苏震威老师主持、分享&#xff0c;主题是《SCF 框架介绍快速创建项目演示》。此次直播历时3个多小时&#xff0c;500…

[蓝桥杯][算法提高VIP]数的划分-dp

题目描述 一个正整数可以划分为多个正整数的和&#xff0c;比如n3时&#xff1a; 3&#xff1b;1&#xff0b;2&#xff1b;1&#xff0b;1&#xff0b;1&#xff1b; 共有三种划分方法。 给出一个正整数&#xff0c;问有多少种划分方法。 输入 一个正整数n 数据规模和约定 …

十问十答 GPL 许可证

GPL 是 GNUs General Public License 的缩写&#xff0c;翻译成中文叫 GNU 的通用公共许可证&#xff0c;是最受欢迎的开源许可证之一。它由理查德斯托曼&#xff08;Richard Stallman&#xff09;创建&#xff0c;目的是保护 GNU 软件免于被专有&#xff0c;是基于他「版权向左…

oracle consistent gets,oracle构建一致性读

对于实际的业务系统&#xff0c;通常有一些热点的表&#xff0c;insert和delete的量非常大&#xff0c;这个时候就会发现一些查询语句的逻辑读比较偏高&#xff0c;这时可能就是oracle在构建一致性块的进行的consistentread。下面做一个测试看下&#xff1a;第一步准备数据&…

解析“60k”大佬的19道C#面试题(上)

解析“60k”大佬的19道C#面试题&#xff08;上&#xff09;先略看题目&#xff1a;请简述 async函数的编译方式请简述 Task状态机的实现和工作机制请简述 await的作用和原理&#xff0c;并说明和 GetResult()有什么区别Task和 Thread有区别吗&#xff1f;如果有请简述区别简述 …

通过极简模拟框架让你了解ASP.NET Core MVC框架的设计与实现[上篇]

《200行代码&#xff0c;7个对象——让你了解ASP.NET Core框架的本质》让很多读者对ASP.NET Core管道有了真实的了解。在过去很长一段时间中&#xff0c;有很多人私信给我&#xff1a;能否按照相同的方式分析一下MVC框架的设计与实现原理&#xff0c;希望这篇文章能够满足你们的…

通过极简模拟框架让你了解ASP.NET Core MVC框架的设计与实现[中篇]:请求响应

《200行代码&#xff0c;7个对象——让你了解ASP.NET Core框架的本质》让很多读者对ASP.NET Core管道有了真实的了解。在过去很长一段时间中&#xff0c;有很多人私信给我&#xff1a;能否按照相同的方式分析一下MVC框架的设计与实现原理&#xff0c;希望这篇文章能够满足你们的…