安装 Nginx
Nginx 安装比较简单,可以到这里查看:
http://nginx.org/en/docs/install.html
https://www.nginx.com/resources/wiki/start/topics/tutorials/install/
安装 PHP
1.下载 PHP
到官方网站下载 PHP。网址 http://php-fpm.org/downloads/
2.解压 PHP
tar zxf php-x.x.x
3.编译 PHP (这里只简单设置支持 PHP-FPM 和 MySQL ),高级命令查看后文
cd ../php-x.x.x
./configure --enable-fpm --with-mysql
make
make install
cp php.ini-development /usr/local/php/php.ini
4.复制配置文件到正确位置
cp php.ini-development /usr/local/php/php.ini
cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin
5. 如果访问 Nginx 的文件不存在时,要阻止请求传递到 PHP-FPM 后端,防止任意脚本注入。
我们可以通过设置我们的php.ini文件中的 cgi.fix_pathinfo 语句为 0 来解决这个问题。
查找 php.ini:
cgi.fix_pathinfo=0
在启动服务之前,php-fpm.conf 必须修改指定 PHP-FPM 服务必须作为用户 www-data 和 组 www-data 运行 :
vim /usr/local/nginx/conf/nginx.conf
找到类似以下代码,修改如下,配置支持 .php 文件:
location / {
root html;
index index.php index.html index.htm;
}
下一步骤是确保 PHP 文件传递到 PHP-FPM 后端. 找到关于 PHP location 指令,输入以下内容:
location ~* \.php$ {
sudo /usr/local/nginx/sbin/nginx -s stop
vim /usr/local/php/php.ini
找到 cgi.fix_pathinfo 语句:
找到 cgi.fix_pathinfo 语句:
cgi.fix_pathinfo=0
在启动服务之前,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.
找到下面的代码,修改成下面这样:
; 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 服务了:
现在就能够启动 php-fpm 服务了:
/usr/local/bin/php-fpm
Nginx 配置支持PHP应用程序:
Nginx 配置支持PHP应用程序:
vim /usr/local/nginx/conf/nginx.conf
找到类似以下代码,修改如下,配置支持 .php 文件:
location / {
root html;
index index.php index.html index.htm;
}
下一步骤是确保 PHP 文件传递到 PHP-FPM 后端. 找到关于 PHP location 指令,输入以下内容:
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;
}
重启 Nginx.
重启 Nginx.
sudo /usr/local/nginx/sbin/nginx -s stop
sudo /usr/local/nginx/sbin/nginx
创建测试文件
rm /usr/local/nginx/html/index.html
echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php
在浏览器中打开 http://localhost 。 phpinfo() 就能够显示了。
编译 PHP 高级命令
./configure --prefix=/usr/local/php --enable-fpm --with-mcrypt --enable-mbstring --with-curl --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli --with-gd --with-jpeg-dir --with-openssl --enable-xml --with-png-dir --disable-rpath --with-freetype-di
参考:http://ixdba.blog.51cto.com/2895551/806622
上一篇:Nginx 与 PHP-FPM 运行原理
创建测试文件
rm /usr/local/nginx/html/index.html
echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php
在浏览器中打开 http://localhost 。 phpinfo() 就能够显示了。
编译 PHP 高级命令
./configure --prefix=/usr/local/php --enable-fpm --with-mcrypt --enable-mbstring --with-curl --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli --with-gd --with-jpeg-dir --with-openssl --enable-xml --with-png-dir --disable-rpath --with-freetype-di
参考:http://ixdba.blog.51cto.com/2895551/806622
上一篇:Nginx 与 PHP-FPM 运行原理