LAMP (Linux Apache Mysql Php) környezet telepítése aránylag egyszerű, a különféle komponenseket kell feltelepíteni, beállítani és elindítani.
1. Webszerver és php
Apache vagy Nginx: Sajnos apache mindenféleképpen kell, ha valami miatt .htaccess támogatást is kell nyújtanod. Ehhez javaslom a mod_itk használatát, amellyel VirtualHost-onként tudod megadni, hogy melyik linux user jogosultságaival fusson egy folyamat.
pacman -S apache mod_itk php-apache pacman -S php-intl php-mcrypt php-gd php-pear
A webszerver beállítása mod_itk-hoz egy kicsit becsapós. Alapból az mpm_event van engedélyezve. Ezt kommentezd, illetve inkább az alábbiakat másold be:
#LoadModule mpm_event_module modules/mod_mpm_event.so LoadModule unixd_module modules/mod_unixd.so LoadModule mpm_prefork_module modules/mod_mpm_prefork.so LoadModule mpm_itk_module modules/mpm_itk.so
A php használatához erre van szükség:
LoadModule php5_module modules/libphp5.so AddHandler php5-script php Include conf/extra/php5_module.conf
Pár konfiguráció van még hátra:
- Korrektól beállítani a betöltendő modulokat, amelyekre szükséged van
- dir_module bejegyzéshez felvenni az index.php-t
- VirtualHost beállítás
- httpd.conf alján az Include-ok kezelése (melyik kell, melyik nem kell)
- extra/httpd-mpm.conf-ban másolni az IfModule mpm_prefork_module, majd átnevezni: mpm_itk_module
- /etc/php/php.ini-ben a szükséges beállításokat megejteni.
Ezután már csak el kell indítani az apache-ot:
systemctl enable httpd systemctl start httpd
2. Mysql telepítése
Az Oracle mysql alapból nem érhető el, viszont van mariaDb és Percona szerver. Én a MariaDb-t szoktam telepíteni.
pacman -S mariadb innotop xtrabackup
Az xtrabackup csak a mentések miatt szükséges.
Inicializálni kell az adatbázisokat:
mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
Ezután indítsd el a szervert, és adj egy új jelszót a root-nak:
systemctl enable mysqld systemctl start mysqld /usr/bin/mysqladmin -u root password 'new-password' /usr/bin/mysqladmin -u root -h szervered_fqdn_hosztneve password 'new-password'
3. Ftp szerver telepítése
Magam részéről a pure-ftpd-t kedvelem. Az aur4-ről való telepítéshez:
yaourt pure-ftpd-db
Telepítés közben editálni szoktam a PKGBUILD fájlt, kiveszem a postgresql-re vonatkozó dolgokat (depends, fordítási opció), de Neked ezt nem szükséges meglépni.
Legegyszerűbb a mysql alapú adattárolás tűnik. Ehhez az /etc/pure-ftpd/pure-ftpd.conf fájlban ez az egy opció legyen olyan, amelyik nincs kikommentezve:
MySQLConfigFile /etc/pure-ftpd/pureftpd-mysql.conf
Tehát az LDAPConfigFile, PGSQLConfigFile, PureDB, ExtAuth,PAMAuthentication, UnixAuthentication paraméterekre nincs szükségünk, ezek legyenek kikommentezve. Ezután hozd létre az /etc/pure-ftpd/pureftpd-mysql.conf nevű fájlt, a tartalma pedig az alábbi legyen:
MYSQLServer localhost MYSQLPort 3306 MYSQLSocket /run/mysqld/mysqld.sock MYSQLUser {mysql_user} MYSQLPassword {mysql_user_password} MYSQLDatabase {mysql_database} # Valid values are : "cleartext", "crypt", "md5" and "password" MYSQLCrypt cleartext MYSQLGetPW SELECT passw as Password FROM ftpaccount WHERE ftpaccount="\L" MYSQLGetUID SELECT uid as Uid FROM ftpaccount WHERE ftpaccount="\L" MYSQLGetGID SELECT gid as Gid FROM ftpaccount WHERE ftpaccount="\L" MYSQLGetDir SELECT homedir as Dir FROM ftpaccount WHERE ftpaccount="\L"
A lekérdezéshez az adatbázis és a táblát is hozd létre. A tábla létrehozási sql-je:
CREATE TABLE `ftpaccount` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `status` enum('ENABLED','DISABLED') NOT NULL DEFAULT 'ENABLED', `ftpaccount` varchar(50) NOT NULL COMMENT 'ftp account neve (belepesi nev)', `passw` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `uid` int(11) NOT NULL DEFAULT '-1', `gid` int(11) NOT NULL DEFAULT '-1', `homedir` varchar(255) NOT NULL COMMENT 'ftp account home konyvtar (abszolut eleresi ut)', `ulbandwith` smallint(5) unsigned NOT NULL DEFAULT '0', `dlbandwidth` smallint(5) unsigned NOT NULL DEFAULT '0', `ipaccess` varchar(15) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '*', PRIMARY KEY (`id`), UNIQUE KEY `NewIndex1` (`ftpaccount`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
Nézd át az alap konfigurációs tulajdonságokat, amelyiket úgy érzed, azt állítsd be. Én főleg ezeket szoktam érinteni:
ForcePassiveIP {server_ip_address} ChrootEveryone yes BrokenClientsCompatibility no DisplayDotFiles yes AnonymousOnly no NoAnonymous yes DontResolve yes MaxIdleTime 5 AnonymousCanCreateDirs no PassivePortRange 30000 50000 ProhibitDotFilesWrite no ProhibitDotFilesRead no AnonymousCantUpload yes AltLog clf:/var/log/pureftpd.log
Ezután már csak el kell indítani az ftp szervert:
systemctl enable pure-ftpd systemctl start pure-ftpd