一、linux下nginx1.7.8+php5.6.3的环境配置
部分参考:http://www.cnblogs.com/simpman/p/4151662.html
http://blog.zyan.cc/nginx_php_v6
1、利用linux系统自带的yum命令安装、升级所需的程序库(这一步最好执行一下,反正也没有什么大碍,执行一边就行)
sudo -s
LANG=C
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
2、安装nginx1.7.8
1)首先安装nginx依赖的一下模块:
gzip模块需要zlib库
rewrite模块需要pcre库(必须)
ssl功能需要openssl库
(1)安装pcre库
方法一:
获取pcre编译安装包,在http://www.pcre.org/上可以获取相应的版本。然后拷贝到/usr/local/src/目录下
cd /usr/local/
tar -zxvf pcre2-10.00.tar.gz
cd pcre2-10.00
./configure
make
make install
方法二:
cd /usr/local/
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-10.20.tar.gz
tar -zxvf pcre2-10.00.tar.gz
cd pcre2-10.00
./configure
make
make install
(2)安装openssl库
下载地址http://www.openssl.org/source/,方法和上面一样。
(3)安装zlib库
下载地址http://www.zlib.net/,方法和上面一样。
2)安装nginx
Nginx一般有两个版本,分别为稳定版和开发版,根据需求选择。
我们可以给Nginx指定用户组和用户,创建用户和组:
/usr/sbin/groupadd www ##用户
/usr/sbin/useradd -g www www ##组
Nginx的安装非常简单。在默认情况下,经过编译安装的Nginx包含了大部分可用模块。可以通过“./configure --help”选项设置各个模块的使用情况,例如对不需要的http_ssi模块,可通过“--without-http_ssi_module”方式关 闭此模块;同理,如果需要“http_perl”模块,那么可以通过“--with-http_perl_module”方式安装此模块。 “http_perl”模块可以用来启用 Nginx 的 NginxStatus 功能,以监控 Nginx 的当前状态。一下是安装过程:
wget http://nginx.org/download/nginx-1.7.8.tar.gz
tar zxvf nginx-1.7.8.tar.gz
cd nginx-1.7.8
./configure --user=www --group=www --with-http_stub_status_module --prefix=/usr/local/nginx
make
make install
注意:如果安装时找不到上述依赖模块,使用--with-openssl=<openssl_dir>、--with-pcre=<pcre_dir>、--with-zlib=<zlib_dir>指定依赖的模块目录。
打开/usr/local/nginx/conf/nginx.conf文件,并在最上面加上一句:user www www
》》》》》》》》》到此,Nginx完成安装。
查看管理Nginx的帮助。
/usr/local/nginx/sbin/nginx -h
我们可以在浏览器中输入http://192.168.1.204:80查看nginx是否正常运行,默认为80端口
或
执行命令:$ ps -A|grep nginx #如果有返回结果,说明nginx在运行,服务已经启动
$ /usr/local/nginx/sbin/nginx #启动nginx(方法一)
或
执行命令: $ netstat -ano|grep 80 #查看80端口占用状态判断nginx是否启动,前提是
80端口只被nginx使用
3)配置文件
(1)nginx.conf文件(主配置文件)
配置文件在/nginx/conf/目录下面,其中nginx.conf为主配置文件。
vi nginx.conf
nginx.conf中,
最上面,user www www #设置nginx运行的用户和组
#全局错误日志及PID文件###
pid logs/nginx.pid
error_log logs/error.log
##########################
worker_process表示工作进程的数量,一般设置为cpu的核数
worker_connections表示每个工作进程的最大连接数
server{}块定义了虚拟主机
listener 监听端口
server_name 监听域名
location{}是用来为匹配的URI进行配置,location / {}匹配任何查询,所以请求都以/开头
root指定对应uri的资源查找路径,这里html为相对路径,完整的为/usr/local/nginx/html/
Index指定首页index文件的名称,可以配置多个,以空格分开。按顺序查找
**根路径为/nginx/html/,该目录下:
50x.html为服务器错误重定向
(2)mime.types文件
文件扩展名与文件类型映射表,nginx根据映射关系,设置http请求响应头的
Content-Type值。当在映射表中找不到时,使用nginx.conf文件中default-type指定的默认值。
eg,在nginx.conf文件中,
include mime.types;
default_type application/octet-stream
(3)fastcgi_params文件
Nginx配置Fastcgi解析时会调用fastcgi_params配置文件来传递服务器变量,这样
CGI中可以获取到这些变量的值
(4)fastcgi.conf文件
相对fastcgi_param文件,只多出了一行:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
这样做是为了避免许多人在定义SCRIPT_FILENAME时使用硬编码的方式
(5)uwsgi_params文件
与fastcgi_params一样,只不过前缀使用uwsgi_param
(6)scgi_params文件
与fastcgi_params一样,只不过前缀使用scgi_param
(7)koi-utf文件、koi-win文件、win-utf文件
这三个文件都是与编码转换映射文件,用于在输出内容到客户端时,将一种编码转
换到另一种编码
Koi-win: charset_map koi8-r <-->windows-1251
Koi-utf : charset_map koi8-r <-->utf-8
Win-utf: charset_map windows-1251 <-->utf-8
3、安装MySQL-5.5.3-m3
下载
cd /usr/local/src
wget http://blog.zyan.cc/soft/linux/nginx_php/mysql/mysql-5.5.3-m3.tar.gz
安装
#增加mysql的使用者
/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql
tar zxvf mysql-5.5.3-m3.tar.gz
cd mysql-5.5.3-m3/
./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=partition,innobase,myisammrg
make && make install
chmod +w /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
cd ../
PS:正常情况下我们还需要其他的一些配置操作,但是如果你只是希望让PHP支持MySQL扩展库,能够连接其他服务器上的MySQL数据库,那么,到此MySQL就算安装完成了。(我只是需要PHP支持MySQL扩展库)
完整安装:http://www.cnblogs.com/yxpblog/p/4653732.html
4、安装PHP
1)编译安装PHP所需的支持库
下载:
wget http://blog.zyan.cc/soft/linux/nginx_php/libiconv/libiconv-1.13.1.tar.gz
wget http://blog.zyan.cc/soft/linux/nginx_php/mcrypt/libmcrypt-2.5.8.tar.gz
wget http://blog.zyan.cc/soft/linux/nginx_php/mcrypt/mcrypt-2.6.8.tar.gz
wget http://blog.zyan.cc/soft/linux/nginx_php/mhash/mhash-0.9.9.9.tar.gz
编译安装:
tar zxvf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1/
./configure
make
make install
cd ../ tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure
make
make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make
make install
cd ../../ tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure
make
make install
cd ../ ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
/sbin/ldconfig
./configure
make
make install
cd ../
2)安装php
因为在php5.3.3以后php-fpm已经加入到php内核中。老版本中php-fpm是以patch的方式安装。我们安装php-5.6.3版本。
wget http://cn2.php.net/get/php-5.6.3.tar.gz/from/this/mirror
tar zxvf php-5.6.3.tar.gz
cd php-5.6.3
./configure --enable-fpm --with-mysql=/usr/local/mysql --prefix=/usr/local/php-5.6.3 --without-pear
这里最好加上 --without-pear ,防止下面操作报错。
make
如果执行 make 操作时最后报 make: ***[sapi|cli|php] Error 1 的错误,那就执行 make ZEND_EXTRA_LIBS='-liconv'命令。
make install
执行上面命令如果报 make: ***[ext|phar|phar.php] Error 127 的错误,那就执行一下操作:
vi /etc/ld.so.conf ##在该文件中加入一行:/usr/local/lib
然后运行:
/sbin/ldconfig
最后,
cp php.ini-development /usr/local/php-5.6.3/etc/php.ini
cp /usr/local/php-5.6.3/etc/php-fpm.conf.default /usr/local/php-5.6.3/etc/php-fpm.conf
》》》》》》至此,PHP5.6.3安装完成!
3)配置
如果文件不存在,则阻止 Nginx 将请求发送到后端的 PHP-FPM 模块, 以避免遭受恶意脚本注入的攻击。
将 php.ini 文件中的配置项 cgi.fix_pathinfo 设置为 0
vim /usr/local/php-5.6.3/etc/php.ini
cgi.fix_pathinfo=0
启动php-fpm:
/usr/local/bin/php-fpm
查看php-fpm支持的启动选项
/usr/local/bin/php-fpm -h
让Nginx支持php:
修改nginx.conf, vim /usr/local/nginx/conf/nginx.conf
location / {
root html;
index index.php index.html index.htm;
} location ~* \.php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
其中红色为修改部分。
如果修改的不对,会报404错误。
4)编译安装php的扩展模块
以下为扩展模块的下载地址:
cd /usr/local/src/
wget http://blog.zyan.cc/soft/linux/nginx_php/memcache/memcache-2.2.5.tgz
wget http://blog.zyan.cc/soft/linux/nginx_php/eaccelerator/eaccelerator-0.9.6.1.tar.bz2
wget http://blog.zyan.cc/soft/linux/nginx_php/pdo/PDO_MYSQL-1.0.2.tgz
wget http://blog.zyan.cc/soft/linux/nginx_php/imagick/ImageMagick.tar.gz
wget http://blog.zyan.cc/soft/linux/nginx_php/imagick/imagick-2.3.0.tgz
安装:
tar zxvf memcache-2.2.5.tgz
cd memcache-2.2.5/
/usr/local/php-5.6.3/bin/phpize
./configure --with-php-config=/usr/local/php5.6.3/bin/php-config
make
make install
cd ../ tar jxvf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1/
/usr/local/php-5.6.3/bin/phpize
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
make
make install
cd ../ tar zxvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2/
/usr/local/php-5.6.3/bin/phpize
./configure --with-php-config=/usr/local/php-5.6.3/bin/php-config --with-pdo-mysql=/usr/local/mysql
make
make install
cd ../ tar zxvf ImageMagick.tar.gz
cd ImageMagick-6.5.1-2/
./configure
make
make install
cd ../ tar zxvf imagick-2.3.0.tgz
cd imagick-2.3.0/
/usr/local/php-5.6.3/bin/phpize
./configure --with-php-config=/usr/local/php-5.6.3/bin/php-config
make
make install
cd ../
安装完成后还需有修改php.ini配置文件中的一些参数:
手工修改:查找/usr/local/webserver/php/etc/php.ini中的extension_dir = "./"
修改为extension_dir = "/usr/local/php-5.6.3/lib/php/extensions/no-debug-non-zts-20131226"
并在此行后增加以下几行,然后保存:
extension = "memcache.so"
extension = "pdo_mysql.so"
extension = "imagick.so"
再查找output_buffering = Off
修改为output_buffering = On
再查找; cgi.fix_pathinfo=0
修改为cgi.fix_pathinfo=0,防止Nginx文件类型错误解析漏洞。
自动安装:若嫌手工修改麻烦,可执行以下shell命令,自动完成对php.ini文件的修改:
sed -i 's#extension_dir = "./"#extension_dir = "/usr/local/php-5.6.3/lib/php/extensions/no-debug-non-zts-20060613/"\nextension = "memcache.so"\nextension = "pdo_mysql.so"\nextension = "imagick.so"\n#' /usr/local/php-5.6.3/etc/php.ini
sed -i 's#output_buffering = Off#output_buffering = On#' /usr/local/php-5.6.3/etc/php.ini
sed -i "s#; always_populate_raw_post_data = On#always_populate_raw_post_data = On#g" /usr/local/php-5.6.3/etc/php.ini
sed -i "s#; cgi.fix_pathinfo=0#cgi.fix_pathinfo=0#g" /usr/local/php-5.6.3/etc/php.ini
5)配置eAccelerator加速PHP
mkdir -p /usr/local/eaccelerator_cache
vi /usr/local/php-5.6.3/etc/php.ini
按shift+g键跳到配置文件的最末尾,加上以下配置信息:
[eaccelerator]
zend_extension="/usr/local/php-5.6.3/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/usr/local/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
重新启动Nginx,就可以使用了。
5、配置虚拟主机
经过以上四步的操作,我们已经完成了Nginx环境的搭建,只不过我们的工程目录都是默认的(“/usr/local/nginx/html”)
如果我们想要分配多个目录以及多个端口去监听的话,就需要去配置虚拟主机了。如下为我的操作,非常简单:
#打开配置文件
vi /usr/local/nginx/conf/nginx.conf
我们可以看到有一个默认的server,并且其监听的是80端口。
继续往下看,就会看到这样一句“#another virtual host using mix of IP-, name-, and port-based configuration”,且下面有一个被注释掉的server,这就是我们需要配置的server,我们不用将注释去掉,只需将下面代码拷贝到其下面即可:
server {
listen 8000; #我们监听的端口
listen 192.168.1.204:8000;
server_name somename alias another.alias; location / {
root html;
index index index.php index.html index.htm;
} #支持php
location ~* \.php$ {
root /home/yangxueping/www.test.com; #监听的站点位置
fastcgi_pass 127.0.0.1:9000; #注意,这句去掉的话有问题
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
OK,虚拟主机的配置完成,如果你需要多个的话,将创建多个server去监听不同的端口。
一、linux下nginx1.7.8+php5.6.3的环境配置的更多相关文章
- 二、linux下apache2.2.11+php5.6.3的环境配置
参考文献:http://www.92csz.com/study/linux/16.htm 本节部分操作会直接使用上一节(http://www.cnblogs.com/yxpblog/p/4627509 ...
- Linux下Apache2.2和PHP5的安装配置
Linux下Apache2.2和PHP5的安装配置 环境介绍 我安装使用的Linux版本为CentOS6.5最精简版,Apache为2.2.29,PHP版本为5.4.28. 系统安装 首先安装Cent ...
- [编译] 3、在Linux下搭建51单片机的开发烧写环境(makefile版)
星期二, 10. 七月 2018 01:01上午 - beautifulzzzz 一.SDCC(Small Device C Compiler)编译环境搭建 SDCC是一个小型设备的C语言编译器,该编 ...
- Linux下使用 github+hexo 搭建个人博客03-hexo配置优化
上两张文章,我们说了 hexo 部署.主题的切换.博文的创建.MarkDown 简单使用和 hexo 部署到 GitHub Pages. 也说了我们会使用 next 主题做为我们后期博客的使用和维护. ...
- [编译] 7、在Linux下搭建安卓APP的开发烧写环境(makefile版-gradle版)—— 在Linux上用命令行+VIM开发安卓APP
April 18, 2020 6:54 AM - BEAUTIFULZZZZ 目录 0 前言 1 gradle 安装配置 1.1 卸载系统默认装的gradle 1.2 下载对应版本的二进制文件 1.3 ...
- [编译] 8、在Linux下搭建 stm8 单片机的开发烧写环境(makefile版)
目录 一.SDCC(Small Device C Compiler)编译环境搭建 1.1.下载 1.2.编译 1.3.测试 二.Hex2Bin+命令行烧写工具配置使用 2.1.下载工具安装配置 2.2 ...
- Linux下安装tar.gz类型的jdk,并配置环境变量
近期因要学习一门技术,必须在Linux下运行,故开始学习如何使用Linux. 在安装jdk时出现了困难,环境变量配置不成功,花了一天时间才搞定,特分享出来,供大家参考. Linux下安装jdk,步骤如 ...
- Linux下jvm、tomcat、mysql、log4j优化配置笔记
小菜一直对操作系统心存畏惧,以前也很少接触,这次创业购买了Linux云主机,由于木有人帮忙,只能自己动手优化服务器了.... 小菜的云主机配置大致为:centeos6(32位),4核心cpu,4G内存 ...
- Linux下jvm、tomcat、mysql、log4j优化配置
小菜一直对操作系统心存畏惧,以前也很少接触,这次创业购买了Linux云主机,由于木有人帮忙,只能自己动手优化服务器了.... 小菜的云主机配置大致为:centeos6(32位),4核心cpu,4G内存 ...
随机推荐
- 谈谈对this的指向问题
普通函数中:this——window 定时器:this——window 构造函数中:this——当前实例化的对象 事件处理函数:this——事件触发对象
- 详解EveryThing
摘要:Everything几乎是每个职场人必备的效率工具,但同事们都只用它的一两个基本功能,并没有发挥出该软件的真正效率.实际上,把Everything的功能用到极致能够成倍的提升我们的工作效率,本文 ...
- mysql5.5.x.zip 解压版安装教程
一,前言 记一次安装解压版的mysql 5.5的经过,参考了一些文章,也遇到了一些错误,最终都安装成功了.在这里记录一下安装的过程,一方面自己做一个记录,领一方面给大家提供一份参考. 二,环境 1,w ...
- Linux6上安装MySQL
MySQL安装包下载:https://www.mysql.com/downloads/ 然后选择: 把下载好的安装包传到服务器上的指定目录,然后解压: [root@master mysql]# tar ...
- 查看Linux服务器硬件信息
一:查看cpu# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数# 查看物理CPU个数cat /proc/cpui ...
- 深入理解并使用python的模块与包
模块 编写好的一个python文件可以有两种用途:1)脚本,一个文件就是整个程序,用来被执行2)模块,文件中存放着一堆功能,用来被导入使用 模块的分类 1)开发者编写的 .py文件2 ) 由C或C++ ...
- mysql 5.7.24 root密码重置
sudo mysql -u root -p 初始root密码没有,直接按回车 show databases: use mysql; update user set authentication_str ...
- cmd拷贝文件夹时,处理提示
xcopy 若目标盘上不存在此子目录,而在目标盘的结束符又不以"\"为结束,则将提示: does destination specify a file name or direct ...
- 【2019银川网络赛】L:Continuous Intervals
题目大意:给定一个长度为 N 的序列,定义连续区间 [l, r] 为:序列的一段子区间,满足 [l, r] 中的元素从小到大排序后,任意相邻两项的差值不超过1.求一共有多少个连续区间. 题解:单调栈 ...
- vue中的各种属性
data new vue({ data:{ 'a':1 } }) 是一个实例,data直接是一个对象 vue.component('my',{ template:'', props:['title'] ...