linux安装php,nginx

一、CentOS7编译安装php7.1

1.安装依赖包
yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel
2.下载php包并解压
wget http://php.net/distributions/php-7.1.0.tar.gz
tar -zxvf php-7.1.0.tar.gz
cd php-7.1.0
3.编译安装
./configure --prefix=/usr/local/php --with-config-file-path=/etc --enable-fpm --enable-inline-optimization --disable-debug --disable-rpath --enable-shared  --enable-soap --with-libxml-dir --with-xmlrpc --with-openssl --with-mcrypt --with-mhash --with-pcre-regex --with-sqlite3 --with-zlib --enable-bcmath --with-iconv --with-bz2 --enable-calendar --with-curl --with-cdb --enable-dom --enable-exif --enable-fileinfo --enable-filter --with-pcre-dir --enable-ftp --with-gd --with-openssl-dir --with-jpeg-dir --with-png-dir --with-zlib-dir  --with-freetype-dir --enable-gd-native-ttf --enable-gd-jis-conv --with-gettext --with-gmp --with-mhash --enable-json --enable-mbstring --enable-mbregex --enable-mbregex-backtrack --with-libmbfl --with-onig --enable-pdo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib-dir --with-pdo-sqlite --with-readline --enable-session --enable-shmop --enable-simplexml --enable-sockets  --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-libxml-dir --with-xsl --enable-zip --enable-mysqlnd-compression-support --with-pear --enable-opcache
make && make install
4.安装成功后配置

找到 php.ini-production,复制到/usr/local/php/etc下,并改名为php.ini:

cp php.ini-production /usr/local/php/etc/php.ini

将php源码编译目录下的 sapi/fpm/init.d.php-fpm 文件拷贝到系统配置 /etc/init.d 目录下并重命名为 php-fpm

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm

添加 php-fpm 配置文件
将php安装目录下的 /usr/local/php/etc/php-fpm.conf.default 文件拷贝同目录下并重命名为 php-fpm.conf

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf 

添加 www.conf 配置文件
将php安装目录下的 /usr/local/php/etc/php-fpm.d/www.conf.default 文件拷贝同目录下并重命名为 www.conf

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf 

添加php安装目录到系统环境变量
创建并打开文件php.sh

vim /etc/profile.d/php.sh

添加内容如下:

export PATH=$PATH:/usr/local/php/bin/:/usr/local/php/sbin/ 

保存并退出 :wq!

使用source立即生效刚刚添加的php环境变量

source /etc/profile.d/php.sh
5.启动php-fpm
service php-fpm start

看到9000端口也就成功了!!!
在这里插入图片描述

6.设置php开机自启

设置php开机启动

修改系统配置目录下的 php-fpm 文件可执行权限

 chmod +x /etc/init.d/php-fpm

将系统配置目录下的 php-fpm 添加到 系统服务

chkconfig --add php-fpm

设置 php-fpm 系统服务 为开机启动

chkconfig php-fpm on

二、安装nginx 1.18

1.下载并解压安装包

创建一个文件夹

cd /usr/local
mkdir nginx
cd nginx

下载nginx包

wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar -zxvf nginx-1.18.0.tar.gz
2.安装nginx

进入nginx目录

cd /usr/local/nginx

进入目录

cd nginx-1.18.0

执行命令

./configure
make && make install
3.启动nginx
/usr/local/nginx/sbin/nginx -s reload

如果出现报错:nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed

则运行: /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

ps -ef | grep nginx

在这里插入图片描述

三、php+nginx 运行环境配置

1.先关防火墙 ! !
systemctl stop firewalld.service
2.添加用户组,给这个组添加一个用户
groupadd www-data
 useradd -g www-data(组名) www-data(用户名)
3.把php.ini 文件下面的cgi.fix_pathinfo 改成 0
cgi.fix_pathinfo=0
4.编辑php-fpm.conf
4.1把php-fpm改成后台运行模式
daemonize=yes
4.2 把刚才创建的 www-data(组) www-data(用户)加入到这个配置文件, 但是,这个配置文件不一定就有, 接着往下看

在这里插入图片描述

这里引入了另一个配置文件, 在/usr/local/php/etc/php-fpm.d 文件夹下,
www.conf, 把user和group 改成刚刚创建的 www-data

4.3nginx配置文件 /usr/local/nginx/conf/nginx.conf

下方解析php处,注释取消掉
在这里插入图片描述
如果添加多个服务
把最后一行注释去掉
在这里插入图片描述

4.4添加多个服务配置 在conf.d文件夹下
server {
    
    
    listen 80;
    server_name www.test.com; #域名
    root /data/share/project/web; #指向路径
    index index.php index.html index.htm;

    location / {
    
    
       try_files $uri $uri/ /index.php$is_args$args; #去除框架中index.php
    }

    location ~ \.php$ {
    
    
	    fastcgi_pass   127.0.0.1:9000;
	    #fastcgi_pass unix:/run/php/php7.0-fpm.sock;
	    fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_split_path_info ^(.+\.php)(/.+)\$;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
	}
}