Mijn cnf waar freebsd zich bevindt. PHPmyadmin installeren op een virtuele host. Apache-configuratie voor het gebruik van PHP-modules

We zullen een webserver installeren, met name MySQL. Nginx- en PHP-installatie in een ander artikel. Hier zullen we kijken naar de installatiefuncties en configuratie-instellingen voor beter werk op SSD, verschillende optimalisaties.
Theoretisch gezien zal het opnemen voor mijn taak niet zo vaak voorkomen, maar toch moet het aantal logs en schijfschrijfbewerkingen worden verminderd.
Laten we beginnen met de installatie.
Voeg toe aan het bestand /etc/make.conf volgende regels:
# MySQL DEFAULT_MYSQL_VER=56 .if $(.CURDIR) == /usr/ports/databases/mysql56-server WITH_CHARSET=utf8 WITH_XCHARSET=all WITH_COLLATION=utf8_general_ci BUILD_OPTIMIZED=yes .endif .if $(.CURDIR) == /usr/ ports/databases/mysql56-client WITH_CHARSET=utf8 WITH_COLLATION=utf8_general_ci BUILD_OPTIMIZED=yes .endif Wijzig de codering en serverversie naar de vereiste versie. Voor mij is het utf8 en mysql versie 5.6

We updaten de ports tree () en gaan
cd /usr/ports/databases/mysql56-server
Installeer vervolgens met de parameters die we nodig hebben: make install clean

Wacht tot de installatie is voltooid en ga verder met de instellingen
Maak een configuratiebestand /var/db/mysql/my.cnf en configureer het.
In versie 5.6 wordt standaard de innoDB-engine gebruikt en de configuratie zal zijn om alleen innoDB te gebruiken. Gedetailleerde documentatie in het Engels is beschikbaar op de officiële website dev.mysql.com/doc/
# Poort waarmee de mysql-client verbinding maakt. Poort = 3306 # Socketadres voor de mysql-client. socket = /tmp/mysql.sock # Poort die luistert mysql-server. poort = 3306 # Pad naar de socket. socket = /tmp/mysql.sock # IP-adres waar de server naar luistert, localhost werkt in ieder geval. Ik heb de database nodig om beschikbaar te zijn in lokaal netwerk. bindadres = 192.168.0.1 # Maximaal aantal parallelle verbindingen naar de server. max_connections = 200 # Hoeveel gegevens kunnen in één verzoek worden overgedragen. Vergroot als er een fout optreedt: "Pakket te groot". max_allowed_packet = 4M # Definieert geen naamdomeinen. skip-name-resolve # Standaard ingesteld, gebruik geen externe vergrendelingen. Wanneer meerdere servers met dezelfde bestanden werken. skip-external-locking # Gebruik geen netwerk (TCP/IP), alleen socket. Ik heb een netwerk nodig, omdat het handig is om vanuit de database vanaf een andere computer te werken. Maar de verbinding gaat binnen mijn lokale netwerk, dus niemand anders zal verbinding maken met 192.168.0.1. In de meeste gevallen zal een stopcontact voldoende zijn. #skip-networking # Als het verzoek langer duurde dan de opgegeven tijd in seconden, wordt het als een gemarkeerd verzoek naar het logboek geschreven. Ik stel het in op één seconde, omdat er in mijn scripts niets is dat langer kan duren om uit te voeren. slow_query_log = 1 # Pad naar het langzame querylogbestand. Maak een bestand met mysql-gebruikersrechten. slow_query_log_file = /var/log/mysql_slow_queries # Standaardgedrag van het tijdstempelveld expliciet_defaults_for_timestamp # Grootte van de buffer die is toegewezen voor indexen. Zou ongeveer 30% moeten zijn RAM als u MijnISAM gebruikt. Ik gebruik innoDB, maar MyISAM wordt voor interne doeleinden gebruikt. key_buffer_size = 64M # Buffergrootte voor het sorteren van MyISAM-indexen myisam_sort_buffer_size = 128M # innoDB-parameters # Geheugengrootte voor indexen en gegevens. Het wordt geadviseerd om het in te stellen op 80-90% RAM. Ik heb het op 50% ingesteld, omdat er naast mysql nog andere programma's op de server zullen staan. innodb_buffer_pool_size = 4G # Er zijn drie waarden beschikbaar om uit te kiezen: 0, 1, 2. Waarde 0 - spoel het logboek één keer per seconde naar schijf, ongeacht transacties. Waarde 1 - reset de log bij elke transactie. Waarde 2: het logboek wordt geschreven, maar niet naar schijf gewist. De meest betrouwbare is 1, maar ik zal er 2 gebruiken sinds SSD. In geval van een val besturingssysteem Alleen de laatste 1-3 seconden aan gegevens gaan verloren. innodb_flush_log_at_trx_commit = 2 # Logbuffergrootte. De standaardwaarde is één megabyte, meer dan acht megabytes is niet nodig. innodb_log_buffer_size = 8M # Maximale grootteéén logbestand. Wanneer deze grootte wordt bereikt, wordt er een nieuw logbestand aangemaakt. Stel de waarde in van 32 tot 512 Megabytes. innodb_log_file_size = 128M

