linux安装php7+nginx

来源:互联网 发布:炒股行情分析软件 编辑:程序博客网 时间:2024/05/05 00:08

安装php

打开php官网,选择一个下载地址,然后进入到php的目录

# cd /usr/local/php# wget http://hk1.php.net/get/php-7.0.19.tar.gz.asc/from/this/mirror

下载完成后,当前目录会有一个mirror的文件,直接解压:

# tar -zxvf mirror

解压完成后,在当前目录下,会生成一个‘php-7.0.19’的文件夹。
要想支持ng服务器,php还需要下载安装fpm(如果是apache服务器就跳过这一步)。在之前,先安装一些依赖:

# yum -y install gcc c openssl openssl-devel bzip2-devel libxslt libxslt-devel libmcrypt libmcrypt-devel libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel 

进入php-7.0.19目录,然后开始配置,把php安装到/usr/local/php 下,–enable-fpm是支持ng服务器的,必须安装(同时把相关扩展在在安装php的时候就安装上去,因为后面一个个安装老是遇到问题):

# cd php-7.0.19# ./configure --prefix=/usr/local/php7 --enable-fpm --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash  --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip

如果上步没出错的话,就可以开始编译了,(make编译是很长时间的):

#make

编译完成后,一般出现“don’t forget to run make test”,就表示编译成功了,然后就可以安装了:

# make install

安装成功后,可以测试看看php的版本号,刚才php安装在/usr/local/php7里面:

# /usr/local/php/bin/php -v

如果出现php的版本号,说明安装成功了。
然后我们把php放到环境变量里面去:

# echo 'export PATH=/usr/local/php/bin:$PATH'>>/etc/profile# source /etc/profile

这样我们就能在任何地方直接使用php命令了,测试下php -v 命令,如果出现版本表示配置成功了。

安装成功后的文件夹里面,php的配置文件(php.ini)是不存在的,要去源码包里面复制一个出来(首先要看php是去哪里找php.ini的,可以在phpinfo里面看,也可以命令:php –ini):

# cp /usr/local/php/php-7.0.19/php.ini-development /usr/local/php/etc/php.ini

安装redis

去官网下载源码包,下载完成后,有个redis-3.2.9.tar.gz,解压:

# tar -zxvf redis-3.2.9.tar.gz# cd redis-3.2.9

安装redis之前,还要安装gcc和tcl,gcc是C语言的编译器,redis是C语言写的,redis的一些测试组件是tcl来编写的。

# yum -y install gcc tcl

然后可以直接编译安装

# make # make install

看看安装在哪里了:

# which redis-server

结果是:/usr/local/bin/redis-server
一般在启动redis的时候,都会配合一个配置文件启动,这个配置文件一般源码包里面会有个原型,我们把他拷贝出来:

# cp redis.conf /usr/local/redis.conf

然后开始修改一些配置项:

# vim /usr/local/redis.conf

里面有个daemonize no,这个是说前台启动还是后台启动,改成yes(后台启动redis-server),还有个port,端口,默认是6379.
启动redis-server(/usr/local/bin/redis-server这个是which redis-server命令得到,后面的是配置文件的路径(可以随便指定)):

# /usr/local/bin/redis-server /usr/local/redis.conf

看下redis-server是否启动:

# ps aux | grep redis-server

接着用redis-cli来操作redis:

# which redis-cli#如果要登录远端的redi,就要指定地址和端口# redis-cli -h 127.0.0.1 -p 6379

安装phpredis扩展

先看看php有没有redis扩展:

# php -m

安装扩展的时候,需要安装两个工具,phpize(待会编译出configure文件必须用到这个)和php-config(编译扩展的时候要用),这两个都包含在php-devel(php的扩展开发包,这个包含了其他扩展需要的工具):

# yum -y install php-devel

看phpize和php-config安装的路径(后面需要):

# which phpize# which php-config

结果是:
/usr/local/php/bin/phpize
和 /usr/local/php/bin/php-config
下面开始下载phpredis的扩展包:

# wget https://codeload.github.com/phpredis/phpredis/zip/php7

解压(下载的是个zip文件):

# unzip php7

解压成功后,有个phpredis-php7文件夹,进去,编译安装:

# cd /usr/local/jw/phpredis-php7# /usr/local/php/bin/phpize #必须要这操作,否则是没有configure文件的# ./configure --with-php-config=/usr/local/php/bin/php-config# make # make install

安装成功后,要修改phpini文件,把配置加进去:

将extension=redis.so加入到php.ini

重启服务器,如果是ng的话,重启pgp-fpm:

ps aux|grep php-fpm #查看fpm进程号kill -USR2 fpm进程号 #平滑重启php-fpm

最后在phpinfo里看看,有没有redis,或者php -m 查看有没有这个扩展

