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
有輸出就是沒問題,沒輸出就是有問題。