Voeg een MySQL-server toe aan de download. Om dit te doen, voegt u een regel toe aan het bestand /etc/rc.conf
mysql_enable="JA"
MySQL-server start:
/usr/local/etc/rc.d/mysql-server start
We kijken naar de inhoud van het mysql-logboek (/var/db/mysql/localhost.err) op opstartfouten en waarschuwingen. Als er fouten of waarschuwingen zijn die gecorrigeerd moeten worden, zal de mysql-server in het logboek gedetailleerd beschrijven wat het probleem is.

Laten we nu de mogelijkheid toevoegen om verbinding te maken met de server als rootgebruiker vanaf het IP-adres 192.168.0.2. Omdat ik gewend ben om niet via phpmyadmin te werken, maar met programma's van derden. Onder Windows is het bijvoorbeeld erg handig om navicat lite te gebruiken.
Standaard root-gebruiker geen wachtwoord, gebruik console-client mysql en maak een rootgebruiker met ip 192.168.0.2 met alle rechten:
mysql> GEBRUIKER AANMAKEN "root"@"192.168.0.2"; Query OK, 0 betrokken rijen (0,00 sec) mysql> VERLEEN ALLE PRIVILEGES OP *.* AAN "root"@"192.168.0.2" MET GRANT OPTIE; Query OK, 0 rijen beïnvloed (0,00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rijen beïnvloed (0,00 sec)
Nu kunt u verbinding maken met de server vanaf het IP-adres 192.168.0.2, laten we proberen verbinding te maken

Zoals je kunt zien, werkt alles dan opzetten privileges, databases. Dit wijkt al af van het onderwerp van dit onderwerp.
Het artikel zal worden bijgewerkt, omdat ik de my.cnf-configuratie zelf nog niet heb ontdekt. Als u vragen of suggesties heeft, sta ik u graag te woord.

Installatie MySQL-DBMS In dit artikel zullen we produceren uit de verzameling FreeBSD-poorten. Er wordt aangenomen dat de server dat heeft gedaan nieuwste versie verzamelingen havens. Als dit niet het geval is, moet u applicatiepoorten installeren of bijwerken met behulp van het hulpprogramma portsnap.

# portsnap fetch extract - installeer poorten als ze niet aanwezig zijn in het systeem # portsnap fetch update - update poorten als ze aanwezig zijn in het systeem

# vi /etc/make.conf ########## MySQL 5.5 ########## .if $(.CURDIR) == "/usr/ports/databases/mysql55-server " WITH_CHARSET=utf8 # Standaardcodering WITH_COLLATION=utf8_general_ci # Standaardvergelijking WITH_XCHARSET=all # Aanvullende coderingen WITH_OPENSSL=yes # Inschakelen beveiligde verbindingen via OpenSSL WITH_LINUXTHREADS=nee # Werk tegelijkertijd in meerdere threads # met behulp van de Linux pthread-bibliotheek WITH_PROC_SCOPE_PTH=yes # Werk tegelijkertijd in meerdere threads om # de prestaties te # verbeteren BUILD_OPTIMIZED=ja # Het toevoegen van optimalisatievlaggen # geeft een kleine prestatieverbetering BUILD_STATIC=ja # Bouw een statische versie van mysqld, geeft # een kleine prestatieverbetering en # onafhankelijkheid van externe bibliotheken WITH_NDB=no # Ondersteuning voor NDB-opslagengine (voor clusters) .endif

#1. MySQL 5.5 installeren en de gegevensmap initialiseren

We gaan naar de mysql55-serverpoort en gaan verder met de installatie. Na installatie opnieuw lezen PATH-mappen met behulp van rehash.

# cd /usr/ports/databases/mysql55-server/ # make install clean # rehash

# cd /usr/local # mysql_install_db --user=mysql --datadir=/var/db/mysql MySQL-systeemtabellen installeren... OK Help-tabellen vullen... OK

#2. Eerste MySQL-installatie

Geweldig, de systeem- en hulptabellen zijn gemaakt. Vervolgens moet u een configuratie maken mysql-bestand. Mysql-configuratiesjablonen zijn te vinden in /usr/local/share/mysql/:

# ls /usr/local/share/mysql/my-* /usr/local/share/mysql/my-huge.cnf # 2GB geheugen /usr/local/share/mysql/my-innodb-heavy-4G.cnf # 4GB geheugen /usr/local/share/mysql/my-large.cnf # 512MB geheugen /usr/local/share/mysql/my-medium.cnf # 64MB geheugen /usr/local/share/mysql/my-small.cnf #

De totale hoeveelheid RAM die voor MySQL wordt gebruikt, wordt berekend met behulp van de formule (hoofdparameters):

Innodb_buffer_pool_size + key_buffer_size + max_connections*(sort_buffer_size+read_buffer_size+binlog_cache_size) + max_connections*2MB

Deze formule mist een aantal andere parameters die geheugen gebruiken; in de context van dit artikel zullen we deze formule gebruiken. Als u een nauwkeurigere maximale hoeveelheid geheugen wilt berekenen die mysql kan gebruiken, kunt u de volgende formule gebruiken (hieronder). Zoals de praktijk laat zien, is de resulterende geheugenwaarde van de volgende meer complexe formule Je moet het niet nemen “zoals het zal zijn”; de waarde blijkt meestal lager te zijn.

Geheugen per verbinding = read_buffer_size + read_rnd_buffer_size + sort_buffer_size + + thread_stack + join_buffer_size; 1. Geheugen voor alle verbindingen = per_thread_buffers * max_connections; 2. Geheugen gebruikt door het DBMS = key_buffer_size + max_tmp_table_size + innodb_buffer_pool_size + + innodb_additional_mem_pool_size + innodb_log_buffer_size + + query_cache_size; Totaal gebruikt geheugen = (geheugen gebruikt door het DBMS) + (geheugen voor alle verbindingen);

De standserver waar wij MySQL installeren beschikt over 16GB RAM. Er zal gebruik worden gemaakt van MyISAM- en InnoDB-tabellen. Laten we het voorbeeldconfiguratiebestand my-innodb-heavy-4G.cnf kopiëren als /var/db/mysql/my.cnf.

# cp /usr/local/share/mysql/my-innodb-heavy-4G.cnf /var/db/mysql/my.cnf

Vervolgens brengen we het naar de volgende vorm.

# vi /var/db/mysql/my.cnf port = 3306 # Poort waarop mysqld luistert socket = /tmp/mysql.sock # Unix socket voor mysqld back_log = 128 # Wachtrijgrootte voor tcp/ip-verbindingsverzoeken # skip-networking # Reactie verwijderen deze richtlijn, als u niet van plan bent # verbindingen van buitenaf toe te staan ​​(alleen localhost) max_connections = 1000 # Maximaal aantal verbindingen (sessies) max_connect_errors = 1000 # Maximaal aantal fouten van elke host. Wanneer # de limiet is bereikt, wordt de host geblokkeerd. table_open_cache = 2048 # Maximaal aantal open tafels max_allowed_packet = 16M # Maximale pakketgrootte in een verzoek binlog_cache_size = 1M # Maximale binaire logcachegrootte voor een enkele # transactie read_buffer_size = 2M # Leesbuffergrootte voor een volledige tabelscan read_rnd_buffer_size = 16M # Sorteren buffergrootte voor queries ORDER BY sort_buffer_size = 8M # Sorteerbuffergrootte voor GROUP BY queries, ORDER BY join_buffer_size = 8M # Buffergrootte voor JOIN queries (zonder indexen) thread_cache_size = 24 # Aantal threads die niet worden gedood, maar in # cache blijven voor hergebruik thread_concurrency = 8 # Maximaal aantal mysqld-threads. Het wordt aanbevolen # in te stellen als *(2..4) query_cache_type=1 # Querycaching inschakelen query_cache_size = 64M # Cachegrootte van queryresultaten SELECT query_cache_limit = 2M # Maximale steekproefgrootte SELECT voor caching default-storage-engine = MYISAM # Specificeer de type tabellen standaard als type niet is opgegeven # in CREATE TABLE-query's tmp_table_size = 64M # Maximale geheugengrootte voor tijdelijke tabellen # gemaakt. Als er meer zijn, wordt de tabel naar schijf geschreven #log-bin=mysql-bin # Verwijder commentaar als u van plan bent #binlog_format=mixed # replicatie voor MySQL te gebruiken. key_buffer_size = 1G # De grootte van het geheugen dat is toegewezen voor het cachen van indexen van # MyISAM-tabellen. Belangrijke parameter optimalisaties #skip-innodb # Verwijder het commentaar bij de optie om InnoDB uit te schakelen innodb_additional_mem_pool_size = 16M # Geheugen toegewezen voor interne InnoDB heeft innodb_buffer_pool_size nodig = 2G # De hoeveelheid geheugen toegewezen voor InnoDB. Hoe meer hoe # beter. Vermindert het aantal schijfbewerkingen innodb_data_file_path = ibdata1:100M:autoextend # Gegevensopslaggrootte van tabellen # InnoDB, automatisch uitbreidbaar. innodb_file_per_table = 1 # Elke tabel wordt opgeslagen in een apart bestand innodb_thread_concurrency = 16 # Maximaal aantal mysqld-threads voor innodb

#3. Eerste lancering van MySQL en voltooiing van de installatie

Na de eerste installatie van het MySQL DBMS moeten we de server starten en mysqld configureren om te starten bij het opstarten van het systeem. U kunt de status van mysqld beheren via een rc-script, dat na het bouwen van de port automatisch werd geschreven als /usr/local/etc/rc.d/mysqld-server. Laten we het DBMS lanceren.

# echo "mysql_enable="YES"" >> /etc/rc.conf # echo "mysql_dbdir="/var/db/mysql"" >> /etc/rc.conf # /usr/local/etc/rc.d /mysql-server start Mysql starten.

Laten we controleren of mysql daadwerkelijk is gestart en draait als de mysql-gebruiker.

# ps wwaux | grep mysql mysql 28671 0,3 2,6 3486888 440948 ?? I 23:08 0:00.65 /usr/local/libexec/mysqld --defaults-extra-file=/var/db/mysql/my.cnf --basedir=/usr/local --datadir=/var/db/ mysql --plugin-dir=/usr/local/lib/mysql/plugin --log-error=/var/db/mysql/inter.onsever.ru.err --open-files-limit=8192 --pid- file=/var/db/mysql/inter.onsever.ru.pid --socket=/tmp/mysql.sock --port=3306 mysql 28026 0.0 0.0 8296 1884 ?? Is 23:08 0:00.02 /bin/sh /usr/local/bin/mysqld_safe --defaults-extra-file=/var/db/mysql/my.cnf --user=mysql --datadir=/var/db /mysql --pid-file=/var/db/mysql/inter.onsever.ru.pid root 28683 0,0 0,0 9124 1420 0 S+ 23:09PM 0:00.00 grep --color=auto mysq

# mysqladmin -uroot wachtwoord "new_password" # mysql -uroot -p -e "flush privileges" Voer wachtwoord in: enter Nieuw wachtwoord

De laatste stap is het uitvoeren van het beveiligingshulpprogramma mysql_secure_installation, waarmee we de anonieme gebruiker, de testdatabase, die standaard wordt aangemaakt bij het initialiseren van de gegevensmap, verwijderen en extern inloggen voor de rootgebruiker (geen systeemgebruiker) verbieden.

# mysql_secure_installation Voer het huidige wachtwoord voor root in (voer in voor geen): voert het mysql-superuser-wachtwoord in. Verander het root-wachtwoord?

n Anonieme gebruikers verwijderen? Y Root-aanmelding op afstand niet toestaan? Y Testdatabase verwijderen en toegang daartoe krijgen?

Y Privilegetabellen nu opnieuw laden? Y Alles klaar! Als u alle bovenstaande stappen heeft voltooid, zou uw MySQL-installatie nu veilig moeten zijn. Bedankt voor het gebruik van MySQL! Dit is de installatie en

initiële installatie

MySQL DBMS is voltooid. Veel succes met het gebruik en de optimalisatie! Mysql/ustanovka_mysql_5.5_pod_freebsd.txt ·.

Laatste wijzigingen

Ga daarna naar de poortmap en voer make install uit.

%cd /usr/ports/databases/mysql50-server
% make-installatie

mysql-installatie

We zullen mysql een beetje opnieuw configureren, zodat het de database in /data/mysql gebruikt

Om dit te doen, moet u eerst de map /data/mysql aanmaken en daarvoor de juiste machtigingen instellen.

%mkdir /data/mysql
%chown mysql:mysql /data/mysql
%chnod go-rwx /data/mysql

mysql automatisch starten

Met deze instellingen kan mysql worden gestart tijdens het opstarten van het systeem en wordt de juiste map aangegeven waar de bestanden moeten worden geplaatst.

%echo ‘mysql_dbdir=”/data/mysql”" >> /etc/rc.conf
%echo ‘mysql_enable=”JA”" >> /etc/rc.conf

Bij de eerste keer opstarten worden de submappen en bestanden die nodig zijn voor de server aangemaakt in de map /data/mysql.

MySQL starten en stoppen

Om de MySQL-server te starten, typt u de opdracht:

/usr/local/etc/rc.d/mysql-server forcestart

Voor de rest correspondeer ik met:

/usr/local/etc/rc.d/mysql-server forcestop

Om de server opnieuw op te starten

Hoe controleer ik of mysqld actief is?

Om te controleren of mysqld normaal is gestart, moet u de volgende opdracht uitvoeren en de uitvoer ervan vergelijken met wat u krijgt. Zowel de processen mysqld_safe als mysqld moeten aanwezig zijn.

%ps -ax grep mysql
715 con- I 0:00.00 /bin/sh /usr/local/bin/mysqld_safe –defaults-ex
759 con- I 0:06.28 /usr/local/libexec/mysqld –defaults-extra-file=
%

mysqladmin handmatig beheer van mysql

Hier is een korte lijst met opdrachten waarmee u kunt besturen opdrachtregel mysqld draaien.

mysqladmin proc - toont een lijst met query's die momenteel worden uitgevoerd SQL-server, met de tekst van het verzoek, met de identificatie ervan en het tijdstip van uitvoering van het verzoek.

Met mysqladmin kill process id kunt u stoppen met het uitvoeren van een query met een opgegeven ID

mysqladmin wachtwoord nieuw – met wachtwoord kunt u het wachtwoord voor de huidige gebruiker wijzigen

mysqladmin database aanmaken - creatie nieuwe basis gegevens
mysqladmin drop-database – volledige verwijdering databases
mysqladmin shutdown – normale afsluiting van de mysql-server

/usr/local/etc/rc.d/mysql-server start start de mysql-server.

Het mysql-beheerderswachtwoord wijzigen

Het mysql-beheerderswachtwoord kan als volgt worden gewijzigd, in plaats van asdasd enter; uw wachtwoord.

%mysqladmin wachtwoord asdasd

Hierna zullen we, om de opdracht mysqladmin uit te voeren, deze moeten uitvoeren met het argument -P, of het wachtwoord naar het bestand moeten schrijven, zoals hieronder weergegeven.

mysql-clientinstellingen

Om niet elke keer een wachtwoord in te voeren om verbinding te maken met de mysql-server, kunt u de instellingen naar het bestand ~/.my.cnf schrijven.

Wees voorzichtig met de bestandsnaam, deze begint met een punt!

Maak een bestand ~/.my.cnf, open het in een editor en schrijf de volgende regels erin. Als een dergelijk bestand al bestaat en u het gebruikerswachtwoord hebt gewijzigd, moet u het bewerken.

Wachtwoord=YOUR_PASSWORD

Om ervoor te zorgen dat dit bestand alleen voor u toegankelijk is, moet u de opdracht chmod 600 “/.my.cnf uitvoeren. Als dit bestand leesbaar is voor andere gebruikers, kunnen zij ook beheerderstoegang krijgen tot de MySQL-server. Heeft u dit nodig?
Hierna zullen alle hulpprogramma's die verbinding maken met de mysql-server niet om een ​​wachtwoord vragen om verbinding te maken. Dit kan worden geverifieerd met behulp van het hulpprogramma mysqladmin of mytop als voorbeeld.

MySQL-server bewaken

Een erg handig hulpprogramma voor het monitoren van een mysql-server vanaf de console is mytop. Het kan worden geïnstalleerd vanaf de volgende poorten:

%cd /usr/ports/databases/mytop
% make-installatie

Het wordt eenvoudigweg gestart met het commando mytop. Het toont de queries die de mysql-server momenteel uitvoert, evenals algemene statistieken over hoeveel queries per seconde, welke queries (SELECT, UPDATE, DELETE), hun aantal. U kunt het hulpprogramma afsluiten met de q-toets of Ctrl-C.

Verbieden toegang op afstand naar mysqld

U kunt externe toegang tot mysqld via tср verbieden en alleen toepassingen op de gehuurde machine toestaan ​​verbinding te maken. Dit is erg handig om de serverbeveiliging te verbeteren.

Controleer wat u heeft toegestaan verbindingen op afstand kan gedaan worden met behulp van de volgende opdracht:

%netstat -an | grep 3306
tcp4 0 0 *.3306 *.* LUISTEREN
%

Als u deze regel ziet, betekent dit dat u externe toegang heeft. Om het uit te schakelen, moet je de volgende regels toevoegen aan het bestand /data/mysql/my.сnf:


skip_netwerken

Als u niet over een dergelijk bestand beschikt, maak het dan aan.
Om de configuratiewijzigingen van kracht te laten worden, start u de mysqld-server opnieuw op met behulp van de opdracht:

/usr/local/etc/rc.d/mysql-server forcerestart
%/usr/local/etc/rc.d/mysql-server opnieuw opstarten
MySQL stoppen.
Wachten op PIDS: 706.
MySQL starten.
%

Controleer nogmaals of externe toegang al is uitgeschakeld:

%netstat -an | grep 3306
%

Problemen met mysql

Clientprogramma's kunnen de mysql-server niet vinden. Als programma's van derden klagen dat ze geen verbinding kunnen maken met de mysqld-database en localhost niet kunnen vinden, kunt u de regel verwijderen uit /etc/hosts

::1 localhost localhost.mijn.domein

en probeer het opnieuw.

Als dit niet helpt, kunt u de volgende sectie toevoegen aan /data/mysql/my.cnf

cliënt]
poort = 3306
socket = /tmp/mysql.sock

