https://webtatic.com/packages/nginx18/
{
https://webtatic.com/packages/php55/
https://webtatic.com/packages/php56/
https://webtatic.com/packages/php70/
}
https://webtatic.com/packages/mysql55/
Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU得操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Uninx以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。这里采用目前市面上主流的Linux服务器系统版本CentOS
Install
Nginx("engine x")是一个高性能的HTTP和 反向代理 1 服务器,也是一个IMAP/POP3/SMTP代理服务器2 。Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。
Install
yum install
新创建一个文件nginx.repo文件存放至/etc/yum.repos.d/nginx.repo,并将下面内容复制:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
新yum 3并安装Nginx
$ yum update
$ yum -y install nginx
启动Nginx
$ /etc/init.d/nginx start #start|stop|restart|reload|status|configtest
yum配置
通过yum安装的Nginx,配置文件的路径/etc/nginx
user nginx; //nginx启动的user
worker_processes 2; //nginx进程数,建议按照cpu数目来指定,一般为它的倍数
worker_cpu_affinity 0101 1010; // 为每个进程分配cpu,例中将2个进程分配到8个cpu,当然可以写多个,或者将一个进程分配到多个cpu
error_log /var/log/nginx/error/log warn; //错误日志路径可以自选 [debug | info | notice | warn | error | crit | alert |emerg]
pid /var/run/nginx.pid; //进程ID指定文件
worker_rlimit_nofile 102400; //这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n的值保持一致。
events {
use epoll; //使用epoll的I/O模型
worker_connections 102400; //每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为worker_processes*worker_connections。
}
http {
include /etc/nginx/mime.types; //MIME是用于描述信息内容类型的国际标准,信息可以包含文本、图像、音频、视频和其他的应用程序细节数据。
default_type application/octet-stream;
charset utf-8; //默认编码
server_names_hash_bucket_size 128; //服务器名字的hash表大小
client_header_buffer_size 32k; //上传文件大小限制
large_client_header_buffers 4 64k; //设定请求缓
client_max_body_size 8m; //设定请求缓
sendfile on; //开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
autoindex on; //开启目录列表访问,合适下载服务器,默认关闭
tcp_nopush on; //防止网络阻塞
tcp_nodelay on; //防止网络阻塞
keepalive_timeout 120; //长连接超时时间,单位秒
#FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度
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模块设置
gzip on; //开启gzip压缩输出
gzip_min_length 1k; //最小压缩文件大小
gzip_buffers 4 16k; //压缩缓冲区
gzip_http_version 1.0; //压缩版本 默认1.1,前端使用squid2.5,使用1.0
gzip_comp_level 2; //压缩等级
gzip_type text/plain application/x-javascript text/css application/xml; //压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有大问题,但是会有个一warn
gzip_vary on;
include /etc/nginx/conf.d/*.conf; //引入配置server配置文件
}
虚拟主机配置 /etc/nginx/conf.d/ 后缀为.conf
server
{
listen 80; //监听端口
server_name *.ideliver.cn *.ideliver.com; //可以是域名也可以是IP,多个使用空格隔开
index index.html index.htm index.php;
root /dev/app;
location ~ .*.(php|php5)?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_conf;
}
#图片缓存时间设置
location ~ .*.(git|jpg|jpeg|png|bmp|swf)$
{
expires 10d;
}
#js和css缓存时间设置
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/log/nginx/ideliver.log.access;
#其他的配置请参考Nginx官网
}
目前DEV环境下配置案例
server {
listen 80;
server_name ~^dev(-[a-z\d]+)?\.php\.ideliver2\.cn$;
server_name ~^(admin|activite)\.dev(-[a-z\d]+)?\.php\.ideliver2\.cn$;
autoindex on;
# 默认用户是test
set $dev_user 'develop';
# 默认项目是api
set $dev_proj 'api';
# 分别有api(默认)、admin、activite等子系统
if ( $http_host ~* "^(admin|activite)\.dev(-[a-z\d]+)?\.php\.ideliver2\.cn$") {
set $dev_proj $1;
}
# 读取用户名,匹配不到则为test
if ( $http_host ~* "dev-([a-z\d]+)\.php\.ideliver2\.cn$") {
set $dev_user $1;
}
#默认的开发环境
set $dev_root "/home/$dev_user/htdocs/$dev_proj";
add_header X-Dev_User $dev_user;
add_header X_Dev_Proj $dev_proj;
root $dev_root;
location / {
index index.html index.htm index.php;
try_files $uri @rewrite;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri @rewrite;
fastcgi_pass 127.0.0.1:9000;
#fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $dev_root$fastcgi_script_name;
include fastcgi_params;
}
location @rewrite {
rewrite ^/api/(.*)?(.*)$ /api.php?jk=$1$2;
rewrite ^/(.*)/api/(.*)?(.*)$ /$1/api.php?jk=$2$3 last;
#rewrite (.*) /index.php?$1 last;
}
}
其中rewrite是重定向,大家可以根据自己的实际项目需求进行改动!
yum源
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
yum search php
php install
yum install -y php55w php55w-fpm //空格加上所需的插件
pecl install
yum install -y php55w-pear php55w-dev
swoole install
可以安装其他pecl
pecl install swoole
//安装成功后,请将swoole.so文件添加至php.ini文件中
pecl install redis //Redis
//安装mongo需安装openssl
sudo yum search openssl
sudo yum install openssl
sudo yum install openssl-devel
pecl install mongo //MongoDB...
启动php-fpm
/etc/init.d/php-fpm start #start|stop|restart|reload|status|configtest
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
yum源
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
Redis install
yum --enablerepo=remi,remi-test install redis
Redis 启动
/etc/init.d/redis #start|stop|restart|reload|status|configtest
安装mysql
https://webtatic.com/packages/mysql55/