在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Nginx 1.10.2 php 5.6.30 [root@nginx local]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core)
nginx安装 本文是介绍使用源码编译安装,包括具体的编译参数信息。 正式开始前,编译环境gcc g++ 开发库之类的需要提前装好。 安装make: yum -y install gcc automake autoconf libtool make
安装g++: yum install gcc gcc-c++
一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。 1.选定源码目录 可以是任何目录,本文选定的是/usr/local/src cd /usr/local/src 2.安装PCRE库 下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包: http://ftp.exim.llorien.org/pcre/ cd /usr/local/src wget https://ftp.pcre.org/pub/pcre/pcre-8.39.tar.gz tar -zxvf pcre-8.39.tar.gz (如果是只是tar文件, 执行 tar -xvf pcre-8.39.tar) cd pcre-8.39 ./configure make && make install
3.安装zlib库 http://zlib.net/zlib-1.2.11.tar.gz 下载最新的 zlib 源码包,使用下面命令下载编译和安装 zlib包: cd /usr/local/src wget http://zlib.net/zlib-1.2.11.tar.gz tar -zxvf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./configure make && make install
4.安装ssl(某些vps默认没装ssl) cd /usr/local/src wget https://www.openssl.org/source/openssl-1.1.0b.tar.gz tar -zxvf openssl-1.1.0b.tar.gz cd openssl-1.1.0b ./config make && make install
5.安装nginx 以安装最新稳定版ngixn-1.10.2为例子,其他版本也一样。 下面是把 Nginx 安装到 /usr/local/nginx 目录下的详细步骤: cd /usr/local/src wget http://nginx.org/download/nginx-1.10.2.tar.gz tar -zxvf nginx-1.10.2.tar.gz cd nginx-1.10.2
1、添加nginx用户和用户组 groupadd -r nginx useradd -r -g nginx nginx
你可能收到提示已经有了nginx 用户和组这个无所谓有了更好。 2、配置nginx安装参数 注:当前所在目录一定要是/usr/local/src/nginx-1.10.2 修改成上面下载好对应的路径 --with-pcre=/usr/local/src/pcre-8.39 指的是pcre-8.39 的源码路径。 --with-zlib=/usr/local/src/zlib-1.2.11 指的是zlib-1.2.11 的源码路径。 --with-openssl=/usr/local/src/openssl-1.1.0b 指的是openssl-1.1.0b 的源码路径。 ./configure \ --prefix=/usr/local/nginx \ --sbin-path=/usr/local/nginx/sbin/nginx \ --conf-path=/usr/local/nginx/nginx.conf \ --pid-path=/usr/local/nginx/nginx.pid \ --user=nginx \ --group=nginx \ --with-http_ssl_module \ --with-http_flv_module \ --with-http_mp4_module \ --with-http_stub_status_module \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/tmp/nginx/client/ \ --http-proxy-temp-path=/var/tmp/nginx/proxy/ \ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \ --http-scgi-temp-path=/var/tmp/nginx/scgi \ --with-pcre=/usr/local/src/pcre-8.39 \ --with-zlib=/usr/local/src/zlib-1.2.11 \ --with-openssl=/usr/local/src/openssl-1.1.0b \
编译安装 make && make install
cd /usr/local/src/
安装成功后 cd /usr/local/nginx 目录下如下:
3、启动 确保系统的 80 端口没被其他程序占用,运行/usr/local/nginx/sbin/nginx 命令来启动 Nginx netstat -ano|grep 80 报错: 解决: yum -y install net-tools netstat -ano|grep 80 /usr/local/nginx/sbin/nginx
可能会出现mkdir /var/tmp/nginx/client failed的提示 这时手动创建就可以了 mkdir -p /var/tmp/nginx/client就可以了 打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功 ps: 若nginx成功运行后,通过ip地址无法访问服务器 则可能是防火墙的问题 需要开放80端口或关闭防火墙 开启80端口 或者永久关闭防火墙 systemctl stop firewalld.service //停止防火墙
systemctl disable firewalld.service //不再开机停止运行防火墙
nginx编译选项 make是用来编译的,它从Makefile中读取指令,然后编译。 make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。 configure命令是用来检测你的安装平台的目标特征的。它定义了系统的各个方面,包括nginx的被允许使用的连接处理的方法,比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本,执行结束时,它会创建一个Makefile文件。nginx的configure命令支持以下参数:
php-fpm安装配置 nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。 nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被nginx 本文以php-fpm为例介绍如何使nginx支持PHP 一、编译安装php-fpm 什么是PHP-FPM PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的,可以在 http://php-fpm.org/download下载得到. PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。 新版PHP已经集成php-fpm了,不再是第三方的包了,推荐使用。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多优点,所以被PHP官方收录了。在./configure的时候带 –enable-fpm参数即可开启PHP-FPM,其它参数都是配置php的,具体选项含义可以查看这里。 安装前准备 添加 epel 源
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 安装依赖(安装过可以不用安装)#yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-devel
cd /usr/local/src wget http://php.net/get/php-5.6.30.tar.gz/from/this/mirror tar -zvxf php-5.6.30.tar.gz #19M cd php-5.6.30 make && make install
编译安装二 (##编译参数) ./configure --prefix=/usr/local/php \ --with-apxs2=/usr/local/apache/bin/apxs \ --with-config-file-path=/usr/local/php/etc \ --enable-inline-optimization --disable-debug \ --disable-rpath --enable-shared --enable-opcache \ --enable-fpm --with-fpm-user=www \ --with-png-dir \ --with-freetype-dir \ --with-jpeg-dir \ --with-gd \ --with-fpm-group=www \ --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-gettext \ --enable-mbstring \ --with-iconv \ --with-mcrypt \ --with-mhash \ --with-openssl \ --enable-bcmath \ --enable-soap \ --with-libxml-dir=/usr/ \ --enable-pcntl \ --enable-shmop \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --enable-sockets \ --with-curl --with-zlib \ --enable-zip \ --with-bz2 \ --with-readline ##参数解释 """ 安装路径 """ --prefix=/usr/local/php56 \ """ php.ini 配置文件路径 """ --with-config-file-path=/usr/local/php56/etc \ """ 优化选项 """ --enable-inline-optimization \ --disable-debug \ --disable-rpath \ --enable-shared \ """ 启用 opcache,默认为 ZendOptimizer+(ZendOpcache) """ --enable-opcache \ """ FPM """ --enable-fpm \ --with-fpm-user=www \ --with-fpm-group=www \ """ MySQL """ --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ """ 国际化与字符编码支持 """ --with-gettext \ --enable-mbstring \ --with-iconv \ """ 加密扩展 """ --with-mcrypt \ --with-mhash \ --with-openssl \ """ 数学扩展 """ --enable-bcmath \ """ Web 服务,soap 依赖 libxml """ --enable-soap \ --with-libxml-dir \ """ 进程,信号及内存 """ --enable-pcntl \ --enable-shmop \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ """ socket & curl """ --enable-sockets \ --with-curl \ """ 压缩与归档 """ --with-zlib \ --enable-zip \ --with-bz2 \ """ GNU Readline 命令行快捷键绑定 """ --with-readline make && make install
以上就完成了php-fpm的安装 下面是对php-fpm运行用户进行设置 1、为php提供配置文件 cp /usr/local/src/php-5.6.30/php.ini-production /usr/local/php/etc/php.ini
2、为php-fpm提供配置文件 cd /usr/local/php cp etc/php-fpm.conf.default etc/php-fpm.conf vim etc/php-fpm.conf
修改 如果www用户不存在,那么先添加www用户 groupadd www useradd -g www www
修改
删除pid前面的; 并修改成
pid = /usr/local/php/var/run/php-fpm.pid
pm.max_children = 150
pm.start_servers = 8
pm.min_spare_servers = 5
pm.max_spare_servers = 10
3、启动php-fpm 执行 /usr/local/php/sbin/php-fpm 如果报错:ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (98) killall php-fpm #如果没有killall这个命令 yum -y install psmisc /usr/local/php/sbin/php-fpm -t #配置文件效验
使用如下命令来验正(如果此命令输出有中几个php-fpm进程就说明启动成功了): ps aux | grep php-fpm
3、nginx和php-fpm整合 编辑/usr/local/nginx/nginx.conf vim /usr/local/nginx/nginx.conf 修改如下: 红框中“#”号去掉 红框中“#”号去掉 添加红框中内容 去掉 #好 并改成如下 重新载入nginx的配置文件: /usr/local/nginx/sbin/nginx -s reload 4、测试php文件 在/usr/local/nginx/html下创建index.php文件,输入如下内容 <?php phpinfo(); ?>
5、浏览器访问 访问http://你的服务器ip/index.php,皆可以见到php信息了。
因为不是yum安装,而编译安装则需要把服务挂出去才能够执行systemctl status|start|stop nginx.service Nginx服务命令 /usr/local/nginx/sbin/nginx #启动nginx cd /usr/local/nginx/sbin #根据根据编译时安装的/sbin目录 ./nginx -t #校验配置文件 ./nginx -s reload #重启 ./nginx -v #查看版本
【Nginx问题汇总】 Nginx没有pid文件 解决方法: [root@localhost nginx]/usr/local/nginx/sbin/nginx -c /usr/local/nginx/nginx.conf #启动代码格式 nginx的安装目录地址 -c nginx的配置文件地址
查看Nginx是否启动 ps -ef | grep nginx #查看Tomcat进程有没有启动
|
2022-07-18
2022-08-16
2022-11-06
2022-08-18
2022-08-15
请发表评论