Giter Site home page Giter Site logo

compose-known's Issues

Making nginx.conf IPv6- and HSTS-ready

Hi,

I see two minor pitfalls with the current nginx.conf:

  1. "listen 80" does not allow to listen on IPv6
  2. nginx serves Known on all domains/addresses pointing to the container (i.e. there is only one server block, which doesn't have a server_name)
  3. server blocks (except the default server) should be in seperate files for maintainability

My proposals:

  1. "listen 80" should be replaced by "listen [::]:80"
  2. HSTS configuration should only affect the domain used by the Known setup and not all domains pointing (willingly or not) to port 80/443 on our container. I would argue that serving our content only on one address in general is preferable, if only for SEO.
    In addition to the current server block (which should have a server_name, maybe matching HOSTNAME?), there should be a second one without a server_name using "listen [::]:80 ipv6only=off default_server; listen [::]:443 ipv6only=off default_server" with the same TLS parameters but with HSTS disabled. It would still display HTTPS warning messages, but could not accidentally add HSTS headers to the wrong domain. This second block should either serve a static page or redirect to the "valid" URL (return 302 DOMAIN$request_uri).
    Please note that the change proposed in 1) does not include ipv6only=off as this parameter can only be used once per port, in the first server block running on this port. I believe it's better for readability to have ipv6only and default_server in the same server block, in the beginning of the file.
  3. nginx.conf should import server blocks located in a seperate folder, and all server blocks except the default landing/redirect should be relocated there

Any feedback on this? Sorry for not submitting patches/PRs, I don't really have a proper dev environment (or Internet access, for what it's worth) lately.

Images are being uploaded three times

After upgrading to the latest Known image, I can upload images again, with them even being displayed now, i.e. https://y.te.gs/

Unfortunately each image is uploaded multiple times and therefore published three times, which also happens to the profile picture.

How could I debug this?

/status/edit

Always throws stuff

Warning: array_key_exists() expects parameter 2 to be array, boolean given in /var/www/html/external/mf2/Mf2/Parser.php on line 971

Warning: array_key_exists() expects parameter 2 to be array, boolean given in /var/www/html/external/mf2/Mf2/Parser.php on line 974

Warning: array_key_exists() expects parameter 2 to be array, boolean given in /var/www/html/external/mf2/Mf2/Parser.php on line 984

Warning: array_key_exists() expects parameter 2 to be array, boolean given in /var/www/html/external/mf2/Mf2/Parser.php on line 987

Warning: array_key_exists() expects parameter 2 to be array, boolean given in /var/www/html/external/mf2/Mf2/Parser.php on line 990

Warning: array_key_exists() expects parameter 2 to be array, boolean given in /var/www/html/external/mf2/Mf2/Parser.php on line 971

Warning: array_key_exists() expects parameter 2 to be array, boolean given in /var/www/html/external/mf2/Mf2/Parser.php on line 974

Warning: array_key_exists() expects parameter 2 to be array, boolean given in /var/www/html/external/mf2/Mf2/Parser.php on line 984

Warning: array_key_exists() expects parameter 2 to be array, boolean given in /var/www/html/external/mf2/Mf2/Parser.php on line 987

Warning: array_key_exists() expects parameter 2 to be array, boolean given in /var/www/html/external/mf2/Mf2/Parser.php on line 990

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/external/mf2/Mf2/Parser.php:971) in /var/www/html/Idno/Common/Page.php on line 519

Are the two layers of nginx interfering? PHP misconfigured?

MySQL container doesn't migrate system table schemas

When upgrading the MySQL container with docker-compose pull, it seems no migration procedure is in place for upgrading the system tables. One will either want to have one, or circumvent this behaviour by using tagged releases.

