install.sh 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113
  1. #!/bin/bash
  2. # Auteur : Remi Sarrailh (maditnerd)
  3. # Updates : Modifications mineures par Valentin CARRUESCO Idleman 28/07/2018
  4. # Licence : MIT
  5. # Un probleme : https://git.idleman.fr/idleman/yana-server/issues
  6. # https://tldrlegal.com/license/mit-license
  7. #############
  8. # Variables
  9. #############
  10. INSTALLVERSION="3.0.6"
  11. ERR="\033[1;31m"
  12. NORMAL="\033[0;39m"
  13. INFO="\033[1;34m"
  14. WARN="\033[1;33m"
  15. OK="\033[1;32m"
  16. IPADDRESS=$(hostname -I)
  17. HOSTNAME=$(cat /etc/hostname)
  18. doInstall=0
  19. #Installer le serveur web (se met à 0 si un autre serveur web est installé)
  20. doInstallWebServer=1
  21. isRoot=0
  22. GlobalError=0
  23. confirmErase=0
  24. copyYana=1
  25. resizeSD=1
  26. ################
  27. # Messages GUI
  28. ################
  29. # J'ai séparé les messages long du GUI du reste du programme
  30. # Afin quel soit facilement modifiable
  31. installMessage="\
  32. Etapes:
  33. ---------------------------
  34. * Renommer le Raspberry Pi
  35. * Redimensionner la carte SD
  36. * Mis à jour
  37. * Terminal en français
  38. ------------------------------------
  39. * Configuration du fuseau horaire
  40. * Installation wiringPi (pour gérer les GPIO)
  41. -------------------------------------------
  42. * Copie de Yana Server
  43. * Installation du serveur web
  44. * Création de l'utilisateur
  45. * Permissions du serveur web
  46. * Installation du socket / cron
  47. "
  48. checkMessage="\
  49. Nous allons revérifier toute l'installation mais sans modifier ni yana-server ni la configuration
  50. "
  51. renameMessage="\
  52. Vous pouvez accéder à Yana en utilisant un nom plutôt qu'une adresse IP \n\n\
  53. Pour que cela marche depuis Windows, il faut que les services BONJOUR soit installés \n\
  54. C'est le cas si vous avez SKYPE, ITUNES ou Windows 10 sinon il vous faudra l'installer \n\
  55. http://support.apple.com/kb/DL999 \n\
  56. \n\
  57. \n\
  58. Example : maison sera accessible sur http://maison.local/
  59. "
  60. saveMessage="\
  61. Vous pouvez sauvegarder yana-server sur une clé USB \n\n\
  62. Ceci sauvegardera /var/www/yana-server dans le dossier yana \n\n\
  63. Si une sauvegarde existe sur la clé, elle sera effacée \n\
  64. si vous voulez conserver une sauvegarde précédente renommer le dossier \n\
  65. "
  66. restoreMessage="\
  67. Vous pouvez revenir à un état précédent de yana depuis une clé USB \n\n\
  68. Ceci effacera /var/www/yana-server et le replacera par celui \n\
  69. dans le dossier sur la clé USB /yana
  70. "
  71. resizeSDCardMessage="\
  72. Voulez vous redimensionner la carte SD de votre Raspberry Pi ?
  73. Ceci sera fait au prochain redémarrage.
  74. "
  75. # Message d'erreurs
  76. noInternetMessage="\
  77. Je n'arrive pas à me connecter à git.idleman.fr \n\
  78. Voici votre adresse IP: $IPADDRESS\
  79. "
  80. ApacheMessage="\
  81. Yana utilise lighttpd comme serveur web par défaut\n\
  82. Il semblerait que Apache (un autre serveur web) soit déjà installé...\n\n\
  83. Voulez vous quand même installer lighttpd ? \n\
  84. "
  85. nginxMessage="\
  86. Yana utilise lighttpd comme serveur web par défaut\n\
  87. Il semblerait que nginx (un autre serveur web) soit déjà installé...\n\n\
  88. Voulez vous quand même installer lighttpd ? \n\
  89. "
  90. yanaMessage="\
  91. Yana semble avoir déjà été copié.\n\
  92. Voulez vous que je le supprimer et que je le réinstalle ?\
  93. "
  94. localeMessage="\
  95. Je n'ai pas réussi à mettre le terminal en français\n\
  96. Pour autant, ceci n'aura aucune incidence sur la suite de l'installation\n\n\
  97. Voici le message d'erreur:\
  98. "
  99. aptGetErrorMessage="\
  100. Le gestionnaire de paquet apt-get est HS\n\
  101. * Soit celui-ci a été interrompu\n\
  102. * Soit il est en cours d'utilisation par un autre programme\n\
  103. Supprimer le fichier de verrou est probablement la solution\n\n\
  104. Voici le message d'erreur:\n\
  105. "
  106. gitErrorMessage="\
  107. Impossible de récupérer le code source avec git\n\
  108. Cela peut être du à un problème du coté de git.idleman.fr\n\
  109. Veuillez vérifier que http://git.idleman.fr/ est en ligne\n\n\
  110. Voici le message d'erreur:\n\
  111. "
  112. wiringPiErrorMessage="\
  113. Impossible de compiler wiringPi\n\
  114. Voici le message d'erreur:\n\
  115. "
  116. lighttpdErrorMessage="\
  117. Le serveur web n'a pas réussi à se redémarrer correctement\n\
  118. Voici le message d'erreur:\n\
  119. "
  120. #Un joli logo ascii sans avoir à installer un programme pour ça
  121. yanaLogo(){
  122. clear
  123. echo -ne $INFO
  124. cat<<EOF
  125. ██╗ ██╗ █████╗ ███╗ ██╗ █████╗ ████████╗
  126. ╚██╗ ██╔╝██╔══██╗████╗ ██║██╔══██╗ █ █ █ █║
  127. ╚████╔╝ ███████║██╔██╗ ██║███████║ █ █║
  128. ╚██╔╝ ██╔══██║██║╚██╗██║██╔══██║ ██████ ║
  129. ██║ ██║ ██║██║ ╚████║██║ ██║ █ ████ █║
  130. ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝ █ █══╝
  131. EOF
  132. echo -ne $ERR
  133. cat<<EOF
  134. ██╗███╗ ██╗███████╗████████╗ █████╗ ██╗ ██╗
  135. ██║████╗ ██║██╔════╝╚══██╔══╝██╔══██╗██║ ██║
  136. ██║██╔██╗ ██║███████╗ ██║ ███████║██║ ██║
  137. ██║██║╚██╗██║╚════██║ ██║ ██╔══██║██║ ██║
  138. ██║██║ ╚████║███████║ ██║ ██║ ██║███████╗███████╗
  139. ╚═╝╚═╝ ╚═══╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝
  140. EOF
  141. echo -ne $NORMAL
  142. }
  143. ##############
  144. # Menus
  145. ##############
  146. # Menu principal
  147. mainMenu(){
  148. optionsMain=$(whiptail --title "YANA Server $INSTALLVERSION" --menu "" --cancel-button "Annuler" 0 0 0 \
  149. "Installer" "" \
  150. "Configurer" "" \
  151. "Sauvegarder" "" \
  152. "Restaurer" "" \
  153. "Quitter" "" 3>&1 1>&2 2>&3)
  154. case $optionsMain in
  155. "Installer")
  156. installMenu;;
  157. "Configurer")
  158. setupMenu;;
  159. "Sauvegarder")
  160. saveMenu;;
  161. "Restaurer")
  162. restoreMenu;;
  163. *)
  164. echo -e "$OK ... A la prochaine! $NORMAL"
  165. ;;
  166. esac
  167. }
  168. # Menu d'installation
  169. installMenu(){
  170. if(whiptail --title "Installation" --yesno "$installMessage" --yes-button "Oui" --no-button "Non" 0 0) then
  171. doInstall=1
  172. else
  173. echo -e "\033[1;34m... A la prochaine!\033[0;39m"
  174. fi
  175. }
  176. # Menu de configuration
  177. setupMenu(){
  178. optionsSetup=$(whiptail --title "YANA Server $INSTALLVERSION" --menu "" --cancel-button "Retour" 0 0 0 \
  179. "Vérifier YANA" "" \
  180. "Mettre à jour YANA" "" \
  181. "Redimensionner la carte SD" "" \
  182. "Renommer le Raspberry Pi" "" \
  183. "Scripts Plugins" "" \
  184. "Quitter" "" \
  185. 3>&1 1>&2 2>&3)
  186. case $optionsSetup in
  187. "Vérifier YANA")
  188. checkMenu;;
  189. "Mettre à jour YANA")
  190. forceYanaUpdate;;
  191. "Redimensionner la carte SD")
  192. resizeSDCard
  193. setupMenu;;
  194. "Renommer le Raspberry Pi")
  195. renameMenu
  196. setupMenu;;
  197. "Scripts Plugins")
  198. scriptsMenu;;
  199. "Quitter")
  200. echo -e "$OK ... A la prochaine! $NORMAL";;
  201. *)
  202. mainMenu;;
  203. esac
  204. }
  205. # Menu vérification de yana
  206. checkMenu(){
  207. if(whiptail --title "Vérification" --yesno "$checkMessage" --yes-button "Oui" --no-button "Non" 0 0) then
  208. updateRaspberryPi
  209. checkPermissions
  210. checkBinariesMenu
  211. installYanaSocket
  212. addCron
  213. else
  214. setupMenu
  215. fi
  216. }
  217. resizeSDCardMenu(){
  218. if(whiptail --title "Carte SD" --yesno "$resizeSDCardMessage" --yes-button "Oui" --no-button "Non" 0 0) then
  219. resizeSDCard
  220. fi
  221. }
  222. # Menu de renommage du Raspberry Pi
  223. renameMenu(){
  224. newhostname=$(whiptail --inputbox "$renameMessage" --title "Choissisez un nom" 0 0 3>&1 1>&2 2>&3)
  225. renamePi
  226. }
  227. # Menu de scripts pour les plugins
  228. # Il faut créer un script au format .sh pour dans /var/www/yana-server/plugins/nom-du-plugin/nom-du-script.sh
  229. # On peut utiliser les fonctions du script d'installation et les variables à l'intérieur d'un script
  230. # Par example vous pouvez récupérer le nom $HOSTNAME ou l'adresse IP $IPADDRESS
  231. # Vérifier si internet est connecté
  232. scriptsMenu(){
  233. getAllScripts
  234. while read -r nextScript
  235. do
  236. scriptName=$(echo "${nextScript//\/var\/www\/yana-server\/plugins\//}")
  237. menu_options[ $i ]="$scriptName"
  238. (( i++ ))
  239. menu_options[ $i ]=""
  240. (( i++ ))
  241. done <<<"$allScripts"
  242. scriptToExecute=$(whiptail --title "Plugins" --menu "Gérer un Plugin" 0 0 0 "${menu_options[@]}" 3>&1 1>&2 2>&3 )
  243. executeScript
  244. }
  245. executeScript(){
  246. if [[ -f /var/www/yana-server/plugins/$scriptToExecute ]];then
  247. chmod +x /var/www/yana-server/plugins/$scriptToExecute
  248. clear
  249. yanaLogo
  250. echo -e "$OK -----> Exécution de $scriptToExecute $NORMAL"
  251. dir=$(dirname /var/www/yana-server/plugins/$scriptToExecute)
  252. cd $dir;. /var/www/yana-server/plugins/$scriptToExecute
  253. else
  254. echo -e "$OK -----> Aucun script trouvé dans /var/www/yana-server/plugins/$scriptToExecute $NORMAL"
  255. fi
  256. }
  257. # Menu de vérification des fichiers binaires
  258. checkBinariesMenu(){
  259. getAllBinaries
  260. if(whiptail --title "Permissions binaires" --yesno "Je peux automatiquement donner les droits roots aux programmes des plugins\n\nVoici la liste des programmes concernés: \n$allBinaries" --yes-button "Oui" --no-button "Non" 0 0) then
  261. setupPermissionsBinaries
  262. whiptail --title "Permissions" --msgbox "Permissions activés" 0 0
  263. fi
  264. }
  265. saveMenu(){
  266. if(whiptail --title "Sauvegarde USB" --yesno "$saveMessage" --yes-button "Oui" --no-button "Non" 0 0) then
  267. saveUSB
  268. else
  269. mainMenu
  270. fi
  271. }
  272. restoreMenu(){
  273. if(whiptail --title "Restauration USB" --yesno "$restoreMessage" --yes-button "Oui" --no-button "Non" 0 0) then
  274. restoreUSB
  275. checkPermissions
  276. setupPermissionsBinaries
  277. else
  278. mainMenu
  279. fi
  280. }
  281. ## Menu d'erreurs
  282. # Menu Internet HS
  283. noInternetMenu(){
  284. whiptail --title "Vérifier que vous êtes connecté à internet" --msgbox "$noInternetMessage" 0 0
  285. echo -e "$ERR - Impossible de continuer sans internet $NORMAL"
  286. }
  287. # Menu Apache déjà installé
  288. ApacheAlreadyInstalledMenu(){
  289. if(whiptail --title "Un serveur web est déjà installé" --yesno "$ApacheMessage" --yes-button "Oui" --no-button "Non" 0 0) then
  290. doInstallWebServer=1
  291. else
  292. doInstallWebServer=0
  293. fi
  294. }
  295. # Menu Nginx déjà installé
  296. nginxAlreadyInstalledMenu(){
  297. if(whiptail --title "Un serveur web est déjà installé" --yesno "$nginxMessage" --yes-button "Oui" --no-button "Non" 0 0) then
  298. doInstallWebServer=1
  299. else
  300. doInstallWebServer=0
  301. fi
  302. }
  303. # Menu error APT-GET
  304. aptgetErrorMenu(){
  305. #Récupère le message d'erreur apt-get
  306. getAptError
  307. #Affiche l'erreur dans la GUI
  308. whiptail --title "le gestionnaire de paquet ne réponds pas" --msgbox "$aptGetErrorMessage $aptError" 0 0
  309. echo -e "$ERR Impossible de continuer sans apt-get $NORMAL"
  310. echo -e "$WARN ERREUR - $aptGetErrorMessage $aptError"
  311. exit 1
  312. }
  313. # Menu erreur git
  314. gitErrorMenu(){
  315. #Récupère le message d'erreur de git clone
  316. getGitError
  317. #Affiche l'erreur dans la GUI
  318. whiptail --title "le gestionnaire de paquet ne réponds pas" --msgbox "$gitErrorMessage $gitError" 0 0
  319. exit 1
  320. }
  321. # Menu erreur wiringPi
  322. wiringPiErrorMenu(){
  323. getWiringPiError
  324. whiptail --title "Echec de la compilation de WiringPi" --msgbox "$wiringPiErrorMessage $wiringPiError" 0 0
  325. }
  326. # Menu erreur lighttpd
  327. lighttpdErrorMenu(){
  328. whiptail --title "Echec du lancement de Lighttpd" --msgbox "$lighttpdErrorMessage $lighttpdError" 0 0
  329. }
  330. confirmEraseUSB(){
  331. if(whiptail --title "Confirmer la suppression de la sauvegarde" --yesno "Une sauvegarde précédente existe la supprimer ?" --yes-button "Oui" --no-button "Non" 0 0) then
  332. confirmErase=1
  333. else
  334. confirmErase=0
  335. fi
  336. }
  337. ##############
  338. # Scripts
  339. ##############
  340. # Toutes les parties de l'installation sont séparés en fonctions
  341. # Ceci afin de faciliter les tests de chaque partie
  342. #Vérifie que vous êtes bien en root
  343. verifyRoot() {
  344. if [ $(id -u) -ne 0 ]; then
  345. echo -e "\033[1;31mVous avez oublié de vous mettre en root!\033[0;39m"
  346. echo -e "Tapez \033[1;34msudo $0\033[0;39m"
  347. isRoot=0
  348. else
  349. isRoot=1
  350. fi
  351. }
  352. #Vérifie l'état de la connexion internet
  353. checkInternet(){
  354. ping -c1 www.google.com > /dev/null 2>&1 && internet=1 || internet=0
  355. echo -e "$OK -----> Vérification de la connexion à internet $NORMAL"
  356. if [[ $internet -eq 0 ]]
  357. then
  358. noInternetMenu
  359. fi
  360. }
  361. #Récupère le message d'erreur APT-GET
  362. getAptError(){
  363. rm -f /tmp/aptError.log
  364. #On lance apt-get install en dry-run (simulation) afin de recuperer l'erreur
  365. #et on sauve le log dans /tmp/aptError.log
  366. apt-get --dry-run install > /tmp/aptError.log 2>&1
  367. aptError=$(cat /tmp/aptError.log)
  368. }
  369. #Récupère le message d'erreur de git
  370. getGitError(){
  371. gitError=$(cat /tmp/gitError.log)
  372. }
  373. #Récupère le message d'erreur de WiringPi
  374. getWiringPiError(){
  375. wiringPiError=$(cat /tmp/wiringPiError.log)
  376. }
  377. #Récupère le message d'erreur de lighttpd
  378. getLighttpdError(){
  379. lighttpdError=$(cat /tmp/lighttpdReload.log)
  380. }
  381. #Met à jour le Raspberry Pi en utilisant whiptail comme interface
  382. updateRaspberryPi(){
  383. echo -e "$OK -----> Mise à jour du Raspberry Pi $NORMAL"
  384. #debconf-apt-progress permet d'afficher la progression de la mis à jour dans une GUI en français
  385. debconf-apt-progress -- apt-get -q -y update
  386. globalError=$?
  387. if [[ $globalError -ne 0 ]];then
  388. aptgetErrorMenu
  389. fi
  390. debconf-apt-progress -- apt-get -q -y upgrade
  391. globalError=$?
  392. if [[ $globalError -ne 0 ]];then
  393. aptgetErrorMenu
  394. fi
  395. echo -e "$OK -----> Installation du client git $NORMAL"
  396. #On installe aussi le client git
  397. debconf-apt-progress -- apt-get install -q -y git-core
  398. if [[ $globalError -ne 0 ]];then
  399. aptgetErrorMenu
  400. fi
  401. }
  402. #Change les locales de l'anglais au français de manière non interactive
  403. setLocaleToFrench(){
  404. echo -e "$OK -----> Configuration du terminal en français... Patientez s'il vous plaît ... $NORMAL"
  405. #Ajout des locales FR
  406. sed -i -e 's/# fr_FR.UTF-8 UTF-8/fr_FR.UTF-8 UTF-8/' /etc/locale.gen
  407. #Met FR en locale par défaut
  408. echo 'LANG="fr_FR.UTF-8 UTF-8"'>/etc/default/locale
  409. update-locale LANG=fr_FR.UTF-8
  410. export LANG=fr_FR.UTF-8
  411. #Les locales sont installés silencieusement
  412. dpkg-reconfigure --frontend=noninteractive locales > /tmp/localeSetup.log 2>&1
  413. globalError=$?
  414. #En cas d'erreur on affiche le message
  415. if [[ $globalError -ne 0 ]];then
  416. localeError=$(cat /tmp/localeSetup.log)
  417. whiptail --title "Locales FR" --msgbox "$localeMessage $localeError" 0 0
  418. fi
  419. }
  420. #Gestion automatique des fuseaux horaires à l'aide de tzupdate
  421. configureTimeZone(){
  422. echo -ne "$OK -----> Configuration du fuseau horaire $NORMAL"
  423. #Vérifie que Python PIP est disponible
  424. debconf-apt-progress -- apt-get install -q -y python-pip
  425. globalError=$?
  426. if [[ $globalError -ne 0 ]];then
  427. aptgetErrorMenu
  428. fi
  429. #Installation silencieuse du Package python tzupdate
  430. pip install --quiet tzupdate
  431. #Si l'installation c'est correctement passé lancé tzupdate silencieusement
  432. if [ -f /usr/local/bin/tzupdate ];then
  433. tzupdate > /dev/null 2>&1
  434. #On récupère après la zone géographique pour l'afficher
  435. currentTimeZone=$(tzupdate -p|awk '{print $4}')
  436. echo -e "$WARN : $currentTimeZone $NORMAL"
  437. else
  438. echo -e "$ERR Impossible de changer le fuseau horaire automatiquement (ce n'est pas nécessaire) $NORMAL"
  439. fi
  440. }
  441. #Vérification sommaire de l'existance d'autres serveur web
  442. #Si un autre serveur web est installé prévient l'utilisateur
  443. #Afin qu'il choissisent s'il veut installer lighttpd ou pas
  444. checkWebServer(){
  445. if [ -f "/usr/sbin/apache2" ];then
  446. ApacheAlreadyInstalledMenu
  447. fi
  448. if [ -f "/usr/sbin/nginx" ];then
  449. nginxAlreadyInstalledMenu
  450. fi
  451. }
  452. #Installation du serveur web et de SQLite
  453. installWebServer(){
  454. echo -e "$OK -----> Installation du serveur web $NORMAL"
  455. debconf-apt-progress -- apt-get install -q -y lighttpd git-core sqlite3 php7.0-sqlite php7.0-common php7.0-cgi php7.0-cli php-mbstring php7.0-zip
  456. if [[ $globalError -ne 0 ]];then
  457. aptgetErrorMenu
  458. fi
  459. #On efface la page par défaut de lighttpd pour éviter d'embrouiller les utilisateurs
  460. rm -f /var/www/index.lighttpd.html
  461. rm -rf /var/www/html
  462. }
  463. #Configure lighttpd pour bloquer l'accès à la base de données
  464. setupWebServer(){
  465. echo -e "$OK -----> Configuration du serveur web (/etc/lighttpd/lighttpd.conf) $NORMAL"
  466. cat <<\EOF > /etc/lighttpd/lighttpd.conf
  467. server.modules = (
  468. "mod_access",
  469. "mod_alias",
  470. "mod_compress",
  471. "mod_redirect",
  472. # "mod_rewrite",
  473. )
  474. server.document-root = "/var/www/"
  475. server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
  476. server.errorlog = "/var/log/lighttpd/error.log"
  477. server.pid-file = "/var/run/lighttpd.pid"
  478. server.username = "www-data"
  479. server.groupname = "www-data"
  480. server.port = 80
  481. index-file.names = ( "index.php", "index.html", "index.lighttpd.html" )
  482. url.access-deny = ( "~", ".inc", "db","log.txt" )
  483. static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
  484. compress.cache-dir = "/var/cache/lighttpd/compress/"
  485. compress.filetype = ( "application/javascript", "text/css", "text/html ) ", "text/plain" )
  486. # default listening port for IPv6 falls back to the IPv4 port
  487. include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
  488. include_shell "/usr/share/lighttpd/create-mime.assign.pl"
  489. include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
  490. EOF
  491. lighttpdSetupError=$?
  492. if [[ lighttpdSetupError -eq 1 ]];then
  493. echo -e "$ERR - Le fichier /etc/lighttpd/lighttpd.conf n'a pas été modifié $NORMAL"
  494. fi
  495. #Activation de PHP et rechargement de lighttpd
  496. lighty-enable-mod fastcgi-php > /dev/null 2>&1
  497. service lighttpd restart > /tmp/lighttpdReload.log 2>&1
  498. globalError=$?
  499. if [[ $globalError -ne 0 ]];then
  500. getLighttpdError
  501. lighttpdErrorMenu
  502. echo -e "$ERR - La configuration de /etc/lighttpd/lighttpd.conf a échoué $NORMAL"
  503. echo -e "$WARN ERREUR: $lighttpdError $NORMAL"
  504. fi
  505. }
  506. #Clonage de Yana
  507. #Si Yana a déjà été cloné alors on propose à l'utilisateur de le réinstaller
  508. cloneYana(){
  509. if [[ copyYana -eq 1 ]];then
  510. if [[ -d "/var/www/yana-server" ]];then
  511. if(whiptail --title "Yana déjà installé" --yesno "$yanaMessage" --yes-button "Oui" --no-button "Non" 0 0) then
  512. echo -e "$ERR -----> Réinstallation de Yana Server $NORMAL"
  513. rm -rf /var/www/yana-server
  514. GIT_SSL_NO_VERIFY=true git clone https://git.idleman.fr/idleman/yana-server.git /var/www/yana-server > /tmp/gitError.log 2>&1
  515. globalError=$?
  516. if [[ $globalError -ne 0 ]];then
  517. gitErrorMenu
  518. fi
  519. fi
  520. else
  521. echo -e "$OK