- Dit licht geopend webserver geoptimaliseerd voor snelle omgevingen, terwijl hij ook beschikt over laag niveau gebruik van hulpbronnen. Dit geweldig alternatief veelgebruikte webservers Nginx en Apache. In deze tutorial leert u hoe u Lighttpd installeert en configureert FreeBSD-server 11.0, en installeer MySQL en PHP op de Lighttpd-webserver om webapplicaties en statische inhoud te bedienen.

Vereisten

1: Installeer Lighttpd

Er zijn verschillende methoden om Lighttpd te installeren, maar in deze tutorial wordt de webserver geïnstalleerd vanuit pakketten. Programma's die op deze manier zijn geïnstalleerd, zijn gemakkelijker te updaten. Het is ook sneller dan het compileren van broncode of installatie vanaf poorten.

Om het Lighttpd-pakket te installeren, moet u de systeemrepository bijwerken:

Vervolgens moet u het lighttpd-pakket downloaden en installeren:

sudo pkg installeer lighttpd

Druk op y om te bevestigen.

De webserver is geïnstalleerd.

Wanneer u de server start met de standaardconfiguratie, ziet u deze fout:

(network.c.260) waarschuwing: gebruik server.use-ipv6 alleen voor hostnamen, niet zonder server.bind / leeg adres; je configuratie zal kapot gaan als de kernelstandaard voor IPV6_V6ONLY verandert

