开发人员学linux(7):centos7编译安装php并配置php-fpm

开发人员学linux(7):centos7编译安装php并配置php-fpm_php_web-itnose

首页
asp
php
javascript
iis
apache
html/css
coldfusion
ajax
vbscript
cgi
xml/xsl
跨浏览器开发
ruby/rails
程序员
html5
jquery
seo
jboss
json
angularjs
markdown
nginx
thinkphp
yii
pageadmin
extjs
wampserver
kendo ui
coffeescript
gulp
ecmascript
bootstrap

itnose首页 > web > php >

开发人员学linux(7):centos7编译安装php并配置php-fpm

2017-06-14 00:39

1.前言上一篇讲述了如何编译安装mysql,虽然可以通过yum install 或者rpm来安装,但是yum install和rpm安装有一个特点,就是有些参数是别人根据大众需求定制的,如果需要进行自己的特定参数指定,这个是比较难做到的,因此有一定linux基础的人都是编译安装或者根据公司的具体环境制作适合环境的安装包。上一篇的例子中讲述了如何编译安装和如何配置多实例,并在最后讲述了如何配置主从复制配置。以前开源开发经常将lamp,就是linux+apache+mysql+php,对于一些起步型的公司来说lamp可以满足他们的所有幻想:既可以响应一定规模的用户,对硬件的要求也很小。现在随着nginx的兴起,lamp变成了lnmp,即linux+nginx+mysql+php,因此本篇将讲述如何编译安装php并且使用php-fpm来让nginx支持php。2.准备2.1下载php5.6.3源码考虑到很多开源php还在用php5版本,因此这里以php5.6.3版本的编译安装为例:下载:

wget http://cn2.php.net/distributions/php-5.6.3.tar.gz

2.2wordpress中文版wordpress是一个非常著名的个人博客系统,这里用它来验证我们的php-fpm配置正确与否。下载:

wget https://cn.wordpress.org/wordpress-4.7.4-zh_cn.zip

2.3安装依赖库

yum install gcc automake autoconf libtool make �y
yum install gcc gcc-c++ glibc �y
yum install libmcrypt-devel mhash-devel libxslt-devel �y
yum install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel �y
yum install zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel �y
yum install ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel -y
yum install krb5 krb5-devel libidn libidn-devel openssl openssl-devel -y

注:上面有些依赖库在上一篇中已经安装了,为省事我在这里又一股脑列上了,在实际安装过程中如果本地已经安装了就不会再次安装和下载了。3.编译和设置3.1编译文件假定下载的php-5.6.3.tar.gz位于/root目录下,首先解压文件:

tar zxvf /root/php-5.6.3.tar.gz

然后执行configure:

cd /root/php-5.6.3
./configure –prefix=/usr/local/php –enable-fpm –with-mcrypt –enable-mbstring –disable-pdo –with-curl –disable-debug –disable-rpath –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-gettext –enable-xml –enable-freetype

如果依赖库都安装了就不会报错,如果提示缺少依赖库就用yum install 来安装。在上面的参数中:–prefix=/usr/local/php:表示将来程序安装在/usr/local/php目录;–enable-fpm:表示启用php-fpm模块,不启用这个nginx就没办法将php页面请求转发个nginx处理了。接着执行:

make
make install

因为源代码有点多,编译需要一点时间,请耐性等待。成功之后在/usr/local下会新建php文件夹,其文件目录结构如下:

[root@localhost ~]# ls -l /usr/local/php
total 0
drwxr-xr-x 2 root root 147 jun 7 23:38 bin
drwxr-xr-x 2 root root 71 jun 12 22:13 etc
drwxr-xr-x 3 root root 17 jun 7 23:12 include
drwxr-xr-x 3 root root 85 jun 12 22:12 lib
drwxr-xr-x 4 root root 28 jun 7 23:12 php
drwxr-xr-x 2 root root 21 jun 7 23:12 sbin
drwxr-xr-x 4 root root 28 jun 7 23:12 var

3.2配置3.2.1php.ini配置首先将刚才解压的文件夹中将php.ini-development拷贝到/usr/local/php/lib目录并命名为php.ini:

cp /root/php-5.6.3/php.ini-development /usr/local/php/lib/php.ini

注意:在开发服务器将php.ini-development改为php.ini,如果是生产服务器建议将php.ini-production改为php.ini, php.ini-production与php.ini-development相比是关闭了一些调试输出,这在生产环境中可以减少日志文件的体积和提高性能,在开发环境中建议还是打开以便于调试。在接下来的讲解中是基于开发环境配置的。对php.ini做如下更改:error_reporting = e_all & ~e_notice ;输出调试信息和通知error_log = /usr/local/php/var/log/error-log.log ;错误日志存放位置date.timezone = “asia/shanghai”; 这句原本是” ;date.timezone =”,需要去掉其注释并设置为中国时区3.2.2php-fpm.conf配置首先将/usr/local/php/ etc/php-fpm.conf.default拷贝一份并命名为php-fpm.conf:

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

接着对php-fpm.conf做如下更改:;pid = run/php-fpm.pid这一句取消注释,并改为:pid = /usr/local/php/var/run/php-fpm.pid;;error_log = log/php-fpm.log这一句取消注释,并改为:error_log = /usr/local/php/var/log/error-log.loguser = nobody改为:user = nginxgroup = nobody改为:group = nginx;catch_workers_output = yes这一句取消注释,改为:catch_workers_output = yesphp-fpm可执行文件在/usr/local/php/sbin目录下,可以通过/usr/local/php/sbin来执行监听,默认是监听9000端口。4.安装wordpress4.1数据库准备 4.1.1启动mysql数据库为了观察上一篇我们的master-slave配置效果,这次我们将两个数据库实例都启动:

