Skip to content

Instantly share code, notes, and snippets.

@alexandr-parkhomenko
Last active August 30, 2023 11:32
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save alexandr-parkhomenko/8fc189cebbb7da43f52bafaaa114c41b to your computer and use it in GitHub Desktop.
Save alexandr-parkhomenko/8fc189cebbb7da43f52bafaaa114c41b to your computer and use it in GitHub Desktop.
# Extension package to add on Ubuntu 14.04
sudo apt-get install libxml2-dev libbz2-dev libmcrypt-dev libreadline-dev libxslt1-dev autoconf -y
# Extension package to add on Ubuntu 18.04
sudo apt-get install libssl-dev
# Extension package to add on Ubuntu 20.04
sudo apt install -y pkg-config libssl-dev libsqlite3-dev libbz2-dev libxml2-dev libcurl4-openssl-dev libonig-dev libpq-dev libreadline-dev libxslt1-dev libzip-dev libsodium-dev libwebp-dev
# +apxs2
sudo apt-get install apache2-dev -y
# +gd (14.04)
sudo apt-get install -y libfreetype6 libfreetype6-dev libpng12-0 libpng12-dev libjpeg-dev libjpeg8-dev libjpeg8 libgd-dev libgd3 libwebp-dev
# +gd (18.04)
sudo apt-get install -y libfreetype6 libfreetype6-dev libpng-dev libjpeg-dev libjpeg8-dev libjpeg8 libgd-dev libgd3 libwebp-dev
# +gd (20.04)
sudo apt install -y libpng-dev libjpeg-dev
# +opcache (14.04) and (18.04)
sudo apt-get install libcurl3-openssl-dev -y
# +intl (14.04) and (18.04)
sudo apt-get install re2c libicu-dev -y
# LDAP (14.04)
sudo ln -fs /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/
# Reset permission (14.04) and (20.04)
sudo chmod oga+rw -R /etc/apache2 /usr/sbin/a2enmod /var/lib/apache2/module/
# Reset permission (18.04)
sudo chmod oga+rw -R /etc/apache2 /usr/sbin/a2enmod /usr/lib/apache2/modules/
#install new php version
# we use version 7.0.8 only as example, it can be any supported version
phpbrew install 7.0.8 +default +apxs2 +intl +dbs +fpm
phpbrew use php-7.0.8
# For Ubuntu (14.04) and (18.04)
phpbrew ext install gd -- --with-jpeg-dir=/usr/lib --with-freetype-dir=/usr/lib --with-webp-dir=/usr/lib --with-xpm-dir=/usr/lib
# For Ubuntu (20.04)
phpbrew ext install gd -- --with-jpeg --with-webp
phpbrew ext install opcache
phpbrew ext install xdebug
phpbrew ext install soap
phpbrew ext install iconv
phpbrew ext install ldap
phpbrew ext install mongodb
# Libsodium for PHP8
phpbrew ext install libsodium
cp /home/alex/.phpbrew/php/php-8.0.9/lib/php/extensions/no-debug-non-zts-20200930/sodium.so /home/alex/.phpbrew/php/php-8.0.9/lib/php/extensions/no-debug-non-zts-20200930/libsodium.so
# Restore permissions (14.04) and (20.04)
sudo find /etc/apache2 /var/lib/apache2/module -type f -exec chmod 644 {} \;
sudo find /etc/apache2 /var/lib/apache2/module /usr/sbin/a2enmod -type d -exec chmod 755 {} \;
# Restore permissions (18.04)
sudo find /etc/apache2 /usr/lib/apache2/modules -type f -exec chmod 644 {} \;
sudo find /etc/apache2 /usr/lib/apache2/modules /usr/sbin/a2enmod -type d -exec chmod 755 {} \;
# Prepare apache module (14.04) and (18.04)
sudo rm /etc/apache2/mods-enabled/php7.load
sudo cp /etc/apache2/mods-available/php5.conf /etc/apache2/mods-available/php7.conf
#Activate php7 apache module
sudo a2enmod php7
# NGINX virtual host sample
server {
listen 80;
server_name security.oro-v2-0.loc;
root /home/alex/public_html/oro/security/2.0/application/crm/web;
error_log /var/log/nginx/orocrm_error.log;
access_log /var/log/nginx/orocrm_access.log;
location / {
try_files $uri /app.php$is_args$args;
}
location ~ ^/(app|app_dev|config|install)\.php(/|$) {
fastcgi_pass unix:/home/alex/.phpbrew/php/php-7.1.4/var/run/php-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}
}
@alex700
Copy link

alex700 commented Apr 20, 2017

Known Issues with Nginx Installation
connect() to unix:/home/user/.phpbrew/php/php-7.1.4/sbin/php-fpm failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: host.com, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/home/user/.phpbrew/php/php-7.1.4/sbin/php-fpm:", host: "host.com"

How to solve the issue:

  1. Open /home/user/.phpbrew/php/php-7.1.4/etc/php-fpm.d/www.conf
  2. Replace
user = nobody
group = nobody

with

user = www-data
group = www-data
  1. Uncomment follow strings and specify user and group:
listen.owner = www-data
listen.group = www-data
listen.mode = 0660

Run php-fpm
sudo ~/.phpbrew/php/php-7.1.4/sbin/php-fpm -R

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment