一、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;
}
}