/usr/local/mysql-5.7.18/data/3306/mysql start
/usr/local/mysql-5.7.18/data/3307/mysql start

4.1.2mysql数据库准备为了信息安全,专门在主数据库实例上创建一个名为wordpress的库,并为wordpress库配置一个数据库账户,命令如下:

create database wordpress;
grant all privileges on wordpress.* to wordpress@localhost identified by ‘wordpress’;flush privileges;

即新建wordpress库,同时新建wordpress数据库账号,账户密码为wordpress,拥有对wordpress库的全部权限。4.2wordpress站点及域名解析配置4.2.1解压缩wordpress假设wordpress-4.7.4-zh_cn.zip在/root目录下,执行以下命令来解压文件:

cd ~
tar zxvf ./wordpress-4.7.4-zh_cn.tar.gz

将wordpress放入nginx目录下:

mv ./wordpress /usr/local/nginx-1.12.0/html

4.2.2在nginx中增加站点首先在/usr/local/nginx-1.12.0/conf/vhosts增加一个文件,名为wordpress.goodapp.net.conf,其内容如下:

server {
listen 80;
server_name wordpress.goodapp.net;
access_log logs/wordpress.access.log main;
error_log logs/wordpress.error.log;
#root html;
#index index.html index.htm index.jsp index.php;

location /{
root html/wordpress;
index index.htm index.html index.php;
}

location ~* \.php$ {
root html/wordpress;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param script_filename $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

然后在/usr/local/nginx-1.12.0/conf/nginx.conf中include这个文件,文件内容如下: 接着检查配置是否有语法错误,如果没有语法错误就重新加载配置:

/usr/local/nginx-1.12.0/sbin/nginx �t

4.2.3启动应用首先启动nginx:

systemctl reload nginx.service

注:见本系列前面章节,因nginx已配置为随系统启动了,可以通过上述命令重新启动。接着启动php-fpm:

/usr/local/php/sbin/php-fpm

这是可以观察php-fpm的启动状态:

[root@localhost ~]# netstat -lntp | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* listen 5498/php-fpm: maste

如果结果不是上述,可以查看错误日志:

tail /usr/local/php/var/log/error-log.log

4.2.4配置检测我们可以在/usr/local/nginx-1.12.0/html/wordpress中创建一个测试php页面,文件名为test.php,文件内容如下:

为了能在windows宿主机中能通过域名观察结果,需要对hosts文件做修改,hosts文件位于c:\windows\system32\drivers\etc目录,修改后的内容如下:

# copyright (c) 1993-2009 microsoft corp.
#
# this is a sample hosts file used by microsoft tcp/ip for windows.
#
# this file contains the mappings of ip addresses to host names. each
# entry should be kept on an inpidual line. the ip address should
# be placed in the first column followed by the corresponding host name.
# the ip address and the host name should be separated by at least one
# space.
#
# additionally, comments (such as these) may be inserted on inpidual
# lines or following the machine name denoted by a ‘#’ symbol.
#
# for example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handled within dns itself.
# 127.0.0.1 localhost
# ::1 localhost
192.168.60.198 www.goodapp.net
192.168.60.198 bbs.goodapp.net
192.168.60.198 wordpress.goodapp.net

注:192.168.60.198是centos7虚拟机的ip地址。在浏览器中打开http:// wordpress.goodapp.net/test.php页面,效果如下: 4.3安装在宿主机打开http://wordpress.goodapp.net/wp-admin/install.php即可看到安装界面: 点击“现在就开始!”就进入安装界面,如下图: 在本篇《4.1.2mysql数据库准备》中我们已经创建了wordpress库和wordpress用户,其密码为wordpress,将上述信息填写并提交即完成wordpress的安装。完成安装后的wordpress后台管理首页效果如下: 至于wordpress如何使用这里就不详述了,感兴趣的可以去其官网看手册,这里主要是用wordpress来检查nginx+php-fpm是否配置正确。5.mysql主从效果检查感兴趣的朋友可以看一下我们上一篇讲的mysql主从配置是否正确,下面是我用heidisql这个开源的数据库管理工具查看到的主从数据库的界面: 注:heidisql官网:https://www.heidisql.com,可免费下载使用,支持postgresql、mysql及sql server。6.总结本篇讲述了如何编译php及通过配置让nginx借助php-fpm来支持php应用,最后通过一个php应用wordpress的安装和配置来检查nginx+php-fpm是否配置正确,并且在本篇也检验了上一篇所述的mysql主从复制是否正常工作。

相关搜索:
数据库开发人员
php 数据库开发
win7 安装db2
delphi 7
php jsp

相关文章

2016-08-10 15:23 centos 7 安裝 nginx、php7、php-fpm
2017-03-29 21:35 php-fpm 配置
2016-09-09 15:06 php-fpm 配置
2016-06-04 01:46 centos7安装nginx+php7运行环境
2016-04-13 09:44 六、配置php-fpm

更多相关文章>>

最新文章

2017-06-20 01:35 老铁们,有没有可能让php文件同时只能一个人访问
2017-06-20 01:35 怎么禁止图片直接通过url访问
2017-06-20 01:35 求救!启动wamp只能用本机访问,同局域网的其它设备访问不到!搞了大半天t-t
2017-06-19 15:35 nginx下的thinkphp问题
2017-06-19 15:35 php form 文件上传

更多最新文章>>

热门搜索

php webservice
php 图表
php xml
delphi for php
delphi php
php sqlserver
win7 .netframework
java7 webservice
delphi7
delphi7教程
delphi win7
delphi7注册
sqlserver win7
linux 安装oracle
php和.net

京icp备14022385号-2

©2014 itnose软件编程教程 | 联系我们:email:twobrushes@126.com qq:35155868

Posted in 未分类

发表评论