[root@iZ23e06nkpkZ php-5.6.20]# ./configure --enable-fpm --with-mysql
configure: error: xml2-config not found. Please check your libxml2 installation.
[root@iZ23e06nkpkZ php-5.6.20]# rpm -qa |grep libxml2
libxml2-python-2.7.6-20.el6_7.1.x86_64
libxml2-2.7.6-20.el6_7.1.x86_64
重新安装libxml2和libxml2-devel包, yum安装的时候发现新版本会提示更新,需要更新的可以更新
[root@iZ23e06nkpkZ php-5.6.20]# yum install libxml2
[root@iZ23e06nkpkZ php-5.6.20]# yum install libxml2-devel
[root@iZ23e06nkpkZ php-5.6.20]# ./configure --enable-fpm --with-mysql
[root@iZ23e06nkpkZ php-5.6.20]# make
[root@iZ23e06nkpkZ php-5.6.20]# make install
安装完成之后,
把安装目录下的相关信息复制到指定地方
[root@iZ23e06nkpkZ php-5.6.20]#cp php.ini-development /usr/local/lib/php.ini
注意:php官网上的Unix 系统下的 Nginx 1.4.x安装手册写的是 /usr/local/php/php.ini是错误的。
实际上phpinfo看到的Configuration File (php.ini) Path /usr/local/lib ,会导致php.ini加载不到。
[root@iZ23e06nkpkZ php-5.6.20]#cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
[root@iZ23e06nkpkZ php-5.6.20]#cp sapi/fpm/php-fpm /usr/local/bin
需要着重提醒的是,如果文件不存在,则阻止 Nginx 将请求发送到后端的 PHP-FPM 模块, 以避免遭受恶意脚本注入的攻击。
编辑php.ini
[root@iZ23e06nkpkZ php-5.6.20]#vim /usr/local/php/php.ini
修改cgi.fix_pathinfo=0
注2016-5-1:如果cgi.fix_pathinfo=0的话,就不能用pathinf功能了,thinkphp的rewrite
和U方法会出错,
http://192.168.1.1/weiphp/index.php?s=da会变成http://192.168.1.1.php?s=da
所以只能改成cgi.fix_pathinfo=1
在启动服务之前,需要修改 php-fpm.conf 配置文件,确保 php-fpm 模块使用 www-data 用户和 www-data 用户组的身份运行。
vim /usr/local/etc/php-fpm.conf
找到以下内容并修改:
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
user = www-data
group = www-data
创建php-fpm脚本。从安装目录复制init.d.php-fpm.in
# cp <php-5.3.3-source-dir>/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
# chmod 755 /etc/init.d/php-fpm
然后就可以
#service php-fpm start|restart|stop这样启动php-fpm了。
配置nginx.conf
/etc/nginx/conf.d/default.conf
为了能够使用thinkphp的pathinfo。
修改default.conf
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
if (!-e $request_filename) {
rewrite ^/index.php(.*)$ /index.php?s=$1 last;
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
#if (!-e $request_filename) {
# rewrite ^/(.*)$ /index.php/$1 last;
# break;
#}
}
//因为部署了多个项目,所以加一个context的location的rewrite
location /weiphp/ {
root /usr/share/nginx/html;
index index.html index.htm index.php;
if (!-e $request_filename){
rewrite ^/weiphp/(.*)$ /weiphp/index.php?s=$1 last;
break;
}
}
location ~ \.php/?.*$ {
root /usr/share/nginx/html; //一开始这个地方没有加root /usr/share/nginx/html一直报404错误,找不到php文件。
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
set $path_info "";
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
#include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
#fastcgi_param SCRIPT_FILENAME /scripts$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
#fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$real_script_name;
fastcgi_param PATH_INFO $path_info;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
#include fastcgi_params;
}
找不到php的错误。因为$document_root 的参数是由root html那一行定义的,默认是在/etc/nginx/html/ 所以把 html换成站点根目录就正常了。
其实也可以在fastcgi_params里配置。
查找文件。
[root@iZ23e06nkpkZ conf.d]# find /. -name "fastcgi*"
/./etc/nginx/fastcgi_params
用phpize安装扩展
[root@iZ23e06nkpkZ conf.d]# find /. -name "phpize"
/./usr/local/bin/phpize
当php编译完成后,php的bin目录下会有phpize这个脚本文件。在编译你要添加的扩展模块之前,执行以下phpize就可以了;
比如现在想在php中加入memcache扩展模块:我们要做的只是如下几步
————————————————————————
tar zxvf memcache-2.2.5.tgz
cd memcache-2.2.5/
/usr/local/webserver/php/bin/phpize
./configure –with-php-config=/usr/local/webserver/php/bin/php-config
make
make install
————————————————————————
注意./configure 后面可以指定的是php-config文件的路径
这样编译就完成了,还需要做的是在php.ini文件中加入extension值
extension = “memcache.so”
---------------------------------------------------------
注意:Cannot find config.m4.
这个错误是一个很傻的错误,解压以后需要cd到文件夹,不然phpize就会报错
动态编译PHP的memcache扩展库,在执行/usr/localphp/bin/phpize时出现了错误,
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable is set correctly and then rerun this script.
很明显缺少文件,需要安装。网上找了下资料。
# wget http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
# tar -zvxf m4-1.4.9.tar.gz
# cd m4-1.4.9/
# ./configure && make && make install
# cd ../
# wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz
# tar -zvxf autoconf-2.62.tar.gz
# cd autoconf-2.62/
# ./configure && make && make install
然后执行以下命令进行安装
#/usr/local/php/bin/phpize
#./configure –prefix=/usr/local/memcached –with-libevent=/usr/local/libevent –with-php-config=/usr/local/php/bin/php-config
#make && make install
[root@iZ23e06nkpkZ bin]# cd /home/php-5.6.20/ext/openssl/
[root@iZ23e06nkpkZ openssl]# ll
total 280
-rw-r--r-- 1 1000 1000 1279 Mar 31 07:35 config0.m4
-rw-r--r-- 1 1000 1000 532 Mar 31 07:35 config.w32
-rw-r--r-- 1 1000 1000 65 Mar 31 07:35 CREDITS
-rw-r--r-- 1 1000 1000 151210 Mar 31 07:35 openssl.c
-rw-r--r-- 1 1000 1000 4664 Mar 31 07:35 openssl.dsp
-rw-r--r-- 1 1000 1000 4804 Mar 31 07:35 openssl.mak
-rw-r--r-- 1 1000 1000 4311 Mar 31 07:35 php_openssl.h
-rw-r--r-- 1 1000 1000 11104 Mar 31 07:35 README
drwxr-xr-x 2 1000 1000 12288 Mar 31 07:35 tests
-rw-r--r-- 1 1000 1000 73397 Mar 31 07:35 xp_ssl.c
[root@iZ23e06nkpkZ openssl]# /usr/local/bin/phpize
Cannot find config.m4.
Make sure that you run '/usr/local/bin/phpize' in the top level source directory of the module
把config0.m4复制成config.m4
[root@iZ23e06nkpkZ openssl]# ./configure --with-php-config=/usr/local/bin/php-config
报错查了一下是没有openssl-dev类库。
configure: error: Cannot find OpenSSL's <evp.h>
通过yum 安装openssl-devel
[root@iZ23e06nkpkZ openssl]# yum install openssl-devel
然后重新运行
[root@iZ23e06nkpkZ openssl]# ./configure --with-php-config=/usr/local/bin/php-config
[root@iZ23e06nkpkZ openssl]# make
[root@iZ23e06nkpkZ openssl]# make install
Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20131226/
编辑/usr/local/lib/php.ini 加上extension=openssl.so
php安装gd库扩展
[root@iZ23e06nkpkZ gd]#cd /home/php-5.6.20/ext/gd
[root@iZ23e06nkpkZ gd]# yum install freetype
[root@iZ23e06nkpkZ gd]# yum install libpng* //如果不安装libpng的话,gd库编译的时候会报 configure: error: png.h not found.的错误
[root@iZ23e06nkpkZ gd]#/usr/local/bin/phpize
[root@iZ23e06nkpkZ gd]#./configure --with-php-config=/usr/local/bin/php-config
[root@iZ23e06nkpkZ gd]# make && make install
Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20131226/
Installing header files: /usr/local/include/php/
编辑/usr/local/lib/php.ini 加上extension=gd.so
php安装pdo_mysql扩展
[root@iZ23e06nkpkZ pdo_mysql]# pwd
/home/php-5.6.20/ext/pdo_mysql
[root@iZ23e06nkpkZ pdo_mysql]#
[root@iZ23e06nkpkZ pdo_mysql]# /usr/local/bin/phpize
[root@iZ23e06nkpkZ pdo_mysql]# ./configure --with-php-config=/usr/local/bin/php-config
[root@iZ23e06nkpkZ pdo_mysql]# make
[root@iZ23e06nkpkZ pdo_mysql]# make install
Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20131226/
编辑/usr/local/lib/php.ini 加上extension=pdo_mysql.so
[root@iZ23e06nkpkZ mbstring]# pwd
/home/php-5.6.20/ext/mbstring
[root@iZ23e06nkpkZ mbstring]# ./configure --with-php-config=/usr/local/bin/php-config
[root@iZ23e06nkpkZ mbstring]# make
[root@iZ23e06nkpkZ mbstring]# make install
Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20131226/
Installing header files: /usr/local/include/php/
编辑/usr/local/lib/php.ini 加上extension=mbstring.so
thinkphp的verify的图像不显示出来。是因为GD库里没有freetype的支持。
重新编译安装GD库用以支持freetype,jpeg等。
之前安装GD扩展的时候用的默认编译方式是不带jpeg,freetype等支持的。
[root@iZ23e06nkpkZ gd]# pwd
/home/php-5.6.20/ext/gd
[root@iZ23e06nkpkZ gd]# ./configure --with-php-config=/usr/local/bin/php-config
先yum安装freetype* 和 libjpeg*
[root@iZ23e06nkpkZ gd]# yum install freetype* libjpeg*
然后用rpm -qa|grep jpeg和rpm -ql libjpeg-turbo-devel-1.2.1-3.el6_5.x86_64找出libjpeg的安装位置。
freetype也一样。
[root@iZ23e06nkpkZ gd]# rpm -qa|grep jpeg
libjpeg-turbo-static-1.2.1-3.el6_5.x86_64
libjpeg-turbo-devel-1.2.1-3.el6_5.x86_64
libjpeg-turbo-1.2.1-3.el6_5.x86_64
[root@iZ23e06nkpkZ gd]# rpm -ql libjpeg-turbo-devel-1.2.1-3.el6_5.x86_64
/usr/include/jconfig.h
/usr/include/jerror.h
/usr/include/jmorecfg.h
/usr/include/jpeglib.h
/usr/lib64/libjpeg.so
/usr/share/doc/libjpeg-turbo-devel-1.2.1
/usr/share/doc/libjpeg-turbo-devel-1.2.1/coderules.txt
/usr/share/doc/libjpeg-turbo-devel-1.2.1/example.c
/usr/share/doc/libjpeg-turbo-devel-1.2.1/jconfig.txt
/usr/share/doc/libjpeg-turbo-devel-1.2.1/libjpeg.txt
/usr/share/doc/libjpeg-turbo-devel-1.2.1/structure.txt
[root@iZ23e06nkpkZ gd]#
准备重新编译GD库,先清除一下之前的编译。
[root@iZ23e06nkpkZ gd]# make clean
[root@iZ23e06nkpkZ gd]# /usr/local/bin/phpize
指定freetype和libjpeg的安装路径
[root@iZ23e06nkpkZ gd]# ./configure --with-php-config=/usr/local/bin/php-config --with-jpeg-dir=/usr/lib64/ --with-freetype-dir=/usr/lib64/
[root@iZ23e06nkpkZ gd]# make && make install
重新启动php-fpm和nginx。
[root@iZ23e06nkpkZ gd]# service php-fpm restart
[root@iZ23e06nkpkZ gd]# service nginx restart
然后就发现phpinfo里gd库支持libjpeg和freetype了。
[root@iZ23e06nkpkZ curl]# pwd
/home/php-5.6.20/ext/curl
[root@iZ23e06nkpkZ curl]# yum install libcurl*
[root@iZ23e06nkpkZ curl]# /usr/local/bin/phpize
[root@iZ23e06nkpkZ curl]# ./configure --with-php-config=/usr/local/bin/php-config
[root@iZ23e06nkpkZ curl]# make && make install
编辑/usr/local/lib/php.ini 加上extension=curl.so
相关推荐
**Nginx安装与解决跨域问题** 在现代Web开发中,由于浏览器的同源策略,跨域问题经常出现,限制了不同源之间的通信。Nginx作为一个高性能的反向代理服务器,常被用于处理此类问题。本篇将详细介绍如何在Linux环境下...
离线安装Nginx在没有网络连接或者网络环境不稳定的情况下特别有用。离线安装通常涉及以下几个步骤: 1. **下载依赖库**: Nginx在编译安装时需要依赖几个库,包括zlib(用于数据压缩)、pcre(Perl兼容正则表达式库...
Nginx 1.8.0 安装简述 Nginx 是一种流行的开源 Web 服务器软件,广泛应用于生产环境中。为了帮助读者快速掌握 Nginx 的安装过程,本文将详细介绍 Nginx 1.8.0 的安装步骤。 一、下载依赖项 在安装 Nginx 之前,...
nginx 离线安装依赖nginx 离线安装依赖
同时,日志文件(默认位于`/var/log/nginx/access.log`和`error.log`)可以帮助诊断和解决问题。 7. **反向代理与负载均衡**: Nginx可以通过反向代理功能将请求转发到后端应用服务器,实现负载均衡,提高系统可用...
Windows 下 Nginx 的安装与配置 Nginx 是一款高性能的、轻量级的 HTTP Web 服务器和反向代理服务器及电子邮件 IMAP/POP3/SMTP 代理服务器。其稳定性、丰富的功能集、示例配置文件和低系统资源的消耗使得其广泛应用...
在本文中,我们将详细介绍如何在Windows环境下安装和配置Nginx和PHP7,从而实现一个完美的PHP开发环境。本文将从头到尾详细介绍安装和配置的每一个步骤,使您能够快速解决问题,并少走弯路。 一、安装PHP7 首先,...
nginx离线安装依赖项_linux系统/麒麟v10系统. 离线安装 内网离线安装Nginx 安装Nginx的依赖包如下: PCRE(Perl Compatible Regular Expressions):Nginx使用PCRE来支持正则表达式,可以使用它更灵活地匹配和处理...
本文将详细讲解在基于ARM架构的系统上编译安装Nginx的过程,这对于那些希望在嵌入式设备或基于ARM的服务器上运行高性能Web服务的用户来说至关重要。 首先,你需要确保你的ARM系统已经安装了必要的编译工具和依赖库...
本文将详细介绍如何在没有外网连接的情况下在内网安装Nginx,并探讨相关集群配置。 首先,你需要准备一个包含Nginx所有必需文件的离线资源包。这个资源包通常包括Nginx的源代码、编译所需的依赖库以及配置脚本。...
nginx是非常常用的轻量级代理工具,本教程是nginx离线安装教程,并且附带了离线安装所需要的依赖包和安装包。 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器 [13],同时也提供了IMAP/POP3/SMTP服务。...
- **Nginx介绍**:Nginx是由Igor Sysoev开发的,其设计目标是解决高并发下的性能问题。Nginx通过优化的多进程和异步非阻塞模型,提高了响应速度和资源利用率。 - **反向代理服务**:Nginx的反向代理功能可以隐藏...
将其放在Nginx的`html`目录下(默认为`/usr/share/nginx/html`),然后访问`http://your_server_ip/info.php`,如果能显示PHP信息页面,说明Nginx和PHP已经成功结合。 **安全与优化** 1. 限制对PHP-FPM的访问,...
在Linux环境下手动安装Nginx通常涉及以下步骤: 1. 更新包管理器索引:这一步通常使用`apt-get update`(对于基于Debian的系统)或`yum check-update`(对于基于RPM的系统)。 2. 安装依赖:Nginx可能需要一些库和...
安装完毕后,我们需要编辑Nginx的配置文件,通常位于`/etc/nginx/nginx.conf`或`/etc/nginx/sites-available/`目录下,创建一个新的虚拟主机配置。例如,创建一个名为`myweb.conf`的文件,并添加以下内容: ``` ...
3. 监控系统资源使用情况,及时发现并解决问题。 总之,通过一键安装脚本,可以快速搭建起一个功能完善的LNMP环境,包括Nginx、php-FastCGI、MySQL和memcache,同时部署Discuz论坛,实现高效稳定的Web服务。后续的...
总结来说,本Nginx源码安装手册详细介绍了在生产环境下安装Nginx的完整过程,包括环境准备、下载源码、编译配置、模块选择和自启动脚本的配置。对于希望部署稳定且可控的Nginx服务器的用户,特别是那些对软件的安全...
这里我们讨论的是一个包含Nginx安装文件、PHP安装文件、补丁和源码的压缩包,这将帮助我们快速搭建一个支持动态内容的Web服务器。 首先,让我们深入了解Nginx。Nginx是一款高性能的HTTP和反向代理服务器,以其高效...
这个名为"nginx离线安装.zip"的压缩包显然包含了离线安装Nginx所需的所有关键组件,使得在没有网络连接的情况下也能进行安装。下面我们将详细探讨这些组件及其在Nginx安装过程中的作用。 1. PCRE (Perl Compatible ...