===== PHP 7.4 macOS installation =====
==== install packages ====
brew install php@7.4 nginx postgresql@12
# pecl install zip libsodium
# remove duplicated extension added in /usr/local/etc/php/7.4/php.ini
brew link php@7.4
brew link postgresql@12
==== setup postgres ====
# init db
initdb -D /Users/dcai/.local/var/postgres12
# start db
postgres -D ~/.local/var/postgres12/
echo "ALTER USER postgres WITH PASSWORD 'postgres';" | psql -U postgres
==== update php fpm config ====
''/opt/homebrew/etc/php/7.4/php-fpm.d/www.conf''
[www]
user = _www
group = _www
listen = 127.0.0.1:9991
pm = ondemand
pm.max_children = 5
php_admin_flag[log_errors] = on
php_admin_flag[display_errors] = on
php_admin_value[memory_limit] = 1G
php_admin_value[upload_max_filesize] = 100M
php_admin_value[post_max_size] = 100M
php_admin_value[max_input_vars] = 5000
php_admin_value[max_file_uploads] = 20
php_admin_value[date.timezone] = Australia/Sydney
php_admin_value[error_log] = /tmp/phperror.log
==== update nginx config ====
''/opt/homebrew/etc/nginx/nginx.conf''
worker_processes 1;
error_log /tmp/nginx-error.log;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8080;
server_name localhost;
location / {
root /Users/dcai/moodles/www;
index index.php index.html index.htm;
}
location ~ [^/]\.php(/|$) {
root /Users/dcai/moodles/www;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9991;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
include servers/*;
}