Näytä kirjoitukset

Tässä osiossa voit tarkastella kaikkia tämän jäsenen viestejä. Huomaa, että näet viestit vain niiltä alueilta, joihin sinulla on pääsy.


Aiheet - teele

Sivuja: [1] 2 3 ... 12
1
Yleistä keskustelua / Ratkeamaton mysql-asennusongelma?
« : 27.06.20 - klo:09.38 »

Olen yrittänyt asentaa mysql:ää pieneen pilvikoneeseen, mutta tähän mennessä se ei ole onnistunut. Asiasta on keskusteltu Ohjelmonti ja muu edistyneempi käyttö -välilehdellä ja sieltä on saanut hyviä neuvoja. Mutta jostain syystä asennus ei oloe vieläkään onnisutnut. Keskustelu aiheesta on mennyt jo toiselle eli jatkosivulle.

Kannattaisiko vielä yrittää ja tehdä uusi keskustelusäie mahdollisimman kuvaavalla otsikolla vai pitäisikö asia jättää ratkeamattomaksi. Ongelman lopullista vaikeusastetta on vaikea arvioida, koska  nyt on menossa vasta ensimmäinen tutustumisyritys mysql:ään.

Sillä tavalla tilanne on uusi, että koskaan aikaisemmin Ubuntun kanssa ei ole tullut eteen tilannetta, joka ei tämän keskustelusivuston avulla olisi selvinnyt  :)
 

2
Mysql -asennus epäonnistuu, tässä tulostuksia, joista voisi selvitä jotain sille, joka asioita ymmärtää

Koodia: [Valitse]
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Wed 2020-06-17 13:17:33 CEST; 21ms ago
  Process: 18383 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid (code=exited, status=1/FAILURE)
  Process: 18362 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)

Jun 17 13:17:33 ubuntu-2gb-hel1-1 systemd[1]: mysql.service: Failed with result 'exit-code'.
Jun 17 13:17:33 ubuntu-2gb-hel1-1 systemd[1]: Failed to start MySQL Community Server.
dpkg: error processing package mysql-server-5.7 (--configure):
 installed mysql-server-5.7 package post-installation script subprocess returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.7; however:
  Package mysql-server-5.7 is not configured yet.

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Processing triggers for systemd (237-3ubuntu10.41) ...
No apport report written because the error message indicates its a followup error from a previous failure.
        Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for ureadahead (0.100.0-21) ...
Errors were encountered while processing:
 mysql-server-5.7
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

Asennuspyyntö oli
Koodia: [Valitse]
sudo apt install mysql-server mysql-client

3
Kumpaa tapaa sammuttaa mysql pitäisi käyttää tai onko olemassa joku oikeampi tapa

Koodia: [Valitse]
sudo systemctl stop mysql.service

Koodia: [Valitse]
sudo /etc/init.d/mysql stop
Mysql rootin salasana on unohtunut ja nyt se pitäisi vaihtaa. Tätä varten mysql pitänee sammuttaa. Mutta mikä olisi paras tapa asettaa uusi rootin salasana tai tarvitaanko käyttäjää root ollenkaan, voisiko käyttjä olla yhtä hyvin muunkin niminen. Mysql on pilvikoneessa ja pilvikoneessa on Ubuntu 18.04.

Jos olen pilvikoneen päätteesä, siellä voinee testailla mysql:ää myös localhastina?

4
Halutaan pelata yhteistoimintapeliä netissä. Pleaajia voisi olla vaikka 100 tai joku kohtuullisen iso määrä. Kukin pelaaja voi yrittää valita esimerkiksi 10 tai jonkun muun sopivan määrän mahdollisia  yhteistoimntakumppaneita. Valinta onnistuu, jos myös valittavaksi haluttu pelaaja on valinnut valintaa tekevän pelaajan.

Tiedot valinnoista ovat 100 * 100 taulukossa vaikka niin, että jokainen pelaaja on omalla rivillään ja rivillä on 100 paikkaa valintoja varten. Jos pelaaja 41 valitsee pelaajan 67, taulukon kohtaan (41, 67) tulee rasti eli 1, muuten ruutu on 0.

