的源码安装-develinstallthese应该是因为我们在编译安装的时候需要用到。安装nginx首先我们要到nginx官网下载源码包并查看文档。编译文件需要仔细审查。首先简单了解一下配置参数。nginx的配置参数--prefix=path定义了一个在服务器上存放文件的目录,即nginx的安装目录。默认使用/usr/local/nginx。--sbin-path=path设置nginx可执行文件的路径,默认为prefix/sbin/nginx。--conf-path=path设置nginx.conf配置文件的路径。nginx允许通过命令行上的-c选项以不同的配置文件启动。默认为prefix/conf/nginx.conf。--pid-path=path设置nginx.pid文件,该文件将存储主进程的进程ID。安装完成后,您可以随时更改文件名,使用nginx.conf配置文件中的PID指令。默认情况下,文件名为prefix/logs/nginx.pid。--error-log-path=path设置主要错误、警告和诊断文件的名称。安装完成后,可以随时更改文件名,使用nginx.conf配置文件中的error_log指令。默认情况下,文件名为prefix/logs/error.log。--http-log-path=path为主要请求设置HTTP服务器日志文件的名称。安装完成后,可以随时更改文件名,使用nginx.conf配置文件中的access_log指令。默认情况下,文件名为prefix/logs/access.log。--build=name设置一个可选的nginx构建名称。--user=name设置nginxworker进程的用户。安装后,您可以随时更改nginx.conf配置文件中user指令的名称。默认用户名是nobody。--group=name为nginx工作进程设置用户组。安装后,您可以随时更改nginx.conf配置文件中user指令的名称。默认为非特权用户。--with-select_module--without-select_module启用或禁用构建模块以允许服务器使用select()方法。如果平台不支持kqueue、epoll、rtsig或/dev/poll,该模块将自动构建。--with-poll_module--without-poll_module启用或禁用构建模块以允许服务器使用poll()方法。如果平台不支持kqueue、epoll、rtsig或/dev/poll,该模块将自动构建。--without-http_gzip_module—不要编译压缩的HTTP服务器的响应模块。编译和运行此模块需要zlib库。--without-http_rewrite_module不要编译重写模块。编译和运行该模块需要PCRE库支持。--without-http_proxy_module—不要编译http_proxy模块。--with-http_ssl_module—使用https协议模块。默认情况下,不构建此模块。构建和运行此模块需要OpenSSL库。--with-pcre=path—设置PCRE库的源路径。PCRE库(4.4-8.41版本)的源码需要从PCRE官网下载并解压。剩下的工作由Nginx的./configure和make完成。正则表达式用于location指令和ngx_http_rewrite_module模块。--with-pcre-jit—编译PCRE以包含“即时编译”(在1.1.12中,pcre_jit指令)。--with-zlib=path—设置zlib库的源路径。从zlib(版本1.1.3-1.2.11)下载并解压。剩下的工作由Nginx的./configure和make完成。ngx_http_gzip_module模块需要使用zlib。--with-cc-opt=parameters—设置将添加到CFLAGS变量的附加参数。比如在FreeBSD上使用PCRE库,需要使用:--with-cc-opt="-I/usr/local/include。如果需要增加select()支持的文件数:--with-cc-opt="-DFD_SETSIZE=2048".--with-ld-opt=parameters—设置链接时会用到的附加参数。例如,在FreeBSD下使用系统的PCRE库时,你应该指定:--with-ld-opt="-L/usr/local/lib",大部分翻译来自网络,nginx的各个编译参数的含义这里不做解释,先安装完成。毕竟我们可以通过配置文件或者重新编译实现功能需求,下面是官方文档编译参数的例子,这些参数必须在同一行输入(不要用回车改行,所以编译会开始o(╥﹏╥)o)./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=../pcre-8.41--with-zlib=../zlib-1.2.11我不认为需要配置路径,默认即可,--with-http_ssl_module是对https访问的支持,显然我们需要它,编译这个模块需要OpenSSL的支持。我们已经在先决条件中使用yum安装了OpenSSL;--with-pcre是ngx_http_rewrite_module中对正则表达式的支持,我们也需要;--with-zlib是ngx_http_gzip_module所必需的,我们最好包含它。ngx_http_gzip_module可以在一定程度上减轻服务器的负载。当然,不编译也没关系。如果需要,您可以稍后重新编译它。编译安装nginx//下载nginx源码包wgethttp://nginx.org/download/nginx-1.13.9.tar.gz//下载pcre源码包wgethttps://ftp.pcre.org/pub/pcre/pcre-8.41.tar.gz//下载zlib源码包wgethttp://www.zlib.net/zlib-1.2.11.tar.gz//解压tarzxvfnginx-1.13.9.tar.gztarzxvfpcre-8.41.tar.gztarzxvfzlib-1.2.11.tar.gz//进入nginx目录cdnginx-1.13.9//配置,-with-pcre=../pcre-8.41--with-zlib=../zlib-1.2.11是因为我把zlib和pcre都放在了nginx源码包的同级目录./configure--prefix=/usr/local/nginx--with-http_ssl_module--with-pcre=../pcre-8.41--with-zlib=../zlib-1.2.11//配置成功后,编译安装make&&makeinstall如果配置或编译时出现错误,请百度或谷歌解决比如说,在最小优化过的centos虚拟机中如果没有安装tar命令,在报tar命令不存在的情况下,我们要先安装tar命令。测试是否安装成功启动nginx/usr/local/nginx/sbin/nginx访问ip如果出现下图说明安装成功。安装php进入php下载页面找到需要安装的php版本。这里我们安装最新的稳定版php7.2.3。官方文档没有给出配置参数列表,我们可以使用./configure--help查看。下载配置编译安装php//下载phpwget的安装文件http://cn2.php.net/distributions/php-7.2.3.tar.gz//解压tarzxvfphp-7.2.3.tar.gz//进入解压后的目录cdphp-7.2.3//配置安装参数./configure--enable-fpm--prefix=/usr/local/php//编译安装make&&makeinstall也许在运行configure的时候configure会报如下错误:error:libxml2notfound。请检查你的libxml2安装这是因为缺少libxml库,直接用yum安装yuminstall-ylibxml2libxml2-devel我们这里简单安装了php,只有一个参数--enable-fpm,但实际中我们可能需要带来更多的参数,我们可以通过重新安装过程来实现。值得一提的是./configure执行成功后,会留在当前目录。下载config.nice文件。如果以后重新配置,可以在此基础上运行。例如,如果你想安装pcntl扩展,你可以像这样执行./config.nice--enable-pcntl。安装完成后,运行php配置文件。由于我们在配置的时候没有指定php.ini的加载位置,默认是在php安装目录的lib目录下,所以我们把配置文件移动到/usr/local/php/lib目录下。cpphp.ini-development/usr/local/php/lib/php.ini在/usr/local/php/etc/php-fpm.conf的最后一行可以看到include=/usr/local/php/etc/php-fpm.d/*.conf,所以需要以下步骤。cp/usr/local/php/etc/php-fpm.d/www.conf.default/usr/local/php/etc/php-fpm.d/www.conf需要特别提醒的是,如果文件没有存在,然后阻止Nginx向后端的PHP-FPM模块发送请求,从而避免恶意脚本注入攻击。将php.ini文件中的配置项cgi.fix_pathinfo设置为0。【官方文档建议】启动php-fpm/usr/local/php/sbin/php-fpm,修改nginx配置,支持php应用。修改默认位置块以支持.php文件:location/{roothtml;指数指数。phpindex.htmlindex.htm;}接下来的配置,保证对.php文件的请求都会发送到后端PHP-FPM模块,取消默认PHP配置块的注释,修改为:location~*\.php${fastcgi_indexindex.php;fastcgi_pass127.0.0.1:9000;包括fastcgi_params;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;fastcgi_paramSCRIPT_NAME$fastcgi_script_name;}重启nginx使配置生效/usr/local/nginstop/usr/local/nginx/sbin/nginxcreateatestfileecho"">>/usr/local/nginx/html/index.php
