设为首页 收藏本站
查看: 1910|回复: 0

[经验分享] 源码安装Nginx和PHP

[复制链接]

尚未签到

发表于 2018-11-12 09:20:20 | 显示全部楼层 |阅读模式
  1.安装编译环境
  yum -yinstall gcc gcc-c++ automake autoconf libtool make glibc
  yum -y install libmcrypt-devel mhash-devellibxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devellibxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-develkrb5 krb5-devel libidn libidn-devel openssl openssl-devel
  2.安装nginx
  一般我们都需要先装pcre,zlib,前者为了重写rewrite,后者为了gzip压缩
  2.1选定源码目录
  可以是任何目录,本文选定的是/usr/local/src
  cd /usr/local/src
  2.2安装PCRE库
  ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
  下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:
  cd /usr/local/src
  wgetftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz
  tar –zxvf  pcre-8.37.tar.gz
  cd pcre-8.37
  ./configure --enable-utf8
  make && make install
  2.3安装zlib库
  http://zlib.net/zlib-1.2.8.tar.gz下载最新的 zlib 源码包,使用下面命令下载编译和安装 zlib包:
  cd /usr/local/src
  wget http://zlib.net/zlib-1.2.8.tar.gz
  tar -zxvf  zlib-1.2.8.tar.gz
  cd zlib-1.2.8
  ./configure
  make && make install
  2.4安装ssl(某些vps默认没装ssl)(直解压,不安装)
  cd /usr/local/src
  wget http://www.openssl.org/source/openssl-1.0.2g.tar.gz
  tar -zxvf openssl-1.0.2g.tar.gz
  2.5安装nginx
  Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个,下面是把 Nginx 安装到/usr/local/nginx 目录下的详细步骤:
  cd /usr/local/src
  wget http://nginx.org/download/nginx-1.9.12.tar.gz
  tar -zxvf nginx-1.9.12.tar.gz
  cd nginx-1.9.12
  ./configure --sbin-path=/usr/local/nginx/nginx
  --conf-path=/usr/local/nginx/nginx.conf
  --pid-path=/usr/local/nginx/nginx.pid
  --with-http_ssl_module
  --with-pcre=/usr/local/src/pcre-8.37
  --with-zlib=/usr/local/src/zlib-1.2.8
  --with-openssl=/usr/local/src/openssl-1.0.2g
  make && make install
  --with-pcre=/usr/src/pcre-8.37 指的是pcre-8.34 的源码路径。
  --with-zlib=/usr/src/zlib-1.2.8指的是zlib-1.2.8 的源码路径。
  检测nginx是否安装成功
  [root@localhost nginx-1.9.12]#/usr/local/nginx/nginx -t
  nginx: the configuration file/usr/local/nginx/nginx.conf syntax is ok
  nginx: configuration file /usr/local/nginx/nginx.conftest is successful
  安装成功后/usr/local/nginx 目录下如下
  fastcgi.conf           koi-win            nginx.conf.default
  fastcgi.conf.default   logs                scgi_params
  fastcgi_params         mime.types          scgi_params.default
  fastcgi_params.default mime.types.default  uwsgi_params
  html                   nginx              uwsgi_params.default
  koi-utf                nginx.conf          win-utf
  6.启动
  确保系统的 80 端口没被其他程序占用,运行/usr/local/nginx/nginx 命令来启动 Nginx,
  netstat –tunlp| grep 80
  如果查不到结果后执行,有结果则忽略此步骤
  打开浏览器访问此机器的IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。到这里nginx就安装完成了,如果只是处理静态html就不用继续安装了
  如果你需要处理php脚本的话,还需要安装php-fpm
  常见问题:
  (2)启动nginx出现下面的报错信息:
Nginx [emerg]: bind() to 0.0.0.0:80failed (98: Address already in use)
  解决方法:
  使用命令关闭占用80端口的程序,然后再启用
  #fuser -k 80/tcp
  (3)启动php-fpm报错:
  ERROR: unable to bind listening socket for address '127.0.0.1:9000':Address already in use (98)
  ERROR: FPM initialization failed
  解决方法:
  解决办法:关闭进程然后再启动
  killall php-fpm
  /usr/local/php/sbin/php-fpm
  (4)命令行下执行php,提示找不到命令
  -bash:/usr/bin/php: No such file or directory
  vi/etc/profile
  在文件底部增加一行配置
  export PATH=/usr/local/php/bin:$PATH
  保存退出
  source/etc/profile
  常用命令:
  (1)查看php-fpm进程数:
  ps -aux | grep php-fpm
  (2)启动nginx:/usr/local/nginx/nginx
  二、安装php-fpm
  安装前准备
  centos下执行
