Created
September 5, 2015 12:34
-
-
Save nurulimamnotes/fea6cc3078b4ce0f603d to your computer and use it in GitHub Desktop.
Build PHP7 with PHP-FPM
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
mkdir -p /usr/local/php | |
mkdir /usr/local/src/php7-build | |
cd /usr/local/src/php7-build | |
wget https://downloads.php.net/~ab/php-7.0.0beta3.tar.bz2 -O php-7.0.0.tar.bz2 | |
tar jxf php-7.0.0.tar.bz2 | |
cd php-7.0.0beta3/ | |
apt-get install build-essential nano libfcgi-dev libfcgi0ldbl libjpeg62-turbo-dbg libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng12-dev libfreetype6-dev libkrb5-dev libpq-dev libxml2-dev libxslt1-dev | |
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a | |
./configure --prefix=/usr/local/php --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-mysqli --with-pdo-mysql --with-mysqli --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm | |
make | |
make install | |
cp /usr/local/src/php7-build/php-7.0.0beta3/php.ini-production /usr/local/php/lib/php.ini | |
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf | |
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf | |
nano /usr/local/php/etc/php-fpm.conf | |
listen = /var/run/php7-fpm.sock | |
nano /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=/usr/local/php/sbin/php-fpm | |
php_fpm_CONF=/usr/local/php/etc/php-fpm.conf | |
php_fpm_PID=/usr/local/php/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 | |
chmod 755 /etc/init.d/php7-fpm | |
insserv php7-fpm | |
nano /lib/systemd/system/php7-fpm.service | |
[Unit] | |
Description=The PHP 7 FastCGI Process Manager | |
After=network.target | |
[Service] | |
Type=simple | |
PIDFile=/usr/local/php/var/run/php-fpm.pid | |
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf | |
ExecReload=/bin/kill -USR2 $MAINPID | |
[Install] | |
WantedBy=multi-user.target | |
systemctl daemon-reload | |
/etc/init.d/php7-fpm start | |
systemctl start php7-fpm.service | |
nano /usr/local/php/lib/php.ini | |
zend_extension=opcache.so |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment