PHP7
都出了,天然我是要安装的,上次写的那个编译开发环境并无针对性的说PHP,就此次说清楚吧。php
$ wget http://cn2.php.net/get/php-7.0.0.tar.gz/from/this/mirror $ mv mirror php7.tar.gz
$ tar -zxvf php7.tar.gz $ cd php7
$ sudo apt-get install libxml2-dev
$ sudo apt-get install libcurl4-openssl-dev
$ sudo apt-get install curl libmcrypt-dev
configure: error: png.h not found.html
$ sudo apt-get install libpng12-dev
$ ./configure --enable-debug --with-mysql --with-gd --with-curl --prefix=/opt/php7 --enable-fpm --enable-cgi --with-openssl --enable-mbstring --with-mcrypt --with-pdo-mysql --with-mysql-sock=/var/run/mysqld/mysqld.sock $ make -j 4 $ sudo make install
$ cd ~ $ vim .zshrc # 或者其余的.bashrc什么的
加入如下内容在最后一行:mysql
$PATH=$PATH:/opt/php7/bin;
这个步骤比较长,得有点儿耐心nginx
首先找个php.ini
文件,而后放到/opt/php7/lib
里面,而后git
给两个文件更名github
$ suo cp /opt/php7/etc/php-fpm.conf.default /opt/php7/etc/php-fpm.conf $ suo cp /opt/php7/etc/php-fpm.d/www.conf.default /opt/php7/etc/php-fpm.d/www.conf
而后调整里面的东西sql
先给个pid取消注释ubuntu
$ sudo vim /opt/php7/etc/php7-fpm.conf
[...] pid = run/php-fpm.pid [...]
改一下用户组和用户vim
$ sudo vim /opt/php7/etc/php7-fpm.d/www.conf
user = YourUsername group = YourGroup
而后建立文件:bash
$ sudo vim /etc/init.d/php7-fpm
写入如下内容,注意一些文件名
#! /bin/sh ### BEGIN INIT INFO # Provides: php7-fpm # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts php7-fpm # Description: starts the PHP FastCGI Process Manager daemon ### END INIT INFO php_fpm_BIN=/opt/php7/sbin/php-fpm php_fpm_CONF=/opt/php7/etc/php-fpm.conf php_fpm_PID=/opt/php7/var/run/php-fpm.pid php_opts="--fpm-config $php_fpm_CONF" wait_for_pid () { try=0 while test $try -lt 35 ; do case "$1" in 'created') if [ -f "$2" ] ; then try='' break fi ;; 'removed') if [ ! -f "$2" ] ; then try='' break fi ;; esac echo -n . try=`expr $try + 1` sleep 1 done } case "$1" in start) echo -n "Starting php-fpm " $php_fpm_BIN $php_opts if [ "$?" != 0 ] ; then echo " failed" exit 1 fi wait_for_pid created $php_fpm_PID if [ -n "$try" ] ; then echo " failed" exit 1 else echo " done" fi ;; stop) echo -n "Gracefully shutting down php-fpm " if [ ! -r $php_fpm_PID ] ; then echo "warning, no pid file found - php-fpm is not running ?" exit 1 fi kill -QUIT `cat $php_fpm_PID` wait_for_pid removed $php_fpm_PID if [ -n "$try" ] ; then echo " failed. Use force-exit" exit 1 else echo " done" echo " done" fi ;; force-quit) echo -n "Terminating php-fpm " if [ ! -r $php_fpm_PID ] ; then echo "warning, no pid file found - php-fpm is not running ?" exit 1 fi kill -TERM `cat $php_fpm_PID` wait_for_pid removed $php_fpm_PID if [ -n "$try" ] ; then echo " failed" exit 1 else echo " done" fi ;; restart) $0 stop $0 start ;; reload) echo -n "Reload service php-fpm " if [ ! -r $php_fpm_PID ] ; then echo "warning, no pid file found - php-fpm is not running ?" exit 1 fi kill -USR2 `cat $php_fpm_PID` echo " done" ;; *) echo "Usage: $0 {start|stop|force-quit|restart|reload}" exit 1 ;; esac
赋权:
$ sudo chmod 755 /etc/init.d/php7-fpm $ sudo vim /lib/systemd/system/php7-fpm.service
而后写入下面的内容:
[Unit] Description=The PHP 7 FastCGI Process Manager After=network.target [Service] Type=simple PIDFile=/opt/php7/var/run/php-fpm.pid ExecStart=/opt/php7/sbin/php-fpm --nodaemonize --fpm-config /opt/php7/etc/php-fpm.conf ExecReload=/bin/kill -USR2 $MAINPID [Install] WantedBy=multi-user.target
试试看行不行:
$ php -v $ sudo /etc/init.d/php-fpm start
没有出错就对了,出错了请在下面留言,我看看怎么回事。
好了,到这里其实已经没有问题了。可是剩下的Nginx也得稍微调整一下
$ sudo vim /etc/nginx/site-available/default
改为这样
fastcgi_pass 127.0.0.1:9000
重启服务,走起!
$ sudo service nginx restart $ sudo service php7-fpm restart
按照他们的指导作就好了
$ git clone https://github.com/swoole/swoole-src.git $ cd swoole-src $ phpize $ ./configure $ make && sudo make install
在php.ini里面写上扩展
$ sudo vim /opt/php7/lib/php.ini
随便找个地方,不过我仍是建议放到extension那边,大概第900行左右
extension=swoole.so
试试看swoole有没有安装好
$ php -m | grep swoole
有输出就是没问题,没输出就是有问题。