安装nginx

先进入官网,然后下载源码包:

# wget http://nginx.org/download/nginx-1.12.0.tar.gz

解压:

# tar -zxvf nginx-1.12.0.tar.gz

进入解压后的文件夹:

# cd nginx-1.12.0

开始配置,安装在/usr/local/nginx文件夹下:

# ./configure --prefix=/usr/local/nginx

然后开始编译,make会直接报错的,因为缺少PCRE库(Nginx编译需要PCRE(Perl Compatible Regular Expression),因为Nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法。这里需要安装两个安装包pcre和pcre-devel。第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码)

# yum -y install pcre pcre-devel

安装完之后,再进行编译和安装:

# make # make install

安装成功后,进入安装目录

# cd /usr/local/nginx

启动nginx

# cd sbin# ./nginx

在浏览器看看是否启动成功:119.29.40.108。回车之后,显示“wellcome to nginx”说明是启动成功了。

nginx和php的一些配置

1.先配置fpm

# cd /usr/local/php/sbin# ./php-fpm

这里应该是报错了:

 ERROR: failed to open configuration file '/usr/local/php/etc/php-fpm.conf': No such file or directory (2)

这是因为没有php-fpm.conf这个文件:,我们把php-fpm.conf.default文件改成php-fpm-conf:

#  mv php-fpm.conf.default  php-fpm.conf

然后再次启动php-fpm:

# cd /usr/local/php/sbin# ./php-fpm

结果还是报错:

 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.[03-Jun-2017 14:40:10] ERROR: No pool defined. at least one pool section must be specified in config file

这是说,在/usr/local/php/etc/php-fpm.conf文件中的125行有个错误,我们用vim来看下,直接打开这个文件到125行,125行写的是这个,引入了一个文件:/usr/local/php/etc/php-fpm.d/*.conf,

include=/usr/local/php/etc/php-fpm.d/*.conf

我们再找到这个文件的路径看看,有没有这个文件:

# cd /usr/local/php/etc/php-fpm.d# ls

发现这个路径下,只有:
www.conf.default 文件,我们同样把这个文件的名字改下:

# cp www.conf.default www.conf

这样一来,就有这个文件了。然后再次启动php-fpm:

#  cd /usr/local/php/sbin# ./php-fpm

这次是启动成功了。可以用下面命令来看看,是不是有fpm进程:

#  ps aux | grep php-fpm

2.再配置nginx

nginx的配置文件都在conf文件夹里面:

# cd cd /usr/local/nginx/conf# vim nginx.conf

在里面写入以下配置:

 location ~ .php {          fastcgi_pass 127.0.0.1:9000;          fastcgi_index /index.php;          include /usr/local/nginx/conf/fastcgi_params;          fastcgi_split_path_info    ^(.+\.php)(/.+)$;          fastcgi_param PATH_INFO   $fastcgi_path_info;          fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;        }

保存退出,然后重启ngnix(改了配置就重启,和apache一样的):

# cd /usr/local/nginx/sbin# ./nginx -s reload 

用命令看看有没有nginx的进程号:

# ps -ef | grep nginx

重启成功后,测试下,nginx服务器是不是跟php关联上了:

#  cd /usr/local/nginx/html# vim index.php

在里面打印出“hello world”,然后网页上看下,能不能跑起来.

这样,配置也就弄好了。需要注意的是:nginx和apache不一样,不能直接解析php文件,要交给fpm处理的。所以必须要安装fpm。

安装mysql

进入官网,下载mysql:

#  wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18.tar.gz

解压:

tar -zxvf mysql-5.7.18.tar.gz

在安装mysql之前,要yum安装一些依赖软件:

# yum -y install cmake gcc-c++ ncurses-devel perl-Data-Dumper boost boost-doc boost-devel

进入mysql解压目录,然后用cmake来编译:

# cd mysql-5.7.18# cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/usr/local/mysql/data \-DSYSCONFDIR=/etc \-DMYSQL_USER=mysql \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_MEMORY_STORAGE_ENGINE=1 \-DWITH_READLINE=1 \-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \-DMYSQL_TCP_PORT=3306 \-DENABLED_LOCAL_INFILE=1 \-DENABLE_DOWNLOADS=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DEXTRA_CHARSETS=all \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_DEBUG=0 \-DMYSQL_MAINTAINER_MODE=0 \-DWITH_SSL:STRING=bundled \-DWITH_ZLIB:STRING=bundled \-DDOWNLOAD_BOOST=1 \-DWITH_BOOST=/usr/local/boost

然后开始编译和安装

# make # make install

注意

由于nginx和fpm并没有设置成开机启动,也没有做成服务,所以服务器重启后,要重启启动nginx服务器和fpm服务器。