From: Hypolite Petovan Date: Fri, 25 Nov 2022 13:05:10 +0000 (-0500) Subject: Merge pull request #12264 from annando/error X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=01558d6dda2fa18cdfd1860e53f60e0ccef62905;hp=fa5e7585a378a906814ecc433f0b647dc899ecdd;p=friendica.git Merge pull request #12264 from annando/error Fix "Argument #1 ($parts) must be of type array, bool given" --- diff --git a/mods/sample-nginx-certbot.config b/mods/sample-nginx-certbot.config new file mode 100644 index 0000000000..1e081404f8 --- /dev/null +++ b/mods/sample-nginx-certbot.config @@ -0,0 +1,128 @@ +## +# Friendica Nginx configuration template to be autoconfigured with certbot +# based on sample-nginx.config by Olaf Conradi +# +# On Debian based distributions you can add this file to +# /etc/nginx/sites-available +# +# Then customize it to your needs. At least replace the server_name in line 41. +# +# Enable the configuration by +# symlink it to /etc/nginx/sites-enabled +# +# and run +# certbot --nginx -d friendica.example.net +# +# Then reload Nginx using +# systemctl nginx reload +# +## + +## +# You should look at the following URL's in order to grasp a solid understanding +# of Nginx configuration files in order to fully unleash the power of Nginx. +# +# http://wiki.nginx.org/Pitfalls +# http://wiki.nginx.org/QuickStart +# http://wiki.nginx.org/Configuration +## + +## +# This configuration assumes your domain is example.net +# You have a separate subdomain friendica.example.net +# You want all Friendica traffic to be https using letsencrypt with cerbot +# You have an SSL certificate and key for your subdomain +# You have PHP FastCGI Process Manager (php7.4-fpm) running on localhost +# You have Friendica installed in /var/www/friendica +## + +server { + listen 80; + server_name friendica.example.net; + + # Point here to the path where your friendica files are located + root /var/www/friendica; + + # Logging + access_log /var/log/nginx/friendica_access.log; + # uncomment the following line if you would like to log errors in a separate file for friendica + #error_log /var/log/nginx/friendica_error.log; + + index index.php; + charset utf-8; + + # Uncomment the following line to include a standard configuration file Note + # that the most specific rule wins and your standard configuration will + # therefore *add* to this file, but not override it. + #include standard.conf + + # allow uploads up to 20MB in size + client_max_body_size 20m; + client_body_buffer_size 128k; + + # rewrite to front controller as default rule + location / { + try_files $uri /index.php?pagename=$uri&$args; + } + + # make sure webfinger and other well known services aren't blocked + # by denying dot files and rewrite request to the front controller + location ^~ /.well-known/ { + allow all; + rewrite ^ /index.php?pagename=$uri; + } + + include mime.types; + + # statically serve these file types when possible otherwise fall back to + # front controller allow browser to cache them added .htm for advanced source + # code editor library + #location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|woff|svg)$ { + # expires 30d; + # try_files $uri /index.php?pagename=$uri&$args; + #} + + # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 + # or a unix socket + location ~* \.php$ { + # Zero-day exploit defense. + # http://forum.nginx.org/read.php?2,88845,page=3 + # Won't work properly (404 error) if the file is not stored on this + # server, which is entirely possible with php-fpm/php-fcgi. + # Comment the 'try_files' line out if you set up php-fpm/php-fcgi on + # another machine. And then cross your fingers that you won't get hacked. + try_files $uri =404; + + # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini + fastcgi_split_path_info ^(.+\.php)(/.+)$; + + # With php5-cgi alone: + # fastcgi_pass 127.0.0.1:9000; + + # With php7.4-fpm: + fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; + + include fastcgi_params; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + + fastcgi_buffers 16 16k; + fastcgi_buffer_size 32k; + } + + # block these file types + location ~* \.(tpl|md|tgz|log|out)$ { + deny all; + } + + # deny access to all dot files + location ~ /\. { + deny all; + } + + # deny access to the CLI scripts + location ^~ /bin { + deny all; + } +} + diff --git a/mods/sample-nginx.config b/mods/sample-nginx.config index 63f73e01e4..5530bfaefd 100644 --- a/mods/sample-nginx.config +++ b/mods/sample-nginx.config @@ -35,7 +35,7 @@ server { index index.php; root /var/www/friendica; - rewrite ^ https://friendica.example.net$request_uri? permanent; + rewrite ^ https://$server_name$request_uri? permanent; } ## @@ -120,7 +120,7 @@ server { # fastcgi_pass 127.0.0.1:9000; # With php7.0-fpm: - fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; + fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; include fastcgi_params; fastcgi_index index.php; diff --git a/src/Database/DBA.php b/src/Database/DBA.php index 677bf1a27f..3b81465057 100644 --- a/src/Database/DBA.php +++ b/src/Database/DBA.php @@ -218,7 +218,7 @@ class DBA /** * Check if data exists * - * @param string $table Table name in format schema.table (while scheme is optiona) + * @param string $table Table name in format schema.table (where schema is optional) * @param array $condition Array of fields for condition * @return boolean Are there rows for that condition? * @throws \Exception @@ -289,7 +289,7 @@ class DBA /** * Insert a row into a table * - * @param string $table Table name in format schema.table (while scheme is optiona) + * @param string $table Table name in format schema.table (where schema is optional) * @param array $param parameter array * @param int $duplicate_mode What to do on a duplicated entry * @return boolean was the insert successful? @@ -304,7 +304,7 @@ class DBA * Inserts a row with the provided data in the provided table. * If the data corresponds to an existing row through a UNIQUE or PRIMARY index constraints, it updates the row instead. * - * @param string $table Table name in format schema.table (while scheme is optiona) + * @param string $table Table name in format schema.table (where schema is optional) * @param array $param parameter array * @return boolean was the insert successful? * @throws \Exception @@ -329,7 +329,7 @@ class DBA * * This function can be extended in the future to accept a table array as well. * - * @param string $table Table name in format schema.table (while scheme is optiona) + * @param string $table Table name in format schema.table (where schema is optional) * @return boolean was the lock successful? * @throws \Exception */ @@ -414,7 +414,7 @@ class DBA * Only set $old_fields to a boolean value when you are sure that you will update a single row. * When you set $old_fields to "true" then $fields must contain all relevant fields! * - * @param string $table Table name in format schema.table (while scheme is optiona) + * @param string $table Table name in format schema.table (where schema is optional) * @param array $fields contains the fields that are updated * @param array $condition condition array with the key values * @param array|boolean $old_fields array with the old field values that are about to be replaced (true = update on duplicate, false = don't update identical fields) @@ -431,7 +431,7 @@ class DBA /** * Retrieve a single record from a table and returns it in an associative array * - * @param string|array $table Table name in format schema.table (while scheme is optiona) + * @param string|array $table Table name in format schema.table (where schema is optional) * @param array $fields * @param array $condition * @param array $params @@ -447,7 +447,7 @@ class DBA /** * Select rows from a table and fills an array with the data * - * @param string $table Table name in format schema.table (while scheme is optiona) + * @param string $table Table name in format schema.table (where schema is optional) * @param array $fields Array of selected fields, empty for all * @param array $condition Array of fields for condition * @param array $params Array of several parameters @@ -464,7 +464,7 @@ class DBA /** * Select rows from a table * - * @param string $table Table name in format schema.table (while scheme is optiona) + * @param string $table Table name in format schema.table (where schema is optional) * @param array $fields Array of selected fields, empty for all * @param array $condition Array of fields for condition * @param array $params Array of several parameters @@ -492,7 +492,7 @@ class DBA /** * Counts the rows from a table satisfying the provided condition * - * @param string $table Table name in format schema.table (while scheme is optiona) + * @param string $table Table name in format schema.table (where schema is optional) * @param array $condition array of fields for condition * @param array $params Array of several parameters * diff --git a/src/Module/Search/Index.php b/src/Module/Search/Index.php index f4e1db6148..ec96b559a7 100644 --- a/src/Module/Search/Index.php +++ b/src/Module/Search/Index.php @@ -120,27 +120,27 @@ class Index extends BaseSearch if (strpos($search, '#') === 0) { $tag = true; $search = substr($search, 1); - } - - self::tryRedirectToProfile($search); - - if (strpos($search, '@') === 0 || strpos($search, '!') === 0) { - return self::performContactSearch($search); - } + } else { + if (strpos($search, '@') === 0 || strpos($search, '!') === 0) { + return self::performContactSearch($search); + } - self::tryRedirectToPost($search); - - if (!empty($_GET['search-option'])) { - switch ($_GET['search-option']) { - case 'fulltext': - break; - case 'tags': - $tag = true; - break; - case 'contacts': - return self::performContactSearch($search, '@'); - case 'forums': - return self::performContactSearch($search, '!'); + self::tryRedirectToPost($search); + + self::tryRedirectToProfile($search); + + if (!empty($_GET['search-option'])) { + switch ($_GET['search-option']) { + case 'fulltext': + break; + case 'tags': + $tag = true; + break; + case 'contacts': + return self::performContactSearch($search, '@'); + case 'forums': + return self::performContactSearch($search, '!'); + } } }