Dit komt omdat de standaard Lighttpd-configuratie niet volledig IPv6-ready is. Bewerk dit om verdere fouten te voorkomen configuratiebestand Lighttpd en IPv6-ondersteuning uitschakelen; het is niet nodig om deze tutorial te voltooien. Mogelijk wilt u dit in de toekomst inschakelen.

sudo ee /usr/local/etc/lighttpd/lighttpd.conf

Zoek deze sectie:

...
##
## IPv6 gebruiken?
##
server.use-ipv6 = "inschakelen"
...

Vervang inschakelen door uitschakelen:

...
...
server.use-ipv6 = "uitschakelen"
...

Zoek deze regel aan het einde van het bestand:

...
...
$SERVER["socket"] == "0.0.0.0:80" ( )

Geef commentaar, het is niet nodig als u geen IPv6 gebruikt.

...
...
#$SERVER["socket"] == "0.0.0.0:80" ( )

Sla het bestand op en sluit het.

2: MySQL installeren en configureren

MySQL is populair systeem databasebeheer. Het kan worden gebruikt om gegevens te beheren voor PHP-applicaties die worden bediend door de Lighttpd-webserver.

MySQL kan, net als Lighttpd, vanuit pakketten worden geïnstalleerd. Vervolgens moet u een wachtwoord instellen voor de MySQL-rootgebruiker en de DBMS-testopties uitschakelen.