Jos tämän tekee php:llä, jokaisen php-sivulla pelaavan käyttäjän pitää  ladata 100 * 100 taulukko, jotta voi tehdä valintoja eli ruksata haluamansa ruudun taulukosta ja nähdä jo tehtyjä valintoja eli onko hänen valitsemansa pelaaja valinnut myös hänet. Ikävä puoli tässä on se, että jokaista nettisuvua kohti pitää lukea tiedostosta 100 * 100 taulukko, joka on vielä jokaisden sivunkäyttäjän omassa php-tilassa php-arrayna. Tilaa menisi siis 100 * 100 * pelaajamäärä ja iso osa työstä olisi vaintaulukoiden lukemista.

Kuitenkin valintataulukkoja on oikeasti vain yksi, johon yksi käyttäjä tekee vain muutamia muutoksia.  Olisi kätevää, jos taulukko voisi olla vaikka koko ajan taustalla toimivassa c++ -ohjelmassa ja sivunkäyttäjän php voisi kysellä tarvitsemiaan tietoja siltä.

Olisiko tämäntapainen järjestely mahdollinen tai miten asiaa voisi ratkoa.




5

Mitä tapahtuu, jos 2 gigan muistilla toimivassa Ubuntussa Apachelle tulee vaikka sekunnin sisällä esimerkiksi 100 sivupyyntöä. Sivut voivat olla aika yksinkertaisia, ehkä joku pieni php-laskenta voi olla.

Meneekö Apache täydellisesti jumiin, vai hoitaako se pyyntöjä vain tulojärjestyksessä eli onko olemassa joku puskuri, jonne pyynnöt jäävät jonottamaan.

Seuraako tällaisesta ruuhkatilanteesta isoja ongelmia esimerkiksi uudelleenkäynnistyksessä.

6

Jos haluaisi muuttaa käyttäjän Liisa tiedostot käyttäjän Maija tiedostoiksi chown -komennolla niin, että kaikki tiesotot pysyvät samassa hakemistossa, miten se pitäisi tehdä, ehkä bash-komentojonon avulla?

* -valintahan taitaa koskea vain tiedostonimiä, ei tiedostojen omistaa. Eli yksi ratkaisumallia voisi ehkä olla sellainen, jossa tiedostoattribuuteille voisi laittaa ehtoja eli esimerkiksi niin, että omistaja on Maija ja uusi omistaja Liisa.

7
Jos on kirjoitellut php-sivuja pilvikoneelle pilvikoneen päätteen geditillä, onko mitään helppoa keinoa saada sivut kotikoneelle varmuuskopioiksi.

wget tai scp eivät taida php-tiedostoja hakea. Ehkä pilvikoneelle kirjoittelu ei olekaan hyvä tapa, vaan sivut pitäisi kirjoittaa kotikoneella ja sitten lähettää pilvikoneelle vaikka scp:llä. Tähän asti sivut on saanut käsityönä kopioi-liitä -keinolla tekstinmuokkaimen kautta, mutta se ei vaikuta ihan täydelliseltä ratkaisulta.

Miten "ammattipiireissä" asiat oikeastaan tehdään.

8
Pilvikonella on Apachen virtuaali-isännöima domaini ja haluttaisiin uudistaa tämän domainin le-sertifikaatti (eli letsencrytp-sertifikaatti). Toisen virtuaali-isännöidyn domainin tila pitäisi jättää muuttamattomaksi.

Mikä olisi siisti ja "virallinen" tapa uudistaa yhden halutun domainin le-varmenne. Koneessa on certbot-ohjelma, joten varmaan sen avulla uudistaminen pitäisi tehdä.

Asiasta on ohjeita täällä,

https://community.letsencrypt.org/t/renew-letsencrypt-certificate/34677/2

mutta kokemus on osoittanut, että jos joku voi mennä pielee, se menee pieleen.

Jos uudistamsen voisi tehdä ilman, että pitää manuaalisesti editoida sites-available -tietoja, se olisi hienoa.

Näyttää siltä, että olen jotenkin onnistunut saamaan samannimisiä varmenteita muutamia kappaleita, joissa osassa on samat ja osassa erilaiset domainlistat.

Koodia: [Valitse]
sudo certbot certificates
Jos joku varmenne vanhenee ja sama domaini on toisennimisen varmenteen domainlistassa, vanheneminen ei kai ole haitaksi?




9
Ubuntu 18.04 ja libre office 6.0.7.3, komentoa solujen nimeämiseksi ei tunnu löytyvän. Ennen oli mahdollisuus nimetä soluja Insert - names - create -keinolla. Nyt se ei näytä onnistuvan.

