recetas - LAMP alpine en 3.14 y 3.20 con php y mysql y ospos
| ... | ... | @@ -23,6 +23,9 @@ en un directorio y instalar desde alli con una simple linea |
| 23 | 23 | * Configurar UPS APC como servicio y paquetes web [alpine-recetas-apcupsd-service.md](alpine-recetas-apcupsd-service.md)
|
| 24 | 24 | * Alpine
|
| 25 | 25 | * Como hacer paquetes de alpine [alpine-recetas-hacer-paquetes-alpine-localmente.md](alpine-recetas-hacer-paquetes-alpine-localmente.md)
|
| 26 | +* Guias completas
|
|
| 27 | + * Alpine 3.14 + Apache2 + PHP 7 + MySQL + OSPOS4 [server-alpine-LAMP-ospos-314.md](server-alpine-LAMP-ospos-314.md)
|
|
| 28 | + * Alpine 3.20 + Apache2 + PHP 8.3 + MySQL + OSPOS3 [server-alpine-LAMP-ospos-320.md](server-alpine-LAMP-ospos-320.md)
|
|
| 26 | 29 | |
| 27 | 30 | # Vease tambien
|
| 28 | 31 |
| 1 | +# Alpine3.14 + Apache2 + Mysql + Php7 + Ospos3
|
|
| 2 | + |
|
| 3 | +**Cuidado** esto es para **php 7 (php7) y sus dependencias de composer en alpine 3.14**
|
|
| 4 | +si tu ejecutas mas nuevo usa [server-alpine-LAMP-ospos-320.md](server-alpine-LAMP-ospos-320.md)
|
|
| 5 | + |
|
| 6 | +* [install alpine linux](#install-alpine-linux)
|
|
| 7 | +* [0 - Environment](#0---setup-environment)
|
|
| 8 | +* [1 - Apache2](#1---apache2)
|
|
| 9 | +* [2 - Php](#2---php)
|
|
| 10 | +* [3 - DBMS Mysql](#3---databases-mysql)
|
|
| 11 | +* [4 - ospos](#4---ospos)
|
|
| 12 | +* [Como usar esta guia](#como-usar-esta-guia)
|
|
| 13 | +* [LICENSE](#LICENSE)
|
|
| 14 | + |
|
| 15 | +Este documento no le explicará nada que debe obedecer, como debe ser porque solo funciona y funciona muy bien, por favor si no lo sabe revisar sección [Como usar esta guia](#como-usar-esta-guia) antes de comenzar:
|
|
| 16 | + |
|
| 17 | +## Install alpine linux
|
|
| 18 | + |
|
| 19 | +```
|
|
| 20 | +mkdir -p /home/general/VM/alpine314 && cd /home/general/VM/alpine314
|
|
| 21 | + |
|
| 22 | +qemu-img create -f raw computerint1alpine-vitualdisk1-file.raw 6G
|
|
| 23 | + |
|
| 24 | +wget -c -t8 --no-check-certificate http://dl-cdn.alpinelinux.org/alpine/v3.14/releases/x86_64/alpine-extended-3.14.0-x86_64.iso
|
|
| 25 | + |
|
| 26 | +qemu-system-x86_64 -m 2048 -name "computerint1alpine314" \
|
|
| 27 | + -cpu host -machine q35 \
|
|
| 28 | + -device rtl8139,netdev=nd1 -netdev user,id=nd1,restrict=off,hostfwd=tcp::3222-:22,hostfwd=tcp::9080-:80,hostfwd=tcp::9443-:443 \
|
|
| 29 | + -device virtio-keyboard -device virtio-mouse -device virtio-tablet -device virtio-vga,max_outputs=1 \
|
|
| 30 | + -drive file=computerint1alpine-vitualdisk1-file.raw,format=raw \
|
|
| 31 | + -cdrom alpine-extended-3.14.0-x86_64.iso -boot d
|
|
| 32 | +```
|
|
| 33 | + |
|
| 34 | +Cuando lo inicie, le pedirá que inicie como "root" simplemente escriba "root" e ingrese para iniciar el comando `setup-alpine`
|
|
| 35 | + |
|
| 36 | +#### the setup-alpine command procedure
|
|
| 37 | + |
|
| 38 | +* keyboard: ejemplo para latinoamerica y españa es `es` y después `es-winkeys`
|
|
| 39 | +* hostname: solo presione enter, es el nombre de la computadora, debe ser solo letras
|
|
| 40 | +* Network: seleccione `eth0` que es el cable de red y responda dhcp.
|
|
| 41 | +* Network (again): solo pasa si tienes wifi o segunda tarjeta.. Debe ignorarlo
|
|
| 42 | +* DNS Options: recomendado usar 8.8.8.8 y colocar `none` en el dominio
|
|
| 43 | +* Root: contraseña para la cuenta administrativa, cuídate y no la olvides
|
|
| 44 | +* Timezone: use UTC solo para un SO, de lo contrario `América/Panama` o algo similar
|
|
| 45 | +* Proxy Options: Use none si estas conectado directo a internet
|
|
| 46 | +* NTP Options: Use chrony que es el que esta ya disponible sin descargar
|
|
| 47 | +* APK mirror: Si tienes internet lento saltalo o escribe none
|
|
| 48 | +* User: versiones modernas permiten la creación del usuario, omitalo con `no`
|
|
| 49 | +* SSH Options: Use openssh el paquete que ya esta en el medio de isntalacion
|
|
| 50 | +* Root allow: aquí debe escribir `yes` porque aún no configuramos el usuario!
|
|
| 51 | +* SSH key: solo escribe aqui `none`
|
|
| 52 | +* Disk Options: Usaras `sda` y el disco duro entero sera borrado y usado
|
|
| 53 | +* Mode: Seleccionar `sys` para instalar el sistema en el disco
|
|
| 54 | + |
|
| 55 | +Luego reinicie y si está utilizando una máquina virtual cambie la línea `-boot d` to ` -boot c`
|
|
| 56 | + |
|
| 57 | +## 0 - Setup environment
|
|
| 58 | + |
|
| 59 | +```
|
|
| 60 | +cat > /etc/apk/repositories << EOF
|
|
| 61 | +http://dl-4.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/main
|
|
| 62 | +http://dl-4.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/community
|
|
| 63 | +EOF
|
|
| 64 | + |
|
| 65 | +apk update
|
|
| 66 | + |
|
| 67 | +apk add man-pages nano binutils coreutils readline \
|
|
| 68 | + sed attr dialog lsof less groff wget curl terminus-font \
|
|
| 69 | + file lz4 gawk tree pciutils usbutils lshw tzdata \
|
|
| 70 | + zip p7zip xz tar cabextract cpio binutils lha acpi musl-locales musl-locales-lang \
|
|
| 71 | + e2fsprogs btrfs-progs exfat-utils f2fs-tools dosfstools xfsprogs jfsutils \
|
|
| 72 | + arch-install-scripts util-linux docs
|
|
| 73 | + |
|
| 74 | +rc-update add consolefont boot
|
|
| 75 | +```
|
|
| 76 | + |
|
| 77 | +## 1 - apache2
|
|
| 78 | + |
|
| 79 | +```
|
|
| 80 | +apk add apache2 apache2-utils apache2-error apache2-proxy-html apache2-proxy
|
|
| 81 | + |
|
| 82 | +mkdir -p /etc/skel/Devel
|
|
| 83 | +mkdir -p /var/www/localhost/cgi-bin /var/www/localhost/htdocs /var/log/apache2
|
|
| 84 | +sed -i -r 's#^Listen.*#Listen 80#g' /etc/apache2/httpd.conf
|
|
| 85 | +sed -i -r 's#^ServerTokens.*#ServerTokens Minimal#g' /etc/apache2/httpd.conf
|
|
| 86 | +chown -R apache:www-data /var/www/localhost/
|
|
| 87 | +chown -R apache:wheel /var/log/apache2
|
|
| 88 | +sed -i -r 's#.*LoadModule.*modules/mod_cgid.so.*#LoadModule cgid_module modules/mod_cgid.so#g' /etc/apache2/httpd.conf
|
|
| 89 | +sed -i -r 's#.*LoadModule.*modules/mod_cgi.so.*#LoadModule cgi_module modules/mod_cgi.so#g' /etc/apache2/httpd.conf
|
|
| 90 | +sed -i -r 's#.*LoadModule.*modules/mod_alias.so.*#LoadModule alias_module modules/mod_alias.so#g' /etc/apache2/httpd.conf
|
|
| 91 | +sed -i -r 's#.*ScriptAlias /cgi-bin/.*# ScriptAlias /cgi-bin/ "/var/www/localhost/cgi-bin"#g' /etc/apache2/httpd.conf
|
|
| 92 | +sed -i -r 's#.*LoadModule.*modules/mod_usertrack.so.*#LoadModule usertrack_module modules/mod_usertrack.so#g' /etc/apache2/httpd.conf
|
|
| 93 | +sed -i -r 's#.*LoadModule.*modules/mod_userdir.so.*#LoadModule userdir_module modules/mod_userdir.so#g' /etc/apache2/httpd.conf
|
|
| 94 | +sed -i -r 's#public_html#Devel#g' /etc/apache2/conf.d/userdir.conf
|
|
| 95 | +sed -i -r 's#AllowOverride.*#AllowOverride All#g' /etc/apache2/conf.d/userdir.conf
|
|
| 96 | +sed -i -r 's#/usr/lib/libxml2.so.*#/usr/lib/libxml2.so.2#g' /etc/apache2/conf.d/proxy-html.conf
|
|
| 97 | + |
|
| 98 | +rc-update add apache2 default
|
|
| 99 | + |
|
| 100 | +rc-service apache2 restart
|
|
| 101 | + |
|
| 102 | +echo "it works" > /var/www/localhost/htdocs/index.html
|
|
| 103 | +for i in /home/*; do mkdir $i/Devel ; done
|
|
| 104 | +```
|
|
| 105 | + |
|
| 106 | +Para probar, abra un navegador y vaya a `http://<webserveripaddres>` pero para una forma segura o soporte SSL:
|
|
| 107 | +https://venenux.github.io/alpine-wiki/#/tutorials/server-alpine-LAMP-professional-fast-forward
|
|
| 108 | + |
|
| 109 | +## 2 - PHP
|
|
| 110 | + |
|
| 111 | +```
|
|
| 112 | +apk add php7-opcache php7-openssl php7-json php7-bcmath php7-mbstring php7-bz2 \
|
|
| 113 | + php7-ctype php7-dev php7-dom php7-enchant php7-fileinfo php7-shmop php7-simplexml php7-tidy \
|
|
| 114 | + php7-tokenizer php7-sysvmsg php7-sysvsem php7-sysvshm php7-xml php7-xmlreader \
|
|
| 115 | + php7-xmlwriter php7-xsl php7-zip php7-intl php7-gettext php7-pspell php7-calendar \
|
|
| 116 | + php7-exif php7-gd php7-pcntl php7-gmp php7-imap php7-session php7-curl php7-pear \
|
|
| 117 | + php7-phar php7-doc php7-embed php7-posix php7-fpm php7-cgi php7-dba php7-mysqli \
|
|
| 118 | + php7-mysqlnd php7-odbc php7-pgsql php7-sodium php7-sqlite3 php7-apache2 \
|
|
| 119 | + php7-pdo php7-pdo_dblib php7-pdo_mysql php7-pdo_odbc php7-pdo_pgsql php7-pdo_sqlite
|
|
| 120 | + |
|
| 121 | +sed -i -r 's|.*cgi.fix_pathinfo=.*|cgi.fix_pathinfo=1|g' /etc/php*/php.ini
|
|
| 122 | +sed -i -r 's#.*safe_mode =.*#safe_mode = Off#g' /etc/php*/php.ini
|
|
| 123 | +sed -i -r 's#.*expose_php =.*#expose_php = Off#g' /etc/php*/php.ini
|
|
| 124 | +sed -i -r 's#memory_limit =.*#memory_limit = 536M#g' /etc/php*/php.ini
|
|
| 125 | +sed -i -r 's#upload_max_filesize =.*#upload_max_filesize = 128M#g' /etc/php*/php.ini
|
|
| 126 | +sed -i -r 's#post_max_size =.*#post_max_size = 256M#g' /etc/php*/php.ini
|
|
| 127 | +sed -i -r 's#^file_uploads =.*#file_uploads = On#g' /etc/php*/php.ini
|
|
| 128 | +sed -i -r 's#^max_file_uploads =.*#max_file_uploads = 12#g' /etc/php*/php.ini
|
|
| 129 | +sed -i -r 's#^allow_url_fopen = .*#allow_url_fopen = On#g' /etc/php*/php.ini
|
|
| 130 | +sed -i -r 's#^.default_charset =.*#default_charset = "UTF-8"#g' /etc/php*/php.ini
|
|
| 131 | +sed -i -r 's#^.max_execution_time =.*#max_execution_time = 150#g' /etc/php*/php.ini
|
|
| 132 | +sed -i -r 's#^max_input_time =.*#max_input_time = 90#g' /etc/php*/php.ini
|
|
| 133 | +mkdir -p /var/run/php-fpm7/
|
|
| 134 | +sed -i -r 's|^.*listen.owner = .*|listen.owner = apache|g' /etc/php*/php-fpm.d/www.conf
|
|
| 135 | +sed -i -r 's|^.*listen.group = .*|listen.group = www-data|g' /etc/php*/php-fpm.d/www.conf
|
|
| 136 | +sed -i -r 's|^.*listen.mode = .*|listen.mode = 0660|g' /etc/php*/php-fpm.d/www.conf
|
|
| 137 | +chown apache:www-data /var/run/php-fpm7
|
|
| 138 | + |
|
| 139 | +sed -i -r 's|^.*listen =.*|listen = /run/php-fpm7/php-fpm.sock|g' /etc/php7/php-fpm.d/www.conf
|
|
| 140 | +sed -i -r 's|^pid =.*|pid = /run/php-php7/php-fpm.pid|g' /etc/php7/php-fpm.conf
|
|
| 141 | +rc-update add php-fpm7
|
|
| 142 | +rc-service php-fpm7 restart
|
|
| 143 | + |
|
| 144 | +sed -i -r 's|.*LoadModule.*modules/mod_mpm_event.so.*|LoadModule mpm_event_module modules/mod_mpm_event.so|g' /etc/apache2/httpd.conf
|
|
| 145 | +sed -i -r 's|.*LoadModule.*modules/mod_mpm_prefork.so.*|#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so|g' /etc/apache2/httpd.conf
|
|
| 146 | +rm /etc/apache2/conf.d/php*.conf
|
|
| 147 | +cat >> /etc/apache2/conf.d/php7-fpm.conf << EOF
|
|
| 148 | +<FilesMatch \\.php\$>
|
|
| 149 | + <If "-f %{REQUEST_FILENAME}">
|
|
| 150 | + SetHandler "proxy:unix:/run/php-fpm7/php-fpm.sock|fcgi://localhost"
|
|
| 151 | + </If>
|
|
| 152 | +</FilesMatch>
|
|
| 153 | +EOF
|
|
| 154 | +rc-update add apache2
|
|
| 155 | +rc-service apache2 restart
|
|
| 156 | + |
|
| 157 | +echo -e "<?php\nphpinfo( );\n?>" > /var/www/localhost/htdocs/index.php
|
|
| 158 | +```
|
|
| 159 | + |
|
| 160 | +## 3 - Databases mysql
|
|
| 161 | + |
|
| 162 | +```
|
|
| 163 | +apk add mysql mysql-client mariadb-doc mariadb-server-utils mariadb-mytop
|
|
| 164 | + |
|
| 165 | +mysql_install_db --user=mysql --datadir=/var/lib/mysql
|
|
| 166 | + |
|
| 167 | +sed -i "s|.*max_allowed_packet\s*=.*|max_allowed_packet = 100M|g" /etc/mysql/my.cnf
|
|
| 168 | +sed -i "s|.*max_allowed_packet\s*=.*|max_allowed_packet = 100M|g" /etc/my.cnf.d/mariadb-server.cnf
|
|
| 169 | +sed -i "s|.*bind-address\s*=.*|bind-address=0.0.0.0|g" /etc/mysql/my.cnf
|
|
| 170 | +sed -i "s|.*bind-address\s*=.*|bind-address=0.0.0.0|g" /etc/my.cnf.d/mariadb-server.cnf
|
|
| 171 | +sed -i "s|.*skip-networking.*|#skip-networking|g" /etc/mysql/my.cnf
|
|
| 172 | +sed -i "s|.*skip-networking.*|#skip-networking|g" /etc/my.cnf.d/mariadb-server.cnf
|
|
| 173 | +rc-update add mariadb
|
|
| 174 | +rc-service mariadb restart
|
|
| 175 | + |
|
| 176 | +mysqladmin -u root password root
|
|
| 177 | + |
|
| 178 | +mkdir -p /usr/share/webapps/adminer && wget https://github.com/vrana/adminer/releases/download/v4.8.1/adminer-4.8.1.php -O /usr/share/webapps/adminer/adminer-4.8.1.php
|
|
| 179 | + |
|
| 180 | +ln -s adminer-4.8.1.php /usr/share/webapps/adminer/index.php
|
|
| 181 | +cat >> /etc/apache2/conf.d/adminer.conf << EOF
|
|
| 182 | +Alias /adminer /usr/share/webapps/adminer/
|
|
| 183 | +<Directory /usr/share/webapps/adminer/>
|
|
| 184 | + Require all granted
|
|
| 185 | + DirectoryIndex index.php
|
|
| 186 | +</Directory>
|
|
| 187 | +EOF
|
|
| 188 | +rc-service apache2 restart
|
|
| 189 | +```
|
|
| 190 | + |
|
| 191 | +## 4 - ospos
|
|
| 192 | + |
|
| 193 | +```
|
|
| 194 | +apk add doas bash shadow shadow-uidmap doas musl-locales musl-locales-lang
|
|
| 195 | + |
|
| 196 | +cat > /etc/doas.conf << EOF
|
|
| 197 | +permit nopass general as root cmd apk
|
|
| 198 | +EOF
|
|
| 199 | +useradd -m -U -c "" -s /bin/bash -G wheel,input,disk,floppy,cdrom,dialout,audio,video,lp,netdev,games,users,ping,wheel general
|
|
| 200 | +for u in $(ls /home); do for g in disk lp floppy audio cdrom dialout video lp netdev games users ping wheel; do addgroup $u $g; done;done
|
|
| 201 | +echo "general:general" | chpasswd
|
|
| 202 | +```
|
|
| 203 | + |
|
| 204 | +¡Ahora todo utilizará el usuario "general", por lo que ejecuta `su -l general` O INICIAR SESIÓN CON EL USUARIO general!
|
|
| 205 | + |
|
| 206 | +```
|
|
| 207 | +doas apk add git git-doc nodejs nodejs-doc npm npm-doc
|
|
| 208 | + |
|
| 209 | +mkdir -p /home/general/Devel/opensourcepos && cd Devel/opensourcepos
|
|
| 210 | +wget https://github.com/opensourcepos/opensourcepos/releases/download/3.3.9/opensourcepos.3.3.9.c00ff2.zip
|
|
| 211 | + |
|
| 212 | +unzip opensourcepos.3.3.9.c00ff2.zip
|
|
| 213 | + |
|
| 214 | +mysql -u root -proot -e "CREATE SCHEMA ospos;"
|
|
| 215 | +mysql -u root -proot -e "CREATE USER 'admin'@'%' IDENTIFIED BY 'pointofsale';GRANT ALL PRIVILEGES ON ospos . * TO 'admin'@'%' IDENTIFIED BY 'pointofsale' WITH GRANT OPTION;FLUSH PRIVILEGES;"
|
|
| 216 | +mysql -u root -proot -e "CREATE USER 'admin'@'localhost' IDENTIFIED BY 'pointofsale';GRANT ALL PRIVILEGES ON ospos . * TO 'admin'@'localhost' IDENTIFIED BY 'pointofsale' WITH GRANT OPTION;FLUSH PRIVILEGES;"
|
|
| 217 | +mysql -u admin -ppointofsale -D ospos < database/database.sql
|
|
| 218 | + |
|
| 219 | +chown -R general:www-data /home/general/Devel/opensourcepos
|
|
| 220 | + |
|
| 221 | +rm -f /home/general/Devel/opensourcepos/.htaccess
|
|
| 222 | +rm -f /home/general/Devel/opensourcepos/public/.htaccess
|
|
| 223 | +cat > /home/general/Devel/opensourcepos/index.php << EOF
|
|
| 224 | +<?php
|
|
| 225 | +header('Location: public/index.php', true, 301);
|
|
| 226 | +die();
|
|
| 227 | +?>
|
|
| 228 | +EOF
|
|
| 229 | +```
|
|
| 230 | + |
|
| 231 | +Edita `/home/general/Devel/opensourcepos/application/config/config.php` y coloca `$config['index_page'] = '';` a `$config['index_page'] = 'index.php';`
|
|
| 232 | + |
|
| 233 | +#### Resultados
|
|
| 234 | + |
|
| 235 | +* OSPOS: `http://<ip>/~general/opensourcepos/`
|
|
| 236 | +* MYSQL: `http://<ip>/adminer/`
|
|
| 237 | +* FILES: `/home/general/Devel/opensourcepos/`
|
|
| 238 | + |
|
| 239 | +## Como usar esta guia
|
|
| 240 | + |
|
| 241 | +Esta guía estructura todos los **comandos en bloques, cada bloque está separado
|
|
| 242 | +por una línea en blanco**, entonces debe escribir **cada línea como está..
|
|
| 243 | +y presione enter para ejecutarla** puede copiar y pegar cada bloque separado de comandos,
|
|
| 244 | +pero copiar/escribir solo bloques separados por una línea vacía, ya todas las líneas
|
|
| 245 | +nuevas(siguientes) se ejecutaran al persionar enter, el terminal detectará si debe ejecutarse o no.
|
|
| 246 | + |
|
| 247 | +Advertencia Algunos terminales Linux o/y Mac tienen bloqueos de corte/pegado de seguridad, por lo que si pega, la primera línea será precedida por basura, compruebe siempre el primer char de su pasta.
|
|
| 248 | + |
|
| 249 | +## Vea tambien
|
|
| 250 | + |
|
| 251 | +- 🗯 IRC
|
|
| 252 | + - 💬 `##alpine_telegram_english`
|
|
| 253 | + - 💬 `#alpine_linux_english`
|
|
| 254 | +- 📱 Telegram https://t.me/alpine_linux
|
|
| 255 | + - 🇬🇧 https://t.me/alpine_linux_english
|
|
| 256 | + - 🇷🇺 https://t.me/alpine_linux_pycckuu (dual english russian, low activity)
|
|
| 257 | + - 🇨🇴 https://t.me/alpine_linux_espanol
|
|
| 258 | + - 🇧🇬 https://t.me/alpine_linux_bulgarian (dual english bulgarian, low activity)
|
|
| 259 | + - 🇨🇳 https://t.me/alpine_linux_chinese (dual english chinese, low activity)
|
|
| 260 | + - 📡 https://t.me/opentechnologies (open languajes but english as main)
|
|
| 261 | +- Matrix
|
|
| 262 | + - 👥 https://matrix.to/#/#alpine-linux-english:matrix.org
|
|
| 263 | + |
|
| 264 | +# LICENSE
|
|
| 265 | + |
|
| 266 | +**CC BY-NC-SA**: the project allows reusers to distribute, remix, adapt, and build upon the material
|
|
| 267 | +in any medium or format for noncommercial purposes only, and only so long as attribution is given
|
|
| 268 | +to the creators involved. If you remix, adapt, or build upon the material, you must license the modified
|
|
| 269 | +material under identical terms, includes the following elements:
|
|
| 270 | + |
|
| 271 | +* **BY** – Credit must be given to the creator of each content respectivelly, starting at the first contributor.
|
|
| 272 | +* **NC** – Only noncommercial uses of the work are permitted, with exceptions if you fill an issue here!
|
|
| 273 | +* **SA** – Adaptations must be shared under the same terms, you must obey this terms and do not change it.
|
|
| 274 | + |
|
| 275 | +For more information check the [[alpine/copyright.md](../../alpine/copyright.md)](https://venenux.github.io/alpine-wiki/#/alpine/copyright) |
| 1 | +# alpine3.20 + Apache2 + Mysql + Php8 + Ospos4
|
|
| 2 | + |
|
| 3 | +**Warning** esto es para **php 8.3 (php83) y sus dependencias de composer en alpine 3.20**
|
|
| 4 | +si tu ejecutas mas antiguos usa [server-alpine-LAMP-ospos-314.md](server-alpine-LAMP-ospos-314.md)
|
|
| 5 | + |
|
| 6 | +* [Install alpine linux](#install-alpine-linux)
|
|
| 7 | +* [0 - Environment](#0---setup-environment)
|
|
| 8 | +* [1 - Apache2](#1---apache2)
|
|
| 9 | +* [2 - Php](#2---php)
|
|
| 10 | +* [3 - DBMS Mysql](#3---databases-mysql)
|
|
| 11 | +* [4 - ospos](#4---ospos)
|
|
| 12 | +* [How to use this guide](#how-to-use-this-guide)
|
|
| 13 | +* [LICENSE](#LICENSE)
|
|
| 14 | + |
|
| 15 | +Este documento no le explicará nada que debe obedecer, como debe ser porque solo funciona y funciona muy bien, por favor si no lo sabe revisar sección [Como usar esta guia](#como-usar-esta-guia) antes de comenzar:
|
|
| 16 | + |
|
| 17 | +## Install alpine linux
|
|
| 18 | + |
|
| 19 | +```
|
|
| 20 | +mkdir -p /home/general/VM/alpine320 && cd /home/general/VM/alpine320
|
|
| 21 | + |
|
| 22 | +qemu-img create -f raw computerint1alpine-vitualdisk1-file.raw 6G
|
|
| 23 | + |
|
| 24 | +wget -c -t8 --no-check-certificate http://dl-cdn.alpinelinux.org/alpine/v3.20/releases/x86_64/alpine-extended-3.20.0-x86_64.iso
|
|
| 25 | + |
|
| 26 | +/usr/bin/qemu-system-x86_64 -m 2048 -name "computerint1alpine320" \
|
|
| 27 | + -cpu host -machine q35 \
|
|
| 28 | + -device rtl8139,netdev=nd1 -netdev user,id=nd1,restrict=off,hostfwd=tcp::3222-:22,hostfwd=tcp::9080-:80,hostfwd=tcp::9443-:443 \
|
|
| 29 | + -device virtio-keyboard -device virtio-mouse -device virtio-tablet -device virtio-vga,max_outputs=1 \
|
|
| 30 | + -drive file=computerint1alpine-vitualdisk1-file.raw,format=raw \
|
|
| 31 | + -cdrom alpine-extended-3.20.0-x86_64.iso -boot d
|
|
| 32 | +```
|
|
| 33 | + |
|
| 34 | +Cuando lo inicie, le pedirá que inicie como "root" simplemente escriba "root" e ingrese para iniciar el comando `setup-alpine`
|
|
| 35 | + |
|
| 36 | +#### the setup-alpine command procedure
|
|
| 37 | + |
|
| 38 | +* keyboard: ejemplo para latinoamerica y españa es `es` y después `es-winkeys`
|
|
| 39 | +* hostname: solo presione enter, es el nombre de la computadora, debe ser solo letras
|
|
| 40 | +* Network: seleccione `eth0` que es el cable de red y responda dhcp.
|
|
| 41 | +* Network (again): solo pasa si tienes wifi o segunda tarjeta.. Debe ignorarlo
|
|
| 42 | +* DNS Options: recomendado usar 8.8.8.8 y colocar `none` en el dominio
|
|
| 43 | +* Root: contraseña para la cuenta administrativa, cuídate y no la olvides
|
|
| 44 | +* Timezone: use UTC solo para un SO, de lo contrario `América/Panama` o algo similar
|
|
| 45 | +* Proxy Options: Use none si estas conectado directo a internet
|
|
| 46 | +* NTP Options: Use chrony que es el que esta ya disponible sin descargar
|
|
| 47 | +* APK mirror: Si tienes internet lento saltalo o escribe none
|
|
| 48 | +* User: versiones modernas permiten la creación del usuario, omitalo con `no`
|
|
| 49 | +* SSH Options: Use openssh el paquete que ya esta en el medio de isntalacion
|
|
| 50 | +* Root allow: aquí debe escribir `yes` porque aún no configuramos el usuario!
|
|
| 51 | +* SSH key: solo escribe aqui `none`
|
|
| 52 | +* Disk Options: Usaras `sda` y el disco duro entero sera borrado y usado
|
|
| 53 | +* Mode: Seleccionar `sys` para instalar el sistema en el disco
|
|
| 54 | + |
|
| 55 | +Luego reinicie y si está utilizando una máquina virtual cambie la línea `-boot d` to ` -boot c`
|
|
| 56 | + |
|
| 57 | +## 0 - Setup environment
|
|
| 58 | + |
|
| 59 | +```
|
|
| 60 | +cat > /etc/apk/repositories << EOF
|
|
| 61 | +http://dl-4.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/main
|
|
| 62 | +http://dl-4.alpinelinux.org/alpine/v$(cat /etc/alpine-release | cut -d'.' -f1,2)/community
|
|
| 63 | +EOF
|
|
| 64 | + |
|
| 65 | +apk update
|
|
| 66 | + |
|
| 67 | +apk add man-pages nano binutils coreutils readline \
|
|
| 68 | + sed attr dialog lsof less groff wget curl terminus-font \
|
|
| 69 | + file lz4 gawk tree pciutils usbutils lshw tzdata tzdata-utils \
|
|
| 70 | + zip p7zip xz tar cabextract cpio binutils lha acpi musl-locales musl-locales-lang \
|
|
| 71 | + e2fsprogs btrfs-progs exfat-utils f2fs-tools dosfstools xfsprogs jfsutils \
|
|
| 72 | + arch-install-scripts util-linux docs
|
|
| 73 | + |
|
| 74 | +rc-update add consolefont boot
|
|
| 75 | +```
|
|
| 76 | + |
|
| 77 | +## 1 - apache2
|
|
| 78 | + |
|
| 79 | +```
|
|
| 80 | +apk add apache2 apache2-utils apache2-error apache2-proxy-html apache2-proxy
|
|
| 81 | + |
|
| 82 | +mkdir -p /etc/skel/Devel
|
|
| 83 | +mkdir -p /var/www/localhost/cgi-bin /var/www/localhost/htdocs /var/log/apache2
|
|
| 84 | +sed -i -r 's#^Listen.*#Listen 80#g' /etc/apache2/httpd.conf
|
|
| 85 | +sed -i -r 's#^ServerTokens.*#ServerTokens Minimal#g' /etc/apache2/httpd.conf
|
|
| 86 | +chown -R apache:www-data /var/www/localhost/
|
|
| 87 | +chown -R apache:wheel /var/log/apache2
|
|
| 88 | +sed -i -r 's#.*LoadModule.*modules/mod_cgid.so.*#LoadModule cgid_module modules/mod_cgid.so#g' /etc/apache2/httpd.conf
|
|
| 89 | +sed -i -r 's#.*LoadModule.*modules/mod_cgi.so.*#LoadModule cgi_module modules/mod_cgi.so#g' /etc/apache2/httpd.conf
|
|
| 90 | +sed -i -r 's#.*LoadModule.*modules/mod_alias.so.*#LoadModule alias_module modules/mod_alias.so#g' /etc/apache2/httpd.conf
|
|
| 91 | +sed -i -r 's#.*ScriptAlias /cgi-bin/.*# ScriptAlias /cgi-bin/ "/var/www/localhost/cgi-bin"#g' /etc/apache2/httpd.conf
|
|
| 92 | +sed -i -r 's#.*LoadModule.*modules/mod_usertrack.so.*#LoadModule usertrack_module modules/mod_usertrack.so#g' /etc/apache2/httpd.conf
|
|
| 93 | +sed -i -r 's#.*LoadModule.*modules/mod_userdir.so.*#LoadModule userdir_module modules/mod_userdir.so#g' /etc/apache2/httpd.conf
|
|
| 94 | +sed -i -r 's#public_html#Devel#g' /etc/apache2/conf.d/userdir.conf
|
|
| 95 | +sed -i -r 's#AllowOverride.*#AllowOverride All#g' /etc/apache2/conf.d/userdir.conf
|
|
| 96 | +sed -i -r 's#/usr/lib/libxml2.so.*#/usr/lib/libxml2.so.2#g' /etc/apache2/conf.d/proxy-html.conf
|
|
| 97 | + |
|
| 98 | +rc-update add apache2 default
|
|
| 99 | + |
|
| 100 | +rc-service apache2 restart
|
|
| 101 | + |
|
| 102 | +echo "it works" > /var/www/localhost/htdocs/index.html
|
|
| 103 | +for i in /home/*; do mkdir $i/Devel ; done
|
|
| 104 | +```
|
|
| 105 | + |
|
| 106 | +Para probar, abra un navegador y vaya a `http://<webserveripaddres>` pero para una forma segura o soporte SSL:
|
|
| 107 | +https://venenux.github.io/alpine-wiki/#/tutorials/server-alpine-LAMP-professional-fast-forward
|
|
| 108 | + |
|
| 109 | +## 2 - PHP
|
|
| 110 | + |
|
| 111 | +```
|
|
| 112 | +apk add php83-opcache php83-openssl php83-json php83-bcmath php83-mbstring php83-bz2 \
|
|
| 113 | + php83-ctype php83-dev php83-dom php83-enchant php83-fileinfo php83-shmop php83-simplexml php83-tidy \
|
|
| 114 | + php83-tokenizer php83-sysvmsg php83-sysvsem php83-sysvshm php83-xml php83-xmlreader \
|
|
| 115 | + php83-xmlwriter php83-xsl php83-zip php83-intl php83-gettext php83-pspell php83-calendar \
|
|
| 116 | + php83-exif php83-gd php83-pcntl php83-gmp php83-imap php83-session php83-curl php83-pear \
|
|
| 117 | + php83-phar php83-doc php83-embed php83-posix php83-fpm php83-cgi php83-dba php83-mysqli \
|
|
| 118 | + php83-mysqlnd php83-odbc php83-pgsql php83-sodium php83-sqlite3 php83-apache2 \
|
|
| 119 | + php83-pdo php83-pdo_dblib php83-pdo_mysql php83-pdo_odbc php83-pdo_pgsql php83-pdo_sqlite
|
|
| 120 | + |
|
| 121 | +sed -i -r 's|.*cgi.fix_pathinfo=.*|cgi.fix_pathinfo=1|g' /etc/php*/php.ini
|
|
| 122 | +sed -i -r 's#.*safe_mode =.*#safe_mode = Off#g' /etc/php*/php.ini
|
|
| 123 | +sed -i -r 's#.*expose_php =.*#expose_php = Off#g' /etc/php*/php.ini
|
|
| 124 | +sed -i -r 's#memory_limit =.*#memory_limit = 536M#g' /etc/php*/php.ini
|
|
| 125 | +sed -i -r 's#upload_max_filesize =.*#upload_max_filesize = 128M#g' /etc/php*/php.ini
|
|
| 126 | +sed -i -r 's#post_max_size =.*#post_max_size = 256M#g' /etc/php*/php.ini
|
|
| 127 | +sed -i -r 's#^file_uploads =.*#file_uploads = On#g' /etc/php*/php.ini
|
|
| 128 | +sed -i -r 's#^max_file_uploads =.*#max_file_uploads = 12#g' /etc/php*/php.ini
|
|
| 129 | +sed -i -r 's#^allow_url_fopen = .*#allow_url_fopen = On#g' /etc/php*/php.ini
|
|
| 130 | +sed -i -r 's#^.default_charset =.*#default_charset = "UTF-8"#g' /etc/php*/php.ini
|
|
| 131 | +sed -i -r 's#^.max_execution_time =.*#max_execution_time = 150#g' /etc/php*/php.ini
|
|
| 132 | +sed -i -r 's#^max_input_time =.*#max_input_time = 90#g' /etc/php*/php.ini
|
|
| 133 | +mkdir -p /var/run/php-fpm83/
|
|
| 134 | +sed -i -r 's|^.*listen.owner = .*|listen.owner = apache|g' /etc/php*/php-fpm.d/www.conf
|
|
| 135 | +sed -i -r 's|^.*listen.group = .*|listen.group = www-data|g' /etc/php*/php-fpm.d/www.conf
|
|
| 136 | +sed -i -r 's|^.*listen.mode = .*|listen.mode = 0660|g' /etc/php*/php-fpm.d/www.conf
|
|
| 137 | +chown apache:www-data /var/run/php-fpm83
|
|
| 138 | + |
|
| 139 | +sed -i -r 's|^.*listen =.*|listen = /run/php-fpm83/php-fpm.sock|g' /etc/php83/php-fpm.d/www.conf
|
|
| 140 | +sed -i -r 's|^pid =.*|pid = /run/php-fpm83/php-fpm.pid|g' /etc/php83/php-fpm.conf
|
|
| 141 | +rc-update add php-fpm83
|
|
| 142 | +rc-service php-fpm83 restart
|
|
| 143 | + |
|
| 144 | +sed -i -r 's|.*LoadModule.*modules/mod_mpm_event.so.*|LoadModule mpm_event_module modules/mod_mpm_event.so|g' /etc/apache2/httpd.conf
|
|
| 145 | +sed -i -r 's|.*LoadModule.*modules/mod_mpm_prefork.so.*|#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so|g' /etc/apache2/httpd.conf
|
|
| 146 | +rm /etc/apache2/conf.d/php*.conf
|
|
| 147 | +cat >> /etc/apache2/conf.d/php83-fpm.conf << EOF
|
|
| 148 | +<FilesMatch \\.php\$>
|
|
| 149 | + <If "-f %{REQUEST_FILENAME}">
|
|
| 150 | + SetHandler "proxy:unix:/run/php-fpm83/php-fpm.sock|fcgi://localhost"
|
|
| 151 | + </If>
|
|
| 152 | +</FilesMatch>
|
|
| 153 | +EOF
|
|
| 154 | +rc-update add apache2
|
|
| 155 | +rc-service apache2 restart
|
|
| 156 | + |
|
| 157 | +echo -e "<?php\nphpinfo( );\n?>" > /var/www/localhost/htdocs/index.php
|
|
| 158 | +```
|
|
| 159 | + |
|
| 160 | +## 3 - Databases mysql
|
|
| 161 | + |
|
| 162 | +```
|
|
| 163 | +apk add mysql mysql-client mariadb-doc mariadb-server-utils mariadb-mytop
|
|
| 164 | + |
|
| 165 | +mysql_install_db --user=mysql --datadir=/var/lib/mysql
|
|
| 166 | + |
|
| 167 | +sed -i "s|.*max_allowed_packet\s*=.*|max_allowed_packet = 100M|g" /etc/mysql/my.cnf
|
|
| 168 | +sed -i "s|.*max_allowed_packet\s*=.*|max_allowed_packet = 100M|g" /etc/my.cnf.d/mariadb-server.cnf
|
|
| 169 | +sed -i "s|.*bind-address\s*=.*|bind-address=0.0.0.0|g" /etc/mysql/my.cnf
|
|
| 170 | +sed -i "s|.*bind-address\s*=.*|bind-address=0.0.0.0|g" /etc/my.cnf.d/mariadb-server.cnf
|
|
| 171 | +sed -i "s|.*skip-networking.*|#skip-networking|g" /etc/mysql/my.cnf
|
|
| 172 | +sed -i "s|.*skip-networking.*|#skip-networking|g" /etc/my.cnf.d/mariadb-server.cnf
|
|
| 173 | +rc-update add mariadb
|
|
| 174 | +rc-service mariadb restart
|
|
| 175 | + |
|
| 176 | +mysqladmin -u root password root
|
|
| 177 | + |
|
| 178 | +mkdir -p /usr/share/webapps/adminer && wget https://github.com/vrana/adminer/releases/download/v4.8.1/adminer-4.8.1.php -O /usr/share/webapps/adminer/adminer-4.8.1.php
|
|
| 179 | + |
|
| 180 | +ln -s adminer-4.8.1.php /usr/share/webapps/adminer/index.php
|
|
| 181 | +cat >> /etc/apache2/conf.d/adminer.conf << EOF
|
|
| 182 | +Alias /adminer /usr/share/webapps/adminer/
|
|
| 183 | +<Directory /usr/share/webapps/adminer/>
|
|
| 184 | + Require all granted
|
|
| 185 | + DirectoryIndex index.php
|
|
| 186 | +</Directory>
|
|
| 187 | +EOF
|
|
| 188 | +rc-service apache2 restart
|
|
| 189 | +```
|
|
| 190 | + |
|
| 191 | +## 4 - ospos
|
|
| 192 | + |
|
| 193 | +Construiremos el OSPOS desde el git repo y su rama master:
|
|
| 194 | + |
|
| 195 | +```
|
|
| 196 | +apk add doas bash shadow shadow-uidmap doas musl-locales musl-locales-lang
|
|
| 197 | + |
|
| 198 | +cat > /etc/doas.d/apkgeneral.conf << EOF
|
|
| 199 | +permit nopass general as root cmd apk
|
|
| 200 | +EOF
|
|
| 201 | +useradd -m -U -c "" -s /bin/bash -G wheel,input,disk,floppy,cdrom,dialout,audio,video,lp,netdev,games,users,ping,wheel general
|
|
| 202 | +for u in $(ls /home); do for g in disk lp floppy audio cdrom dialout video lp netdev games users ping wheel; do addgroup $u $g; done;done
|
|
| 203 | +echo "general:general" | chpasswd
|
|
| 204 | +```
|
|
| 205 | + |
|
| 206 | +¡Ahora todo utilizará el usuario "general", por lo que ejecuta `su -l general` O INICIAR SESIÓN CON EL USUARIO general!
|
|
| 207 | + |
|
| 208 | +```
|
|
| 209 | +doas apk add git git-doc nodejs nodejs-doc npm npm-doc
|
|
| 210 | + |
|
| 211 | +mkdir -p /home/general/Devel && cd Devel
|
|
| 212 | +git clone https://github.com/opensourcepos/opensourcepos && cd opensourcepos
|
|
| 213 | + |
|
| 214 | +composer install
|
|
| 215 | + |
|
| 216 | +npm install
|
|
| 217 | + |
|
| 218 | +npm run build
|
|
| 219 | + |
|
| 220 | +mysql -u root -proot -e "CREATE SCHEMA ospos;"
|
|
| 221 | +mysql -u root -proot -e "CREATE USER 'admin'@'%' IDENTIFIED BY 'pointofsale';GRANT ALL PRIVILEGES ON ospos . * TO 'admin'@'%' IDENTIFIED BY 'pointofsale' WITH GRANT OPTION;FLUSH PRIVILEGES;"
|
|
| 222 | +mysql -u root -proot -e "CREATE USER 'admin'@'localhost' IDENTIFIED BY 'pointofsale';GRANT ALL PRIVILEGES ON ospos . * TO 'admin'@'localhost' IDENTIFIED BY 'pointofsale' WITH GRANT OPTION;FLUSH PRIVILEGES;"
|
|
| 223 | +mysql -u admin -ppointofsale -D ospos < database/database.sql
|
|
| 224 | + |
|
| 225 | +sed -i -r 's#logger.threshold.*#logger.threshold = 9#g' .env
|
|
| 226 | +sed -i -r 's#app.db_log_enabled.*#app.db_log_enabled = true#g' .env
|
|
| 227 | + |
|
| 228 | +chown -R general:www-data /home/general/Devel/opensourcepos
|
|
| 229 | +```
|
|
| 230 | + |
|
| 231 | + |
|
| 232 | +#### Tune apache2 rewrite and permissions
|
|
| 233 | + |
|
| 234 | +TODO
|
|
| 235 | + |
|
| 236 | + |
|
| 237 | +#### Results
|
|
| 238 | + |
|
| 239 | +* OSPOS: `http://<ip>/~general/opensourcepos/`
|
|
| 240 | +* MYSQL: `http://<ip>/adminer/`
|
|
| 241 | +* FILES: `/home/general/Devel/opensourcepos/`
|
|
| 242 | + |
|
| 243 | +## Como usar esta guia
|
|
| 244 | + |
|
| 245 | +Esta guía estructura todos los **comandos en bloques, cada bloque está separado
|
|
| 246 | +por una línea en blanco**, entonces debe escribir **cada línea como está..
|
|
| 247 | +y presione enter para ejecutarla** puede copiar y pegar cada bloque separado de comandos,
|
|
| 248 | +pero copiar/escribir solo bloques separados por una línea vacía, ya todas las líneas
|
|
| 249 | +nuevas(siguientes) se ejecutaran al persionar enter, el terminal detectará si debe ejecutarse o no.
|
|
| 250 | + |
|
| 251 | +Advertencia Algunos terminales Linux o/y Mac tienen bloqueos de corte/pegado de seguridad, por lo que si pega, la primera línea será precedida por basura, compruebe siempre el primer char de su pasta.
|
|
| 252 | + |
|
| 253 | +## Vea tambien
|
|
| 254 | + |
|
| 255 | +- 🗯 IRC
|
|
| 256 | + - 💬 `##alpine_telegram_english`
|
|
| 257 | + - 💬 `#alpine_linux_english`
|
|
| 258 | +- 📱 Telegram https://t.me/alpine_linux
|
|
| 259 | + - 🇬🇧 https://t.me/alpine_linux_english
|
|
| 260 | + - 🇷🇺 https://t.me/alpine_linux_pycckuu (dual english russian, low activity)
|
|
| 261 | + - 🇨🇴 https://t.me/alpine_linux_espanol
|
|
| 262 | + - 🇧🇬 https://t.me/alpine_linux_bulgarian (dual english bulgarian, low activity)
|
|
| 263 | + - 🇨🇳 https://t.me/alpine_linux_chinese (dual english chinese, low activity)
|
|
| 264 | + - 📡 https://t.me/opentechnologies (open languajes but english as main)
|
|
| 265 | +- Matrix
|
|
| 266 | + - 👥 https://matrix.to/#/#alpine-linux-english:matrix.org
|
|
| 267 | + |
|
| 268 | +# LICENSE
|
|
| 269 | + |
|
| 270 | +**CC BY-NC-SA**: the project allows reusers to distribute, remix, adapt, and build upon the material
|
|
| 271 | +in any medium or format for noncommercial purposes only, and only so long as attribution is given
|
|
| 272 | +to the creators involved. If you remix, adapt, or build upon the material, you must license the modified
|
|
| 273 | +material under identical terms, includes the following elements:
|
|
| 274 | + |
|
| 275 | +* **BY** – Credit must be given to the creator of each content respectivelly, starting at the first contributor.
|
|
| 276 | +* **NC** – Only noncommercial uses of the work are permitted, with exceptions if you fill an issue here!
|
|
| 277 | +* **SA** – Adaptations must be shared under the same terms, you must obey this terms and do not change it.
|
|
| 278 | + |
|
| 279 | +For more information check the [[alpine/copyright.md](../../alpine/copyright.md)](https://venenux.github.io/alpine-wiki/#/alpine/copyright) |
—
View it on GitLab.
You're receiving this email because of your account on gitlab.com. Manage all notifications · Help