nginxphpini配置
[root@redhat7 ~]# wget http://am1.php.net/get/php-7.1.2.tar.gz/from/this/mirror
[root@redhat7 ~]# tar xzvf php-7.1.2.tar.gz
[root@redhat7 ~]# cd php-7.1.2/
[root@redhat7 ~]# ./configure --prefix=/usr/local/php --enable-fpm
[root@redhat7 php-7.1.2]# make&&make install
查看是否成功编译安装PHP
[root@redhat7 php-7.1.2]# php -v
PHP 7.1.2 (fpm-fcgi) (built: Apr 14 2017 20:21:53)
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
编译安装完成后PHP不具备配置文件php.ini,此时只需复制php.ini-proction到 /usr/local/lib/php.ini即可,php.ini文件一般在/usr/local/lib/和/etc目录下
[root@localhost php-7.1.2]# cp php.ini-proction /usr/local/lib/php.ini
[root@redhat7 php]# /usr/local/php/sbin/php-fpm
[14-Apr-2017 20:59:49] ERROR: failed to open configuration file '/usr/local/php/etc/php-fpm.conf': No such file or directory (2)
[14-Apr-2017 20:59:49] ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf'
[14-Apr-2017 20:59:49] ERROR: FPM initialization failed
启动php-fpm发现缺乏配置文件/usr/local/php/etc/php-fpm.conf
此时只需复制php-fpm的配置文件在安装php时提供的配置文件的模版/usr/local/php/etc/php-fpm.conf.default到相应/usr/local/php/etc/php-fpm.conf即可
[root@redhat7 etc]# /usr/local/php/sbin/php-fpm
[14-Apr-2017 21:14:32] WARNING: Nothing matches the include pattern '/usr/local/php/etc/php-fpm.d/﹡.conf' from /usr/local/php/etc/php-fpm.conf at line 125.
[14-Apr-2017 21:14:32] ERROR: No pool defined. at least one pool section must be specified in config file
[14-Apr-2017 21:14:32] ERROR: failed to post process the configuration
[14-Apr-2017 21:14:32] ERROR: FPM initialization failed
[root@redhat7 etc]# cp php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@redhat7 etc]# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
[root@redhat7 etc]# /etc/init.d/php-fpm
[14-Apr-2017 21:23:02] ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (98)
[14-Apr-2017 21:23:02] ERROR: FPM initialization failed
[root@redhat7 etc]# netstat -nldp|grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 3721/php-fpm: maste
[root@redhat7 php-7.1.2]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@redhat7 php-7.1.2]# chmod a+x /etc/init.d/php-fpm
[root@redhat7 php-7.1.2]# ll /etc/init.d/php-fpm
-rwxr-xr-x 1 root root 2401 4月 14 21:26 /etc/init.d/php-fpm
[root@redhat7 php-7.1.2]# /etc/init.d/php-fpm start
Starting php-fpm [14-Apr-2017 21:28:09] ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (98)
[14-Apr-2017 21:28:09] ERROR: FPM initialization failed
failed
[root@redhat7 php-7.1.2]# netstat -nldp |grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 3721/php-fpm: maste
[root@redhat7 php-7.1.2]# kill 3721
[root@redhat7 php-7.1.2]# netstat -nldp |grep 9000
[root@redhat7 php-7.1.2]# /etc/init.d/php-fpm start
Starting php-fpm done
[root@redhat7 php-7.1.2]# service php-fpm status
php-fpm (pid 3927) is running...
[root@redhat7 php-7.1.2]# chkconfig --add php-fpm
[root@redhat7 php-7.1.2]# chkconfig php-fpm --level 345 on
配置nginx支持PHP
修改nginx的配置文件,支持php文件的解析,找到location的添加位置,在后面添加下面这个location
location ~ .php$ {
root /usr/share/nginx/html; #指定php的根目录
fastcgi_pass 127.0.0.1:9000;#php-fpm的默认端口是9000
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Ⅱ ubuntu下配置nginx+php+mysql详解_php实例
为了在Ubuntu下配置好Nginx+PHP+MySQL环境,本文将详细介绍从基础到高级的安装步骤和配置细节。请按照以下步骤操作,确保顺利搭建好所需环境。
1. 更新系统
首先更新你的Ubuntu系统,确保所有已安装软件包的版本是最新的。使用命令:
sudo apt-get update
2. 安装Nginx
安装Nginx,该Web服务器将作为你的应用服务器。执行命令:
sudo apt-get install nginx
安装后,Ubuntu系统将为Nginx配置文件、程序文件、日志文件和启动脚本建立相应的目录结构。
Nginx的文件结构包括:
- 所有配置文件位于`/etc/nginx`目录下
- 每个虚拟主机的配置文件存放于`/etc/nginx/sites-available`目录
- 程序文件位于`/usr/sbin/nginx`
- 日志文件存放于`/var/log/nginx`
- 启动脚本在`/etc/init.d/`目录中
- 默认虚拟主机目录设置为`/var/www/nginx-default`
启动Nginx并验证安装:
- 使用命令`sudo /etc/init.d/nginx start`或`service nginx start`启动Nginx。
- 打开浏览器,访问`http://localhost/`。如果显示“Welcome to nginx!”,则安装成功。
3. 安装PHP
安装PHP和一系列PHP扩展,确保Nginx可以正确执行PHP脚本。执行命令:
sudo apt-get install php5 php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-tidy php5-xmlrpc php5-sqlite php5-xsl
4. 安装spawn-fcgi
spawn-fcgi 用于管理PHP-cgi进程,防止进程崩溃或效率低下。运行:
sudo apt-get install spawn-fcgi
5. 配置Nginx与spawn-fcgi
为了使Nginx与spawn-fcgi协同工作,需要进行一些配置调整。首先,在`/etc/nginx/fastcgi_params`文件中,添加以下行:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
然后,在PHP-CGI配置文件`/etc/php5/cgi/php.ini`中修改`cgi.fix_pathinfo`选项为:
cgi.fix_pathinfo=1;
这将允许PHP-CGI正确处理`SCRIPT_FILENAME`变量。接着,编辑`/etc/nginx/sites-available/default`文件,更新`server`配置以指向正确的web根目录`/var/www/nginx-default`。
在`server`块中添加:
location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name; include /etc/nginx/fastcgi_params; }
确保PHP文件可以正确加载。
6. 启动fast_cgi进程
使用以下命令启动spawn-fcgi进程:
sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
7. 设置开机启动与验证
在`/etc/rc.local`文件中添加以下行以确保fast_cgi进程在系统启动时自动运行:
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
如果遇到`No input file specified`错误,请检查`php.ini`配置中的`cgi.fix_pathinfo`设置和`doc_root`路径是否正确。
最后,进行MySQL安装:
sudo apt-get install mysql-server mysql-client
按照提示输入Root用户密码,并启动MySQL服务:
sudo /etc/init.d/mysql start
使用命令`mysql -uroot -p`连接MySQL,并运行`show databases;`查询数据库,确认MySQL已正确安装。
至此,Ubuntu下Nginx+PHP+MySQL环境已成功搭建完成。
Ⅲ 为什么centos7下nginx的php怎么开启报错
首先要编辑php配置文件:
vi /etc/php.ini
error_reporting = E_ERROR
display_errors = On
因为我开启了php-fpm。所以,还要编辑 php-fpm.conf文件,把php_flag[display_errors]设为on:
vi php-fpm.conf
php_flag[display_errors] = on
这样在开发的时候就可以在浏览器中显示php出现的错误了,非常方便。
Ⅳ nginx下怎么修改php.ini
nginx不能修改php.ini,建议在系统中修改php.ini文件,而不要暴露php.ini到站点下
否则会存在安全问题
理论上可以通过php代码修改php.ini配置,但设置方法非常繁琐,各种权限都需要放开,同时及其不安全,但php中可以通过代码改变当前运行环境的php配置,不需要修改php.ini全局配置