Attaching to knownyalamerde_db_1
db_1 | 2017-02-20T12:30:11.760650Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
db_1 | 2017-02-20T12:30:11.761491Z 0 [Note] mysqld (mysqld 5.7.17) starting as process 1 ...
db_1 | 2017-02-20T12:30:11.763645Z 0 [Note] InnoDB: PUNCH HOLE support available
db_1 | 2017-02-20T12:30:11.763691Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
db_1 | 2017-02-20T12:30:11.763704Z 0 [Note] InnoDB: Uses event mutexes
db_1 | 2017-02-20T12:30:11.763705Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
db_1 | 2017-02-20T12:30:11.763707Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.3
db_1 | 2017-02-20T12:30:11.763709Z 0 [Note] InnoDB: Using Linux native AIO
db_1 | 2017-02-20T12:30:11.763893Z 0 [Note] InnoDB: Number of pools: 1
db_1 | 2017-02-20T12:30:11.764015Z 0 [Note] InnoDB: Using CPU crc32 instructions
db_1 | 2017-02-20T12:30:11.765070Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
db_1 | 2017-02-20T12:30:11.771110Z 0 [Note] InnoDB: Completed initialization of buffer pool
db_1 | 2017-02-20T12:30:11.772549Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
db_1 | 2017-02-20T12:30:11.783619Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
db_1 | 2017-02-20T12:30:11.899586Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
db_1 | 2017-02-20T12:30:11.899655Z 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
db_1 | 2017-02-20T12:30:12.062190Z 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
db_1 | 2017-02-20T12:30:12.063086Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
db_1 | 2017-02-20T12:30:12.063111Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
db_1 | 2017-02-20T12:30:12.063438Z 0 [Note] InnoDB: 5.7.17 started; log sequence number 218178081
db_1 | 2017-02-20T12:30:12.063762Z 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
db_1 | 2017-02-20T12:30:12.063834Z 0 [Note] Plugin 'FEDERATED' is disabled.
db_1 | 2017-02-20T12:30:12.065565Z 0 [Warning] System table 'plugin' is expected to be transactional.
db_1 | 2017-02-20T12:30:12.065822Z 0 [Note] InnoDB: Buffer pool(s) load completed at 170220 12:30:12
db_1 | 2017-02-20T12:30:12.065872Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
db_1 | 2017-02-20T12:30:12.065911Z 0 [Warning] Failed to set up SSL because of the following SSL library error: SSL context is not usable without certificate and private key
db_1 | 2017-02-20T12:30:12.066143Z 0 [Note] Server hostname (bind-address): '*'; port: 3306
db_1 | 2017-02-20T12:30:12.066165Z 0 [Note] IPv6 is available.
db_1 | 2017-02-20T12:30:12.066171Z 0 [Note]   - '::' resolves to '::';
db_1 | 2017-02-20T12:30:12.066181Z 0 [Note] Server socket created on IP: '::'.
db_1 | 2017-02-20T12:30:12.121822Z 0 [Warning] Failed to open optimizer cost constant tables
db_1 | 
db_1 | 2017-02-20T12:30:12.122539Z 0 [Warning] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode.
db_1 | 2017-02-20T12:30:12.122585Z 0 [Warning] 'proxies_priv' entry '@ root@511d678ebd7d' ignored in --skip-name-resolve mode.
db_1 | 2017-02-20T12:30:12.123000Z 0 [Warning] System table 'time_zone_leap_second' is expected to be transactional.
db_1 | 2017-02-20T12:30:12.123037Z 0 [Warning] System table 'time_zone_name' is expected to be transactional.
db_1 | 2017-02-20T12:30:12.123057Z 0 [Warning] System table 'time_zone' is expected to be transactional.
db_1 | 2017-02-20T12:30:12.123064Z 0 [Warning] System table 'time_zone_transition_type' is expected to be transactional.
db_1 | 2017-02-20T12:30:12.123071Z 0 [Warning] System table 'time_zone_transition' is expected to be transactional.
db_1 | 2017-02-20T12:30:12.123423Z 0 [Warning] System table 'servers' is expected to be transactional.
db_1 | 2017-02-20T12:30:12.123768Z 0 [ERROR] Incorrect definition of table performance_schema.events_waits_current: expected column 'NESTING_EVENT_TYPE' at position 15 to have type enum('TRANSACTION','STATEMENT','STAGE','WAIT', found type enum('STATEMENT','STAGE','WAIT').
db_1 | 2017-02-20T12:30:12.123880Z 0 [ERROR] Incorrect definition of table performance_schema.events_waits_history: expected column 'NESTING_EVENT_TYPE' at position 15 to have type enum('TRANSACTION','STATEMENT','STAGE','WAIT', found type enum('STATEMENT','STAGE','WAIT').
db_1 | 2017-02-20T12:30:12.123943Z 0 [ERROR] Incorrect definition of table performance_schema.events_waits_history_long: expected column 'NESTING_EVENT_TYPE' at position 15 to have type enum('TRANSACTION','STATEMENT','STAGE','WAIT', found type enum('STATEMENT','STAGE','WAIT
').
db_1 | 2017-02-20T12:30:12.124122Z 0 [ERROR] Incorrect definition of table performance_schema.events_waits_summary_by_user_by_event_name: expected column 'USER' at position 0 to have type char(32), found type char(16).
db_1 | 2017-02-20T12:30:12.124198Z 0 [ERROR] Incorrect definition of table performance_schema.events_waits_summary_by_account_by_event_name: expected column 'USER' at position 0 to have type char(32), found type char(16).
db_1 | 2017-02-20T12:30:12.124611Z 0 [ERROR] Column count of performance_schema.setup_actors is wrong. Expected 5, found 3. Created with MySQL 50627, now running 50717. Please use mysql_upgrade to fix this error.
db_1 | 2017-02-20T12:30:12.124780Z 0 [ERROR] Incorrect definition of table performance_schema.setup_objects: expected column 'OBJECT_TYPE' at position 0 to have type enum('EVENT','FUNCTION','PROCEDURE','TABLE','TRIGGER', found type enum('TABLE').
db_1 | 2017-02-20T12:30:12.125070Z 0 [ERROR] Column count of performance_schema.table_lock_waits_summary_by_table is wrong. Expected 68, found 73. Created with MySQL 50627, now running 50717. Please use mysql_upgrade to fix this error.
db_1 | 2017-02-20T12:30:12.125157Z 0 [ERROR] Column count of performance_schema.threads is wrong. Expected 17, found 14. Created with MySQL 50627, now running 50717. Please use mysql_upgrade to fix this error.
db_1 | 2017-02-20T12:30:12.125199Z 0 [ERROR] Column count of performance_schema.events_stages_current is wrong. Expected 12, found 10. Created with MySQL 50627, now running 50717. Please use mysql_upgrade to fix this error.
db_1 | 2017-02-20T12:30:12.125252Z 0 [ERROR] Column count of performance_schema.events_stages_history is wrong. Expected 12, found 10. Created with MySQL 50627, now running 50717. Please use mysql_upgrade to fix this error.
db_1 | 2017-02-20T12:30:12.125321Z 0 [ERROR] Column count of performance_schema.events_stages_history_long is wrong. Expected 12, found 10. Created with MySQL 50627, now running 50717. Please use mysql_upgrade to fix this error.
db_1 | 2017-02-20T12:30:12.125415Z 0 [ERROR] Incorrect definition of table performance_schema.events_stages_summary_by_account_by_event_name: expected column 'USER' at position 0 to have type char(32), found type char(16).
db_1 | 2017-02-20T12:30:12.125488Z 0 [ERROR] Incorrect definition of table performance_schema.events_stages_summary_by_user_by_event_name: expected column 'USER' at position 0 to have type char(32), found type char(16).
db_1 | 2017-02-20T12:30:12.125650Z 0 [ERROR] Column count of performance_schema.events_statements_current is wrong. Expected 41, found 40. Created with MySQL 50627, now running 50717. Please use mysql_upgrade to fix this error.
db_1 | 2017-02-20T12:30:12.125748Z 0 [ERROR] Column count of performance_schema.events_statements_history is wrong. Expected 41, found 40. Created with MySQL 50627, now running 50717. Please use mysql_upgrade to fix this error.
db_1 | 2017-02-20T12:30:12.125819Z 0 [ERROR] Column count of performance_schema.events_statements_history_long is wrong. Expected 41, found 40. Created with MySQL 50627, now running 50717. Please use mysql_upgrade to fix this error.
db_1 | 2017-02-20T12:30:12.125938Z 0 [ERROR] Incorrect definition of table performance_schema.events_statements_summary_by_account_by_event_name: expected column 'USER' at position 0 to have type char(32), found type char(16).
db_1 | 2017-02-20T12:30:12.126052Z 0 [ERROR] Incorrect definition of table performance_schema.events_statements_summary_by_user_by_event_name: expected column 'USER' at position 0 to have type char(32), found type char(16).
db_1 | 2017-02-20T12:30:12.126262Z 0 [ERROR] Native table 'performance_schema'.'events_statements_summary_by_program' has the wrong structure
db_1 | 2017-02-20T12:30:12.126304Z 0 [ERROR] Native table 'performance_schema'.'events_transactions_current' has the wrong structure
db_1 | 2017-02-20T12:30:12.126356Z 0 [ERROR] Native table 'performance_schema'.'events_transactions_history' has the wrong structure
db_1 | 2017-02-20T12:30:12.126376Z 0 [ERROR] Native table 'performance_schema'.'events_transactions_history_long' has the wrong structure
db_1 | 2017-02-20T12:30:12.126406Z 0 [ERROR] Native table 'performance_schema'.'events_transactions_summary_by_thread_by_event_name' has the wrong structure
db_1 | 2017-02-20T12:30:12.126426Z 0 [ERROR] Native table 'performance_schema'.'events_transactions_summary_by_account_by_event_name' has the wrong structure
db_1 | 2017-02-20T12:30:12.126446Z 0 [ERROR] Native table 'performance_schema'.'events_transactions_summary_by_user_by_event_name' has the wrong structure
db_1 | 2017-02-20T12:30:12.126489Z 0 [ERROR] Native table 'performance_schema'.'events_transactions_summary_by_host_by_event_name' has the wrong structure
db_1 | 2017-02-20T12:30:12.126512Z 0 [ERROR] Native table 'performance_schema'.'events_transactions_summary_global_by_event_name' has the wrong structure
db_1 | 2017-02-20T12:30:12.126585Z 0 [ERROR] Incorrect definition of table performance_schema.users: expected column 'USER' at position 0 to have type char(32), found type char(16).
db_1 | 2017-02-20T12:30:12.126642Z 0 [ERROR] Incorrect definition of table performance_schema.accounts: expected column 'USER' at position 0 to have type char(32), found type char(16).
db_1 | 2017-02-20T12:30:12.126897Z 0 [ERROR] Native table 'performance_schema'.'memory_summary_global_by_event_name' has the wrong structure
db_1 | 2017-02-20T12:30:12.126948Z 0 [ERROR] Native table 'performance_schema'.'memory_summary_by_account_by_event_name' has the wrong structure
db_1 | 2017-02-20T12:30:12.126972Z 0 [ERROR] Native table 'performance_schema'.'memory_summary_by_host_by_event_name' has the wrong structure
db_1 | 2017-02-20T12:30:12.126992Z 0 [ERROR] Native table 'performance_schema'.'memory_summary_by_thread_by_event_name' has the wrong structure
db_1 | 2017-02-20T12:30:12.127022Z 0 [ERROR] Native table 'performance_schema'.'memory_summary_by_user_by_event_name' has the wrong structure
db_1 | 2017-02-20T12:30:12.127044Z 0 [ERROR] Native table 'performance_schema'.'table_handles' has the wrong structure
db_1 | 2017-02-20T12:30:12.127062Z 0 [ERROR] Native table 'performance_schema'.'metadata_locks' has the wrong structure
db_1 | 2017-02-20T12:30:12.127091Z 0 [ERROR] Native table 'performance_schema'.'replication_connection_configuration' has the wrong structure
db_1 | 2017-02-20T12:30:12.127120Z 0 [ERROR] Native table 'performance_schema'.'replication_group_members' has the wrong structure
db_1 | 2017-02-20T12:30:12.127141Z 0 [ERROR] Native table 'performance_schema'.'replication_connection_status' has the wrong structure
db_1 | 2017-02-20T12:30:12.127176Z 0 [ERROR] Native table 'performance_schema'.'replication_applier_configuration' has the wrong structure
db_1 | 2017-02-20T12:30:12.127199Z 0 [ERROR] Native table 'performance_schema'.'replication_applier_status' has the wrong structure
db_1 | 2017-02-20T12:30:12.127219Z 0 [ERROR] Native table 'performance_schema'.'replication_applier_status_by_coordinator' has the wrong structure
db_1 | 2017-02-20T12:30:12.127247Z 0 [ERROR] Native table 'performance_schema'.'replication_applier_status_by_worker' has the wrong structure
db_1 | 2017-02-20T12:30:12.127268Z 0 [ERROR] Native table 'performance_schema'.'replication_group_member_stats' has the wrong structure
db_1 | 2017-02-20T12:30:12.127287Z 0 [ERROR] Native table 'performance_schema'.'prepared_statements_instances' has the wrong structure
db_1 | 2017-02-20T12:30:12.127318Z 0 [ERROR] Native table 'performance_schema'.'user_variables_by_thread' has the wrong structure
db_1 | 2017-02-20T12:30:12.127346Z 0 [ERROR] Native table 'performance_schema'.'status_by_account' has the wrong structure
db_1 | 2017-02-20T12:30:12.127369Z 0 [ERROR] Native table 'performance_schema'.'status_by_host' has the wrong structure
db_1 | 2017-02-20T12:30:12.127398Z 0 [ERROR] Native table 'performance_schema'.'status_by_thread' has the wrong structure
db_1 | 2017-02-20T12:30:12.127418Z 0 [ERROR] Native table 'performance_schema'.'status_by_user' has the wrong structure
db_1 | 2017-02-20T12:30:12.127437Z 0 [ERROR] Native table 'performance_schema'.'global_status' has the wrong structure
db_1 | 2017-02-20T12:30:12.127472Z 0 [ERROR] Native table 'performance_schema'.'session_status' has the wrong structure
db_1 | 2017-02-20T12:30:12.127493Z 0 [ERROR] Native table 'performance_schema'.'variables_by_thread' has the wrong structure
db_1 | 2017-02-20T12:30:12.127512Z 0 [ERROR] Native table 'performance_schema'.'global_variables' has the wrong structure
db_1 | 2017-02-20T12:30:12.127546Z 0 [ERROR] Native table 'performance_schema'.'session_variables' has the wrong structure
db_1 | 2017-02-20T12:30:12.127657Z 0 [ERROR] Incorrect definition of table mysql.db: expected column 'User' at position 2 to have type char(32), found type char(16).
db_1 | 2017-02-20T12:30:12.127689Z 0 [ERROR] mysql.user has no `Event_priv` column at position 28
db_1 | 2017-02-20T12:30:12.127817Z 0 [ERROR] Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler.
db_1 | 2017-02-20T12:30:12.127938Z 0 [Note] Executing 'SELECT * FROM INFORMATION_SCHEMA.TABLES;' to get a list of tables using the deprecated partition engine. You may use the startup option '--disable-partition-engine-check' to skip this check. 
db_1 | 2017-02-20T12:30:12.127953Z 0 [Note] Beginning of list of non-natively partitioned tables
db_1 | 2017-02-20T12:30:12.130987Z 0 [Note] End of list of non-natively partitioned tables
db_1 | 2017-02-20T12:30:12.131102Z 0 [Note] mysqld: ready for connections.
db_1 | Version: '5.7.17'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server (GPL)

The output suggest to use mysql_upgrade to fix this error.

Twitter, Soundcloud and Facebook plugins are gone.

After upgrading, the plugins page doesn't know the Twitter, Soundcloud and Facebook plugins anymore, and only the hosted Convoy service is being offered. Hence, all IndieWeb'bish independence is gone.

How can I restore their functionality?

Default domain with or without www

I think we need a default domain name for the known app when it is installed. Currently, the app will be available at the given domain and the same domain name with "www.". That causes some issues:

  • All content is available under two domain names, so each page has two URLs. Both will be crawled and used by search engines and other sites to link to the content, which is not what one generally wants, I think.
  • You can only use the Twitter connection with one of the domains when you post, as far as I understand. The app that you create on Twitter has one domain and one callback with this one domain.

I propose to have one single default domain or asks the user if he prefers to use the app with or without "www." before installation. The default for Wordpress is the domain without "www.", so we could set this as the standard. On the other hands there seem to be some concerns about "naked" domains (http://serverfault.com/questions/408017/why-does-heroku-warn-against-naked-domain-names), but I am not sure if that applies in our case.

Ship Let's Encrypt with Known

Let's encrypt is still n beta at the moment but it's already quite usable to provide free certificates.

How about shipping it with Known to have out of the box TLS support? It should remain optional though encouraged, as some people will use their own certificates or won't need any (in a local test environment).

One limitation: the amount of certs you can create (per user and per IP) is limited at the moment, so we should encourage people blindly/repeatedly testing the app or moving it across servers to reuse the same certificates (and not try to create new ones every time).

MySQL upgrade to 8 kills an easy restore procedure

Since this compose file is not using tagged releases, a redeployment pulls the newest MySQL 8.

Unfortunately this comes with a new password authentication mechanism, why we run into docker-library/mysql#284 now. Therefore we are waiting for PHP to catch up.

Until then we can learn from the solution presented in docker-library/mysql#284 (comment) and https://stackoverflow.com/questions/49948350/phpmyadmin-on-mysql-8-0 we can run the whole show with a custom entrypoint, such as:

image: mysql
entrypoint: ['/entrypoint.sh', '--character-set-server=utf8', '--collation-server=utf8_general_ci', '--default_authentication_plugin=mysql_native_password']

Image re-downloading

I can upload images to known

root@rancher:/srv/docker-state/known-yalamerde# ls data/*/*/*/*/*
data/1/9/a/b/19ab6c6098a717fd062b0bb519dcd9ec.data  data/6/1/6/5/61656405a5a23108e83ad33716b1eb72.file
data/1/9/a/b/19ab6c6098a717fd062b0bb519dcd9ec.file  data/7/3/4/e/734e5e8f6198f4a9338a40ead9917bdc.data
data/2/6/3/0/263025d51886a5f18db60f9b2051fc93.data  data/7/3/4/e/734e5e8f6198f4a9338a40ead9917bdc.file
data/2/6/3/0/263025d51886a5f18db60f9b2051fc93.file  data/9/d/6/e/9d6e9975ade8a179fb3333da9bcb5557.data
data/6/1/6/5/61656405a5a23108e83ad33716b1eb72.data  data/9/d/6/e/9d6e9975ade8a179fb3333da9bcb5557.file

but cannot download them again. docker-compose logs shows

known-yalamerde-web_1 | 172.17.0.5 - - [22/Oct/2015:20:29:30 +0000] "GET /file/61656405a5a23108e83ad33716b1eb72/thumb.j
pg HTTP/1.1" 404 200 "https://y.te.gs/profile/almereyda" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36"

while I'm serving known via docker-gen. See associated gist for docker-compose.yml and nginx.conf. (Could also move the other snippets there.)

Ideas where the lock could be?
Obviously these requests never reach the app container, yet some transformation in nginx.conf is wrong?

Twitter connection

Yeah, I am lucky, want to try out everything!

Warning: substr_count(): Empty substring in /var/www/html/IdnoPlugins/Twitter/Main.php on line 79

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/IdnoPlugins/Twitter/Main.php:79) in /var/www/html/Idno/Common/Page.php on line 519

What am I missing?

Backend cannot connect to app, if another is linked to frontend-web

If there is another app container linked to the frontend-web/lb_web network of libre.sh, this will take precedence over the app container defined here.

This happens due to the naming of the upstream in nginx.conf.

Renaming the inner container and adapting the configuration file helped.

But how to circumvent this generally?

Redirect to/from www.

As pointed out in #11, I'd rather have only one URL serving the content.

Many people who are new to the web tend to argue over whether to use www or not. I think both should be accessible, one redirecting to the other.

For example, http://www.cmal.info, http://cmal.info and https://www.cmal.info all redirect to https://cmal.info. This can be done in done in one server block:

server {
    server_name blah blouh blih;
    listen [::]:80;
    listen [::]:443 ssl;

    ssl_certificate...

    location / {
        return 301 https://DOMAIN$request_uri
    }
}

A permanent redirection seems appropriate to me in this case.

Whether to redirect to or from www. depends on the domain chosen by the user. The setup script should just check the domain used and create a new server block accordingly (see #11 3)).

Headers already sent

Okay, Facebook says the same now:

Warning: substr_count(): Empty substring in /var/www/html/IdnoPlugins/Facebook/Main.php on line 71

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/IdnoPlugins/Facebook/Main.php:71) in /var/www/html/Idno/Common/Page.php on line 519

It's annoying this non-volatile error is displayed all the time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.