forked from lolcat/4get
doc changes
This commit is contained in:
@@ -7,27 +7,35 @@ Then, install the following dependencies:
|
|||||||
```sh
|
```sh
|
||||||
apt update
|
apt update
|
||||||
apt upgrade
|
apt upgrade
|
||||||
apt install php-mbstring apache2 certbot php-imagick imagemagick php-curl curl php-apcu git libapache2-mod-php
|
apt install php-mbstring apache2 certbot php-imagick imagemagick php-curl curl php-apcu git libapache2-mod-fcgid php-fpm
|
||||||
```
|
```
|
||||||
|
|
||||||
Enable the required modules:
|
Enable the required modules:
|
||||||
```sh
|
```sh
|
||||||
|
a2dismod mpm_prefork
|
||||||
|
a2enmod mpm_event
|
||||||
a2enmod ssl
|
a2enmod ssl
|
||||||
a2enmod rewrite
|
a2enmod rewrite
|
||||||
|
a2enmod proxy_fcgi setenvif actions alias
|
||||||
|
a2enmod http2
|
||||||
|
a2enmod headers
|
||||||
|
a2enmod proxy
|
||||||
```
|
```
|
||||||
|
|
||||||
And enable these optional ones, which might be useful to you later on. The `proxy` module is useful for setting up reverse proxies to services like gitea, and `headers` is useful to tweak global header values:
|
Tune the performance of php-fpm. You will need to edit this file according to your server specs and number of users. Edit the file at `/etc/php/8.4/pool.d/www.conf`:
|
||||||
```sh
|
```sh
|
||||||
a2enmod proxy
|
pm = static
|
||||||
a2enmod headers
|
pm.max_children = 50
|
||||||
```
|
```
|
||||||
|
|
||||||
|
These values are what I currently use on 4get.ca, but for personal use, you can set `pm` to `ondemand` and `pm.max_children` to `20` (if you want those thumbnails to load fast!)
|
||||||
|
|
||||||
Now, restart apache2:
|
Now, restart apache2:
|
||||||
```sh
|
```sh
|
||||||
service apache2 restart
|
service apache2 restart
|
||||||
```
|
```
|
||||||
|
|
||||||
Just for good measure, please check if your webserver is running. Access it through HTTP, not HTTPS. You should see the apache2 default landing page.
|
Just for good measure, please check if your webserver is running. Access it through HTTP, not HTTPS. You should see the apache2 default landing page. Just a note, http2 won't work just yet since you don't have SSL yet.
|
||||||
|
|
||||||
## 000-default.conf
|
## 000-default.conf
|
||||||
Now, edit the following file: `/etc/apache2/sites-available/000-default.conf`, remove everything and carefully add each rule specified here, while making sure to replace my domains with your own:
|
Now, edit the following file: `/etc/apache2/sites-available/000-default.conf`, remove everything and carefully add each rule specified here, while making sure to replace my domains with your own:
|
||||||
@@ -74,12 +82,27 @@ Now, edit the following file: `/etc/apache2/sites-available/000-default.conf`, r
|
|||||||
|
|
||||||
DocumentRoot /var/www/4get
|
DocumentRoot /var/www/4get
|
||||||
|
|
||||||
|
<FilesMatch \.php$>
|
||||||
|
SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost/"
|
||||||
|
</FilesMatch>
|
||||||
|
|
||||||
Options -MultiViews
|
Options -MultiViews
|
||||||
RewriteEngine On
|
RewriteEngine On
|
||||||
RewriteCond %{REQUEST_FILENAME} !-d
|
RewriteCond %{REQUEST_FILENAME} !-d
|
||||||
RewriteCond %{REQUEST_FILENAME} !-f
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
RewriteRule ^([^\.]+)$ $1.php [NC,L]
|
RewriteRule ^([^\.]+)$ $1.php [NC,L]
|
||||||
|
|
||||||
|
<Directory /var/www/4get>
|
||||||
|
Options -MultiViews
|
||||||
|
AllowOverride All
|
||||||
|
Require all granted
|
||||||
|
|
||||||
|
RewriteEngine On
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-d
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteRule ^([^\.]+)$ $1.php [NC,L]
|
||||||
|
</Directory>
|
||||||
|
|
||||||
# deny access to private resources
|
# deny access to private resources
|
||||||
<Directory /var/www/4get/data/>
|
<Directory /var/www/4get/data/>
|
||||||
Order Deny,allow
|
Order Deny,allow
|
||||||
@@ -116,6 +139,7 @@ Make sure to replace `4get.ca` with your own domain under the `SSLCertificate*`
|
|||||||
ServerAdmin will@lolcat.ca
|
ServerAdmin will@lolcat.ca
|
||||||
DocumentRoot /var/www/4get
|
DocumentRoot /var/www/4get
|
||||||
|
|
||||||
|
Protocols h2 http/1.1
|
||||||
SSLEngine On
|
SSLEngine On
|
||||||
SSLOptions +StdEnvVars
|
SSLOptions +StdEnvVars
|
||||||
|
|
||||||
@@ -128,6 +152,10 @@ Make sure to replace `4get.ca` with your own domain under the `SSLCertificate*`
|
|||||||
AddOutputFilterByType DEFLATE text/plain
|
AddOutputFilterByType DEFLATE text/plain
|
||||||
AddOutputFilterByType DEFLATE text/css
|
AddOutputFilterByType DEFLATE text/css
|
||||||
|
|
||||||
|
<FilesMatch \.php$>
|
||||||
|
SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost/"
|
||||||
|
</FilesMatch>
|
||||||
|
|
||||||
SSLCertificateFile /etc/letsencrypt/live/4get.ca/fullchain.pem
|
SSLCertificateFile /etc/letsencrypt/live/4get.ca/fullchain.pem
|
||||||
SSLCertificateKeyFile /etc/letsencrypt/live/4get.ca/privkey.pem
|
SSLCertificateKeyFile /etc/letsencrypt/live/4get.ca/privkey.pem
|
||||||
SSLCertificateChainFile /etc/letsencrypt/live/4get.ca/chain.pem
|
SSLCertificateChainFile /etc/letsencrypt/live/4get.ca/chain.pem
|
||||||
|
@@ -30,38 +30,26 @@ sudo make firefox-install
|
|||||||
sudo ldconfig
|
sudo ldconfig
|
||||||
```
|
```
|
||||||
|
|
||||||
Now, after compiling, you should have a `libcurl-impersonate-ff.so` sitting somewhere. Mine is located at `/usr/local/lib/libcurl-impersonate-ff.so`. Do some patch fuckery:
|
Now, after compiling, you should have a `libcurl-impersonate-ff.so` sitting somewhere. Mine is located at `/usr/local/lib/libcurl-impersonate-ff.so`. Patch your PHP install so that it loads the right library:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
sudo su
|
sudo systemctl edit php8.4-fpm.service
|
||||||
LD_PRELOAD=/usr/local/lib/libcurl-impersonate-ff.so
|
|
||||||
CURL_IMPERSONATE=firefox117
|
|
||||||
patchelf --set-soname libcurl.so.4 /usr/local/lib/libcurl-impersonate-ff.so
|
|
||||||
ldconfig
|
|
||||||
```
|
```
|
||||||
|
|
||||||
From here, you will have a broken curl:
|
^This will open a text editor. Add the following shit in there, in between those 2 comments I pasted for ya just for reference:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
root@fuckedmachine:/# curl --version
|
### Editing /etc/systemd/system/php8.4-fpm.service.d/override.conf
|
||||||
curl: /usr/local/lib/libcurl.so.4: no version information available (required by curl)
|
### Anything between here and the comment below will become the contents of the>
|
||||||
curl: symbol lookup error: curl: undefined symbol: curl_global_trace, version CURL_OPENSSL_4
|
|
||||||
|
[Service]
|
||||||
|
Environment="LD_PRELOAD=/usr/local/lib/libcurl-impersonate-ff.so"
|
||||||
|
Environment="CURL_IMPERSONATE=firefox117"
|
||||||
|
|
||||||
|
### Edits below this comment will be discarded
|
||||||
```
|
```
|
||||||
|
|
||||||
Or not... During testing, I've seen that sometimes curl still works for some reason. What really matters is the output of this command:
|
Restart php8.4-fpm. (`sudo service php8.4-fpm restart`). To test things out, try making a search on "Yep", they check for SSL. If you get results (or a timeout, this piece of shit engine is slow as fuck) that means it works!
|
||||||
```
|
|
||||||
root@fuckedmachine:/# php -r 'print_r(curl_version());' | grep ssl_version
|
|
||||||
[ssl_version_number] => 0
|
|
||||||
[ssl_version] => NSS/3.92
|
|
||||||
```
|
|
||||||
|
|
||||||
It **MUST** say NSS, otherwise it didn't work. There's also the option of using the [forked project](https://github.com/lexiforest/curl-impersonate), but that garbage doesn't support NSS. I'm kind of against impersonating chrome cause you never know when Google is gonna add more fingerprinting bullshit.
|
|
||||||
|
|
||||||
Appendix: If you want a functioning `curl` command line utility again in case it doesn't work anymore, you can do the following hack:
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo apt remove curl
|
|
||||||
sudo ln -s /usr/local/bin/curl-impersonate-ff /usr/bin/curl
|
|
||||||
```
|
|
||||||
|
|
||||||
# Robots.txt
|
# Robots.txt
|
||||||
Make sure you configure this right to optimize your search engine presence! Head over to `/robots.txt` and change the 4get.ca domain to your own domain.
|
Make sure you configure this right to optimize your search engine presence! Head over to `/robots.txt` and change the 4get.ca domain to your own domain.
|
||||||
|
Reference in New Issue
Block a user