Omdat u eerder de pkg-repository hebt bijgewerkt, hoeft u dit nu niet te doen. Installeer het MySQL-pakket:

sudo pkg installeer mysql57-server

Druk op y om de installatie te bevestigen.

Nadat de installatie is voltooid, voegt u MySQL toe aan het opstarten.

sudo sysrc mysql_enable=ja

Start de mysql-server-service:

sudo service mysql-server starten

Nadat u de service hebt gestart, beschermt u MySQL-installatie met behulp van het mysql_secure_installation-script. Het zal enkele gevaarlijke standaardinstellingen verwijderen en de toegang tot het DBMS blokkeren. Voer het interactieve script uit:

sudo mysql_secure_installation

Er verschijnt een bericht op het scherm:

Beveiliging van de MySQL-serverimplementatie.
Verbinding maken met de MySQL-server met behulp van een wachtwoord in "/root/.mysql_secret"

Het script zal u vragen een plug-in voor wachtwoordvalidatie te configureren:

VALIDATE PASSWORD PLUGIN kan worden gebruikt om wachtwoorden te testen
en de veiligheid verbeteren. Het controleert de sterkte van het wachtwoord
en stelt de gebruikers in staat alleen de wachtwoorden in te stellen die dat wel zijn
veilig genoeg. Wilt u de VALIDATE PASSWORD-plug-in instellen?