Nimetyt solut olisivat monessa yhteydessä käteviä, miten niitä voisi tehdä.

10
Ubuntu 20.04 kokeilussa usb-tikulta tuli ilmoitus "internal error detected ..."

Onko asia vakava, kaikki näytti kuitenkin toimivan. Kannattaako tällaista usbia käyttää asennukseen. Tikulla on Ubuntu Suomi -sivun ohjeiden mukaan haettu englanninkielinen iso-kuva.


11
Voisiko php:llä jotensakin luotettavasti varmistaa asiakaskoneen osoitteen. Jos esimerkiksi asiakas on vahingossa avannut 2 ikkunaa samalla koneella, niin palvelin haluaisi varmistaa, että ei pidä yhteyttä turhan takia kaksinkertaisena.

Netistä löytyi tällaisia tapoja asiakkaan osoitteen "varmistamiseksi", mutta mikä niistä on oikeasti varma ja mikä ei, on epäselvää. Ne eivät  näköjään edes ole aina palvelimen $_SERVER-taulukossa.

Koodia: [Valitse]

<?php

print( $HTTP_SERVER_VARS['HTTP_X_CLUSTER_CLIENT_IP'] . ' a' .  '</br>'); 
print( 
$_SERVER['REMOTE_ADDR'] . ' b' '</br>');
print( 
$_SERVER['HTTP_X_FORWARDED_FOR'] . ' c' '</br>');
print( 
$_SERVER['HTTP_VIA'] . ' d' '</br>');
print( 
$_SERVER['HTTP_CLIENT_IP'] . ' e ' '</br>');
print( 
$_SERVER['HTTP_CF_CONNECTING_IP'] . ' f' '</br>');
print( 
$_SERVER['HTTP_XREAL_IP'] . ' g' .  '</br>');
print( 
$_SERVER['HTTP_REFERER'] . ' h' .  '</br>');

?>


Jollain tavalla palvelimen kai pitää tietää, mitä se on lähettämässä minnekin, missä muuttujassa tämän tiedon pitäisi olla.

MUOK.

Tämä taitaa toimia

Koodia: [Valitse]
print( $_SERVER['REMOTE_ADDR']?:($_SERVER['HTTP_X_FORWARDED_FOR']?:
          $_SERVER['HTTP_CLIENT_IP'])  );





12
Hieaman aikaisemmin olevassa säikeessä on cpp-httblibin käyttö https muuttujan päivittämisessä, ja se toimii hienosti.

Jos suunnilleen samanlaista koodia voisi käyttää myös tavallisen http muuttujan päivittämiseen, asiat tulisivat aika yksinkertaiseksi. Netistä ei ole toistaiseksi löytynyt kuin yksi asiaa koskeva ohje eikä sekään näytä toimivan.

Tällaista on kokeiltu tavallisen http muttujan päivitykseen

Koodia: [Valitse]
#include <iostream>
#define CPPHTTPLIB_OPENSSL_SUPPORT
#include  "/home/oma/Documents/my_httplib/cpp-httplib-master/httplib.h"

int main(void)
{
/*
  const char *cert_dir = getenv(X509_get_default_cert_dir_env());

  if (!cert_dir) cert_dir = X509_get_default_cert_dir();

  std::string cert_path = cert_dir;
  cert_path += "/ca-certificates.crt";
  std::cout << "SSL certificate path: " << cert_path << std::endl;

  httplib::SSLClient cli("nule.dy.fi", 443);
  cli.set_ca_cert_path(cert_path.c_str());
  cli.enable_server_certificate_verification(true);
*/

  httplib::SSLClient cli("nule.dy.fi", 80);

  httplib::Params params;
  //params.emplace("x", "1234 ");
  //params.emplace("y", "3333");

  //auto res = cli.Post("/testihakemisto/sf02.php", params);
  auto res = cli.Post("/testihakemisto/sf02.php", "x=50511", "application/x-www-form-urlencoded");

  if(res)
  {
    std::cout << "Status: " << res->status << std::endl;
  }
  else
  {
    std::cout << "POST failed" << std::endl;
  }

}

Ohjelma kääntyy, mutta päättyy ilmoitukseen  POST failed, koska cli.Post ei onnistu.

cli.Post -kutsumuoto on täältä

https://stackoverflow.com/questions/52274981/post-request-with-cpp-httplib

Ohjelmasta on siis vain jätetty salausasiat pois ja vaihdettu portti 80 :ksi verrattuna hyvin toimivaan https-versioon.

