After a couple of google searches, the closest thing would be how to custom compile PHP engine on web hosting server which fits the scenario of non-root user installation.
First, check out the git source from here:
https://github.com/php/php-src
So far I have been on PHP v7.2.11 and the outcome is satisfied after source compiling.
Second, choose and create a destination directory for new PHP implementation which can be something like:
/home/user/local
Third, steps to compile:
$
$ cd {PHP source directory}
$ make clean
$ ./configure \
--prefix=/home/user/local \
--enable-calendar \
--enable-pcntl \
--enable-shmop \
--enable-sockets \
--enable-mbstring \
--enable-bcmath \
--with-gd \
--with-curl \
--with-openssl \
--with-xmlrpc \
--enable-soap \
--enable-zip \
--enable-opcache \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-mysqli \
--enable-pcntl \
--with-pdo-mysql \
--with-pdo-sqlite \
--with-pgsql \
--with-freetype-dir \
--enable-intl \
--with-xsl \
--with-zlib \
--enable-simplexml \
--with-sqlite3 \
--enable-xmlreader \
--enable-xmlwriter \
--with-gettext \
--with-gdbm
$ make
$ make install
Once done, the files will be placed in the directory specified by the flag --prefix.
Please note that a specific PHP target directory is set according to destination directory, i.e., /home/user/local for installation which prevents overwriting default/previous PHP implementation even under non-root privileges.
For fcgid implementation, the following files should be created within the parent directory of targeted PHP app where index.php noramlly stays:
This .htaccess target the wiki webapp whereas first 3 lines may be omitted.
############################ File ".htaccess" (permission:755) ###########################################
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule (api|load)\.php - [L]
Options +Indexes +FollowSymLinks +ExecCGI
AddHandler php-fastcgi72 .php
Action php-fastcgi72 {php_webapp_directory}/php7.fcgi
# DISABLE CACHING
Header set Cache-Control "no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires 0
############################ End of File ".htaccess" ###########################################File "php7.fcgi" must be assigned an execute permission to Apache user/group.
############################ File "php7.fcgi" (permission:775)###########################################
#!/bin/bash export PHP_INI_SCAN_DIR="/home/user/local/lib/php.d" export PHP_FCGI_CHILDREN=4 export PHP_FCGI_MAX_REQUESTS=10000 exec /home/user/local/bin/php-cgi -c /home/user/local/lib############################ End of File "php7.fcgi" ###########################################
I was having trouble to enable opcache for PHP in FCGI mode. However, enabling opcache may not be a good idea for PHP script running in CGI mode (please read here: https://ma.ttias.be/how-to-clear-php-opcache/). Anyway, it's up to your own desire to try improving PHP's performance.
No comments:
Post a Comment