@gabe
2015-12-20T11:35:30.000000Z
字数 3901
阅读 8165
php7 centos7
距离php7发布已经有近10天的时间了,关于php7超强的性能提升这里就不再阐述了,这篇文章主要记录下在centos7上安装php7,nginx,php-memcached的整个过程,不得不说在centos7上安装php7比在centos6.5上顺利太多了,整个过程也就10分钟多点。
centos7的机器,为了演示方便,我全程使用root用户操作,系统最好是先执行下 yum update。nginx,很简单执行yum install nginx即可。 service nginx start,测试是否启动成功, 测试是否正常,用浏览器访问 http://127.0.0.1。正常的话应该看到一个nginx的欢迎页面。这个页面就是 /usr/share/nginx/html/index.html,可以自行修改测试。
yum install -y \gcc-c++ autoconf \libjpeg libjpeg-devel libpng \libpng-devel freetype freetype-devel \libpng libpng-devel libxml2 libxml2-devel \zlib zlib-devel glibc glibc-devel \glib2 glib2-devel bzip2 bzip2-devel \ncurses curl openssl-devel \gdbm-devel db4-devel libXpm-devel \libX11-devel gd-devel gmp-devel \readline-devel libxslt-devel \expat-devel xmlrpc-c xmlrpc-c-devel \libicu-devel libmcrypt-devel \libmemcached-devel
php7,并解压
$ cd /usr/src/$ wget http://cn2.php.net/distributions/php-7.0.0.tar.gz#解压$ tar -xzxvf php-7.0.0.tar.gz$ cd php-7.0.0.0
$ ./configure --prefix=/usr/local/php7 \--with-mysql-sock --with-mysqli \--enable-fpm --enable-soap \--with-libxml-dir --with-openssl \--with-mcrypt --with-mhash \--with-pcre-regex --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-pdo-mysql \--with-zlib-dir --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-intl$ make$ make install
/usr/local/php7目录下了。正常的话我们执行下面的命令
$ /usr/local/php7/bin/php -vPHP 7.0.0 (cli) (built: Dec 13 2015 22:28:12) ( NTS )Copyright (c) 1997-2015 The PHP GroupZend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
$ ln -sf /usr/local/php7/bin/php /usr/local/bin/php$ php -v #和之前的/usr/local/php7/bin/php一样
添加php.ini,如果是生产环境则cp对应的php.ini-production
$ cp php.ini-development /usr/local/php7/lib/php.ini
$ cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf$ cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf$ cp /usr/src/php-7.0.0/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm$ chmod +x /etc/init.d/php-fpm
配置文件添加成功后,我们启动php-fpm
$ service php-fpm start
php-fpm启动后我们还需要配置nginx才能通过访问php页面,首先确认nginx是启动的。service nginx restart,
$ echo '<?php phpinfo();' > /usr/share/nginx/html/info.php
然后访问 http://127.0.0.1/info.php,应该看到一个提示下载的页面。这是因为为nginx现在无法处理php文件,接下来我们配置nginx使其将php访问交给php-fpm处理。在/etc/nginx/nginx.conf 的server块里面添加下面的配置
location ~ \.php(/|$) {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
保存退出,并重启nginx
$ service nginx restart
现在重新访问 http://127.0.0.1/info.php应该能看到我们熟悉的页面了。
下载php-memcached,从github上下载,记住一定要选择对应的php7分支
$ cd /usr/src$ git clone https://github.com/php-memcached-dev/php-memcached.git$ cd php-memcached/$ git checkout php7$ /usr/local/php7/bin/phpize$ ./configure --with-php-config=/usr/local/php7/bin/php-config$ make$ make install
修改php.ini
$ vi /usr/local/php7/lib/php.ini#在最下面加上extension=memcached.so
保存并退出,重启php-fpm
$ service php-fpm start
再次访问http://127.0.0.0/info.php,就可以看到memcached已经安装成功了。
以上php7,php7-memcached,nginx就已经安装完成了。
opcache,个性php.ini文件
$ vi /usr/local/php7/lib/php.ini[opcache]zend_extension=opcache.so #新加此行opcache.enable=1 #删除此行前面的注释,并将0改为1,启用opcacheopcache.enable_cli=1 #删除此行前面的注释,并将0改为1,在cli模式下启用opcacheopcache.revalidate_freq=10 #可选,设置10s检查一次文件变化
通过 http://127.0.0.1/info.php 和 php -i可以看到opcache在web和cli模式下都已经启用了。