Mitä korjauksia pitäisi tehdä?



13
Yritin laittaa le (ssl eli https) -salauksen omalle palvelindomainille, mutta se ei tainnut onnistua.
Kokeilin tehdä näin

Koodia: [Valitse]
certbot --apache certonly  -d   omadomaini.dy.fi
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Obtaining a new certificate

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/omadomaini.dy.fi/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/omadomaini.dy.fi/privkey.pem
   Your cert will expire on 2020-06-12. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - If you like Certbot, please consider supporting our work by:

Mutta sivu on vieläkin http -muotoinen eikä sitä löydy https -pyynnöllä. Tiedostolistauksen mukaan kummatkin avaimet ovat olemassa

Koodia: [Valitse]
ls /etc/letsencrypt/live/omadomaini.dy.fi/privkey.pem
/etc/letsencrypt/live/omadomaini.dy.fi/privkey.pem

ls /etc/letsencrypt/live/omadomaini.dy.fi/fullchain.pem
/etc/letsencrypt/live/omadomaini.dy.fi/fullchain.pem

Tiedosto   omadomaini-le-ssl.conf
 hakemistossa /etc/apache2/sites-available
on tällainen

Koodia: [Valitse]
<IfModule mod_ssl.c>
<VirtualHost *:443>     
ServerAdmin webmaster@localhost
        ServerName omadomaini.dy.fi
        DocumentRoot "/var/www/html/pehmolinkattu_omadomaini-tila/testailu"

           <Directory />
             Options FollowSymLinks
             AllowOverride None
            </Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

SSLCertificateFile /etc/letsencrypt/live/omadomaini.dy.fi/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/omadomaini.dy.fi/privkey.pem

Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>

# vim: syntax=</VirtualHost>
</IfModule>

Selain antaa virheilmoituksen

Secure Connection Failed

An error occurred during a connection to evvk.dy.fi. SSL received a record that exceeded the maximum permissible length.

Error code: SSL_ERROR_RX_RECORD_TOO_LONG

    The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.
    Please contact the website owners to inform them of this problem.


En millään keksi, mitä pitäisi muuttaa, poistaa tai lisätä, että saisin omadomaini.dy.fi -sivun näkymään https -muotoisena.


14
Aihepiiriltään sopivan näköinen ohjesivu vie kaiken suoritintehon, mikä näkyy myös gnu-system-monitorissa. Sivu on


https://embetronicx.com/tutorials/linux/device-drivers/ioctl-tutorial-in-linux/


Mikähän sivun tekijöillä on mahtanut olla ajatuksena, onko sivu oikeastaan tarkotettu tavallisille lukijoille. Konekin on tosin vanha, mutta kaikki muut asiat ovat vielä sujuneet ihan hyvin.

Olisiko jotain keinoa saada sivu luettavaksi vain tekstien osalta, mihin ei sen kummempaa suoritintehoa tarvittaisi. Ehkä  sivulta voisi poistaa javascriptin käytöstä. Voiko Firefoxissa sivun javascripotin laittaa pois päältä helposti.

15

Toisen keskustelusäikeen prusteella cpp-httplib vaikuttaa  tutustumisen arvoiselta vaihtoehdolta oman pilvessä olevan php-sivun muuttjien arvojen päivitämissä. Se on kokonaan h-tiedostossa, joka vain sisällytetään omaan ohjelmaan ja se on mit-luvallista julkista koodia.

Hankala puoli asiassa on, että tutoriaali- tai ohjeet -haulla ei netistä näytä löytyvän ohjetta, miten pitäisi menetellä, jos haluaa lähettää  uudet parametriarvot 443-portin kautta le-salatulle sivulle.

Tavalliselle http-sivulle muuttujien x ja y arvot voi laittaa c++:ssa vaikka tällaisen pyynnön avulla, joka vain lähetetään soketille.

Koodia: [Valitse]
std::string rq;
rq = rq + "POST /pilvihakemisto/pilvisivu.php HTTP/1.1\r\n" +
           "Host: pilviosoite\r\n" +
           "Content-Type: application/x-www-form-urlencoded\r\n" +
           "Content-Length: 12\r\n" +
           "Connection: close\r\n\r\n" +
           "x=1111&y=222222";

Sivulla

https://github.com/yhirose/cpp-httplib/blob/master/README.md

on esimerkki

