Skip to content

PyroCMS

PyroCMS is a PHP CMS built on Laravel.

PyroCMS Configuration

Edit /installer/config/config.php:

$config['index_page'] = "";
$config['uri_protocol'] = "REQUEST_URI";

Edit /system/cms/config/config.php:

$config['index_page'] = "";
$config['uri_protocol'] = "REQUEST_URI";

NGINX Configuration

server {
    listen 80;
    server_name domain.com;
    root /path/to/webroot;
    index index.php;

    access_log /path/to/logs/access.log main;
    error_log /path/to/logs/error.log;

    client_max_body_size 200M;

    gzip on;
    gzip_static on;
    gzip_http_version 1.0;
    gzip_disable "MSIE [1-6].";
    gzip_vary on;
    gzip_comp_level 9;
    gzip_proxied any;
    gzip_types text/plain text/css application/x-javascript text/xml 
               application/xml application/xml+rss text/javascript;

    fastcgi_buffers 8 16k;
    fastcgi_buffer_size 32k;
    fastcgi_read_timeout 180;

    location / {
        try_files $uri $uri/ /index.php;
    }

    location /installer {
        try_files $uri $uri/ /installer/index.php;
    }

    fastcgi_intercept_errors off;

    location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
        expires max;
        add_header Pragma public;
        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    }

    location ~ \.php {
        fastcgi_pass unix:/tmp/domain.sock;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # Common security rules
    location = /robots.txt  { access_log off; log_not_found off; }
    location = /favicon.ico { access_log off; log_not_found off; }
    location ~ /\.          { access_log off; log_not_found off; deny all; }
    location ~ ~$           { access_log off; log_not_found off; deny all; }
}

PHP-FPM Pool Configuration

Create a pool configuration (e.g., /etc/php-fpm.d/domain.conf):

[domain]
listen = /tmp/domain.sock
listen.allowed_clients = 127.0.0.1

user = someuser
group = someuser

pm = dynamic
pm.max_children = 25
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 25

php_admin_value[error_log] = /var/log/php-fpm/domain-error.log
php_admin_flag[log_errors] = on
php_admin_value[session.save_path] = /tmp/