Belangrijk! Als deze functie is ingeschakeld, worden wachtwoorden die niet aan de opgegeven criteria voldoen, afgewezen en geeft MySQL een foutmelding. Dit zal problemen veroorzaken bij het gebruik van zwakke wachtwoorden en software, waarmee automatisch de MySQL-gebruikersreferenties worden geconfigureerd. U kunt wachtwoordvalidatie uitschakelen, maar u moet sterke, unieke wachtwoorden gebruiken.

Om een ​​functie in te schakelen, drukt u op Y. Om door te gaan zonder de functie in te schakelen, drukt u op een willekeurige toets.

Als u ervoor kiest deze functie in te schakelen, wordt u gevraagd een wachtwoordvalidatieniveau te selecteren. Het moeilijkste niveau is 2. Het verwerpt alle wachtwoorden die uit gewone woorden bestaan ​​en/of geen cijfers, hoofdletters of kleine letters, evenals speciale tekens.

Er zijn drie niveaus van wachtwoordvalidatiebeleid:
LAGE lengte >= 8
MEDIUM Lengte >= 8, numeriek, hoofdletters en speciale tekens
STRONG Lengte >= 8, numeriek, gemengde hoofdletters, speciale tekens en woordenboekbestand
Vul 0 = LAAG, 1 = GEMIDDELD en 2 = STERK in:

Het script zal u vervolgens vragen het wachtwoord van de rootgebruiker te wijzigen:

Het wachtwoord voor root wijzigen? ((Druk op y|Y voor Ja, elke andere sleutel voor Nee) :

Om dit te wijzigen, voert u Y in.

Als u wachtwoordvalidatie heeft ingeschakeld, controleert het script de sterkte huidige wachtwoord root en zal u vragen dit wachtwoord te wijzigen.

Nieuw wachtwoord:
Voer het nieuwe wachtwoord opnieuw in:
Geschatte sterkte van het wachtwoord: 100
Wilt u doorgaan met het opgegeven wachtwoord? (Druk op y|Y voor Ja, een andere toets voor Nee):

Voer uw nieuwe wachtwoord in en druk op Y.

Om de resterende vragen te beantwoorden, kunt u op Y en Enter drukken. Hierdoor worden enkele anonieme gebruikers en testdatabase verwijderd en wordt de afstandsbediening uitgeschakeld root-toegang en zal de MySQL-regels bijwerken zodat de wijzigingen onmiddellijk van kracht worden.

Voor het geval dat, kunt u mysql-server opnieuw opstarten:

sudo service mysql-server opnieuw opstarten

3: PHP installeren en configureren

PHP verwerkt de code en geeft deze weer dynamische inhoud. PHP kan scripts uitvoeren, verbinding maken met MySQL, gegevens uit de database ophalen en de verwerkte inhoud doorgeven aan de webserver voor weergave.

PHP kan ook vanuit pakketten worden geïnstalleerd. Je hebt ook het mysqli-pakket nodig, dat MySQL-ondersteuning bevat.

sudo pkg installeer php71 php71-mysqli

Lighttpd biedt geen ingebouwde PHP-verwerking zoals sommige andere webservers, dus u moet PHP-FPM (FastCGI Process Manager) gebruiken. Configureer Lighttpd voor verwerking PHP-verzoeken gebruik van deze module. Maar eerst moet u PHP-FPM configureren. Open het PHP-FPM-configuratiebestand:

sudo ee /usr/local/etc/php-fpm.d/www.conf

Configureer PHP-FPM om een ​​Unix-socket te gebruiken in plaats van een netwerkpoort. Het is meer veilige optie voor diensten die gegevens uitwisselen op dezelfde server.

Zoek deze regel in het bestand:

luister = 127.0.0.1:9000

Bewerk het als volgt:

luister = /var/run/php-fpm.sock

Nu moet u de eigendoms- en toegangsrechten voor de socket instellen. Zoek deze regels:

...
;luister.eigenaar = www
;luister.groep = www
;luister.modus = 0660
...

Verwijder de commentaartekens van de sectie door de puntkomma's aan het begin van elke regel te verwijderen:

...
luister.eigenaar = www
luister.groep=www
luister.modus = 0660
...

Sla het bestand op en sluit het.

Maak vervolgens een php.ini-bestand dat verantwoordelijk is voor het algemene PHP-gedrag. Er zijn twee voorbeeldconfiguratiebestanden: php.ini-production en php.ini-development. In deze situatie is php.ini-productie geschikter, dus kopieer het naar /usr/local/etc/php.ini, waar PHP naar zijn instellingen zal zoeken:

sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Open php.ini in een teksteditor:

sudo ee /usr/local/etc/php.ini

Zoek in het bestand naar een sectie voor cgi.fix_pathinfo. Het zal worden becommentarieerd; standaardwaarde is 1:

...
;cgi.fix_pathinfo=1
...

Verwijder het commentaar op deze regel en stel de waarde in op 0. PHP zal nu niet proberen delen van het pad uit te voeren als het opgegeven bestand niet wordt gevonden. Aanvallers kunnen deze functie gebruiken om kwaadaardige code uit te voeren.

...
cgi.fix_pathinfo=0
...

Sla het bestand op en sluit het.

Voeg de php-fpm-service toe aan het opstarten:

sudo sysrc php_fpm_enable=ja

Start de dienst:

sudo-service php-fpm starten

4: Lighttpd configureren voor PHP-applicaties

Op dit punt moet u Lighttpd configureren om FastCGI en PHP-FPM te ondersteunen.

Schakel eerst de FastCGI-module in. Open het Lighttpd-configuratiebestand:

sudo ee /usr/local/etc/lighttpd/modules.conf

Zoek deze sectie:

...
##
## FastCGI (mod_fastcgi)
##
#include "conf.d/fastcgi.conf"
...

Verwijder het commentaar op de invoegregel door het #-symbool te verwijderen. Als deze regel niet in het bestand staat, voeg deze dan toe aan het einde van het bestand:

...
##
## FastCGI (mod_fastcgi)
##
neem "conf.d/fastcgi.conf" op
...

Sla het bestand op en sluit het.

Bewerk het FastCGI-configuratiebestand:

sudo ee /usr/local/etc/lighttpd/conf.d/fastcgi.conf

Dit bestand bevat verschillende becommentarieerde voorbeelden. Voeg de volgende configuraties toe aan het einde van het bestand om Lighttpd te configureren om PHP-bestanden te verwerken met FastCGI en PHP-FPM:

...
fastcgi.server += (".php" =>
"socket" => "/var/run/php-fpm.sock",
"broken-scriptfilename" => "inschakelen"
)
...

Voeg Lighttpd toe aan het opstarten.

sudo sysrc lighttpd_enable=ja

Start de lighttpd-service.

sudo service lighttpd start

5: Testen van de opstelling

Om ervoor te zorgen dat Lighttpd pagina's kan bedienen, maakt u een map /usr/local/www/data aan waarin Lighttpd zoekt naar gegevens die kunnen worden aangeboden.

sudo mkdir -p /usr/local/www/data

Maak in deze map een info.php-bestand. Met dit bestand kunt u controleren of PHP werkt en kunt u de configuratie-informatie van de webserver in uw browser bekijken:

sudo ee /usr/local/www/data/info.php

Voeg toe aan het bestand:

Sla het bestand op en sluit het.

http://uw_server_ip/info.php

Informatie over het instellen van de webserver verschijnt op het scherm.

Deze pagina geeft informatie weer over het huidige besturingssysteem, de webserver en hoe deze verwerkt PHP-bestanden. Als de pagina wordt geopend, kan de webserver PHP-bestanden correct weergeven.

Als de foutmelding 503 Service Not Available op het scherm verschijnt in plaats van op de pagina, controleer dan of de php-fpm-service correct werkt.

Na controle is het belangrijk om het info.php-bestand onmiddellijk te verwijderen zoals het wordt aangeboden vertrouwelijke informatie over de server aan elke gebruiker die daarom vraagt.

sudo rm /usr/local/www/data/info.php

De webserver is volledig klaar voor gebruik. Nu kunt u er webpagina's, documenten en andere bestanden op hosten.

Trefwoorden: ,

Een handleiding voor het installeren van een FAMP-stack op virtuele servers met FreeBSD 11.

Wat is het?

De FAMP Stack is een verzameling open source-software die wordt gebruikt om webservers te maken. De afkorting is een verzameling van de eerste letters van de naam van de technologieën FreeBSD, Apache, MySQL en PHP. Sinds virtuele server Het vereiste FreeBSD-besturingssysteem is al actief, we zullen kijken naar het installeren van alle andere componenten.

De reden dat software een stapel wordt genoemd, is omdat elke laag afhankelijk is van de basislaag (onderlaag). Uw FreeBSD-besturingssysteem is basisniveau. Vervolgens Apache, uw webdaemon, bevindt zich bovenop uw besturingssysteem. De database slaat vervolgens alle informatie op die door uw webdaemon wordt aangeboden, en PHP (of een andere P*-scripttaal) wordt gebruikt om alle gegevens te beheren en weer te geven, en om met de gebruiker te communiceren.

Voordat u FAMP Stack instelt

Installatie van de benodigde software gebeurt in de bevoorrechte modus; hiervoor moet u inloggen op de VPS onder de beheerderslogin. De beheerderslogin en het wachtwoord zijn te vinden in het controlepaneel: “ Server”->”Staat”.

Apache installeren op FreeBSD

Op huidige moment Apache-webserver is de meest gebruikte webserver ter wereld. Dit is een goede keuze voor het hosten van uw website.

Om Apache te installeren moet u verbinding maken met uw server via Putty op Windows of een terminal gebruiken op Mac OS, Linux en FreeBSD en de volgende opdrachten invoeren:

Pkg installeer apache24

Zodat deze software start wanneer u het besturingssysteem aanzet FreeBSD-systemen, moet je het toevoegen aan het opstarten:

Sysrc apache24_enable=ja

Laten we beginnen met het commando:

Dienst apache24 starten

Om te controleren Apache-installatie, kunt u een browser op uw computer openen en het FreeBSD VPS IP-adres in de adresbalk typen. Het volgende bericht zou op de laadpagina moeten verschijnen:

Let op: op de officiële website kun je meer vinden gedetailleerde informatie Door juiste instelling servers voor websitehosting.

MySQL op FreeBSD installeren

Voer in een terminal de volgende opdracht uit: pkg install mysql56-server

Om FreeBSD toe te voegen aan het opstarten, volgt u deze stappen:

Sysrc mysql_enable=ja

Laten we de MySQL-server starten:

Service mysql-server starten

Alle geïnstalleerde Famp Stack-applicaties hebben meestal een set standaard instellingen, die onveilig en onbetrouwbaar zijn. Om het veiligheidsniveau van het gebruik van de software te vergroten, wordt aanbevolen om wijzigingen aan te brengen. Voer een beveiligingsscript uit dat typische instellingen wijzigt:

Mysql_secure_installatie

U kunt verbinding maken met speciaal hulpprogramma, waarmee u met het DBMS kunt werken door de gebruikersnaam op te geven:

Mysql-u<имя_пользователя>-P

PHP installeren op FreeBSD

We voeren de opdracht uit, waardoor pakketten voor het dynamisch bekijken van inhoud op de server worden geïnstalleerd:

Pkg installeer mod_php56 php56-mysql php56-mysqli

Kopieer het voorbeeld-PHP-configuratiebestand met behulp van deze opdracht:

Cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Laten we nu de in de cache opgeslagen informatie over de geïnstalleerde bestanden herstellen uitvoerbare bestanden systemen:

Let op: Om de functionaliteit van PHP te verbeteren, kunt u enkele extra modules installeren.

Apache-configuratie voor het gebruik van PHP-modules

Open het Apache-configuratiebestand met een willekeurige teksteditor, bijvoorbeeld met nano:

Nano /usr/local/etc/apache24/Includes/php.conf

Het bestand zal leeg zijn. Voer de volgende inhoud in:


DirectoryIndex index.php index.html

SetHandler-applicatie/x-httpd-php


SetHandler-applicatie/x-httpd-php-source

Om de wijzigingen toe te passen, start u Apache opnieuw op:

Service apache24 opnieuw opstarten

Inspectie

Om er zeker van te zijn dat PHP foutloos wordt geïnstalleerd, kunt u een testpagina op de server maken.

Om dit te doen, moet u een nieuw scriptbestand maken:

Nano /usr/local/www/apache24/data/info.php

En voeg er de volgende regels aan toe:

phpinfo();
?>

http:// /info.php

Bijvoorbeeld:

Http://5.101.77.24/info.php

Verwacht resultaat:

Hiermee is de installatie van alle FAMP Stack-componenten op FreeBSD voltooid en kunt u de webserver gebruiken om uw eerste site in gebruik te nemen.