Koodia: [Valitse]
res = cli.Post("/person", "name=john1&note=coder", "application/x-www-form-urlencoded");

mutta mistä löytää porttinumeron.

ssl-ohjeena sivulla on

Koodia: [Valitse]

#define CPPHTTPLIB_OPENSSL_SUPPORT

SSLServer svr("./cert.pem", "./key.pem");

SSLClient cli("localhost", 8080);
cli.set_ca_cert_path("./ca-bundle.crt");
cli.enable_server_certificate_verification(true);


Eli ainakin palvelin ja porttinumero pitänee laittaa sopiviksi, samoin varmaan pitää tietää palvelimella olevan le-salausavaimen tiedoston sijainti.

Tarkoitus olisi saada https-sivun parametreille uudet arvot, kun sivu on pilevessä ja muutokset halutaan omalta kotikoneelta c++ -ohjelmalla.

Vaikka httplib on avointa koodia, se on kuiteinkin 4820 rivin mittainen ohjelma eikä sen käytön selvittäminen lähdetekstiä lukemalla taida olla ihan pikku juttu, jos sei ole aikaisemmin tutustunut http-asiohin.

Ehkä jossain olisi kokonaisia ohjelmaesimerkkejä, mutta ainakaan vielä niitä ei ole löytynyt.



16
Firefox pakottaa https-sivulle vaikka halutaan http-sivu osoitekentästä.

Asetuksista on laitettu

browser.urlbar.autoFill

falseksi mutta siitä ei näytä olevan apua. Jos on kerran käynyt sivun https-osoitteessa, miten Firefoxilla pääsisi haluttaessa myös http-osoitteeseen. Selaimen uudelleenkäynnistys ei auttanut.

Evästeet on poistettu. Ongelma näyttää koskevan vain tavallista Firefox-selausta, yksityisikkunasta pääsee myös haluttaessa http-sivulle.

Selainversio on 73.0.1 (64-bit) ja Ubuntu on 18.04.


17

Olisiko vielä mahdollista pelastaa Apache, kun Let's encryptin poistoyritysten jälkeen virhetilanne  on

Koodia: [Valitse]
apachectl start
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
(13)Permission denied: AH00072: make_sock: could not bind to address [::]:80
(13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
AH00015: Unable to open logs
Action 'start' failed.

Mitä pitäisi server nameksi asettaa, jos se olisi ratkaisu asiaan. Palvelin on pilvessä virtuaalikoneessa eikä sillä taida olla nimeäkään, osoite on, ainakin toivottavasti vielä, jolleivät asist oel vieläkin pahemmin sotkussa.



18
Ubuntu 18..04 ilmoitti vikatilanteesta ggeditissä, vaikka gedit ei ollut käynnissä.

Vasemman laidan käynnistysvalikkoon tuli sinisen roiskeläiskän kuvake, josta vikailmoitus avautui.

Mistä on kyse?

19
Let's encryptin jälkeen 000-default.conf on hävinnyt /etc/apache2/sites-enabled -hakemistosta eikä sitä ole olemassa missään

Koodia: [Valitse]
find / 000-default.conf
 find: ‘000-default.conf’: No such file or directory

Palvelimella on virtuaali-isännöityjä sivuja muutama kappale, mutta oletuksena ollutta 000-default.confia ei ollut koskaan muutettu virtuaalisesti isännöidyksi vaa se oli muistini mukaan ihan perustilassa.

Let's encrypt myös ilmoitti muuttavansa ne muutamat virtuaali-isännöidyt sivut htpps-muotoon, mutta ei kertonut mitään 000-default.conf:in viittaamasta sivusta. Toiveena oli, että se olisi pysynyt entisellään.

jos muutenkin haluttaisiin poistaa htpps-vaatimus joiltain virtuaali-isännöidyiltä sivuilta, miten pitäisi toimia. toiveena olisi, että edelleen voisi lähettää tälle palvelimelle halutulle sivulle tietoja socketilla j aPOSTilla vanhaan salaamattomaan tapaan.


20
Jos sarjaportissa on kiinni laite, joka osaa sekä lukea että kirjoittaa, onko mahdollista ajaa kahdessa eri ikkunassa eri ohjelmia niin, että toinen ohjelma on avannut sarjaportin lukemista varten ja toinen kirjoittamista varten.

Onko tällainen ihan normaalia?  (  :)    )

Sivuja: [1] 2 3 ... 12