yum -y install gcc gcc-c++ glibc automake autoconf libtool makeyum -y install libmcrypt-devel mhash-devel libxslt-devellibjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-develzlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-develncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-develkrb5 krb5-devel libidn libidn-devel openssl openssl-devel  新版php-fpm安装(推荐安装方式)
  或者先安装libmcrypt-dev,教程在后面
  wget http://cn2.php.net/distributions/php-5.6.19.tar.gz
  tar zvxf php-5.6.19.tar.gz
  cd php-5.6.19
  ./configure --prefix=/usr/local/php  --enable-fpm --with-mcrypt --enable-mbstring--disable-pdo --with-curl --disable-debug --disable-rpath --enable-inline-optimization --with-bz2  --with-zlib --enable-opcache=no --enable-pcntl--enable-mbregex --with-mhash --with-pcre-regex --with-mysql --with-mysqli --with-gd --with-jpeg-dir
  make all install
  安装安装成功后的提示:
  Wrote PEAR system config file at: /usr/local/php/etc/pear.conf
  You may want to add: /usr/local/php/lib/php to your php.ini include_path
  /usr/local/src/php-5.6.19/build/shtoolinstall -c ext/phar/phar.phar /usr/local/php/bin
  ln -s -f phar.phar /usr/local/php/bin/phar
  在/usr/local/lib目录下没有php.ini文件。在这我们就先复制php安装文件提供的模版,如下:
  cp php.ini-production /usr/local/php/lib/php.ini
  vim /etc/php.ini (增加/usr/local/php/lib/php到include_path)
  include_path = "/usr/local/php/lib/php"
  /usr/local/src/php-5.6.19/build/shtoolinstall -c ext/phar/phar.phar /usr/local/php/bin
  ln -s -f phar.phar /usr/local/php/bin/phar
  cp /usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.con
  为了让php-fpm已服务的形式启动。我们需要复制php安装目录下/sapi/fpm/init.d.php-fpm文件。如下:
  cp./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
  后期扩展:
  将opcache 作为一个扩展安装
  将zip作为php的扩展安装
  配置nginx,使其支持php,如下:
  location ~ /.php$ {
  root /usr/local/nginx/html;
  fastcgi_pass127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;
  include fastcgi_params;
  }
  然后在nginx的网站根目录下新建index.php文件内容如下:
  vi/usr/local/nginx/html/index.php
  
  通过http://IP/index.php进行访问
  (1)./configure时报错:mcrypt.h not found. Pleasereinstall libmcrypt
  解决方法:apt-get install libmcrypt-dev
  或者
  cd /usr/local/src
  wget http://softlayer.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.8.tar.gz
  tar -zxvf libmcrypt-2.5.8.tar.gz
  cd /usr/local/src/libmcrypt-2.5.8
  ./configure --prefix=/usr/local
  make
  make install
  (2)nginx/php-fpm访问php文件直接下载而不运行
  一、网站根目录
  默认是在 /usr/local/nginx/html文件
  配置在
  location / {
  root /home/www/wwwroot;
  index index.html index.htm;
  }
  二、修改文件中对应的php配置部分
  location ~ \.php$ {
  root          /home/www/wwwroot;
  fastcgi_pass   127.0.0.1:9000;
  fastcgi_index  index.php;
  fastcgi_param SCRIPT_FILENAME    $document_root$fastcgi_script_name;
  include        fastcgi_params;
  }
  特别需要注意的是:fastcgi_param这个参数默认的是$fastcgi_script_name;最好改 为$document_root$fastcgi_script_name;我在实际配置中出现了php找不到需要解析文件而返回404或者500错误的问题。所以最好是带上网站根目录的路径变量$document_root



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-633951-1-1.html 上篇帖子: centos7 nginx双主+keepalived-xiaoxiaozhou 下篇帖子: Nginx-10557356
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表